]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/grid/FirewallAliases.js
Indentation fix
[pve-manager.git] / www / manager6 / grid / FirewallAliases.js
CommitLineData
53ebd289
DM
1Ext.define('PVE.FirewallAliasEdit', {
2 extend: 'PVE.window.Edit',
3
4 base_url: undefined,
5
6 alias_name: undefined,
7
8 initComponent : function() {
9 /*jslint confusion: true */
10 var me = this;
11
12 me.create = (me.alias_name === undefined);
13
14 if (me.create) {
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.create ? '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 create: me.create,
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.create) {
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
67Ext.define('PVE.FirewallAliases', {
68 extend: 'Ext.grid.Panel',
69 alias: ['widget.pveFirewallAliases'],
70
9a811965
DC
71 onlineHelp: 'pve_firewall_ip_aliases',
72
123e1c80
DC
73 stateful: true,
74 stateId: 'grid-firewall-aliases',
75
53ebd289
DM
76 base_url: undefined,
77
78 title: gettext('Alias'),
79
80 initComponent : function() {
81 /*jslint confusion: true */
82
83 var me = this;
84
85 if (!me.base_url) {
86 throw "missing base_url configuration";
87 }
88
89 var store = new Ext.data.Store({
90 fields: [ 'name', 'cidr', 'comment', 'digest' ],
91 proxy: {
92 type: 'pve',
93 url: "/api2/json" + me.base_url
94 },
95 idProperty: 'name',
96 sorters: {
97 property: 'name',
98 order: 'DESC'
99 }
100 });
101
102 var sm = Ext.create('Ext.selection.RowModel', {});
103
104 var reload = function() {
105 var oldrec = sm.getSelection()[0];
106 store.load(function(records, operation, success) {
107 if (oldrec) {
108 var rec = store.findRecord('name', oldrec.data.name);
109 if (rec) {
110 sm.select(rec);
111 }
112 }
113 });
114 };
115
116 var run_editor = function() {
117 var sm = me.getSelectionModel();
118 var rec = sm.getSelection()[0];
119 if (!rec) {
120 return;
121 }
122
123 var win = Ext.create('PVE.FirewallAliasEdit', {
124 base_url: me.base_url,
125 alias_name: rec.data.name
126 });
127
128 win.show();
129 win.on('destroy', reload);
130 };
131
132 me.editBtn = new PVE.button.Button({
133 text: gettext('Edit'),
134 disabled: true,
135 selModel: sm,
136 handler: run_editor
137 });
138
139 me.addBtn = Ext.create('Ext.Button', {
140 text: gettext('Add'),
141 handler: function() {
142 var win = Ext.create('PVE.FirewallAliasEdit', {
143 base_url: me.base_url
144 });
145 win.on('destroy', reload);
146 win.show();
147 }
148 });
149
150 me.removeBtn = new PVE.button.Button({
151 text: gettext('Remove'),
152 selModel: sm,
153 disabled: true,
154 handler: function() {
155 var rec = sm.getSelection()[0];
156 if (!rec) {
157 return;
158 }
159 PVE.Utils.API2Request({
160 url: me.base_url + '/' + rec.data.name,
161 method: 'DELETE',
162 waitMsgTarget: me,
163 failure: function(response, options) {
164 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
165 },
166 callback: reload
167 });
168 }
169 });
170
171
b6f01f84 172 Ext.apply(me, {
53ebd289
DM
173 store: store,
174 tbar: [ me.addBtn, me.removeBtn, me.editBtn ],
175 selModel: sm,
176 columns: [
177 { header: gettext('Name'), dataIndex: 'name', width: 100 },
178 { header: gettext('IP/CIDR'), dataIndex: 'cidr', width: 100 },
2eb0767b 179 { header: gettext('Comment'), dataIndex: 'comment', renderer: Ext.String.htmlEncode, flex: 1 }
53ebd289
DM
180 ],
181 listeners: {
182 itemdblclick: run_editor
183 }
184 });
185
186 me.callParent();
187
188 me.on('show', reload);
189 }
190});