]> git.proxmox.com Git - proxmox-backup.git/blame - www/form/TokenSelector.js
docs: add note for not using remote storages
[proxmox-backup.git] / www / form / TokenSelector.js
CommitLineData
184a3763
FG
1Ext.define('PBS.form.TokenSelector', {
2 extend: 'Proxmox.form.ComboGrid',
3 alias: 'widget.pbsTokenSelector',
4
5 allowBlank: false,
6 autoSelect: false,
7 valueField: 'tokenid',
8 displayField: 'tokenid',
9
10 editable: true,
11 anyMatch: true,
12 forceSelection: true,
13
14 store: {
15 model: 'pbs-tokens',
16 params: {
17 enabled: 1,
18 },
19 sorters: 'tokenid',
20 },
21
22 initComponent: function() {
23 let me = this;
24 me.userStore = Ext.create('Ext.data.Store', {
25 model: 'pbs-users-with-tokens',
26 });
27 me.userStore.on('load', this.onLoad, this);
28 me.userStore.load();
29
30 me.callParent();
31 },
32
33 onLoad: function(store, data, success) {
5e8b9717 34 let me = this;
184a3763
FG
35 if (!success) return;
36
37 let tokenStore = this.store;
38
39 let records = [];
40 Ext.Array.each(data, function(user) {
41 let tokens = user.data.tokens || [];
42 Ext.Array.each(tokens, function(token) {
43 let r = {};
44 r.tokenid = token.tokenid;
45 r.comment = token.comment;
46 r.expire = token.expire;
47 r.enable = token.enable;
48 records.push(r);
49 });
50 });
51
52 tokenStore.loadData(records);
5e8b9717
TL
53 // we need to re-set the value, ExtJS doesn't knows that we injected data into the store
54 me.setValue(me.value);
55 me.validate();
184a3763
FG
56 },
57
58 listConfig: {
9dd61758 59 width: 500,
184a3763
FG
60 columns: [
61 {
62 header: gettext('API Token'),
63 sortable: true,
64 dataIndex: 'tokenid',
65 renderer: Ext.String.htmlEncode,
9dd61758 66 flex: 2,
184a3763
FG
67 },
68 {
69 header: gettext('Comment'),
70 sortable: false,
71 dataIndex: 'comment',
72 renderer: Ext.String.htmlEncode,
9dd61758 73 flex: 3,
184a3763
FG
74 },
75 ],
76 },
77});