]>
git.proxmox.com Git - pmg-gui.git/blob - js/ActionList.js
2 Ext
.define('pmg-action-list', {
3 extend
: 'Ext.data.Model',
5 'id', 'name', 'info', 'descr',
6 { name
: 'otype', type
: 'integer' }
11 Ext
.define('PMG.ActionList', {
12 extend
: 'Ext.grid.GridPanel',
13 alias
: ['widget.pmgActionList'],
15 title
: PMG
.Utils
.oclass_text
.action
,
18 baseurl
: '/config/ruledb/action',
20 otype_list
: [4002, 4003, 4005, 4007, 4009],
24 initComponent : function() {
27 me
.store
= new Ext
.data
.Store({
28 model
: 'pmg-action-list',
31 url
: "/api2/json" + me
.baseurl
+ '/objects'
39 me
.selModel
= Ext
.create('Ext.selection.RowModel', {});
41 var reload = function() {
45 var run_editor = function() {
46 var rec
= me
.selModel
.getSelection()[0];
51 var editor
= PMG
.Utils
.object_editors
[rec
.data
.otype
];
56 var config
= Ext
.apply({ method
: 'PUT' }, editor
);
58 config
.url
= me
.baseurl
+ '/' + editor
.subdir
+ '/' + rec
.data
.id
;
60 var win
= Ext
.createWidget('proxmoxWindowEdit', config
);
63 win
.on('destroy', reload
);
67 var remove_btn
= Ext
.createWidget('proxmoxStdRemoveButton', {
68 selModel
: me
.selModel
,
69 getUrl: function(rec
) {
70 return me
.baseurl
+ '/objects/' + rec
.data
.id
;
73 getRecordName: function(rec
) { return rec
.data
.descr
; },
79 Ext
.Array
.each(me
.otype_list
, function(otype
) {
81 var editor
= PMG
.Utils
.object_editors
[otype
];
83 var config
= Ext
.apply({ method
: 'POST' }, editor
);
85 config
.isCreate
= true;
89 if (me
.baseurl
== undefined) {
92 config
.url
= me
.baseurl
+ '/' + editor
.subdir
;
93 var win
= Ext
.createWidget('proxmoxWindowEdit', config
);
94 win
.on('destroy', reload
);
102 text
: gettext('Add'),
103 menu
: new Ext
.menu
.Menu({
108 xtype
: 'proxmoxButton',
109 text
: gettext('Edit'),
111 selModel
: me
.selModel
,
117 Proxmox
.Utils
.monStoreErrors(me
, me
.store
, true);
119 if (me
.enableButtons
) {
126 header
: gettext('Name'),
130 renderer
: Ext
.String
.htmlEncode
133 header
: gettext('Description'),
137 renderer
: Ext
.String
.htmlEncode
140 header
: gettext('Comment'),
144 renderer
: Ext
.String
.htmlEncode
148 itemdblclick: function() {
149 if (me
.enableButtons
) {
159 reload(); // initial load