]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/Summary.js
GUI: move status into column layout
[pve-manager.git] / www / manager6 / qemu / Summary.js
1 Ext.define('PVE.qemu.Summary', {
2 extend: 'Ext.panel.Panel',
3 alias: 'widget.pveQemuSummary',
4
5 tbar: [ '->', { xtype: 'pveRRDTypeSelector' } ],
6 scrollable: true,
7 bodyPadding: 10,
8
9 initComponent: function() {
10 var me = this;
11
12 var nodename = me.pveSelNode.data.node;
13 if (!nodename) {
14 throw "no node name specified";
15 }
16
17 var vmid = me.pveSelNode.data.vmid;
18 if (!vmid) {
19 throw "no VM ID specified";
20 }
21
22 if (!me.workspace) {
23 throw "no workspace specified";
24 }
25
26 if (!me.statusStore) {
27 throw "no status storage specified";
28 }
29
30 var rstore = me.statusStore;
31
32 var statusview = Ext.create('PVE.qemu.StatusView', {
33 title: gettext('Status'),
34 pveSelNode: me.pveSelNode,
35 width: 400,
36 rstore: rstore
37 });
38
39 var notesview = Ext.create('PVE.panel.NotesView', {
40 pveSelNode: me.pveSelNode,
41 flex: 1
42 });
43
44 var rrdstore = Ext.create('PVE.data.RRDStore', {
45 rrdurl: "/api2/json/nodes/" + nodename + "/qemu/" + vmid + "/rrddata"
46 });
47
48 Ext.apply(me, {
49 plugins: {
50 ptype: 'lazyitems',
51 items: [
52 {
53 xtype: 'container',
54 layout: {
55 type: 'column'
56 },
57 defaults: {
58 padding: '0 10 10 0'
59 },
60 items: [
61 {
62 width: 800,
63 height: 300,
64 layout: {
65 type: 'hbox',
66 align: 'stretch'
67 },
68 border: false,
69 items: [ statusview, notesview ]
70 },
71 {
72 xtype: 'pveRRDChart',
73 title: gettext('CPU usage'),
74 pveSelNode: me.pveSelNode,
75 fields: ['cpu'],
76 fieldTitles: [gettext('CPU usage')],
77 store: rrdstore
78 },
79 {
80 xtype: 'pveRRDChart',
81 title: gettext('Memory usage'),
82 pveSelNode: me.pveSelNode,
83 fields: ['maxmem', 'mem'],
84 fieldTitles: [gettext('Total'), gettext('RAM usage')],
85 store: rrdstore
86 },
87 {
88 xtype: 'pveRRDChart',
89 title: gettext('Network traffic'),
90 pveSelNode: me.pveSelNode,
91 fields: ['netin','netout'],
92 store: rrdstore
93 },
94 {
95 xtype: 'pveRRDChart',
96 title: gettext('Disk IO'),
97 pveSelNode: me.pveSelNode,
98 fields: ['diskread','diskwrite'],
99 store: rrdstore
100 }
101 ]
102 }
103 ]
104 },
105 listeners: {
106 activate: function() {notesview.load(); rrdstore.startUpdate();},
107 hide: rrdstore.stopUpdate,
108 destroy: rrdstore.stopUpdate
109 }
110 });
111
112 me.callParent();
113 }
114 });