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