[pve-devel] [PATCH widget-toolkit] ComboGrid: fix validation for !allowBlank disabled fields

Stefan Reiter s.reiter at proxmox.com
Mon Feb 3 15:14:42 CET 2020


Used in "Add USB to VM" dialog for example.

This was broken before 15206214d9 "ComboGrid: fix on-load validation for blank
values" (only the one you enabled first was validated, the other always showed
as valid), and afterwards too, but in a different way (both are now immediately
marked invalid until you select and unselect them) - which is how I noticed.

With this the validation now works correctly.

Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
---

Before my last patch they didn't validate enough, now they validate too much...
I tried my best to test all of our ComboGrids once again, hope I didn't miss
anything this time.

 form/ComboGrid.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/form/ComboGrid.js b/form/ComboGrid.js
index 54bc239..9bdf721 100644
--- a/form/ComboGrid.js
+++ b/form/ComboGrid.js
@@ -378,6 +378,13 @@ Ext.define('Proxmox.form.ComboGrid', {
 	return true;
     },
 
+    // validate after enabling a field, otherwise blank fields with !allowBlank
+    // are sometimes not marked as invalid
+    setDisabled: function(value) {
+	this.callParent([value]);
+	this.validate();
+    },
+
     initComponent: function() {
 	var me = this;
 
@@ -461,7 +468,7 @@ Ext.define('Proxmox.form.ComboGrid', {
 			me.setValue(def, true);
 		    } else if (!me.allowBlank && !(Ext.isArray(def) ? def.length : def)) {
 			me.setValue(def);
-			if (!me.notFoundIsValid) {
+			if (!me.notFoundIsValid && !me.isDisabled()) {
 			    me.markInvalid(me.blankText);
 			}
 		    }
-- 
2.20.1





More information about the pve-devel mailing list