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)
Signed-off-by: Dominik Csapak <d.csa...@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); + } } }); -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel