]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/Summary.js
rename manager5 to manager6
[pve-manager.git] / www / manager6 / dc / Summary.js
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 hide: rstore.stopUpdate,
73 destroy: rstore.stopUpdate
74 }
75 });
76
77 me.callParent();
78
79 rstore.on('load', function(s, records, success) {
80 if (!success) {
81 return;
82 }
83
84 var cluster_rec = rstore.getById('cluster');
85
86 if (!cluster_rec) {
87 status.update(noClusterText);
88 return;
89 }
90
91 var cluster_raw = cluster_rec.raw;
92 if (!cluster_raw) {
93 status.update(noClusterText);
94 return;
95 }
96 var text = gettext("Cluster") + ": " + cluster_raw.name + ", " +
97 gettext("Quorate") + ": " + PVE.Utils.format_boolean(cluster_raw.quorate);
98 status.update(text);
99 });
100
101 }
102 }, function() {
103
104 Ext.define('pve-dc-nodes', {
105 extend: 'Ext.data.Model',
106 fields: [ 'id', 'type', 'name', 'nodeid', 'ip', 'level', 'local', 'online'],
107 idProperty: 'id'
108 });
109
110 });
111
112 Ext.define('PVE.dc.Summary', {
113 extend: 'Ext.panel.Panel',
114
115 alias: ['widget.pveDcSummary'],
116
117 initComponent: function() {
118 var me = this;
119
120 var nodegrid = Ext.create('PVE.dc.NodeView', {
121 title: gettext('Nodes'),
122 border: false,
123 region: 'center',
124 flex: 3
125 });
126
127 Ext.apply(me, {
128 layout: 'border',
129 items: [ nodegrid ],
130 listeners: {
131 show: function() {
132 nodegrid.fireEvent('show', nodegrid);
133 },
134 hide: function() {
135 nodegrid.fireEvent('hide', nodegrid);
136 }
137 }
138 });
139
140 me.callParent();
141 }
142 });