From 15206214d94a52317e376ae1798cd71674c5c985 Mon Sep 17 00:00:00 2001 From: Stefan Reiter Date: Wed, 29 Jan 2020 11:27:18 +0100 Subject: [PATCH] ComboGrid: fix on-load validation for blank values Commit f32aa3df74 fixed marking multi-select fields with where the store did not contain a valid value after loading. However, it introduced a bug for single-select fields where the value (before the store-load) was explicitly set to be empty (when that should be invalid because of allowBlank === false). Fix the logic to correctly detect all scenarios (with def being the value selected before the store loaded, i.e. undefined or an empty array): !allowBlank && ( def is an array but empty || def is not an array and falsy ) Also use correct error message (localized by ExtJS itself). Signed-off-by: Stefan Reiter --- form/ComboGrid.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/form/ComboGrid.js b/form/ComboGrid.js index 0c5cf1b..54bc239 100644 --- a/form/ComboGrid.js +++ b/form/ComboGrid.js @@ -459,10 +459,10 @@ Ext.define('Proxmox.form.ComboGrid', { if (me.autoSelect && rec && rec.data) { def = rec.data[me.valueField]; me.setValue(def, true); - } else if (!me.allowBlank && ((Ext.isArray(def) && def.length) || def)) { + } else if (!me.allowBlank && !(Ext.isArray(def) ? def.length : def)) { me.setValue(def); if (!me.notFoundIsValid) { - me.markInvalid(gettext('Invalid Value')); + me.markInvalid(me.blankText); } } }