mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-06-01 10:29:04 +00:00

The line: > Ext.MessageBox.defaultButton = me.dangerous ? 2 : 1; just set the button which should get triggered on an keyboard "Enter" if no button is focused currently. But often the 'Yes' buttons is focused so an enter press would trigger it, even on a as 'dangerous' marked option. Fix this, as else a to fast "Enter" press can cause more problems than needed. Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Reviewed-By: Dominik Csapak <d.csapak@proxmox.com>
78 lines
1.7 KiB
JavaScript
78 lines
1.7 KiB
JavaScript
/* Button features:
|
|
* - observe selection changes to enable/disable the button using enableFn()
|
|
* - pop up confirmation dialog using confirmMsg()
|
|
*/
|
|
Ext.define('PVE.button.Button', {
|
|
extend: 'Ext.button.Button',
|
|
alias: 'widget.pveButton',
|
|
|
|
// the selection model to observe
|
|
selModel: undefined,
|
|
|
|
// if 'false' handler will not be called (button disabled)
|
|
enableFn: function(record) { },
|
|
|
|
// function(record) or text
|
|
confirmMsg: false,
|
|
|
|
// take special care in confirm box (select no as default).
|
|
dangerous: false,
|
|
|
|
initComponent: function() {
|
|
/*jslint confusion: true */
|
|
|
|
var me = this;
|
|
|
|
if (me.handler) {
|
|
me.realHandler = me.handler;
|
|
|
|
me.handler = function(button, event) {
|
|
var rec, msg;
|
|
if (me.selModel) {
|
|
rec = me.selModel.getSelection()[0];
|
|
if (!rec || (me.enableFn(rec) === false)) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (me.confirmMsg) {
|
|
msg = me.confirmMsg;
|
|
if (Ext.isFunction(me.confirmMsg)) {
|
|
msg = me.confirmMsg(rec);
|
|
}
|
|
Ext.MessageBox.defaultButton = me.dangerous ? 2 : 1;
|
|
Ext.Msg.show({
|
|
title: gettext('Confirm'),
|
|
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);
|
|
}
|
|
});
|
|
} else {
|
|
me.realHandler(button, event, rec);
|
|
}
|
|
};
|
|
}
|
|
|
|
me.callParent();
|
|
|
|
if (me.selModel) {
|
|
|
|
me.mon(me.selModel, "selectionchange", function() {
|
|
var rec = me.selModel.getSelection()[0];
|
|
if (!rec || (me.enableFn(rec) === false)) {
|
|
me.setDisabled(true);
|
|
} else {
|
|
me.setDisabled(false);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|