]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/NodeView.js
refactor health icons
[pve-manager.git] / www / manager6 / dc / NodeView.js
CommitLineData
cd81cc2a
DC
1Ext.define('PVE.dc.NodeView', {
2 extend: 'Ext.grid.GridPanel',
cf8b372a 3 alias: 'widget.pveDcNodeView',
cd81cc2a 4
cf8b372a
DC
5 title: gettext('Nodes'),
6 disableSelection: true,
7 scrollable: true,
cd81cc2a 8
cf8b372a
DC
9 columns: [
10 {
11 header: gettext('Name'),
12 flex: 1,
13 sortable: true,
14 dataIndex: 'name'
15 },
16 {
17 header: 'ID',
18 width: 40,
19 sortable: true,
20 dataIndex: 'nodeid'
21 },
22 {
23 header: gettext('Online'),
24 width: 60,
25 sortable: true,
26 dataIndex: 'online',
27 renderer: function(value) {
428bc4a2
DC
28 var cls = (value)?'good':'critical';
29 return '<i class="fa ' + PVE.Utils.get_health_icon(cls) + '"><i/>';
cd81cc2a 30 }
cf8b372a
DC
31 },
32 {
33 header: gettext('Support'),
34 width: 100,
35 sortable: true,
36 dataIndex: 'level',
37 renderer: PVE.Utils.render_support_level
38 },
39 {
40 header: gettext('Server Address'),
41 width: 115,
42 sortable: true,
43 dataIndex: 'ip'
44 },
1f8ff841
DC
45 {
46 header: gettext('CPU Usage'),
47 sortable: true,
48 width: 110,
49 dataIndex: 'cpuusage',
50 tdCls: 'x-progressbar-default-cell',
51 xtype: 'widgetcolumn',
52 widget: {
53 xtype: 'pveProgressBar'
54 }
55 },
56 {
57 header: gettext('Memory Usage'),
58 width: 110,
59 sortable: true,
60 tdCls: 'x-progressbar-default-cell',
61 dataIndex: 'memoryusage',
62 xtype: 'widgetcolumn',
63 widget: {
64 xtype: 'pveProgressBar'
65 }
66 },
67 {
68 header: gettext('Uptime'),
69 sortable: true,
70 dataIndex: 'uptime',
71 align: 'right',
72 renderer: PVE.Utils.render_uptime
73 }
cf8b372a 74 ],
cd81cc2a 75
cf8b372a
DC
76 stateful: true,
77 stateId: 'grid-cluster-nodes',
78 tools: [
79 {
80 type: 'up',
81 handler: function(){
82 var me = this.up('grid');
83 var height = Math.max(me.getHeight()-50, 250);
84 me.setHeight(height);
cd81cc2a 85 }
cf8b372a
DC
86 },
87 {
88 type: 'down',
89 handler: function(){
90 var me = this.up('grid');
91 var height = me.getHeight()+50;
92 me.setHeight(height);
cd81cc2a 93 }
cf8b372a
DC
94 }
95 ]
cd81cc2a
DC
96}, function() {
97
98 Ext.define('pve-dc-nodes', {
99 extend: 'Ext.data.Model',
100 fields: [ 'id', 'type', 'name', 'nodeid', 'ip', 'level', 'local', 'online'],
101 idProperty: 'id'
102 });
103
104});
105
1f8ff841
DC
106Ext.define('PVE.widget.ProgressBar',{
107 extend: 'Ext.Progress',
108 alias: 'widget.pveProgressBar',
109
110 animate: true,
111 textTpl: [
112 '{percent}%'
113 ],
114
115 setValue: function(value){
116 var me = this;
117 me.callParent([value]);
118
119 me.removeCls(['warning', 'critical']);
120
121 if (value > 0.89) {
122 me.addCls('critical');
123 } else if (value > 0.59) {
124 me.addCls('warning');
125 }
126 }
127});