]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/sdn/StatusView.js
add sdn gui
[pve-manager.git] / www / manager6 / sdn / StatusView.js
1 Ext.define('PVE.sdn.StatusView', {
2 extend: 'Ext.grid.GridPanel',
3 alias: ['widget.pveSDNStatusView'],
4
5 sortPriority: {
6 quorum: 1,
7 master: 2,
8 lrm: 3,
9 service: 4
10 },
11
12 initComponent : function() {
13 var me = this;
14
15 if (!me.rstore) {
16 throw "no rstore given";
17 }
18
19 Proxmox.Utils.monStoreErrors(me, me.rstore);
20
21 var store = Ext.create('Proxmox.data.DiffStore', {
22 rstore: me.rstore,
23 sortAfterUpdate: true,
24 sorters: [{
25 sorterFn: function(rec1, rec2) {
26 var p1 = me.sortPriority[rec1.data.type];
27 var p2 = me.sortPriority[rec2.data.type];
28 return (p1 !== p2) ? ((p1 > p2) ? 1 : -1) : 0;
29 }
30 }],
31 filters: {
32 property: 'type',
33 value: 'sdn',
34 operator: '=='
35 }
36 });
37
38 Ext.apply(me, {
39 store: store,
40 stateful: false,
41 tbar: [
42 {
43 text: gettext('Apply'),
44 handler: function() {
45 Proxmox.Utils.API2Request({
46 url: '/cluster/sdn/',
47 method: 'PUT',
48 waitMsgTarget: me,
49 failure: function(response, opts) {
50 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
51 }
52 });
53 }
54 },
55 ],
56 viewConfig: {
57 trackOver: false
58 },
59 columns: [
60 {
61 header: gettext('sdn'),
62 width: 80,
63 dataIndex: 'sdn'
64 },
65 {
66 header: gettext('node'),
67 width: 80,
68 dataIndex: 'node'
69 },
70 {
71 header: gettext('Status'),
72 width: 80,
73 flex: 1,
74 dataIndex: 'status'
75 }
76 ]
77 });
78
79 me.callParent();
80
81 me.on('activate', me.rstore.startUpdate);
82 me.on('destroy', me.rstore.stopUpdate);
83
84 }
85 }, function() {
86
87 Ext.define('pve-sdn-status', {
88 extend: 'Ext.data.Model',
89 fields: [
90 'id', 'type', 'node', 'status', 'sid',
91 'state', 'group', 'comment',
92 'max_restart', 'max_relocate', 'type',
93 'crm_state', 'request_state'
94 ],
95 idProperty: 'id'
96 });
97
98 });