]> git.proxmox.com Git - proxmox-widget-toolkit.git/blobdiff - src/form/ComboGrid.js
combo grid: load: rework auto-selection and validity logic
[proxmox-widget-toolkit.git] / src / form / ComboGrid.js
index 07ea5fe4b0bdc6fd88311061adb2fccee3ce9cc6..923a55a7ea9c4dd95a9d58f1022066c44dfff13d 100644 (file)
@@ -425,14 +425,12 @@ Ext.define('Proxmox.form.ComboGrid', {
                if (me.enableLoadMask) {
                    delete me.enableLoadMask;
 
-                   // if the picker exists,
-                   // we reset its minheight to the saved let/0
-                   // we have to update the layout, otherwise the height
-                   // gets not recalculated
+                   // if the picker exists, we reset its minHeight to the previous saved one or 0
                    if (me.picker) {
                        me.picker.setMinHeight(me.savedMinHeight || 0);
                        Proxmox.Utils.setErrorMask(me.picker);
                        delete me.savedMinHeight;
+                       // we have to update the layout, otherwise the height gets not recalculated
                        me.picker.updateLayout();
                    }
                }
@@ -447,15 +445,19 @@ Ext.define('Proxmox.form.ComboGrid', {
                }
 
                if (!found) {
-                   let rec = me.store.first();
-                   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)) {
-                       me.setValue(def);
-                       if (!me.notFoundIsValid && !me.isDisabled()) {
-                           me.markInvalid(me.blankText);
+                   if (!(Ext.isArray(def) ? def.length : def)) {
+                       let rec = me.store.first();
+                       if (me.autoSelect && rec && rec.data) {
+                           def = rec.data[me.valueField];
+                           me.setValue(def, true);
+                       } else if (!me.allowBlank) {
+                           me.setValue(def);
+                           if (!me.isDisabled()) {
+                               me.markInvalid(me.blankText);
+                           }
                        }
+                   } else if (!me.notFoundIsValid && !me.isDisabled()) {
+                       me.markInvalid(gettext('Invalid Value'));
                    }
                }
            } else {