Ext.define('pmg-action-list', {
extend: 'Ext.data.Model',
fields: [
- 'id', 'name', 'info', 'descr',
+ 'id', 'name', 'info', 'descr', 'editable',
{ name: 'otype', type: 'integer' },
],
- idProperty: 'id'
+ idProperty: 'id',
});
Ext.define('PMG.ActionList', {
extend: 'Ext.grid.GridPanel',
alias: ['widget.pmgActionList'],
- title: PMG.Utils.oclass_text['action'],
+ title: PMG.Utils.oclass_text.action,
border: false,
baseurl: '/config/ruledb/action',
- otype_list: [4005],
+ otype_list: [4002, 4003, 4005, 4007, 4009],
enableButtons: true,
- initComponent : function() {
+ initComponent: function() {
var me = this;
me.store = new Ext.data.Store({
},
sorters: {
property: 'name',
- order: 'DESC'
- }
+ direction: 'ASC',
+ },
});
me.selModel = Ext.create('Ext.selection.RowModel', {});
getUrl: function(rec) {
return me.baseurl + '/objects/' + rec.data.id;
},
+ enableFn: rec => !!rec.data.editable,
callback: reload,
getRecordName: function(rec) { return rec.data.descr; },
- waitMsgTarget: me
+ waitMsgTarget: me,
});
var menu_items = [];
Ext.Array.each(me.otype_list, function(otype) {
-
var editor = PMG.Utils.object_editors[otype];
var config = Ext.apply({ method: 'POST' }, editor);
- config.create = true,
+ config.isCreate = true;
menu_items.push({
text: config.subject,
handler: function() {
- if (me.baseurl == undefined) {
+ if (me.baseurl === undefined) {
return;
}
config.url = me.baseurl + '/' + editor.subdir;
var win = Ext.createWidget('proxmoxWindowEdit', config);
win.on('destroy', reload);
win.show();
- }
+ },
});
});
{
text: gettext('Add'),
menu: new Ext.menu.Menu({
- items: menu_items
- })
+ items: menu_items,
+ }),
},
{
xtype: 'proxmoxButton',
text: gettext('Edit'),
disabled: true,
selModel: me.selModel,
- handler: run_editor
+ enableFn: rec => !!rec.data.editable,
+ handler: run_editor,
},
- remove_btn
+ remove_btn,
];
- Proxmox.Utils.monStoreErrors(me, me.store);
+ Proxmox.Utils.monStoreErrors(me, me.store, true);
if (me.enableButtons) {
me.tbar = tbar;
}
Ext.apply(me, {
+ run_editor: run_editor,
columns: [
{
header: gettext('Name'),
sortable: true,
width: 200,
dataIndex: 'name',
- renderer: Ext.String.htmlEncode
+ renderer: Ext.String.htmlEncode,
},
{
header: gettext('Description'),
sortable: true,
width: 300,
dataIndex: 'descr',
- renderer: Ext.String.htmlEncode
+ renderer: Ext.String.htmlEncode,
},
{
header: gettext('Comment'),
sortable: false,
flex: 1,
dataIndex: 'info',
- renderer: Ext.String.htmlEncode
+ renderer: Ext.String.htmlEncode,
+ },
+ {
+ header: gettext('Editable'),
+ dataIndex: 'editable',
+ renderer: Proxmox.Utils.format_boolean,
},
],
listeners: {
run_editor();
}
},
- activate: reload
- }
+ activate: reload,
+ },
});
me.callParent();
reload(); // initial load
- }
+ },
});