Ext.define('pmg-object-group', {
extend: 'Ext.data.Model',
- fields: [ 'id', 'name', 'info' ],
- idProperty: 'cidr'
+ fields: ['id', 'name', 'info'],
+ idProperty: 'id',
});
Ext.define('pmg-object-list', {
fields: [
'id', 'descr',
{ name: 'otype', type: 'integer' },
- { name: 'receivertest', type: 'boolean' }
+ { name: 'receivertest', type: 'boolean' },
],
- idProperty: 'id'
+ idProperty: 'id',
});
baseurl: undefined,
+ enableButtons: true,
+
inputItems: [
{
xtype: 'textfield',
name: 'name',
allowBlank: false,
- fieldLabel: gettext('Name')
+ fieldLabel: gettext('Name'),
},
{
xtype: 'textareafield',
name: 'info',
- fieldLabel: gettext("Description")
- }
+ fieldLabel: gettext("Description"),
+ },
],
reload: function() {
var me = this;
- var rec = me.selModel.getSelection()[0];
- me.store.load(function() {
- if (rec) {
- // try to selectprevious selection
- var nrec = me.store.findRecord('id', rec.data.id);
- me.selModel.select(nrec);
- }
- });
+ me.store.load();
},
run_editor: function() {
var config = {
url: "/api2/extjs" + me.baseurl +'/' + rec.data.id + '/config',
+ onlineHelp: 'chapter_mailfilter',
method: 'PUT',
subject: me.subject,
width: 400,
- items: me.inputItems
+ items: me.inputItems,
};
var win = Ext.createWidget('proxmoxWindowEdit', config);
win.show();
},
- initComponent : function() {
+ initComponent: function() {
var me = this;
if (!me.ogclass) {
},
sorters: {
property: 'name',
- order: 'DESC'
- }
+ direction: 'ASC',
+ },
});
me.selModel = Ext.create('Ext.selection.RowModel', {});
- var remove_btn = Ext.createWidget('proxmoxButton', {
- text: gettext('Remove'),
- disabled: true,
- selModel: me.selModel,
- confirmMsg: function (rec) {
- return Ext.String.format(
- gettext('Are you sure you want to remove entry {0}'),
- "'" + rec.data.name + "'");
- },
- handler: function(btn, event, rec) {
- Proxmox.Utils.API2Request({
- url: me.baseurl + '/' + rec.data.id,
- method: 'DELETE',
- waitMsgTarget: me,
- callback: function() {
- me.reload();
- },
- failure: function (response, opts) {
- Ext.Msg.alert(gettext('Error'), response.htmlStatus);
- }
- });
- }
- });
-
var tbar = [
- {
- xtype: 'proxmoxButton',
- text: gettext('Edit'),
- disabled: true,
- selModel: me.selModel,
- handler: function() { me.run_editor(); }
- },
{
text: gettext('Create'),
handler: function() {
- var config = {
+ Ext.createWidget('proxmoxWindowEdit', {
method: 'POST',
- url: "/api2/extjs" + me.baseurl,
- create: true,
+ url: `/api2/extjs${me.baseurl}`,
+ onlineHelp: 'chapter_mailfilter',
+ isCreate: true,
width: 400,
subject: me.subject,
- items: me.inputItems
- };
-
- var win = Ext.createWidget('proxmoxWindowEdit', config);
-
- win.on('destroy', me.reload, me);
- win.show();
- }
+ items: me.inputItems,
+ autoShow: true,
+ listeners: {
+ destroy: () => me.reload(),
+ },
+ });
+ },
+ },
+ '-',
+ {
+ xtype: 'proxmoxButton',
+ text: gettext('Edit'),
+ disabled: true,
+ selModel: me.selModel,
+ handler: () => me.run_editor(),
},
- remove_btn
+ {
+ xtype: 'proxmoxStdRemoveButton',
+ selModel: me.selModel,
+ baseurl: me.baseurl,
+ callback: () => me.reload(),
+ getRecordName: rec => rec.data.name,
+ waitMsgTarget: me,
+ },
];
- Proxmox.Utils.monStoreErrors(me, me.store);
+ Proxmox.Utils.monStoreErrors(me, me.store, true);
+
+ if (me.enableButtons) {
+ me.tbar = tbar;
+ }
Ext.apply(me, {
- tbar: tbar,
columns: [
{
header: gettext('Name'),
sortable: true,
flex: 1,
dataIndex: 'name',
- renderer: Ext.String.htmlEncode
- }
+ renderer: Ext.String.htmlEncode,
+ },
],
listeners: {
- itemdblclick: function() { me.run_editor(); },
- activate: function() { me.reload(); }
- }
+ itemdblclick: function() {
+ if (me.enableButtons) {
+ me.run_editor();
+ }
+ },
+ activate: function() { me.reload(); },
+ },
});
me.callParent();
me.reload(); // initial load
- }
+ },
});