]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/NodeView.js
move dcNodeView into its own file
[pve-manager.git] / www / manager6 / dc / NodeView.js
CommitLineData
cd81cc2a
DC
1Ext.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