]>
Commit | Line | Data |
---|---|---|
184a3763 FG |
1 | Ext.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 | }); |