public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Aaron Lauterer <a.lauterer@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
	Dominik Csapak <d.csapak@proxmox.com>
Subject: Re: [pve-devel] [PATCH manager v2] ui: pool create: allow selecting parent pool via selector
Date: Mon, 31 Aug 2026 16:03:19 +0200	[thread overview]
Message-ID: <6a9f8cca-061f-4eee-8d10-ccf4ed842e39@proxmox.com> (raw)
In-Reply-To: <20260123074546.396323-1-d.csapak@proxmox.com>

Gave this a quick test.
Works as expected.

I guess that handling the 3rd level pools differently but still showing 
them in the selector with a marking and not selectable will make the 
whole thing a lot more complex. As in, a custom component potentially, 
if the pvePoolSelector cannot do it.

Tested-By: Aaron Lauterer <a.lauterer@proxmox.com>

On  2026-01-23  08:44, Dominik Csapak wrote:
> instead of having to type out the full path, e.g. 'foo/bar/baz',
> show a 'pool selector' to select the parent pool.
> 
> Forbid using slashes in the name field so it's not possible to specify
> the structure with both the name and parent pool field.
> 
> This makes creating nested pools more obvious and easier.
> 
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> changes from v1:
> * always delete 'parentPool' from values so we don't accidentally submit it
> * only consider parentPool if it's a non-empty string
> * add regex to the namefield to disallow slashes
> * add emptyText to the poolselector
> 
>   www/manager6/dc/PoolEdit.js | 52 +++++++++++++++++++++++++++----------
>   1 file changed, 39 insertions(+), 13 deletions(-)
> 
> diff --git a/www/manager6/dc/PoolEdit.js b/www/manager6/dc/PoolEdit.js
> index 72a084ac..ee39137a 100644
> --- a/www/manager6/dc/PoolEdit.js
> +++ b/www/manager6/dc/PoolEdit.js
> @@ -17,20 +17,46 @@ Ext.define('PVE.dc.PoolEdit', {
>   
>       items: [
>           {
> -            xtype: 'pmxDisplayEditField',
> -            fieldLabel: gettext('Name'),
> -            cbind: {
> -                editable: '{isCreate}',
> -                value: '{poolid}',
> +            xtype: 'inputpanel',
> +            onGetValues: function (values) {
> +                if (Ext.isString(values.parentPool) && values.parentPool.length > 0) {
> +                    values.poolid = values.parentPool + '/' + values.poolid;
> +                }
> +                delete values.parentPool;
> +                return values;
>               },
> -            name: 'poolid',
> -            allowBlank: false,
> -        },
> -        {
> -            xtype: 'textfield',
> -            fieldLabel: gettext('Comment'),
> -            name: 'comment',
> -            allowBlank: true,
> +            items: [
> +                {
> +                    xtype: 'pmxDisplayEditField',
> +                    fieldLabel: gettext('Name'),
> +                    cbind: {
> +                        editable: '{isCreate}',
> +                        value: '{poolid}',
> +                    },
> +                    editConfig: {
> +                        regex: /^[^/]+$/,
> +                    },
> +                    name: 'poolid',
> +                    allowBlank: false,
> +                },
> +                {
> +                    xtype: 'pvePoolSelector',
> +                    name: 'parentPool',
> +                    fieldLabel: gettext('Parent Pool'),
> +                    allowBlank: true,
> +                    emptyText: Proxmox.Utils.NoneText,
> +                    cbind: {
> +                        disabled: '{!isCreate}',
> +                        hidden: '{!isCreate}',
> +                    },
> +                },
> +                {
> +                    xtype: 'textfield',
> +                    fieldLabel: gettext('Comment'),
> +                    name: 'comment',
> +                    allowBlank: true,
> +                },
> +            ],
>           },
>       ],
>   





  parent reply	other threads:[~2026-08-31 14:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-23  7:42 [pve-devel] [PATCH manager v2] ui: pool create: allow selecting parent pool via selector Dominik Csapak
2026-08-31  9:26 ` Dominik Csapak
2026-08-31 13:43 ` Jakob Klocker
2026-08-31 14:03 ` Aaron Lauterer [this message]
2026-09-01  7:18 ` superseded: " Dominik Csapak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6a9f8cca-061f-4eee-8d10-ccf4ed842e39@proxmox.com \
    --to=a.lauterer@proxmox.com \
    --cc=d.csapak@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal