gui: refactor {lxc, qemu}/Summary to panel/GuestSummary

they are both similar enough to have it only once

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2019-12-04 13:41:33 +01:00 committed by Thomas Lamprecht
parent 4a8145e329
commit df0875c20e
5 changed files with 6 additions and 145 deletions

View File

@ -78,6 +78,7 @@ JSSRC= \
panel/InfoWidget.js \
panel/TemplateStatusView.js \
panel/HealthWidget.js \
panel/GuestSummary.js \
window/LoginWindow.js \
window/Wizard.js \
window/NotesEdit.js \
@ -127,7 +128,6 @@ JSSRC= \
window/BulkAction.js \
window/Clone.js \
qemu/Monitor.js \
qemu/Summary.js \
qemu/OSTypeEdit.js \
qemu/OSDefaults.js \
qemu/ProcessorEdit.js \
@ -160,7 +160,6 @@ JSSRC= \
qemu/IPConfigEdit.js \
qemu/SystemEdit.js \
qemu/AudioEdit.js \
lxc/Summary.js \
lxc/Network.js \
lxc/Resources.js \
lxc/FeaturesEdit.js \

View File

@ -190,7 +190,7 @@ Ext.define('PVE.lxc.Config', {
items: [
{
title: gettext('Summary'),
xtype: 'pveLxcSummary',
xtype: 'pveGuestSummary',
iconCls: 'fa fa-book',
itemId: 'summary'
}

View File

@ -1,139 +0,0 @@
Ext.define('PVE.lxc.Summary', {
extend: 'Ext.panel.Panel',
alias: 'widget.pveLxcSummary',
scrollable: true,
bodyPadding: 5,
initComponent: function() {
var me = this;
var nodename = me.pveSelNode.data.node;
if (!nodename) {
throw "no node name specified";
}
var vmid = me.pveSelNode.data.vmid;
if (!vmid) {
throw "no VM ID specified";
}
if (!me.workspace) {
throw "no workspace specified";
}
if (!me.statusStore) {
throw "no status storage specified";
}
var template = !!me.pveSelNode.data.template;
var rstore = me.statusStore;
var width = template ? 1 : 0.5;
var items = [
{
xtype: template ? 'pveTemplateStatusView' : 'pveGuestStatusView',
responsiveConfig: {
'width < 1900': {
columnWidth: width
},
'width >= 1900': {
columnWidth: width / 2
}
},
itemId: 'gueststatus',
pveSelNode: me.pveSelNode,
rstore: rstore
},
{
xtype: 'pveNotesView',
maxHeight: 320,
itemId: 'notesview',
pveSelNode: me.pveSelNode,
responsiveConfig: {
'width < 1900': {
columnWidth: width
},
'width >= 1900': {
columnWidth: width / 2
}
}
}
];
var rrdstore;
if (!template) {
rrdstore = Ext.create('Proxmox.data.RRDStore', {
rrdurl: "/api2/json/nodes/" + nodename + "/lxc/" + vmid + "/rrddata",
model: 'pve-rrd-guest'
});
items.push(
{
xtype: 'proxmoxRRDChart',
title: gettext('CPU usage'),
pveSelNode: me.pveSelNode,
fields: ['cpu'],
fieldTitles: [gettext('CPU usage')],
store: rrdstore
},
{
xtype: 'proxmoxRRDChart',
title: gettext('Memory usage'),
pveSelNode: me.pveSelNode,
fields: ['maxmem', 'mem'],
fieldTitles: [gettext('Total'), gettext('RAM usage')],
store: rrdstore
},
{
xtype: 'proxmoxRRDChart',
title: gettext('Network traffic'),
pveSelNode: me.pveSelNode,
fields: ['netin','netout'],
store: rrdstore
},
{
xtype: 'proxmoxRRDChart',
title: gettext('Disk IO'),
pveSelNode: me.pveSelNode,
fields: ['diskread','diskwrite'],
store: rrdstore
}
);
}
Ext.apply(me, {
tbar: [ '->', { xtype: 'proxmoxRRDTypeSelector' } ],
items: [
{
xtype: 'container',
layout: {
type: 'column'
},
defaults: {
minHeight: 320,
padding: 5,
plugins: 'responsive',
responsiveConfig: {
'width < 1900': {
columnWidth: 1
},
'width >= 1900': {
columnWidth: 0.5
}
}
},
items: items
}
]
});
me.callParent();
if (!template) {
rrdstore.startUpdate();
me.on('destroy', rrdstore.stopUpdate);
}
}
});

View File

@ -1,6 +1,6 @@
Ext.define('PVE.qemu.Summary', {
extend: 'Ext.panel.Panel',
alias: 'widget.pveQemuSummary',
xtype: 'pveGuestSummary',
scrollable: true,
bodyPadding: 5,
@ -26,6 +26,7 @@ Ext.define('PVE.qemu.Summary', {
throw "no status storage specified";
}
var type = me.pveSelNode.data.type;
var template = !!me.pveSelNode.data.template;
var rstore = me.statusStore;
@ -65,7 +66,7 @@ Ext.define('PVE.qemu.Summary', {
if (!template) {
rrdstore = Ext.create('Proxmox.data.RRDStore', {
rrdurl: "/api2/json/nodes/" + nodename + "/qemu/" + vmid + "/rrddata",
rrdurl: `/api2/json/nodes/${nodename}/${type}/${vmid}/rrddata`,
model: 'pve-rrd-guest'
});

View File

@ -223,7 +223,7 @@ Ext.define('PVE.qemu.Config', {
items: [
{
title: gettext('Summary'),
xtype: 'pveQemuSummary',
xtype: 'pveGuestSummary',
iconCls: 'fa fa-book',
itemId: 'summary'
}