Ticket #4344: ui.dialog.diff

File ui.dialog.diff, 1.7 KB (added by andreas, 10 years ago)
  • ui/ui.dialog.js

     
    284284                (typeof buttons == 'object' && buttons !== null &&
    285285                        $.each(buttons, function() { return !(hasButtons = true); }));
    286286                if (hasButtons) {
    287                         $.each(buttons, function(name, fn) {
     287                        $.each(buttons, function(name, options) {
     288                                //check for legacy click callbacks
     289                                if($.isFunction(options)) {
     290                                    options = {click: options}
     291                                }
     292                               
     293                                var o = $.extend({}, $.ui.dialog.defaults.buttonOptions, options);
     294                                var classes = 'ui-state-default';
     295                                if(o.priority) {
     296                                    classes += ' ui-priority-'+o.priority;
     297                                }
     298                                if(o.disabled) {
     299                                    classes += ' ui-state-disabled';
     300                                }
     301                                classes += ' '+o.classes;
     302                               
    288303                                $('<button type="button"></button>')
    289                                         .addClass(
    290                                                 'ui-state-default ' +
    291                                                 'ui-corner-all'
    292                                         )
     304                                        .addClass(classes)
     305                                        .attr('id', o.id)
    293306                                        .text(name)
    294                                         .click(function() { fn.apply(self.element[0], arguments); })
     307                                        .click(function() { o.click.apply(self.element[0], arguments); })
    295308                                        .hover(
    296309                                                function() {
    297310                                                        $(this).addClass('ui-state-hover');
     
    305318                                        })
    306319                                        .blur(function() {
    307320                                                $(this).removeClass('ui-state-focus');
    308                                         })
    309                                         .appendTo(uiDialogButtonPane);
     321                                        }).appendTo(uiDialogButtonPane);
     322                                       
    310323                        });
    311324                        uiDialogButtonPane.appendTo(self.uiDialog);
    312325                }
     
    529542                stack: true,
    530543                title: '',
    531544                width: 300,
    532                 zIndex: 1000
     545                zIndex: 1000,
     546                buttonOptions: {
     547                        disabled: false,
     548                        id: '',
     549                        classes: 'ui-corner-all',
     550                        click: function() {}
     551                }
    533552        },
    534553
    535554        uuid: 0,