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