]>
Commit | Line | Data |
---|---|---|
9233148b AD |
1 | Ext.define('PVE.sdn.VnetView', { |
2 | extend: 'Ext.grid.GridPanel', | |
3 | ||
4 | alias: ['widget.pveSDNVnetView'], | |
5 | ||
6 | stateful: true, | |
7 | stateId: 'grid-sdn-vnet', | |
8 | ||
9 | initComponent : function() { | |
10 | var me = this; | |
11 | ||
12 | var store = new Ext.data.Store({ | |
13 | model: 'pve-sdn-vnet', | |
14 | proxy: { | |
15 | type: 'proxmox', | |
16 | url: "/api2/json/cluster/sdn/vnets" | |
17 | }, | |
18 | sorters: { | |
19 | property: 'vnet', | |
20 | order: 'DESC' | |
21 | } | |
22 | }); | |
23 | ||
24 | var reload = function() { | |
25 | store.load(); | |
26 | }; | |
27 | ||
28 | var sm = Ext.create('Ext.selection.RowModel', {}); | |
29 | ||
30 | var run_editor = function() { | |
31 | var rec = sm.getSelection()[0]; | |
32 | ||
33 | var win = Ext.create('PVE.sdn.VnetEdit',{ | |
34 | vnet: rec.data.vnet | |
35 | }); | |
36 | win.on('destroy', reload); | |
37 | win.show(); | |
38 | }; | |
39 | ||
40 | var edit_btn = new Proxmox.button.Button({ | |
41 | text: gettext('Edit'), | |
42 | disabled: true, | |
43 | selModel: sm, | |
44 | handler: run_editor | |
45 | }); | |
46 | ||
47 | var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', { | |
48 | selModel: sm, | |
49 | baseurl: '/cluster/sdn/vnets/', | |
50 | callback: reload | |
51 | }); | |
52 | ||
53 | Ext.apply(me, { | |
54 | store: store, | |
55 | reloadStore: reload, | |
56 | selModel: sm, | |
57 | viewConfig: { | |
58 | trackOver: false | |
59 | }, | |
60 | tbar: [ | |
61 | { | |
62 | text: gettext('Create'), | |
63 | handler: function() { | |
64 | var win = Ext.create('PVE.sdn.VnetEdit',{ | |
65 | type: 'vnet' | |
66 | }); | |
67 | win.on('destroy', reload); | |
68 | win.show(); | |
69 | } | |
70 | }, | |
71 | remove_btn, | |
72 | edit_btn, | |
73 | { | |
74 | text: gettext('Revert'), | |
75 | handler: function() { | |
76 | Proxmox.Utils.API2Request({ | |
77 | url: '/cluster/sdn/vnets/', | |
78 | method: 'DELETE', | |
79 | waitMsgTarget: me, | |
80 | callback: function() { | |
81 | reload(); | |
82 | }, | |
83 | failure: function(response, opts) { | |
84 | Ext.Msg.alert(gettext('Error'), response.htmlStatus); | |
85 | } | |
86 | }); | |
87 | } | |
88 | }, | |
89 | ||
90 | ], | |
91 | columns: [ | |
92 | { | |
93 | header: 'ID', | |
94 | flex: 2, | |
95 | sortable: true, | |
96 | dataIndex: 'vnet' | |
97 | }, | |
98 | { | |
99 | header: gettext('alias'), | |
100 | flex: 1, | |
101 | sortable: true, | |
102 | dataIndex: 'alias', | |
103 | }, | |
104 | { | |
105 | header: gettext('zone'), | |
106 | flex: 1, | |
107 | sortable: true, | |
108 | dataIndex: 'zone', | |
109 | }, | |
110 | { | |
111 | header: gettext('tag'), | |
112 | flex: 1, | |
113 | sortable: true, | |
114 | dataIndex: 'tag', | |
115 | }, | |
116 | { | |
117 | header: gettext('ipv4'), | |
118 | flex: 1, | |
119 | sortable: true, | |
120 | dataIndex: 'ipv4', | |
121 | }, | |
122 | { | |
123 | header: gettext('ipv6'), | |
124 | flex: 1, | |
125 | sortable: true, | |
126 | dataIndex: 'ipv6', | |
127 | }, | |
128 | { | |
129 | header: gettext('mac'), | |
130 | flex: 1, | |
131 | sortable: true, | |
132 | dataIndex: 'mac', | |
133 | }, | |
134 | { | |
135 | header: gettext('mtu'), | |
136 | flex: 1, | |
137 | sortable: true, | |
138 | dataIndex: 'mtu', | |
139 | }, | |
140 | ], | |
141 | listeners: { | |
142 | activate: reload, | |
143 | itemdblclick: run_editor | |
144 | } | |
145 | }); | |
146 | ||
147 | me.callParent(); | |
148 | } | |
149 | }, function() { | |
150 | ||
151 | Ext.define('pve-sdn-vnet', { | |
152 | extend: 'Ext.data.Model', | |
153 | fields: [ | |
154 | 'type' | |
155 | ], | |
156 | idProperty: 'vnet' | |
157 | }); | |
158 | ||
159 | }); |