From 15c97e0b76b4576d0c7bee9d54dc4662c23502b9 Mon Sep 17 00:00:00 2001 From: Douglas Neiner Date: Wed, 2 Mar 2011 12:52:21 -0500 Subject: [PATCH] Dialog: Added a class to dialog wrapper when it is currently displaying buttons, includes unit tests for changes. Fixed #7057 - An extra class is needed on the dialog wrapper to specify when a buttonset is showing --- tests/unit/dialog/dialog_options.js | 10 +++++++++- ui/jquery.ui.dialog.js | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/unit/dialog/dialog_options.js b/tests/unit/dialog/dialog_options.js index 82f28bf85..fb8dea775 100644 --- a/tests/unit/dialog/dialog_options.js +++ b/tests/unit/dialog/dialog_options.js @@ -18,7 +18,7 @@ test("autoOpen", function() { }); test("buttons", function() { - expect(17); + expect(21); var buttons = { "Ok": function(ev, ui) { @@ -44,6 +44,8 @@ test("buttons", function() { }); ok(btn.parent().hasClass('ui-dialog-buttonset'), "buttons in container"); + ok(el.parent().hasClass('ui-dialog-buttons'), "dialog wrapper adds class about having buttons"); + btn.trigger("click"); var newButtons = { @@ -67,6 +69,12 @@ test("buttons", function() { equals(btn.eq(i).text(), key, "text of button " + (i+1)); i += 1; }); + + el.dialog("option", "buttons", null); + btn = $("button", dlg()); + equals(btn.length, 0, "all buttons have been removed"); + equals(el.find(".ui-dialog-buttonset").length, 0, "buttonset has been removed"); + equals(el.parent().hasClass('ui-dialog-buttons'), false, "dialog wrapper removes class about having buttons"); el.remove(); }); diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js index 0183dd801..493783896 100644 --- a/ui/jquery.ui.dialog.js +++ b/ui/jquery.ui.dialog.js @@ -353,7 +353,10 @@ $.widget("ui.dialog", { button.button(); } }); + self.uiDialog.addClass( "ui-dialog-buttons" ); uiDialogButtonPane.appendTo( self.uiDialog ); + } else { + self.uiDialog.removeClass( "ui-dialog-buttons" ); } },