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