]>
git.proxmox.com Git - pmg-gui.git/blob - js/ActionList.js
1 Ext
.define('pmg-action-list', {
2 extend
: 'Ext.data.Model',
4 'id', 'name', 'info', 'descr', 'editable',
5 { name
: 'otype', type
: 'integer' },
10 Ext
.define('PMG.ActionList', {
11 extend
: 'Ext.grid.GridPanel',
12 alias
: ['widget.pmgActionList'],
14 title
: PMG
.Utils
.oclass_text
.action
,
17 baseurl
: '/config/ruledb/action',
19 otype_list
: [4002, 4003, 4005, 4007, 4009],
23 initComponent: function() {
26 me
.store
= new Ext
.data
.Store({
27 model
: 'pmg-action-list',
30 url
: "/api2/json" + me
.baseurl
+ '/objects',
38 me
.selModel
= Ext
.create('Ext.selection.RowModel', {});
40 var reload = function() {
44 var run_editor = function() {
45 var rec
= me
.selModel
.getSelection()[0];
50 var editor
= PMG
.Utils
.object_editors
[rec
.data
.otype
];
55 var config
= Ext
.apply({ method
: 'PUT' }, editor
);
57 config
.url
= me
.baseurl
+ '/' + editor
.subdir
+ '/' + rec
.data
.id
;
59 var win
= Ext
.createWidget('proxmoxWindowEdit', config
);
62 win
.on('destroy', reload
);
66 var remove_btn
= Ext
.createWidget('proxmoxStdRemoveButton', {
67 selModel
: me
.selModel
,
68 getUrl: function(rec
) {
69 return me
.baseurl
+ '/objects/' + rec
.data
.id
;
71 enableFn
: rec
=> !!rec
.data
.editable
,
73 getRecordName: function(rec
) { return rec
.data
.descr
; },
79 Ext
.Array
.each(me
.otype_list
, function(otype
) {
80 var editor
= PMG
.Utils
.object_editors
[otype
];
82 var config
= Ext
.apply({ method
: 'POST' }, editor
);
84 config
.isCreate
= true;
88 if (me
.baseurl
=== undefined) {
91 config
.url
= me
.baseurl
+ '/' + editor
.subdir
;
92 var win
= Ext
.createWidget('proxmoxWindowEdit', config
);
93 win
.on('destroy', reload
);
101 text
: gettext('Add'),
102 menu
: new Ext
.menu
.Menu({
107 xtype
: 'proxmoxButton',
108 text
: gettext('Edit'),
110 selModel
: me
.selModel
,
111 enableFn
: rec
=> !!rec
.data
.editable
,
117 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
119 if (me
.enableButtons
) {
124 run_editor
: run_editor
,
127 header
: gettext('Name'),
131 renderer
: Ext
.String
.htmlEncode
,
134 header
: gettext('Description'),
138 renderer
: Ext
.String
.htmlEncode
,
141 header
: gettext('Comment'),
145 renderer
: Ext
.String
.htmlEncode
,
148 header
: gettext('Editable'),
149 dataIndex
: 'editable',
150 renderer
: Proxmox
.Utils
.format_boolean
,
154 itemdblclick: function() {
155 if (me
.enableButtons
) {
165 reload(); // initial load