]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/sdn/VnetView.js
add sdn gui
[pve-manager.git] / www / manager6 / sdn / VnetView.js
CommitLineData
9233148b
AD
1Ext.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});