]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/RegisteredTagsEdit.js
ui: change style of ListField
[pve-manager.git] / www / manager6 / dc / RegisteredTagsEdit.js
CommitLineData
0a627d94
DC
1Ext.define('PVE.dc.RegisteredTagsEdit', {
2 extend: 'Proxmox.window.Edit',
3 alias: 'widget.pveRegisteredTagEdit',
4
5 subject: gettext('Registered Tags'),
6 onlineHelp: 'datacenter_configuration_file',
7
8 url: '/api2/extjs/cluster/options',
9
10 hintText: gettext('NOTE: The following tags are also defined in the user allow list.'),
11
12 controller: {
13 xclass: 'Ext.app.ViewController',
14
15 tagChange: function(field, value) {
16 let me = this;
17 let view = me.getView();
18 let also_allowed = [];
19 value = Ext.isArray(value) ? value : value.split(';');
20 value.forEach(tag => {
21 if (view.allowed_tags.indexOf(tag) !== -1) {
22 also_allowed.push(tag);
23 }
24 });
25 let hint_field = me.lookup('hintField');
26 hint_field.setVisible(also_allowed.length > 0);
27 if (also_allowed.length > 0) {
28 hint_field.setValue(`${view.hintText} ${also_allowed.join(', ')}`);
29 }
30 },
31 },
32
33 items: [
34 {
35 xtype: 'inputpanel',
36 setValues: function(values) {
37 let allowed_tags = values?.['user-tag-access']?.['user-allow-list'] ?? [];
38 this.up('pveRegisteredTagEdit').allowed_tags = allowed_tags;
39
40 let tags = values?.['registered-tags'] ?? '';
41 return Proxmox.panel.InputPanel.prototype.setValues.call(this, { tags });
42 },
43 onGetValues: function(values) {
44 return {
45 'registered-tags': values,
46 };
47 },
48 items: [
49 {
50 name: 'tags',
51 xtype: 'pveListField',
52 emptyText: gettext('No Tags defined'),
53 fieldTitle: gettext('Tag'),
54 maskRe: PVE.Utils.tagCharRegex,
432aec56
DC
55 gridConfig: {
56 height: 200,
57 scrollable: true,
58 },
0a627d94
DC
59 listeners: {
60 change: 'tagChange',
61 },
62 },
63 {
64 hidden: true,
65 xtype: 'displayfield',
66 reference: 'hintField',
67 userCls: 'pmx-hint',
68 },
69 ],
70 },
71 ],
72});