]>
Commit | Line | Data |
---|---|---|
cd81cc2a DC |
1 | Ext.define('PVE.dc.NodeView', { |
2 | extend: 'Ext.grid.GridPanel', | |
3 | ||
4 | alias: ['widget.pveDcNodeView'], | |
5 | ||
6 | initComponent : function() { | |
7 | var me = this; | |
8 | ||
9 | var rstore = Ext.create('PVE.data.UpdateStore', { | |
10 | interval: 3000, | |
11 | storeid: 'pve-dc-nodes', | |
12 | model: 'pve-dc-nodes', | |
13 | proxy: { | |
14 | type: 'pve', | |
15 | url: "/api2/json/cluster/status" | |
16 | }, | |
17 | filters: { | |
18 | property: 'type', | |
19 | value : 'node' | |
20 | } | |
21 | }); | |
22 | ||
23 | var store = Ext.create('PVE.data.DiffStore', { rstore: rstore }); | |
24 | ||
25 | var noClusterText = gettext("Standalone node - no cluster defined"); | |
26 | var status = Ext.create('Ext.Component', { | |
27 | padding: 2, | |
28 | html: ' ', | |
29 | dock: 'bottom' | |
30 | }); | |
31 | ||
32 | Ext.apply(me, { | |
33 | store: store, | |
34 | stateful: false, | |
35 | bbar: [ status ], | |
36 | columns: [ | |
37 | { | |
38 | header: gettext('Name'), | |
39 | width: 200, | |
40 | sortable: true, | |
41 | dataIndex: 'name' | |
42 | }, | |
43 | { | |
44 | header: 'ID', | |
45 | width: 50, | |
46 | sortable: true, | |
47 | dataIndex: 'nodeid' | |
48 | }, | |
49 | { | |
50 | header: gettext('Online'), | |
51 | width: 100, | |
52 | sortable: true, | |
53 | dataIndex: 'online', | |
54 | renderer: PVE.Utils.format_boolean | |
55 | }, | |
56 | { | |
57 | header: gettext('Support'), | |
58 | width: 100, | |
59 | sortable: true, | |
60 | dataIndex: 'level', | |
61 | renderer: PVE.Utils.render_support_level | |
62 | }, | |
63 | { | |
64 | header: gettext('Server Address'), | |
65 | flex: 1, | |
66 | sortable: true, | |
67 | dataIndex: 'ip' | |
68 | } | |
69 | ], | |
70 | listeners: { | |
71 | show: rstore.startUpdate, | |
72 | destroy: rstore.stopUpdate | |
73 | } | |
74 | }); | |
75 | ||
76 | me.callParent(); | |
77 | ||
78 | me.mon(rstore, 'load', function(s, records, success) { | |
79 | if (!success) { | |
80 | return; | |
81 | } | |
82 | ||
83 | var cluster_rec = rstore.getById('cluster'); | |
84 | ||
85 | if (!cluster_rec) { | |
86 | status.update(noClusterText); | |
87 | return; | |
88 | } | |
89 | ||
90 | var cluster_data = cluster_rec.getData(); | |
91 | if (!cluster_data) { | |
92 | status.update(noClusterText); | |
93 | return; | |
94 | } | |
95 | var text = gettext("Cluster") + ": " + cluster_data.name + ", " + | |
96 | gettext("Quorate") + ": " + PVE.Utils.format_boolean(cluster_data.quorate); | |
97 | status.update(text); | |
98 | }); | |
99 | ||
100 | } | |
101 | }, function() { | |
102 | ||
103 | Ext.define('pve-dc-nodes', { | |
104 | extend: 'Ext.data.Model', | |
105 | fields: [ 'id', 'type', 'name', 'nodeid', 'ip', 'level', 'local', 'online'], | |
106 | idProperty: 'id' | |
107 | }); | |
108 | ||
109 | }); | |
110 |