[pve-devel] [PATCH manager 6/7] improve node/lxc/qemu summary pages
Thomas Lamprecht
t.lamprecht at proxmox.com
Wed Feb 21 17:27:36 CET 2018
On 2/20/18 1:41 PM, Dominik Csapak wrote:
> let them use a one/two column layout depending on browser width
> optimize stylings/padding values
> get rid of the (now long) unecessary lazyitems plugin
> (this was necessary for performance when we still used tabpanels instead
> of our own configpanel with treelist)
>
This one doesn't applies here (note: I have the you mention in the cover
letter infoWidget series applied).
[...]
patching file www/manager6/qemu/Summary.js
Hunk #2 FAILED at 29.
Did not looked which exact line poses a problem...
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
> www/manager6/lxc/Summary.js | 205 ++++++++++++++++++++----------------------
> www/manager6/node/Summary.js | 103 +++++++++++----------
> www/manager6/qemu/Summary.js | 210 ++++++++++++++++++++-----------------------
> 3 files changed, 248 insertions(+), 270 deletions(-)
>
> diff --git a/www/manager6/lxc/Summary.js b/www/manager6/lxc/Summary.js
> index ad1a4ec4..47fb5b29 100644
> --- a/www/manager6/lxc/Summary.js
> +++ b/www/manager6/lxc/Summary.js
> @@ -3,7 +3,7 @@ Ext.define('PVE.lxc.Summary', {
> alias: 'widget.pveLxcSummary',
>
> scrollable: true,
> - bodyPadding: '10 0 0 0',
> + bodyPadding: 5,
>
> initComponent: function() {
> var me = this;
> @@ -29,123 +29,112 @@ Ext.define('PVE.lxc.Summary', {
> var template = !!me.pveSelNode.data.template;
> var rstore = me.statusStore;
>
> - var notesview = Ext.create('PVE.panel.NotesView', {
> - pveSelNode: me.pveSelNode,
> - padding: '0 0 0 10',
> - flex: 1
> - });
> -
> - if (template) {
> - Ext.apply(me, {
> - plugins: {
> - ptype: 'lazyitems',
> - items: [{
> - xtype: 'container',
> - layout: {
> - type: 'column'
> - },
> - items: [{
> - width: 800,
> - layout: {
> - type: 'vbox',
> - align: 'stretch'
> - },
> - border: false,
> - items: [
> - {
> - xtype: 'pveTemplateStatusView',
> - pveSelNode: me.pveSelNode,
> - padding: '0 0 10 10',
> - rstore: rstore
> - },
> - notesview
> - ]
> - }]
> - }]
> + var width = template ? 1 : 0.5;
> + var items = [
> + {
> + xtype: template ? 'pveTemplateStatusView' : 'pveGuestStatusView',
> + responsiveConfig: {
> + 'width < 1900': {
> + columnWidth: width
> + },
> + 'width >= 1900': {
> + columnWidth: width / 2
> + }
> },
> - listeners: {
> - activate: function() { notesview.load(); }
> + 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
> + }
> }
> - });
> - } else {
> - var rrdstore = Ext.create('Proxmox.data.RRDStore', {
> + }
> + ];
> +
> + var rrdstore;
> + if (!template) {
> +
> + rrdstore = Ext.create('Proxmox.data.RRDStore', {
> rrdurl: "/api2/json/nodes/" + nodename + "/lxc/" + vmid + "/rrddata",
> model: 'pve-rrd-guest'
> });
>
> - Ext.apply(me, {
> - tbar: [ '->' , { xtype: 'proxmoxRRDTypeSelector' } ],
> - plugins: {
> - ptype: 'lazyitems',
> - items: [
> - {
> - xtype: 'container',
> - layout: {
> - type: 'column'
> - },
> - defaults: {
> - padding: '0 0 10 10'
> - },
> - items: [
> - {
> - width: 770,
> - height: 300,
> - layout: {
> - type: 'hbox',
> - align: 'stretch'
> - },
> - border: false,
> - items: [
> - {
> - xtype: 'pveGuestStatusView',
> - pveSelNode: me.pveSelNode,
> - width: 400,
> - rstore: rstore
> - },
> - notesview
> - ]
> - },
> - {
> - 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
> - }
> - ]
> - }
> - ]
> + 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
> },
> - listeners: {
> - activate: function() { notesview.load(); rrdstore.startUpdate(); },
> - destroy: rrdstore.stopUpdate
> + {
> + 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();
> + me.down('#notesview').load();
> + if (!template) {
> + rrdstore.startUpdate();
> + me.on('destroy', rrdstore.stopUpdate);
> + }
> }
> });
> diff --git a/www/manager6/node/Summary.js b/www/manager6/node/Summary.js
> index 3392c8ad..eaa3e6ac 100644
> --- a/www/manager6/node/Summary.js
> +++ b/www/manager6/node/Summary.js
> @@ -3,7 +3,7 @@ Ext.define('PVE.node.Summary', {
> alias: 'widget.pveNodeSummary',
>
> scrollable: true,
> - bodyPadding: '10 0 0 0',
> + bodyPadding: 5,
>
> showVersions: function() {
> var me = this;
> @@ -15,11 +15,11 @@ Ext.define('PVE.node.Summary', {
>
> var view = Ext.createWidget('component', {
> autoScroll: true,
> + padding: 5,
> style: {
> 'background-color': 'white',
> 'white-space': 'pre',
> - 'font-family': 'monospace',
> - padding: '5px'
> + 'font-family': 'monospace'
> }
> });
>
> @@ -94,53 +94,60 @@ Ext.define('PVE.node.Summary', {
>
> Ext.apply(me, {
> tbar: [version_btn, '->', { xtype: 'proxmoxRRDTypeSelector' } ],
> - plugins: {
> - ptype: 'lazyitems',
> - items: [
> - {
> - xtype: 'container',
> - layout: 'column',
> - defaults: {
> - padding: '0 0 10 10'
> - },
> - items: [
> - {
> - xtype: 'pveNodeStatus',
> - rstore: rstore,
> - width: 770,
> - pveSelNode: me.pveSelNode
> - },
> - {
> - xtype: 'proxmoxRRDChart',
> - title: gettext('CPU usage'),
> - fields: ['cpu','iowait'],
> - fieldTitles: [gettext('CPU usage'), gettext('IO delay')],
> - store: rrdstore
> - },
> - {
> - xtype: 'proxmoxRRDChart',
> - title: gettext('Server load'),
> - fields: ['loadavg'],
> - fieldTitles: [gettext('Load average')],
> - store: rrdstore
> + items: [
> + {
> + xtype: 'container',
> + layout: 'column',
> + defaults: {
> + minHeight: 320,
> + padding: 5,
> + plugins: 'responsive',
> + responsiveConfig: {
> + 'width < 1900': {
> + columnWidth: 1
> },
> - {
> - xtype: 'proxmoxRRDChart',
> - title: gettext('Memory usage'),
> - fields: ['memtotal','memused'],
> - fieldTitles: [gettext('Total'), gettext('RAM usage')],
> - store: rrdstore
> - },
> - {
> - xtype: 'proxmoxRRDChart',
> - title: gettext('Network traffic'),
> - fields: ['netin','netout'],
> - store: rrdstore
> + 'width >= 1900': {
> + columnWidth: 0.5
> }
> - ]
> - }
> - ]
> - },
> + }
> + },
> + items: [
> + {
> + xtype: 'pveNodeStatus',
> + rstore: rstore,
> + width: 770,
> + pveSelNode: me.pveSelNode
> + },
> + {
> + xtype: 'proxmoxRRDChart',
> + title: gettext('CPU usage'),
> + fields: ['cpu','iowait'],
> + fieldTitles: [gettext('CPU usage'), gettext('IO delay')],
> + store: rrdstore
> + },
> + {
> + xtype: 'proxmoxRRDChart',
> + title: gettext('Server load'),
> + fields: ['loadavg'],
> + fieldTitles: [gettext('Load average')],
> + store: rrdstore
> + },
> + {
> + xtype: 'proxmoxRRDChart',
> + title: gettext('Memory usage'),
> + fields: ['memtotal','memused'],
> + fieldTitles: [gettext('Total'), gettext('RAM usage')],
> + store: rrdstore
> + },
> + {
> + xtype: 'proxmoxRRDChart',
> + title: gettext('Network traffic'),
> + fields: ['netin','netout'],
> + store: rrdstore
> + }
> + ]
> + }
> + ],
> listeners: {
> activate: function() { rstore.startUpdate(); rrdstore.startUpdate(); },
> destroy: function() { rstore.stopUpdate(); rrdstore.stopUpdate(); }
> diff --git a/www/manager6/qemu/Summary.js b/www/manager6/qemu/Summary.js
> index 18977bf4..65787461 100644
> --- a/www/manager6/qemu/Summary.js
> +++ b/www/manager6/qemu/Summary.js
> @@ -3,7 +3,7 @@ Ext.define('PVE.qemu.Summary', {
> alias: 'widget.pveQemuSummary',
>
> scrollable: true,
> - bodyPadding: '10 0 0 0',
> + bodyPadding: 5,
>
> initComponent: function() {
> var me = this;
> @@ -29,130 +29,112 @@ Ext.define('PVE.qemu.Summary', {
> var template = !!me.pveSelNode.data.template;
> var rstore = me.statusStore;
>
> - var notesview = Ext.create('PVE.panel.NotesView', {
> - pveSelNode: me.pveSelNode,
> - padding: '0 0 0 10',
> - flex: 1
> - });
> -
> - if (template) {
> -
> - Ext.apply(me, {
> - plugins: {
> - ptype: 'lazyitems',
> - items: [
> - {
> - xtype: 'container',
> - layout: {
> - type: 'column'
> - },
> - defaults: {
> - padding: '0 0 10 0'
> - },
> - items: [{
> - width: 770,
> - layout: {
> - type: 'vbox',
> - align: 'stretch'
> - },
> - border: false,
> - items: [
> - {
> - xtype: 'pveTemplateStatusView',
> - pveSelNode: me.pveSelNode,
> - padding: '0 0 10 10',
> - rstore: rstore
> - },
> - notesview
> - ]
> - }]
> - }
> - ]
> + var width = template ? 1 : 0.5;
> + var items = [
> + {
> + xtype: template ? 'pveTemplateStatusView' : 'pveGuestStatusView',
> + responsiveConfig: {
> + 'width < 1900': {
> + columnWidth: width
> + },
> + 'width >= 1900': {
> + columnWidth: width / 2
> + }
> },
> - listeners: {
> - activate: function() { notesview.load(); }
> + itemId: 'gueststatus',
> + pveSelNode: me.pveSelNode,
> + rstore: rstore
> + },
> + {
> + xtype: 'pveNotesView',
> + maxHeight: 330,
> + itemId: 'notesview',
> + pveSelNode: me.pveSelNode,
> + responsiveConfig: {
> + 'width < 1900': {
> + columnWidth: width
> + },
> + 'width >= 1900': {
> + columnWidth: width / 2
> + }
> }
> - });
> + }
> + ];
> +
> + var rrdstore;
> + if (!template) {
>
> - } else {
> - var rrdstore = Ext.create('Proxmox.data.RRDStore', {
> + rrdstore = Ext.create('Proxmox.data.RRDStore', {
> rrdurl: "/api2/json/nodes/" + nodename + "/qemu/" + vmid + "/rrddata",
> model: 'pve-rrd-guest'
> });
>
> - Ext.apply(me, {
> - tbar: [ '->', { xtype: 'proxmoxRRDTypeSelector' } ],
> - plugins: {
> - ptype: 'lazyitems',
> - items: [
> - {
> - xtype: 'container',
> - layout: {
> - type: 'column'
> - },
> - defaults: {
> - padding: '0 0 10 10'
> - },
> - items: [
> - {
> - width: 770,
> - height: 330,
> - layout: {
> - type: 'hbox',
> - align: 'stretch'
> - },
> - border: false,
> - items: [
> - {
> - xtype: 'pveGuestStatusView',
> - pveSelNode: me.pveSelNode,
> - width: 400,
> - rstore: rstore
> - },
> - notesview
> - ]
> - },
> - {
> - 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
> - }
> - ]
> - }
> - ]
> + items.push(
> + {
> + xtype: 'proxmoxRRDChart',
> + title: gettext('CPU usage'),
> + pveSelNode: me.pveSelNode,
> + fields: ['cpu'],
> + fieldTitles: [gettext('CPU usage')],
> + store: rrdstore
> },
> - listeners: {
> - activate: function() {notesview.load(); rrdstore.startUpdate();},
> - destroy: rrdstore.stopUpdate
> + {
> + 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: 330,
> + padding: 5,
> + plugins: 'responsive',
> + responsiveConfig: {
> + 'width < 1900': {
> + columnWidth: 1
> + },
> + 'width >= 1900': {
> + columnWidth: 0.5
> + }
> + }
> + },
> + items: items
> + }
> + ]
> + });
> +
> me.callParent();
> + me.down('#notesview').load();
> + if (!template) {
> + rrdstore.startUpdate();
> + me.on('destroy', rrdstore.stopUpdate);
> + }
> }
> });
>
More information about the pve-devel
mailing list