]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/TokenSelector.js
guest import: allow setting VLAN-tag
[pve-manager.git] / www / manager6 / form / TokenSelector.js
1 Ext.define('PVE.form.TokenSelector', {
2 extend: 'Proxmox.form.ComboGrid',
3 alias: ['widget.pveTokenSelector'],
4
5 allowBlank: false,
6 autoSelect: false,
7 displayField: 'id',
8
9 editable: true,
10 anyMatch: true,
11 forceSelection: true,
12
13 store: {
14 model: 'pve-tokens',
15 autoLoad: true,
16 proxy: {
17 type: 'proxmox',
18 url: 'api2/json/access/users',
19 extraParams: { 'full': 1 },
20 },
21 sorters: 'id',
22 listeners: {
23 load: function(store, records, success) {
24 let tokens = [];
25 for (const { data: user } of records) {
26 if (!user.tokens || user.tokens.length === 0) {
27 continue;
28 }
29 for (const token of user.tokens) {
30 tokens.push({
31 id: `${user.userid}!${token.tokenid}`,
32 comment: token.comment,
33 });
34 }
35 }
36 store.loadData(tokens);
37 },
38 },
39 },
40
41 listConfig: {
42 columns: [
43 {
44 header: gettext('API Token'),
45 sortable: true,
46 dataIndex: 'id',
47 renderer: Ext.String.htmlEncode,
48 flex: 1,
49 },
50 {
51 header: gettext('Comment'),
52 sortable: false,
53 dataIndex: 'comment',
54 renderer: Ext.String.htmlEncode,
55 flex: 1,
56 },
57 ],
58 },
59 }, function() {
60 Ext.define('pve-tokens', {
61 extend: 'Ext.data.Model',
62 fields: [
63 'id', 'userid', 'tokenid', 'comment',
64 { type: 'boolean', name: 'privsep' },
65 { type: 'date', dateFormat: 'timestamp', name: 'expire' },
66 ],
67 idProperty: 'id',
68 });
69 });