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