[pve-devel] [RFC PATCH widget-toolkit] comboGrid: set errorMask on store load failure

Dominik Csapak d.csapak at proxmox.com
Wed Nov 4 15:17:40 CET 2020


if there occured an error in the api call of the store, show this error
on the picker when opened, instead of just showing an empty picker

this makes it possible to see that there was an error while accessing the api

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
altough i tested this, i'd like for someone else to test it too, since
we basically use this anywhere and i am not sure if i forgot some edge
case...

 src/form/ComboGrid.js | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/form/ComboGrid.js b/src/form/ComboGrid.js
index e5a1920..20c9455 100644
--- a/src/form/ComboGrid.js
+++ b/src/form/ComboGrid.js
@@ -304,6 +304,11 @@ Ext.define('Proxmox.form.ComboGrid', {
 		me.savedMinHeight = picker.getMinHeight();
 		picker.setMinHeight(100);
 	    }
+	    if (me.loadError) {
+		Proxmox.Utils.setErrorMask(picker, me.loadError);
+		delete me.loadError;
+		picker.updateLayout();
+	    }
 	});
 
         picker.getNavigationModel().navigateOnSpace = false;
@@ -415,6 +420,7 @@ Ext.define('Proxmox.form.ComboGrid', {
 	me.mon(me.store, 'load', function(store, r, success, o) {
 	    if (success) {
 		me.clearInvalid();
+		delete me.loadError;
 
 		if (me.enableLoadMask) {
 		    delete me.enableLoadMask;
@@ -425,6 +431,7 @@ Ext.define('Proxmox.form.ComboGrid', {
 		    // gets not recalculated
 		    if (me.picker) {
 			me.picker.setMinHeight(me.savedMinHeight || 0);
+			Proxmox.Utils.setErrorMask(me.picker);
 			delete me.savedMinHeight;
 			me.picker.updateLayout();
 		    }
@@ -451,6 +458,12 @@ Ext.define('Proxmox.form.ComboGrid', {
 			}
 		    }
 		}
+	    } else {
+		let msg = Proxmox.Utils.getResponseErrorMessage(o.getError());
+		if (me.picker) {
+		    Proxmox.Utils.setErrorMask(me.picker, msg);
+		}
+		me.loadError = msg;
 	    }
 	});
     },
-- 
2.20.1






More information about the pve-devel mailing list