width: 400,
initComponent: function() {
- var me = this;
+ let me = this;
me.isCreate = me.alias_name === undefined;
me.method = 'PUT';
}
- var items = [
- {
- xtype: 'textfield',
- name: me.isCreate ? 'name' : 'rename',
- fieldLabel: gettext('Name'),
- allowBlank: false,
- },
- {
- xtype: 'textfield',
- name: 'cidr',
- fieldLabel: gettext('IP/CIDR'),
- allowBlank: false,
- },
- {
- xtype: 'textfield',
- name: 'comment',
- fieldLabel: gettext('Comment'),
- },
- ];
-
- var ipanel = Ext.create('Proxmox.panel.InputPanel', {
+ let ipanel = Ext.create('Proxmox.panel.InputPanel', {
isCreate: me.isCreate,
- items: items,
+ items: [
+ {
+ xtype: 'textfield',
+ name: me.isCreate ? 'name' : 'rename',
+ fieldLabel: gettext('Name'),
+ allowBlank: false,
+ },
+ {
+ xtype: 'textfield',
+ name: 'cidr',
+ fieldLabel: gettext('IP/CIDR'),
+ allowBlank: false,
+ },
+ {
+ xtype: 'textfield',
+ name: 'comment',
+ fieldLabel: gettext('Comment'),
+ },
+ ],
});
Ext.apply(me, {
- subject: gettext('Alias'),
+ subject: gettext('Alias'),
isAdd: true,
items: [ipanel],
});
if (!me.isCreate) {
me.load({
success: function(response, options) {
- var values = response.result.data;
+ let values = response.result.data;
values.rename = values.name;
ipanel.setValues(values);
},
title: gettext('Alias'),
initComponent: function() {
- var me = this;
+ let me = this;
if (!me.base_url) {
throw "missing base_url configuration";
}
- var store = new Ext.data.Store({
+ let store = new Ext.data.Store({
model: 'pve-fw-aliases',
proxy: {
type: 'proxmox',
},
});
- var sm = Ext.create('Ext.selection.RowModel', {});
+ let sm = Ext.create('Ext.selection.RowModel', {});
- var reload = function() {
- var oldrec = sm.getSelection()[0];
+ let reload = function() {
+ let oldrec = sm.getSelection()[0];
store.load(function(records, operation, success) {
if (oldrec) {
var rec = store.findRecord('name', oldrec.data.name, 0, false, true, true);
});
};
- var run_editor = function() {
- var sm = me.getSelectionModel();
- var rec = sm.getSelection()[0];
+ let run_editor = function() {
+ let rec = me.getSelectionModel().getSelection()[0];
if (!rec) {
return;
}
-
- var win = Ext.create('PVE.FirewallAliasEdit', {
+ let win = Ext.create('PVE.FirewallAliasEdit', {
base_url: me.base_url,
alias_name: rec.data.name,
});
-
win.show();
win.on('destroy', reload);
};
});
var run_copy_editor = function() {
- var rec = sm.getSelection()[0];
-
+ let rec = sm.getSelection()[0];
if (!rec) {
return;
}
- var type = rec.data.type;
-
-
+ let type = rec.data.type;
if (!(type === 'in' || type === 'out')) {
return;
}
- var win = Ext.create('PVE.FirewallRuleEdit', {
+ let win = Ext.create('PVE.FirewallRuleEdit', {
allow_iface: me.allow_iface,
base_url: me.base_url,
list_refs_url: me.list_refs_url,
rec: rec,
});
-
win.show();
win.on('destroy', reload);
};
me.copyBtn = Ext.create('Proxmox.button.Button', {
text: gettext('Copy'),
selModel: sm,
- enableFn: function(rec) {
- return rec.data.type === 'in' || rec.data.type === 'out';
- },
+ enableFn: ({ data }) => data.type === 'in' || data.type === 'out',
disabled: true,
handler: run_copy_editor,
});
},
});
- var tbar = me.tbar_prefix ? [me.tbar_prefix] : [];
+ let tbar = me.tbar_prefix ? [me.tbar_prefix] : [];
tbar.push(me.addBtn, me.copyBtn);
if (me.groupBtn) {
tbar.push(me.groupBtn);
}
tbar.push(me.removeBtn, me.editBtn);
- var render_errors = function(name, value, metaData, record) {
- var errors = record.data.errors;
+ let render_errors = function(name, value, metaData, record) {
+ let errors = record.data.errors;
if (errors && errors[name]) {
metaData.tdCls = 'proxmox-invalid-row';
- var html = '<p>' + Ext.htmlEncode(errors[name]) + '</p>';
- metaData.tdAttr = 'data-qwidth=600 data-qtitle="ERROR" data-qtip="' +
- html.replace(/\"/g, '"') + '"';
+ let html = '<p>' + Ext.htmlEncode(errors[name]) + '</p>';
+ metaData.tdAttr = 'data-qwidth=600 data-qtitle="ERROR" data-qtip="' + html + '"';
}
return value;
};
- var columns = [
+ let columns = [
{
// similar to xtype: 'rownumberer',
dataIndex: 'pos',
align: 'right',
hideable: false,
menuDisabled: true,
- renderer: function(value, metaData, record, rowIdx, colIdx, store) {
+ renderer: function(value, metaData, record, rowIdx, colIdx) {
metaData.tdCls = Ext.baseCSSPrefix + 'grid-cell-special';
if (value >= 0) {
return value;
store: store,
selModel: sm,
tbar: tbar,
- viewConfig: {
+ viewConfig: {
plugins: [
{
ptype: 'gridviewdragdrop',
},
],
listeners: {
- beforedrop: function(node, data, dropRec, dropPosition) {
+ beforedrop: function(node, data, dropRec, dropPosition) {
if (!dropRec) {
return false; // empty view
}
- var moveto = dropRec.get('pos');
+ let moveto = dropRec.get('pos');
if (dropPosition === 'after') {
moveto++;
}
- var pos = data.records[0].get('pos');
+ let pos = data.records[0].get('pos');
me.moveRule(pos, moveto);
return 0;
},
}, function() {
Ext.define('pve-fw-rule', {
extend: 'Ext.data.Model',
- fields: [{ name: 'enable', type: 'boolean' },
- 'type', 'action', 'macro', 'source', 'dest', 'proto', 'iface',
- 'dport', 'sport', 'comment', 'pos', 'digest', 'errors'],
+ fields: [
+ { name: 'enable', type: 'boolean' },
+ 'type',
+ 'action',
+ 'macro',
+ 'source',
+ 'dest',
+ 'proto',
+ 'iface',
+ 'dport',
+ 'sport',
+ 'comment',
+ 'pos',
+ 'digest',
+ 'errors',
+ ],
idProperty: 'pos',
});
});