From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] applied: [PATCH backup 2/2] ui: user edit: rework interaction of realm and view model
Date: Tue, 28 Mar 2023 18:55:15 +0200 [thread overview]
Message-ID: <20230328165515.296403-2-t.lamprecht@proxmox.com> (raw)
In-Reply-To: <20230328165515.296403-1-t.lamprecht@proxmox.com>
avoid accessing private members directly but rather try to use the
public API, this then allows us do drop declaring a reference on the
realm combobox, which was not directly used and thus a bit subtle.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
still not the cleanest approach in general IMO, it probably would be
better to move the "can PW change" logic into the combobox (either in a
child here or in widget toolkit) and, e.g., expose it via a
selectionCanChangePW like getter there which can then be bindend here.
www/window/UserEdit.js | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/www/window/UserEdit.js b/www/window/UserEdit.js
index 0129aeed..63a6f7f8 100644
--- a/www/window/UserEdit.js
+++ b/www/window/UserEdit.js
@@ -1,6 +1,5 @@
Ext.define('PBS.window.UserEditViewModel', {
extend: 'Ext.app.ViewModel',
-
alias: 'viewmodel.pbsUserEdit',
data: {
@@ -9,15 +8,16 @@ Ext.define('PBS.window.UserEditViewModel', {
formulas: {
maySetPassword: function(get) {
- // Dummy read, so that ExtJS will update the formula when
- // the combobox changes
- let _dummy = get('realm');
+ let realm = get('realm');
- // All in all a bit hacky, is there a nicer way to do this?
- let realm_type = this.data.realmComboBox.selection?.data.type
- ? this.data.realmComboBox.selection?.data.type : 'pbs';
-
- return Proxmox.Schema.authDomains[realm_type].pwchange && this.config.view.isCreate;
+ let view = this.getView();
+ let realmStore = view.down('pmxRealmComboBox').getStore();
+ if (realmStore.isLoaded()) {
+ let rec = realmStore.findRecord('realm', realm, 0, false, true, true);
+ return Proxmox.Schema.authDomains[rec.data.type]?.pwchange && view.isCreate;
+ } else {
+ return view.isCreate;
+ }
},
},
});
@@ -78,8 +78,9 @@ Ext.define('PBS.window.UserEdit', {
allowBlank: false,
matchFieldWidth: false,
listConfig: { width: 300 },
- reference: 'realmComboBox',
- bind: '{realm}',
+ bind: {
+ value: '{realm}',
+ },
cbind: {
hidden: '{!isCreate}',
disabled: '{!isCreate}',
--
2.30.2
prev parent reply other threads:[~2023-03-28 16:55 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-28 16:55 [pbs-devel] applied: [PATCH backup 1/2] ui: user edit: fix filtering out pam realm on user-add Thomas Lamprecht
2023-03-28 16:55 ` 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=20230328165515.296403-2-t.lamprecht@proxmox.com \
--to=t.lamprecht@proxmox.com \
--cc=pbs-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