]>
Commit | Line | Data |
---|---|---|
cd81cc2a DC |
1 | Ext.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 |
106 | Ext.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 | }); |