From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
Dominik Csapak <d.csapak@proxmox.com>
Subject: Re: [pve-devel] [PATCH manager] fix #4758: ui: lxc wizard: allow multiple ssh keys
Date: Mon, 3 Jul 2023 16:24:47 +0200 [thread overview]
Message-ID: <0ada3599-968b-4657-88c8-109a1c0f052e@proxmox.com> (raw)
In-Reply-To: <20230703133711.3268237-1-d.csapak@proxmox.com>
Am 03/07/2023 um 15:37 schrieb Dominik Csapak:
> by converting the textfield into a textarea and validate the value
> line wise (if there is more than one line)
>
I hit reply to quick and only to you directly, sorry, so here my initial question and
your quick reply to it:
Am 03/07/2023 um 16:16 schrieb Dominik Csapak:
>> can I now also multiselect public keys through the file selector?
>> Probably not as I saw no change w.r.t. that, asking mostly if you looked into that already?
>>
>
> no sorry did not work on that for now, but i'll look into it.
> is there an open bug for that too?
>
no that I recall, but IMO they're quite related (and FWIW, I wished for the file one already
in the past personally), so if it isn't too complicated I'd do them in one series.
> --- a/www/manager6/lxc/CreateWizard.js
> +++ b/www/manager6/lxc/CreateWizard.js
> @@ -120,17 +120,29 @@ Ext.define('PVE.lxc.CreateWizard', {
> },
> },
> {
> - xtype: 'proxmoxtextfield',
> + xtype: 'textarea',
> name: 'ssh-public-keys',
> value: '',
> - fieldLabel: gettext('SSH public key'),
> + fieldLabel: gettext('SSH public key(s)'),
> allowBlank: true,
> validator: function(value) {
> let pwfield = this.up().down('field[name=password]');
> if (value.length) {
> - let key = PVE.Parser.parseSSHKey(value);
> - if (!key) {
> - return "Failed to recognize ssh key";
> + if (value.indexOf('\n') !== -1) {
> + let err;
> + value.split('\n').forEach((key) => {
> + if (key !== '' && !PVE.Parser.parseSSHKey(key)) {
> + err = "Failed to recognize ssh key";
> + }
> + });
> + if (err) {
> + return err;
> + }
above 9 lines could be
// check if any (non-empty) key fails to parse as SSH key
if (value.split('\n').every(key => key === '' || PVE.Parser.parseSSHKey(key))) {
return "Failed to recognize ssh key";
}
> + } else {
> + let key = PVE.Parser.parseSSHKey(value);
you could also merge the checking for the multiline and single line case:
let keys = value.indexOf('\n') !== -1 ? value.split('\n') : [ value ];
if (keys.every(key => key === '' || PVE.Parser.parseSSHKey(key))) {
// ..
> + if (!key) {
> + return "Failed to recognize ssh key";
> + }
> }
> pwfield.allowBlank = true;
> } else {
> @@ -166,7 +178,7 @@ Ext.define('PVE.lxc.CreateWizard', {
> listeners: {
> change: function(btn, e, value) {
> e = e.event;
> - let field = this.up().down('proxmoxtextfield[name=ssh-public-keys]');
> + let field = this.up().down('textarea[name=ssh-public-keys]');
> PVE.Utils.loadSSHKeyFromFile(e.target.files[0], v => field.setValue(v));
> btn.reset();
> },
prev parent reply other threads:[~2023-07-03 14:24 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-03 13:37 Dominik Csapak
2023-07-03 14:24 ` Thomas Lamprecht [this message]
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=0ada3599-968b-4657-88c8-109a1c0f052e@proxmox.com \
--to=t.lamprecht@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 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