]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/FirewallAliases.js
ui: eslint: fix trailing comma and comma related whitespaces errors
[pve-manager.git] / www / manager6 / grid / FirewallAliases.js
1 Ext.define('PVE.FirewallAliasEdit', {
2 extend: 'Proxmox.window.Edit',
3
4 base_url: undefined,
5
6 alias_name: undefined,
7
8 width: 400,
9
10 initComponent : function() {
11
12 var me = this;
13
14 me.isCreate = (me.alias_name === undefined);
15
16 if (me.isCreate) {
17 me.url = '/api2/extjs' + me.base_url;
18 me.method = 'POST';
19 } else {
20 me.url = '/api2/extjs' + me.base_url + '/' + me.alias_name;
21 me.method = 'PUT';
22 }
23
24 var items = [
25 {
26 xtype: 'textfield',
27 name: me.isCreate ? 'name' : 'rename',
28 fieldLabel: gettext('Name'),
29 allowBlank: false,
30 },
31 {
32 xtype: 'textfield',
33 name: 'cidr',
34 fieldLabel: gettext('IP/CIDR'),
35 allowBlank: false,
36 },
37 {
38 xtype: 'textfield',
39 name: 'comment',
40 fieldLabel: gettext('Comment'),
41 },
42 ];
43
44 var ipanel = Ext.create('Proxmox.panel.InputPanel', {
45 isCreate: me.isCreate,
46 items: items,
47 });
48
49 Ext.apply(me, {
50 subject: gettext('Alias'),
51 isAdd: true,
52 items: [ ipanel ],
53 });
54
55 me.callParent();
56
57 if (!me.isCreate) {
58 me.load({
59 success: function(response, options) {
60 var values = response.result.data;
61 values.rename = values.name;
62 ipanel.setValues(values);
63 },
64 });
65 }
66 },
67 });
68
69 Ext.define('pve-fw-aliases', {
70 extend: 'Ext.data.Model',
71
72 fields: [ 'name', 'cidr', 'comment', 'digest' ],
73 idProperty: 'name',
74 });
75
76 Ext.define('PVE.FirewallAliases', {
77 extend: 'Ext.grid.Panel',
78 alias: ['widget.pveFirewallAliases'],
79
80 onlineHelp: 'pve_firewall_ip_aliases',
81
82 stateful: true,
83 stateId: 'grid-firewall-aliases',
84
85 base_url: undefined,
86
87 title: gettext('Alias'),
88
89 initComponent : function() {
90
91 var me = this;
92
93 if (!me.base_url) {
94 throw "missing base_url configuration";
95 }
96
97 var store = new Ext.data.Store({
98 model: 'pve-fw-aliases',
99 proxy: {
100 type: 'proxmox',
101 url: "/api2/json" + me.base_url,
102 },
103 sorters: {
104 property: 'name',
105 order: 'DESC',
106 },
107 });
108
109 var sm = Ext.create('Ext.selection.RowModel', {});
110
111 var reload = function() {
112 var oldrec = sm.getSelection()[0];
113 store.load(function(records, operation, success) {
114 if (oldrec) {
115 var rec = store.findRecord('name', oldrec.data.name, 0, false, true, true);
116 if (rec) {
117 sm.select(rec);
118 }
119 }
120 });
121 };
122
123 var run_editor = function() {
124 var sm = me.getSelectionModel();
125 var rec = sm.getSelection()[0];
126 if (!rec) {
127 return;
128 }
129
130 var win = Ext.create('PVE.FirewallAliasEdit', {
131 base_url: me.base_url,
132 alias_name: rec.data.name,
133 });
134
135 win.show();
136 win.on('destroy', reload);
137 };
138
139 me.editBtn = new Proxmox.button.Button({
140 text: gettext('Edit'),
141 disabled: true,
142 selModel: sm,
143 handler: run_editor,
144 });
145
146 me.addBtn = Ext.create('Ext.Button', {
147 text: gettext('Add'),
148 handler: function() {
149 var win = Ext.create('PVE.FirewallAliasEdit', {
150 base_url: me.base_url,
151 });
152 win.on('destroy', reload);
153 win.show();
154 },
155 });
156
157 me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton', {
158 selModel: sm,
159 baseurl: me.base_url + '/',
160 callback: reload,
161 });
162
163
164 Ext.apply(me, {
165 store: store,
166 tbar: [ me.addBtn, me.removeBtn, me.editBtn ],
167 selModel: sm,
168 columns: [
169 {
170 header: gettext('Name'),
171 dataIndex: 'name',
172 flex: 1,
173 },
174 {
175 header: gettext('IP/CIDR'),
176 dataIndex: 'cidr',
177 flex: 1,
178 },
179 {
180 header: gettext('Comment'),
181 dataIndex: 'comment',
182 renderer: Ext.String.htmlEncode,
183 flex: 3,
184 },
185 ],
186 listeners: {
187 itemdblclick: run_editor,
188 },
189 });
190
191 me.callParent();
192 me.on('activate', reload);
193 },
194 });