From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 3456E89F2C for ; Tue, 18 Oct 2022 16:03:05 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id AAA94296C2 for ; Tue, 18 Oct 2022 16:02:34 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 18 Oct 2022 16:02:29 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 82A4E44A88 for ; Tue, 18 Oct 2022 16:02:28 +0200 (CEST) From: Dominik Csapak To: pve-devel@lists.proxmox.com Date: Tue, 18 Oct 2022 16:02:06 +0200 Message-Id: <20221018140226.598710-1-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.082 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [lxc.pm, api2.pm, cluster.pm, qemu.pm, datacenterconfig.pm] Subject: [pve-devel] [PATCH cluster/qemu-server/container/wt/manager v8] add tags to ui X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2022 14:03:05 -0000 this series brings the already existing 'tags' for ct/vms to the gui: * tags can be edited in the status toolbar of the guest * existing tags will be shown in the tree/global search/resource grids * when editing a tag, a list of existing tags will be shown * by default, the color is (consistently) autogenerated based on the text * that color can be overriden in datacenter -> options (cluster wide) (edit window for browser local storage is TBD) * by default, the text color is either white or black, depending which provides the greater contrast (according to SAPC) * this text color can also be overridden * there are multiple shapes available for the tree * implements some permission control in datacenter.cfg with 'user-tag-privileges' and 'admin-tags' with that it's possible to have better control over what tags a user can actually add to its guests i intentionally left out the gui for those for now, but they shouldn't be that hard to add, should we go this way changes from v7: * rebase on master * changed admin tags from special syntax to datacenter.cfg option * add 'user-tag-privleges' option and according api permission checks * fixed some small bugs with permission checks (e.g. now we check the tag count, so that users cannot add tags multiple times that already exist but they have no privileges for) * completely reworked the form/Tag and form/TagEdit, their implmementation is now much cleaner imho (squashed the drag&drop changes into the intial patches) * squashed some patches together that fit together * fixed some drag&drop bugs, so it should now work much better changes from v6: * reworded some commit messages * added small benchmark result to CFS_IPC_GET_GUEST_CONFIG_PROPERTIES commit msg * reshaped datacenter.cfg format into a property-string (also combined the gui edit window for shape+color override) * refactored the pve-tags regex in pve-common/JSONSchema * added admin tags ('+tag' syntax) with priv checks in qemu-sever/pve-container and subtle highlighting in the gui (bold-text) * added tag rendering in resource grids * add patches for drag&drop support when editing pve-cluster: Dominik Csapak (4): add CFS_IPC_GET_GUEST_CONFIG_PROPERTIES method Cluster: add get_guest_config_properties datacenter.cfg: add option for tag-style DataCenterConfig: add tag rights control to the datacenter config data/PVE/Cluster.pm | 27 ++++++ data/PVE/DataCenterConfig.pm | 130 +++++++++++++++++++++++++ data/src/cfs-ipc-ops.h | 2 + data/src/server.c | 64 +++++++++++++ data/src/status.c | 177 ++++++++++++++++++++++++----------- data/src/status.h | 3 + 6 files changed, 347 insertions(+), 56 deletions(-) qemu-server: Dominik Csapak (1): api: update: improve tag privilege check PVE/API2/Qemu.pm | 51 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) pve-container: Dominik Csapak (1): check_ct_modify_config_perm: improve tag privilege check src/PVE/LXC.pm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) proxmox-widget-toolkit: Dominik Csapak (2): add tag related helpers Toolkit: add override for Ext.dd.DragDropManager src/Toolkit.js | 16 ++++++++ src/Utils.js | 88 ++++++++++++++++++++++++++++++++++++++++++++ src/css/ext6-pmx.css | 45 ++++++++++++++++++++++ 3 files changed, 149 insertions(+) pve-manager: Dominik Csapak (12): api: /cluster/resources: add tags to returned properties api: add /ui-options api call ui: call '/ui-options' and save the result in PVE.UIOptions ui: parse and save tag color overrides from /ui-options ui: tree/ResourceTree: collect tags on update ui: add form/TagColorGrid ui: dc/OptionView: add editors for tag settings ui: add form/Tag ui: add form/TagEdit.js ui: {lxc,qemu}/Config: show Tags and make them editable ui: tree/ResourceTree: show Tags in tree ui: add tags to ResourceGrid and GlobalSearchField PVE/API2.pm | 43 +++ PVE/API2/Cluster.pm | 9 +- www/css/ext6-pve.css | 5 + www/manager6/Makefile | 3 + www/manager6/Utils.js | 71 ++++- www/manager6/Workspace.js | 22 ++ www/manager6/data/ResourceStore.js | 7 + www/manager6/dc/OptionView.js | 88 +++++- www/manager6/form/GlobalSearchField.js | 20 +- www/manager6/form/Tag.js | 233 ++++++++++++++++ www/manager6/form/TagColorGrid.js | 357 +++++++++++++++++++++++++ www/manager6/form/TagEdit.js | 316 ++++++++++++++++++++++ www/manager6/grid/ResourceGrid.js | 1 + www/manager6/lxc/Config.js | 36 ++- www/manager6/qemu/Config.js | 35 ++- www/manager6/tree/ResourceTree.js | 20 +- 16 files changed, 1247 insertions(+), 19 deletions(-) create mode 100644 www/manager6/form/Tag.js create mode 100644 www/manager6/form/TagColorGrid.js create mode 100644 www/manager6/form/TagEdit.js -- 2.30.2