]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/FirewallAliases.js
1 Ext
.define('PVE.FirewallAliasEdit', {
2 extend
: 'Proxmox.window.Edit',
10 initComponent: function() {
13 me
.isCreate
= me
.alias_name
=== undefined;
16 me
.url
= '/api2/extjs' + me
.base_url
;
19 me
.url
= '/api2/extjs' + me
.base_url
+ '/' + me
.alias_name
;
23 let ipanel
= Ext
.create('Proxmox.panel.InputPanel', {
24 isCreate
: me
.isCreate
,
28 name
: me
.isCreate
? 'name' : 'rename',
29 fieldLabel
: gettext('Name'),
35 fieldLabel
: gettext('IP/CIDR'),
41 fieldLabel
: gettext('Comment'),
47 subject
: gettext('Alias'),
56 success: function(response
, options
) {
57 let values
= response
.result
.data
;
58 values
.rename
= values
.name
;
59 ipanel
.setValues(values
);
66 Ext
.define('pve-fw-aliases', {
67 extend
: 'Ext.data.Model',
69 fields
: ['name', 'cidr', 'comment', 'digest'],
73 Ext
.define('PVE.FirewallAliases', {
74 extend
: 'Ext.grid.Panel',
75 alias
: ['widget.pveFirewallAliases'],
77 onlineHelp
: 'pve_firewall_ip_aliases',
80 stateId
: 'grid-firewall-aliases',
84 title
: gettext('Alias'),
86 initComponent: function() {
90 throw "missing base_url configuration";
93 let store
= new Ext
.data
.Store({
94 model
: 'pve-fw-aliases',
97 url
: "/api2/json" + me
.base_url
,
105 let sm
= Ext
.create('Ext.selection.RowModel', {});
107 let caps
= Ext
.state
.Manager
.get('GuiCap');
108 let canEdit
= !!caps
.vms
['VM.Config.Network'] || !!caps
.dc
['Sys.Modify'] || !!caps
.nodes
['Sys.Modify'];
110 let reload = function() {
111 let oldrec
= sm
.getSelection()[0];
112 store
.load(function(records
, operation
, success
) {
114 var rec
= store
.findRecord('name', oldrec
.data
.name
, 0, false, true, true);
122 let run_editor = function() {
123 let rec
= me
.getSelectionModel().getSelection()[0];
124 if (!rec
|| !canEdit
) {
127 let win
= Ext
.create('PVE.FirewallAliasEdit', {
128 base_url
: me
.base_url
,
129 alias_name
: rec
.data
.name
,
132 win
.on('destroy', reload
);
135 me
.editBtn
= new Proxmox
.button
.Button({
136 text
: gettext('Edit'),
139 enableFn
: rec
=> canEdit
,
143 me
.addBtn
= Ext
.create('Ext.Button', {
144 text
: gettext('Add'),
145 disabled
: !caps
.vms
['VM.Config.Network'] && !caps
.dc
['Sys.Modify'] && !caps
.nodes
['Sys.Modify'],
146 handler: function() {
147 var win
= Ext
.create('PVE.FirewallAliasEdit', {
148 base_url
: me
.base_url
,
150 win
.on('destroy', reload
);
155 me
.removeBtn
= Ext
.create('Proxmox.button.StdRemoveButton', {
158 enableFn
: rec
=> !!caps
.vms
['VM.Config.Network'] || !!caps
.dc
['Sys.Modify'] || !!caps
.nodes
['Sys.Modify'],
159 baseurl
: me
.base_url
+ '/',
166 tbar
: [me
.addBtn
, me
.removeBtn
, me
.editBtn
],
170 header
: gettext('Name'),
175 header
: gettext('IP/CIDR'),
180 header
: gettext('Comment'),
181 dataIndex
: 'comment',
182 renderer
: Ext
.String
.htmlEncode
,
187 itemdblclick
: run_editor
,
192 me
.on('activate', reload
);