]> git.proxmox.com Git - pmg-gui.git/blob - js/MyNetworks.js
tree wide: eslint --fix
[pmg-gui.git] / js / MyNetworks.js
1 /*global Proxmox*/
2 Ext.define('pmg-mynetworks', {
3 extend: 'Ext.data.Model',
4 fields: ['cidr', 'comment'],
5 proxy: {
6 type: 'proxmox',
7 url: "/api2/json/config/mynetworks",
8 },
9 idProperty: 'cidr',
10 });
11
12 Ext.define('PMG.MyNetworks', {
13 extend: 'Ext.grid.GridPanel',
14 alias: ['widget.pmgMyNetworks'],
15
16 initComponent: function() {
17 var me = this;
18
19 var store = new Ext.data.Store({
20 model: 'pmg-mynetworks',
21 sorters: {
22 property: 'cidr',
23 order: 'DESC',
24 },
25 });
26
27 var reload = function() {
28 store.load();
29 };
30
31 me.selModel = Ext.create('Ext.selection.RowModel', {});
32
33 var remove_btn = Ext.createWidget('proxmoxStdRemoveButton', {
34 selModel: me.selModel,
35 baseurl: '/config/mynetworks',
36 callback: reload,
37 waitMsgTarget: me,
38 });
39
40 var run_editor = function() {
41 var rec = me.selModel.getSelection()[0];
42 if (!rec) {
43 return;
44 }
45
46 var config = {
47 url: "/api2/extjs/config/mynetworks/" + rec.data.cidr,
48 onlineHelp: 'pmgconfig_mailproxy_networks',
49 method: 'PUT',
50 subject: gettext("Trusted Network"),
51 items: [
52 {
53 xtype: 'displayfield',
54 name: 'cidr',
55 fieldLabel: 'CIDR',
56 },
57 {
58 xtype: 'textfield',
59 name: 'comment',
60 fieldLabel: gettext("Comment"),
61 },
62 ],
63 };
64
65 var win = Ext.createWidget('proxmoxWindowEdit', config);
66
67 win.load();
68 win.on('destroy', reload);
69 win.show();
70 };
71
72 var tbar = [
73 {
74 xtype: 'proxmoxButton',
75 text: gettext('Edit'),
76 disabled: true,
77 selModel: me.selModel,
78 handler: run_editor,
79 },
80 {
81 text: gettext('Create'),
82 handler: function() {
83 /*jslint confusion: true*/
84 var config = {
85 method: 'POST',
86 url: "/api2/extjs/config/mynetworks",
87 onlineHelp: 'pmgconfig_mailproxy_networks',
88 isCreate: true,
89 subject: gettext("Trusted Network"),
90 items: [
91 {
92 xtype: 'proxmoxtextfield',
93 name: 'cidr',
94 fieldLabel: 'CIDR',
95 },
96 {
97 xtype: 'proxmoxtextfield',
98 name: 'comment',
99 fieldLabel: gettext("Comment"),
100 },
101 ],
102 };
103 /*jslint confusion: false*/
104
105 var win = Ext.createWidget('proxmoxWindowEdit', config);
106
107 win.on('destroy', reload);
108 win.show();
109 },
110 },
111 remove_btn,
112 ];
113
114 Proxmox.Utils.monStoreErrors(me, store, true);
115
116 Ext.apply(me, {
117 store: store,
118 tbar: tbar,
119 run_editor: run_editor,
120 viewConfig: {
121 trackOver: false,
122 },
123 columns: [
124 {
125 header: gettext('Trusted Network'),
126 width: 200,
127 sortable: true,
128 dataIndex: 'cidr',
129 },
130 {
131 header: gettext('Comment'),
132 sortable: false,
133 renderer: Ext.String.htmlEncode,
134 dataIndex: 'comment',
135 flex: 1,
136 },
137 ],
138 listeners: {
139 itemdblclick: run_editor,
140 activate: reload,
141 },
142 });
143
144 me.callParent();
145 },
146 });