]>
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
) {
19 // function(record) or text
22 // take special care in confirm box (select no as default).
25 handlerWrapper: function(button
, event
) {
29 rec
= me
.selModel
.getSelection()[0];
30 if (!rec
|| me
.enableFn(rec
) === false) {
37 // confirMsg can be boolean or function
38 if (Ext
.isFunction(me
.confirmMsg
)) {
39 msg
= me
.confirmMsg(rec
);
41 Ext
.MessageBox
.defaultButton
= me
.dangerous
? 2 : 1;
43 title
: gettext('Confirm'),
44 icon
: me
.dangerous
? Ext
.Msg
.WARNING
: Ext
.Msg
.QUESTION
,
46 buttons
: Ext
.Msg
.YESNO
,
47 callback: function(btn
) {
51 me
.realHandler(button
, event
, rec
);
55 me
.realHandler(button
, event
, rec
);
59 initComponent: function() {
63 me
.realHandler
= me
.handler
;
64 me
.handler
= me
.handlerWrapper
;
67 if (me
.menu
&& me
.menu
.items
) {
68 me
.menu
.items
.forEach(function(item
) {
70 item
.realHandler
= item
.handler
;
71 item
.handler
= me
.handlerWrapper
;
75 me
.mon(item
.selModel
, "selectionchange", function() {
76 var rec
= item
.selModel
.getSelection()[0];
77 if (!rec
|| item
.enableFn(rec
) === false) {
78 item
.setDisabled(true);
80 item
.setDisabled(false);
90 me
.mon(me
.selModel
, "selectionchange", function() {
91 var rec
= me
.selModel
.getSelection()[0];
92 if (!rec
|| me
.enableFn(rec
) === false) {
95 me
.setDisabled(false);