Search and Top Navigation
#9043 closed bug (fixed)
Opened February 01, 2013 07:46AM UTC
Closed February 01, 2013 02:00PM UTC
Last modified February 01, 2013 02:00PM UTC
Dialog: Buttonpane shown with no buttons when modifying native prototypes
| Reported by: | mbehm | Owned by: | mbehm |
|---|---|---|---|
| Priority: | minor | Milestone: | 1.10.1 |
| Component: | ui.dialog | Version: | 1.10.0 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
jQuery 1.10 dialog by default has buttonpane shown even if no button are defined because the buttons options is only checked for empty object and not empty array.
--- orig/jquery.ui.dialog.js 2013-02-01 09:40:42.781304334 +0200
+++ patch/jquery.ui.dialog.js 2013-02-01 09:41:11.587970771 +0200
@@ -396,7 +396,7 @@
this.uiDialogButtonPane.remove();
this.uiButtonSet.empty();
- if ( $.isEmptyObject( buttons ) ) {
+ if ( $.isEmptyObject( buttons ) || ($.isArray(buttons) && buttons.length == 0)) {
this.uiDialog.removeClass("ui-dialog-buttons");
return;
}
Attachments (0)
Change History (8)
Changed February 01, 2013 01:24PM UTC by comment:1
| owner: | → mbehm |
|---|---|
| status: | new → pending |
Changed February 01, 2013 01:44PM UTC by comment:2
| status: | pending → new |
|---|
Did some more testing and this bug is caused by frameworks like Prototype that extend Array or Object prototype.
Changed February 01, 2013 01:50PM UTC by comment:3
| resolution: | → wontfix |
|---|---|
| status: | new → closed |
Changed February 01, 2013 01:52PM UTC by comment:4
| resolution: | wontfix |
|---|---|
| status: | closed → reopened |
Actually, the bug must be coming from Array.prototype modification, not Object.prototype, right? I'm fine with this patch.
Changed February 01, 2013 01:53PM UTC by comment:5
| milestone: | none → 1.10.1 |
|---|---|
| status: | reopened → open |
| summary: | Dialog buttonpane shown with no buttons → Dialog: Buttonpane shown with no buttons when modifying native prototypes |
Changed February 01, 2013 01:56PM UTC by comment:6
Actually both of them cause $.isEmptyObject to fail but the default buttons option is array so the patch I provided fixes that.
Changed February 01, 2013 02:00PM UTC by comment:7
| resolution: | → fixed |
|---|---|
| status: | open → closed |
Dialog: Check for empty array in addition to empty object when checking if there are buttons. Fixes #9043 - Dialog: Buttonpane shown with no buttons when modifying native prototypes.
Changeset: 7bbda71a32cc4953715ed34eab2ab48c5e736154
Changed February 01, 2013 02:00PM UTC by comment:8
Replying to [comment:6 mbehm]:
Actually both of them cause $.isEmptyObject to fail but the default buttons option is array so the patch I provided fixes that.
Right, but we won't support changes to Object.prototype.
$.isEmptyObject([])returnstrue. Can you please provide a reduced test case showing that this is causing the button pane to be shown?