]> git.proxmox.com Git - proxmox-widget-toolkit.git/blobdiff - button/Button.js
follouwp: code cleanup for bond_mode_array
[proxmox-widget-toolkit.git] / button / Button.js
index 6d55ea786aa35eedd7c0fd2f2e55de1866e6a387..dade477b91f14da311cda0b500b2cbd33b4392ff 100644 (file)
@@ -24,7 +24,9 @@ Ext.define('Proxmox.button.Button', {
         var me = this;
 
        if (me.handler) {
-           me.realHandler = me.handler;
+
+           // Note: me.realHandler may be a string (see named scopes)
+           var realHandler = me.handler;
 
            me.handler = function(button, event) {
                var rec, msg;
@@ -46,21 +48,39 @@ Ext.define('Proxmox.button.Button', {
                        icon: me.dangerous ? Ext.Msg.WARNING : Ext.Msg.QUESTION,
                        msg: msg,
                        buttons: Ext.Msg.YESNO,
+                       defaultFocus: me.dangerous ? 'no' : 'yes',
                        callback: function(btn) {
                            if (btn !== 'yes') {
                                return;
                            }
-                           me.realHandler(button, event, rec);
+                           Ext.callback(realHandler, me.scope, [button, event, rec], 0, me);
                        }
                    });
                } else {
-                   me.realHandler(button, event, rec);
+                   Ext.callback(realHandler, me.scope, [button, event, rec], 0, me);
                }
            };
        }
 
        me.callParent();
 
+       var grid;
+       if (!me.selModel && me.selModel !== null) {
+           grid = me.up('grid');
+           if (grid && grid.selModel) {
+               me.selModel = grid.selModel;
+           }
+       }
+
+       if (me.waitMsgTarget === true) {
+           grid = me.up('grid');
+           if (grid) {
+               me.waitMsgTarget = grid;
+           } else {
+               throw "unable to find waitMsgTarget";
+           }
+       }
+       
        if (me.selModel) {
 
            me.mon(me.selModel, "selectionchange", function() {
@@ -84,7 +104,9 @@ Ext.define('Proxmox.button.StdRemoveButton', {
 
     disabled: true,
 
-    baseurl: undefined,
+    config: {
+       baseurl: undefined
+    },
 
     getUrl: function(rec) {
        var me = this;
@@ -92,6 +114,7 @@ Ext.define('Proxmox.button.StdRemoveButton', {
        return me.baseurl + '/' + rec.getId();
     },
 
+    // also works with names scopes
     callback: function(options, success, response) {},
 
     getRecordName: function(rec) { return rec.getId() },
@@ -112,7 +135,9 @@ Ext.define('Proxmox.button.StdRemoveButton', {
            url: me.getUrl(rec),
            method: 'DELETE',
            waitMsgTarget: me.waitMsgTarget,
-           callback: me.callback,
+           callback: function(options, success, response) {
+               Ext.callback(me.callback, me.scope, [options, success, response], 0, me);
+           },
            failure: function (response, opts) {
                Ext.Msg.alert(gettext('Error'), response.htmlStatus);
            }