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;
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() {
}
}
});
+
+
+Ext.define('Proxmox.button.StdRemoveButton', {
+ extend: 'Proxmox.button.Button',
+ alias: 'widget.proxmoxStdRemoveButton',
+
+ text: gettext('Remove'),
+
+ disabled: true,
+
+ config: {
+ baseurl: undefined
+ },
+
+ getUrl: function(rec) {
+ var me = this;
+
+ return me.baseurl + '/' + rec.getId();
+ },
+
+ // also works with names scopes
+ callback: function(options, success, response) {},
+
+ getRecordName: function(rec) { return rec.getId() },
+
+ confirmMsg: function (rec) {
+ var me = this;
+
+ var name = me.getRecordName(rec);
+ return Ext.String.format(
+ gettext('Are you sure you want to remove entry {0}'),
+ "'" + name + "'");
+ },
+
+ handler: function(btn, event, rec) {
+ var me = this;
+
+ Proxmox.Utils.API2Request({
+ url: me.getUrl(rec),
+ method: 'DELETE',
+ waitMsgTarget: me.waitMsgTarget,
+ 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);
+ }
+ });
+ }
+});