]> git.proxmox.com Git - pve-manager.git/blob - www/manager/node/Summary.js
disable animation of charts on load
[pve-manager.git] / www / manager / node / Summary.js
1 Ext.define('PVE.node.Summary', {
2 extend: 'Ext.panel.Panel',
3 alias: 'widget.pveNodeSummary',
4
5 showVersions: function() {
6 var me = this;
7
8 // Note: we use simply text/html here, because ExtJS grid has problems
9 // with cut&paste
10
11 var nodename = me.pveSelNode.data.node;
12
13 var view = Ext.createWidget('component', {
14 autoScroll: true,
15 style: {
16 'background-color': 'white',
17 'white-space': 'pre',
18 'font-family': 'monospace',
19 padding: '5px'
20 }
21 });
22
23 var win = Ext.create('Ext.window.Window', {
24 title: gettext('Package versions'),
25 width: 600,
26 height: 400,
27 layout: 'fit',
28 modal: true,
29 items: [ view ]
30 });
31
32 PVE.Utils.API2Request({
33 waitMsgTarget: me,
34 url: "/nodes/" + nodename + "/apt/versions",
35 method: 'GET',
36 failure: function(response, opts) {
37 win.close();
38 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
39 },
40 success: function(response, opts) {
41 win.show();
42 var text = '';
43
44 Ext.Array.each(response.result.data, function(rec) {
45 var version = "not correctly installed";
46 var pkg = rec.Package;
47 if (rec.OldVersion && rec.CurrentState === 'Installed') {
48 version = rec.OldVersion;
49 }
50 if (rec.RunningKernel) {
51 text += pkg + ': ' + version + ' (running kernel: ' +
52 rec.RunningKernel + ')\n';
53 } else if (rec.ManagerVersion) {
54 text += pkg + ': ' + version + ' (running version: ' +
55 rec.ManagerVersion + ')\n';
56 } else {
57 text += pkg + ': ' + version + '\n';
58 }
59 });
60
61 view.update(Ext.htmlEncode(text));
62 }
63 });
64 },
65
66 initComponent: function() {
67 var me = this;
68
69 var nodename = me.pveSelNode.data.node;
70 if (!nodename) {
71 throw "no node name specified";
72 }
73
74 if (!me.statusStore) {
75 throw "no status storage specified";
76 }
77
78 var rstore = me.statusStore;
79
80 var statusview = Ext.create('PVE.node.StatusView', {
81 title: gettext('Status'),
82 pveSelNode: me.pveSelNode,
83 style: { 'padding-top': '0px' },
84 rstore: rstore
85 });
86
87 var rrdurl = "/api2/png/nodes/" + nodename + "/rrd";
88
89 var version_btn = new Ext.Button({
90 text: gettext('Package versions'),
91 handler: function(){
92 PVE.Utils.checked_command(function() { me.showVersions(); });
93 }
94 });
95
96 Ext.apply(me, {
97 autoScroll: true,
98 bodyStyle: 'padding:10px',
99 defaults: {
100 width: 800,
101 style: { 'padding-top': '10px' }
102 },
103 tbar: [version_btn, '->', { xtype: 'pveRRDTypeSelector' } ],
104 items: [
105 statusview,
106 {
107 xtype: 'pveRRDView',
108 title: gettext('CPU usage'),
109 datasource: 'cpu,iowait',
110 rrdurl: rrdurl
111 },
112 {
113 xtype: 'pveRRDView',
114 title: gettext('Server load'),
115 datasource: 'loadavg',
116 rrdurl: rrdurl
117 },
118 {
119 xtype: 'pveRRDView',
120 title: gettext('Memory usage'),
121 datasource: 'memtotal,memused',
122 rrdurl: rrdurl
123 },
124 {
125 xtype: 'pveRRDView',
126 title: gettext('Network traffic'),
127 datasource: 'netin,netout',
128 rrdurl: rrdurl
129 }
130 ],
131 listeners: {
132 show: rstore.startUpdate,
133 hide: rstore.stopUpdate,
134 destroy: rstore.stopUpdate
135 }
136 });
137
138 me.callParent();
139 }
140 });