Ticket #4344: ui.dialog.diff.2

File ui.dialog.diff.2, 1.7 KB (added by andreas, 10 years ago)
Line 
1Index: ui/ui.dialog.js
2===================================================================
3--- ui/ui.dialog.js     (revision 2482)
4+++ ui/ui.dialog.js     (working copy)
5@@ -284,14 +284,29 @@
6                (typeof buttons == 'object' && buttons !== null &&
7                        $.each(buttons, function() { return !(hasButtons = true); }));
8                if (hasButtons) {
9-                       $.each(buttons, function(name, fn) {
10+                       $.each(buttons, function(name, options) {
11+                               //check for legacy click callbacks
12+                               if($.isFunction(options)) {
13+                                   options = {click: options}
14+                               }
15+                               
16+                               var o = $.extend({}, $.ui.dialog.defaults.buttonOptions, options);
17+                               var classes = 'ui-state-default';
18+                               if(o.cornerAll) {
19+                                   classes += ' ui-corner-all';
20+                               }
21+                               if(o.priority) {
22+                                   classes += ' ui-priority-'+o.priority;
23+                               }
24+                               if(o.disabled) {
25+                                   classes += ' ui-state-disabled';
26+                               }
27+                               
28                                $('<button type="button"></button>')
29-                                       .addClass(
30-                                               'ui-state-default ' +
31-                                               'ui-corner-all'
32-                                       )
33+                                       .addClass(classes)
34+                                       .attr('id', o.id)
35                                        .text(name)
36-                                       .click(function() { fn.apply(self.element[0], arguments); })
37+                                       .click(function() { o.click.apply(self.element[0], arguments); })
38                                        .hover(
39                                                function() {
40                                                        $(this).addClass('ui-state-hover');
41@@ -305,8 +320,8 @@
42                                        })
43                                        .blur(function() {
44                                                $(this).removeClass('ui-state-focus');
45-                                       })
46-                                       .appendTo(uiDialogButtonPane);
47+                                       }).appendTo(uiDialogButtonPane);
48+                                       
49                        });
50                        uiDialogButtonPane.appendTo(self.uiDialog);
51                }
52@@ -529,7 +544,13 @@
53                stack: true,
54                title: '',
55                width: 300,
56-               zIndex: 1000
57+               zIndex: 1000,
58+               buttonOptions: {
59+                       disabled: false,
60+                       id: '',
61+                       cornerAll: true,
62+                       click: function() {}
63+               }
64        },
65 
66        uuid: 0,