]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/button/Split.js
2 * - observe selection changes to enable/disable the button using enableFn()
3 * - pop up confirmation dialog using confirmMsg()
5 * does this for the button and every menu item
7 Ext
.define('PVE.button.Split', {
8 extend
: 'Ext.button.Split',
9 alias
: 'widget.pveSplitButton',
11 // the selection model to observe
14 // if 'false' handler will not be called (button disabled)
15 enableFn: function(record
) { },
17 // function(record) or text
20 // take special care in confirm box (select no as default).
23 handlerWrapper: function(button
, event
) {
27 rec
= me
.selModel
.getSelection()[0];
28 if (!rec
|| (me
.enableFn(rec
) === false)) {
35 // confirMsg can be boolean or function
36 if (Ext
.isFunction(me
.confirmMsg
)) {
37 msg
= me
.confirmMsg(rec
);
39 Ext
.MessageBox
.defaultButton
= me
.dangerous
? 2 : 1;
41 title
: gettext('Confirm'),
42 icon
: me
.dangerous
? Ext
.Msg
.WARNING
: Ext
.Msg
.QUESTION
,
44 buttons
: Ext
.Msg
.YESNO
,
45 callback: function(btn
) {
49 me
.realHandler(button
, event
, rec
);
53 me
.realHandler(button
, event
, rec
);
57 initComponent: function() {
61 me
.realHandler
= me
.handler
;
62 me
.handler
= me
.handlerWrapper
;
65 if (me
.menu
&& me
.menu
.items
) {
66 me
.menu
.items
.forEach(function(item
) {
68 item
.realHandler
= item
.handler
;
69 item
.handler
= me
.handlerWrapper
;
73 me
.mon(item
.selModel
, "selectionchange", function() {
74 var rec
= item
.selModel
.getSelection()[0];
75 if (!rec
|| (item
.enableFn(rec
) === false)) {
76 item
.setDisabled(true);
78 item
.setDisabled(false);
88 me
.mon(me
.selModel
, "selectionchange", function() {
89 var rec
= me
.selModel
.getSelection()[0];
90 if (!rec
|| (me
.enableFn(rec
) === false)) {
93 me
.setDisabled(false);