From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <d.csapak@proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 44D6365AA2
 for <pve-devel@lists.proxmox.com>; Wed,  4 Nov 2020 15:17:42 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 36A66E93A
 for <pve-devel@lists.proxmox.com>; Wed,  4 Nov 2020 15:17:42 +0100 (CET)
Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com
 [212.186.127.180])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS id 1D500E92F
 for <pve-devel@lists.proxmox.com>; Wed,  4 Nov 2020 15:17:41 +0100 (CET)
Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1])
 by proxmox-new.maurer-it.com (Proxmox) with ESMTP id DBE5E4601A
 for <pve-devel@lists.proxmox.com>; Wed,  4 Nov 2020 15:17:40 +0100 (CET)
From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Wed,  4 Nov 2020 15:17:40 +0100
Message-Id: <20201104141740.365-1-d.csapak@proxmox.com>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.409 Adjusted score from AWL reputation of From: address
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 RCVD_IN_DNSWL_MED        -2.3 Sender listed at https://www.dnswl.org/,
 medium trust
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: [pve-devel] [RFC PATCH widget-toolkit] comboGrid: set errorMask on
 store load failure
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2020 14:17:42 -0000

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@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