[pve-devel] [PATCH widget-toolkit 05/11] panel/RRDChart: fix legend/undoZoom

Dominik Csapak d.csapak at proxmox.com
Wed May 26 10:58:33 CEST 2021


the legend is by default of type 'sprite', rever to 'dom'
but we now have to unset the '.legend', else on destruction
extjs tries to destroy it twice

also change the onAfterAnimation listener to 'redraw', since
the original event does not exist anymore, add a buffer to it
so that it is not that heavy

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 src/css/ext6-pmx.css  |  5 +++++
 src/panel/RRDChart.js | 12 +++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/css/ext6-pmx.css b/src/css/ext6-pmx.css
index 7cedaa9..0c83d8a 100644
--- a/src/css/ext6-pmx.css
+++ b/src/css/ext6-pmx.css
@@ -122,3 +122,8 @@ div.right-aligned {
 .x-treelist-pve-nav {
     background-color: #f5f5f5;
 }
+
+/* fix padding for legend in header */
+.x-legend-inner {
+    padding: 0;
+}
diff --git a/src/panel/RRDChart.js b/src/panel/RRDChart.js
index 49b3ad2..859cb39 100644
--- a/src/panel/RRDChart.js
+++ b/src/panel/RRDChart.js
@@ -121,6 +121,9 @@ Ext.define('Proxmox.widget.RRDChart', {
 	},
 
 	onAfterAnimation: function(chart, eopts) {
+	    if (!chart.header || !chart.header.tools) {
+		return;
+	    }
 	    // if the undo button is disabled, disable our tool
 	    let ourUndoZoomButton = chart.header.tools[0];
 	    let undoButton = chart.interactions[0].getUndoButton();
@@ -137,10 +140,16 @@ Ext.define('Proxmox.widget.RRDChart', {
 	},
     ],
     legend: {
+	type: 'dom',
 	padding: 0,
     },
     listeners: {
-	animationend: 'onAfterAnimation',
+	redraw: {
+	    fn: 'onAfterAnimation',
+	    options: {
+		buffer: 500,
+	    },
+	},
     },
 
     constructor: function(config) {
@@ -200,6 +209,7 @@ Ext.define('Proxmox.widget.RRDChart', {
 	if (me.header && me.legend) {
 	    me.header.padding = '4 9 4';
 	    me.header.add(me.legend);
+	    me.legend = undefined;
 	}
 
 	if (!me.noTool) {
-- 
2.20.1





More information about the pve-devel mailing list