* [pbs-devel] [PATCH proxmox-backup 1/3] www: add AuthidSelector
@ 2020-11-06 12:01 Fabian Grünbichler
2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 2/3] www: use AuthidSelector for sync job owner Fabian Grünbichler
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Fabian Grünbichler @ 2020-11-06 12:01 UTC (permalink / raw)
To: pbs-devel
similar to TokenSelector, but with different fields / mapping of data.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
www/Makefile | 1 +
www/form/AuthidSelector.js | 98 ++++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 www/form/AuthidSelector.js
diff --git a/www/Makefile b/www/Makefile
index 9fd014b4..f8516a23 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -8,6 +8,7 @@ JSSRC= \
Utils.js \
form/UserSelector.js \
form/TokenSelector.js \
+ form/AuthidSelector.js \
form/RemoteSelector.js \
form/DataStoreSelector.js \
form/CalendarEvent.js \
diff --git a/www/form/AuthidSelector.js b/www/form/AuthidSelector.js
new file mode 100644
index 00000000..89389834
--- /dev/null
+++ b/www/form/AuthidSelector.js
@@ -0,0 +1,98 @@
+Ext.define('pbs-authids', {
+ extend: 'Ext.data.Model',
+ fields: [
+ 'authid', 'comment', 'type',
+ ],
+ idProperty: 'authid',
+});
+
+Ext.define('PBS.form.AuthidSelector', {
+ extend: 'Proxmox.form.ComboGrid',
+ alias: 'widget.pbsAuthidSelector',
+
+ allowBlank: false,
+ autoSelect: false,
+ valueField: 'authid',
+ displayField: 'authid',
+
+ editable: true,
+ anyMatch: true,
+ forceSelection: true,
+
+ store: {
+ model: 'pbs-authids',
+ params: {
+ enabled: 1,
+ },
+ sorters: 'authid',
+ },
+
+ initComponent: function() {
+ let me = this;
+ me.userStore = Ext.create('Ext.data.Store', {
+ model: 'pbs-users-with-tokens',
+ });
+ me.userStore.on('load', this.onLoad, this);
+ me.userStore.load();
+
+ me.callParent();
+ },
+
+ onLoad: function(store, data, success) {
+ if (!success) return;
+
+ let authidStore = this.store;
+
+ let records = [];
+ Ext.Array.each(data, function(user) {
+ let u = {};
+ u.authid = user.data.userid;
+ u.comment = user.data.comment;
+ u.type = 'u';
+ records.push(u);
+ let tokens = user.data.tokens || [];
+ Ext.Array.each(tokens, function(token) {
+ let r = {};
+ r.authid = token.tokenid;
+ r.comment = token.comment;
+ r.type = 't';
+ records.push(r);
+ });
+ });
+
+ authidStore.loadData(records);
+ },
+
+ listConfig: {
+ columns: [
+ {
+ header: gettext('Type'),
+ sortable: true,
+ dataIndex: 'type',
+ renderer: function(value) {
+ switch (value) {
+ case 'u': return gettext('User');
+ case 't': return gettext('API Token');
+ default: return Proxmox.Utils.unknownText;
+ }
+ },
+ flex: 1,
+ },
+ {
+ header: gettext('Auth ID'),
+ sortable: true,
+ dataIndex: 'authid',
+ renderer: Ext.String.htmlEncode,
+ flex: 1,
+ },
+ {
+ header: gettext('Comment'),
+ sortable: false,
+ dataIndex: 'comment',
+ renderer: Ext.String.htmlEncode,
+ flex: 1,
+ },
+ ],
+ },
+});
+
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [pbs-devel] [PATCH proxmox-backup 2/3] www: use AuthidSelector for sync job owner 2020-11-06 12:01 [pbs-devel] [PATCH proxmox-backup 1/3] www: add AuthidSelector Fabian Grünbichler @ 2020-11-06 12:01 ` Fabian Grünbichler 2020-11-06 18:50 ` [pbs-devel] applied: " Thomas Lamprecht 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 3/3] www: use AuthidSelector for selecting new owner Fabian Grünbichler ` (2 subsequent siblings) 3 siblings, 1 reply; 7+ messages in thread From: Fabian Grünbichler @ 2020-11-06 12:01 UTC (permalink / raw) To: pbs-devel Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> --- www/window/SyncJobEdit.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/www/window/SyncJobEdit.js b/www/window/SyncJobEdit.js index bb9540a6..573a4af6 100644 --- a/www/window/SyncJobEdit.js +++ b/www/window/SyncJobEdit.js @@ -112,7 +112,7 @@ Ext.define('PBS.window.SyncJobEdit', { me.method = id ? 'PUT' : 'POST'; me.autoLoad = !!id; me.scheduleValue = id ? null : 'hourly'; - me.userid = id ? null : Proxmox.UserName; + me.authid = id ? null : Proxmox.UserName; return { }; }, @@ -139,10 +139,10 @@ Ext.define('PBS.window.SyncJobEdit', { }, { fieldLabel: gettext('Local Owner'), - xtype: 'pbsUserSelector', + xtype: 'pbsAuthidSelector', name: 'owner', cbind: { - value: '{userid}', + value: '{authid}', deleteEmpty: '{!isCreate}', }, }, -- 2.20.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup 2/3] www: use AuthidSelector for sync job owner 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 2/3] www: use AuthidSelector for sync job owner Fabian Grünbichler @ 2020-11-06 18:50 ` Thomas Lamprecht 0 siblings, 0 replies; 7+ messages in thread From: Thomas Lamprecht @ 2020-11-06 18:50 UTC (permalink / raw) To: Proxmox Backup Server development discussion, Fabian Grünbichler On 06.11.20 13:01, Fabian Grünbichler wrote: > Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> > --- > www/window/SyncJobEdit.js | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > applied, thanks! ^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 3/3] www: use AuthidSelector for selecting new owner 2020-11-06 12:01 [pbs-devel] [PATCH proxmox-backup 1/3] www: add AuthidSelector Fabian Grünbichler 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 2/3] www: use AuthidSelector for sync job owner Fabian Grünbichler @ 2020-11-06 12:01 ` Fabian Grünbichler 2020-11-06 18:50 ` [pbs-devel] applied: " Thomas Lamprecht 2020-11-06 12:10 ` [pbs-devel] applied: [PATCH proxmox-backup 1/3] www: add AuthidSelector Dietmar Maurer 2020-11-06 18:49 ` [pbs-devel] " Thomas Lamprecht 3 siblings, 1 reply; 7+ messages in thread From: Fabian Grünbichler @ 2020-11-06 12:01 UTC (permalink / raw) To: pbs-devel Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> --- www/BackupGroupChangeOwner.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/BackupGroupChangeOwner.js b/www/BackupGroupChangeOwner.js index 9bd01782..39a9492a 100644 --- a/www/BackupGroupChangeOwner.js +++ b/www/BackupGroupChangeOwner.js @@ -31,10 +31,10 @@ Ext.define('PBS.BackupGroupChangeOwner', { column1: [ { - xtype: 'pbsUserSelector', + xtype: 'pbsAuthidSelector', name: 'new-owner', value: me.owner, - fieldLabel: gettext('Userid'), + fieldLabel: gettext('Owner'), minLength: 8, allowBlank: false, }, -- 2.20.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup 3/3] www: use AuthidSelector for selecting new owner 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 3/3] www: use AuthidSelector for selecting new owner Fabian Grünbichler @ 2020-11-06 18:50 ` Thomas Lamprecht 0 siblings, 0 replies; 7+ messages in thread From: Thomas Lamprecht @ 2020-11-06 18:50 UTC (permalink / raw) To: Proxmox Backup Server development discussion, Fabian Grünbichler On 06.11.20 13:01, Fabian Grünbichler wrote: > Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> > --- > www/BackupGroupChangeOwner.js | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > applied, thanks! ^ permalink raw reply [flat|nested] 7+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup 1/3] www: add AuthidSelector 2020-11-06 12:01 [pbs-devel] [PATCH proxmox-backup 1/3] www: add AuthidSelector Fabian Grünbichler 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 2/3] www: use AuthidSelector for sync job owner Fabian Grünbichler 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 3/3] www: use AuthidSelector for selecting new owner Fabian Grünbichler @ 2020-11-06 12:10 ` Dietmar Maurer 2020-11-06 18:49 ` [pbs-devel] " Thomas Lamprecht 3 siblings, 0 replies; 7+ messages in thread From: Dietmar Maurer @ 2020-11-06 12:10 UTC (permalink / raw) To: Proxmox Backup Server development discussion, Fabian Grünbichler applied all 3 patches ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pbs-devel] [PATCH proxmox-backup 1/3] www: add AuthidSelector 2020-11-06 12:01 [pbs-devel] [PATCH proxmox-backup 1/3] www: add AuthidSelector Fabian Grünbichler ` (2 preceding siblings ...) 2020-11-06 12:10 ` [pbs-devel] applied: [PATCH proxmox-backup 1/3] www: add AuthidSelector Dietmar Maurer @ 2020-11-06 18:49 ` Thomas Lamprecht 3 siblings, 0 replies; 7+ messages in thread From: Thomas Lamprecht @ 2020-11-06 18:49 UTC (permalink / raw) To: Proxmox Backup Server development discussion, Fabian Grünbichler some "after applied" review below, maybe for the next time when we do not need to rush such things in ;-) On 06.11.20 13:01, Fabian Grünbichler wrote: > similar to TokenSelector, but with different fields / mapping of data. > this should be quite easily mergable with the existing user selector, I'll see if I can do that. > Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> > --- > www/Makefile | 1 + > www/form/AuthidSelector.js | 98 ++++++++++++++++++++++++++++++++++++++ > 2 files changed, 99 insertions(+) > create mode 100644 www/form/AuthidSelector.js > > diff --git a/www/Makefile b/www/Makefile > index 9fd014b4..f8516a23 100644 > --- a/www/Makefile > +++ b/www/Makefile > @@ -8,6 +8,7 @@ JSSRC= \ > Utils.js \ > form/UserSelector.js \ > form/TokenSelector.js \ > + form/AuthidSelector.js \ > form/RemoteSelector.js \ > form/DataStoreSelector.js \ > form/CalendarEvent.js \ > diff --git a/www/form/AuthidSelector.js b/www/form/AuthidSelector.js > new file mode 100644 > index 00000000..89389834 > --- /dev/null > +++ b/www/form/AuthidSelector.js > @@ -0,0 +1,98 @@ > +Ext.define('pbs-authids', { > + extend: 'Ext.data.Model', > + fields: [ > + 'authid', 'comment', 'type', > + ], > + idProperty: 'authid', > +}); > + > +Ext.define('PBS.form.AuthidSelector', { > + extend: 'Proxmox.form.ComboGrid', > + alias: 'widget.pbsAuthidSelector', > + > + allowBlank: false, > + autoSelect: false, > + valueField: 'authid', > + displayField: 'authid', > + > + editable: true, > + anyMatch: true, > + forceSelection: true, > + > + store: { > + model: 'pbs-authids', > + params: { > + enabled: 1, > + }, > + sorters: 'authid', > + }, > + > + initComponent: function() { > + let me = this; > + me.userStore = Ext.create('Ext.data.Store', { > + model: 'pbs-users-with-tokens', > + }); > + me.userStore.on('load', this.onLoad, this); > + me.userStore.load(); > + > + me.callParent(); > + }, > + > + onLoad: function(store, data, success) { > + if (!success) return; > + > + let authidStore = this.store; > + > + let records = []; > + Ext.Array.each(data, function(user) { could be just: for (const record of data) { ... } > + let u = {}; > + u.authid = user.data.userid; > + u.comment = user.data.comment; > + u.type = 'u'; > + records.push(u); > + let tokens = user.data.tokens || []; > + Ext.Array.each(tokens, function(token) { could be just for (const token of tokens) { ... } > + let r = {}; > + r.authid = token.tokenid; > + r.comment = token.comment; > + r.type = 't'; > + records.push(r); besides indentation being completely off, please write such things as let r = { authid: token.tokenid, comment: token.comment, type: 't', }; you could also push this directly without constructing r first. > + }); > + }); > + > + authidStore.loadData(records); you need to validate the field after loading data like this, else it's always shown as invalid even if set to an OK value. > + }, > + > + listConfig: { for more columns it often can be better to increase the default width of the picker grid, e.g.: width: 500, > + columns: [ > + { > + header: gettext('Type'), > + sortable: true, > + dataIndex: 'type', > + renderer: function(value) { > + switch (value) { > + case 'u': return gettext('User'); > + case 't': return gettext('API Token'); > + default: return Proxmox.Utils.unknownText; > + } > + }, > + flex: 1, if the size is really fixed, we use also fixed widths to give dynamic data more space and improve layout, i.e.: width: 80, > + }, > + { > + header: gettext('Auth ID'), > + sortable: true, > + dataIndex: 'authid', > + renderer: Ext.String.htmlEncode, > + flex: 1, > + }, > + { > + header: gettext('Comment'), > + sortable: false, > + dataIndex: 'comment', > + renderer: Ext.String.htmlEncode, > + flex: 1, > + }, > + ], > + }, > +}); > + > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-11-06 18:50 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-11-06 12:01 [pbs-devel] [PATCH proxmox-backup 1/3] www: add AuthidSelector Fabian Grünbichler 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 2/3] www: use AuthidSelector for sync job owner Fabian Grünbichler 2020-11-06 18:50 ` [pbs-devel] applied: " Thomas Lamprecht 2020-11-06 12:01 ` [pbs-devel] [PATCH proxmox-backup 3/3] www: use AuthidSelector for selecting new owner Fabian Grünbichler 2020-11-06 18:50 ` [pbs-devel] applied: " Thomas Lamprecht 2020-11-06 12:10 ` [pbs-devel] applied: [PATCH proxmox-backup 1/3] www: add AuthidSelector Dietmar Maurer 2020-11-06 18:49 ` [pbs-devel] " 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.