]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - button/Button.js
2 * - observe selection changes to enable/disable the button using enableFn()
3 * - pop up confirmation dialog using confirmMsg()
5 Ext
.define('Proxmox.button.Button', {
6 extend
: 'Ext.button.Button',
7 alias
: 'widget.proxmoxButton',
9 // the selection model to observe
12 // if 'false' handler will not be called (button disabled)
13 enableFn: function(record
) { },
15 // function(record) or text
18 // take special care in confirm box (select no as default).
21 initComponent: function() {
22 /*jslint confusion: true */
28 // Note: me.realHandler may be a string (see named scopes)
29 var realHandler
= me
.handler
;
31 me
.handler = function(button
, event
) {
34 rec
= me
.selModel
.getSelection()[0];
35 if (!rec
|| (me
.enableFn(rec
) === false)) {
42 if (Ext
.isFunction(me
.confirmMsg
)) {
43 msg
= me
.confirmMsg(rec
);
45 Ext
.MessageBox
.defaultButton
= me
.dangerous
? 2 : 1;
47 title
: gettext('Confirm'),
48 icon
: me
.dangerous
? Ext
.Msg
.WARNING
: Ext
.Msg
.QUESTION
,
50 buttons
: Ext
.Msg
.YESNO
,
51 callback: function(btn
) {
55 Ext
.callback(realHandler
, me
.scope
, [button
, event
, rec
], 0, me
);
59 Ext
.callback(realHandler
, me
.scope
, [button
, event
, rec
], 0, me
);
66 if (!me
.selModel
&& me
.selModel
!== null) {
67 var grid
= me
.up('grid');
68 if (grid
&& grid
.selModel
) {
69 me
.selModel
= grid
.selModel
;
73 if (me
.waitMsgTarget
=== true) {
74 var grid
= me
.up('grid');
76 me
.waitMsgTarget
= grid
;
78 throw "unable to find waitMsgTarget";
84 me
.mon(me
.selModel
, "selectionchange", function() {
85 var rec
= me
.selModel
.getSelection()[0];
86 if (!rec
|| (me
.enableFn(rec
) === false)) {
89 me
.setDisabled(false);
97 Ext
.define('Proxmox.button.StdRemoveButton', {
98 extend
: 'Proxmox.button.Button',
99 alias
: 'widget.proxmoxStdRemoveButton',
101 text
: gettext('Remove'),
107 getUrl: function(rec
) {
110 return me
.baseurl
+ '/' + rec
.getId();
113 // also works with names scopes
114 callback: function(options
, success
, response
) {},
116 getRecordName: function(rec
) { return rec
.getId() },
118 confirmMsg: function (rec
) {
121 var name
= me
.getRecordName(rec
);
122 return Ext
.String
.format(
123 gettext('Are you sure you want to remove entry {0}'),
127 handler: function(btn
, event
, rec
) {
130 Proxmox
.Utils
.API2Request({
133 waitMsgTarget
: me
.waitMsgTarget
,
134 callback: function(options
, success
, response
) {
135 Ext
.callback(me
.callback
, me
.scope
, [options
, success
, response
], 0, me
);
137 failure: function (response
, opts
) {
138 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);