all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH manager] ui: fix datacenter tags options inputs
@ 2022-11-18  8:09 Dominik Csapak
  2022-11-18 12:10 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Dominik Csapak @ 2022-11-18  8:09 UTC (permalink / raw)
  To: pve-devel

* dont allow blank for tree shape
* allow completely removing registered tags and user-tag-access properties
* correctly check validity for the listfield
* use correct gettexts
* don't inject empty field in the listfield when setting an empty string

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/manager6/dc/OptionView.js         |  9 +++++----
 www/manager6/dc/RegisteredTagsEdit.js | 18 +++++++++++-------
 www/manager6/dc/UserTagAccessEdit.js  |  2 +-
 www/manager6/form/ListField.js        |  8 ++++++--
 4 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/www/manager6/dc/OptionView.js b/www/manager6/dc/OptionView.js
index 7f77ea758..5cb5b0b6f 100644
--- a/www/manager6/dc/OptionView.js
+++ b/www/manager6/dc/OptionView.js
@@ -384,6 +384,7 @@ Ext.define('PVE.dc.OptionView', {
 				fieldLabel: gettext('Tree Shape'),
 				valueField: 'value',
 				displayField: 'display',
+				allowBlank: false,
 				listConfig: {
 				    columns: [
 					{
@@ -448,12 +449,12 @@ Ext.define('PVE.dc.OptionView', {
 		    return Ext.String.format(gettext('Mode: {0}'), 'free');
 		}
 		let mode = value?.['user-allow'] ?? 'free';
-		let list = value?.['user-allow-list'].join(',');
-		let modeTxt = Ext.String.format(gettext('Mode {0}'), mode);
+		let list = value?.['user-allow-list']?.join(',') ?? '';
+		let modeTxt = Ext.String.format(gettext('Mode: {0}'), mode);
 		let overrides = PVE.Utils.tagOverrides;
 		let tags = PVE.Utils.renderTags(list, overrides);
-
-		return `${modeTxt}, ${gettext('Pre-defined:')} ${tags}`;
+		let listTxt = tags !== '' ? `, ${gettext('Pre-defiend:')} ${tags}` : '';
+		return `${modeTxt}${listTxt}`;
 	    },
 	    header: gettext('User Tag Access'),
 	    editor: {
diff --git a/www/manager6/dc/RegisteredTagsEdit.js b/www/manager6/dc/RegisteredTagsEdit.js
index 75b4f9ba3..b46326ae8 100644
--- a/www/manager6/dc/RegisteredTagsEdit.js
+++ b/www/manager6/dc/RegisteredTagsEdit.js
@@ -36,25 +36,29 @@ Ext.define('PVE.dc.RegisteredTagsEdit', {
 	    setValues: function(values) {
 		let allowed_tags = values?.['user-tag-access']?.['user-allow-list'] ?? [];
 		this.up('pveRegisteredTagEdit').allowed_tags = allowed_tags;
-
-		let tags = values?.['registered-tags'] ?? '';
+		let tags = values?.['registered-tags'];
 		return Proxmox.panel.InputPanel.prototype.setValues.call(this, { tags });
 	    },
 	    onGetValues: function(values) {
-		return {
-		    'registered-tags': values,
-		};
+		if (!values.tags) {
+		    return {
+			'delete': 'registered-tags',
+		    };
+		} else {
+		    return {
+			'registered-tags': values.tags,
+		    };
+		}
 	    },
 	    items: [
 		{
 		    name: 'tags',
 		    xtype: 'pveListField',
-		    emptyText: gettext('No Tags defined'),
-		    fieldTitle: gettext('Tag'),
 		    maskRe: PVE.Utils.tagCharRegex,
 		    gridConfig: {
 			height: 200,
 			scrollable: true,
+			emptyText: gettext('No Tags defined'),
 		    },
 		    listeners: {
 			change: 'tagChange',
diff --git a/www/manager6/dc/UserTagAccessEdit.js b/www/manager6/dc/UserTagAccessEdit.js
index f22ac9b3d..61c38c074 100644
--- a/www/manager6/dc/UserTagAccessEdit.js
+++ b/www/manager6/dc/UserTagAccessEdit.js
@@ -40,7 +40,7 @@ Ext.define('PVE.dc.UserTagAccessEdit', {
 	    },
 	    onGetValues: function(values) {
 		if (values === undefined || Object.keys(values).length === 0) {
-		    return { 'delete': name };
+		    return { 'delete': 'user-tag-access' };
 		}
 		return {
 		    'user-tag-access': PVE.Parser.printPropertyString(values),
diff --git a/www/manager6/form/ListField.js b/www/manager6/form/ListField.js
index 77e9ebfca..61e37f7e5 100644
--- a/www/manager6/form/ListField.js
+++ b/www/manager6/form/ListField.js
@@ -22,7 +22,8 @@ Ext.define('PVE.form.ListField', {
 
     setValue: function(list) {
 	let me = this;
-	list = Ext.isArray(list) ? list : (list ?? '').split(';');
+	list = Ext.isArray(list) ? list : (list ?? '').split(';').filter(t => t !== '');
+
 	let store = me.lookup('grid').getStore();
 	if (list.length > 0) {
 	    store.setData(list.map(item => ({ item })));
@@ -99,6 +100,7 @@ Ext.define('PVE.form.ListField', {
 
 	    grid.getStore().remove(record);
 	    view.checkChange();
+	    view.validate();
 	},
 
 	itemChange: function(field, newValue) {
@@ -108,7 +110,9 @@ Ext.define('PVE.form.ListField', {
 	    }
 	    let column = field.getWidgetColumn();
 	    rec.set(column.dataIndex, newValue);
-	    field.up('pveListField').checkChange();
+	    let list = field.up('pveListField');
+	    list.checkChange();
+	    list.validate();
 	},
 
 	control: {
-- 
2.30.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH manager] ui: fix datacenter tags options inputs
  2022-11-18  8:09 [pve-devel] [PATCH manager] ui: fix datacenter tags options inputs Dominik Csapak
@ 2022-11-18 12:10 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2022-11-18 12:10 UTC (permalink / raw)
  To: Proxmox VE development discussion, Dominik Csapak

Am 18/11/2022 um 09:09 schrieb Dominik Csapak:
> * dont allow blank for tree shape
> * allow completely removing registered tags and user-tag-access properties
> * correctly check validity for the listfield
> * use correct gettexts
> * don't inject empty field in the listfield when setting an empty string
> 
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
>  www/manager6/dc/OptionView.js         |  9 +++++----
>  www/manager6/dc/RegisteredTagsEdit.js | 18 +++++++++++-------
>  www/manager6/dc/UserTagAccessEdit.js  |  2 +-
>  www/manager6/form/ListField.js        |  8 ++++++--
>  4 files changed, 23 insertions(+), 14 deletions(-)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-11-18 12:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-18  8:09 [pve-devel] [PATCH manager] ui: fix datacenter tags options inputs Dominik Csapak
2022-11-18 12:10 ` [pve-devel] applied: " Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal