]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/UserTagAccessEdit.js
ui: realm: clarify that the sync jobs really are for the realm
[pve-manager.git] / www / manager6 / dc / UserTagAccessEdit.js
CommitLineData
0a627d94
DC
1Ext.define('PVE.dc.UserTagAccessEdit', {
2 extend: 'Proxmox.window.Edit',
3 alias: 'widget.pveUserTagAccessEdit',
4
5 subject: gettext('User Tag Access'),
6 onlineHelp: 'datacenter_configuration_file',
7
8 url: '/api2/extjs/cluster/options',
9
10 hintText: gettext('NOTE: The following tags are also defined as registered tags.'),
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_registered = [];
19 value = Ext.isArray(value) ? value : value.split(';');
20 value.forEach(tag => {
21 if (view.registered_tags.indexOf(tag) !== -1) {
22 also_registered.push(tag);
23 }
24 });
25 let hint_field = me.lookup('hintField');
26 hint_field.setVisible(also_registered.length > 0);
27 if (also_registered.length > 0) {
28 hint_field.setValue(`${view.hintText} ${also_registered.join(', ')}`);
29 }
30 },
31 },
32
33 items: [
34 {
35 xtype: 'inputpanel',
36 setValues: function(values) {
37 this.up('pveUserTagAccessEdit').registered_tags = values?.['registered-tags'] ?? [];
38 let data = values?.['user-tag-access'] ?? {};
39 return Proxmox.panel.InputPanel.prototype.setValues.call(this, data);
40 },
41 onGetValues: function(values) {
42 if (values === undefined || Object.keys(values).length === 0) {
56dee217 43 return { 'delete': 'user-tag-access' };
0a627d94
DC
44 }
45 return {
46 'user-tag-access': PVE.Parser.printPropertyString(values),
47 };
48 },
49 items: [
50 {
51 name: 'user-allow',
52 fieldLabel: gettext('Mode'),
53 xtype: 'proxmoxKVComboBox',
54 deleteEmpty: false,
55 value: '__default__',
56 comboItems: [
57 ['__default__', Proxmox.Utils.defaultText + ' (free)'],
58 ['free', 'free'],
59 ['existing', 'existing'],
60 ['list', 'list'],
61 ['none', 'none'],
62 ],
63 defaultValue: '__default__',
64 },
65 {
66 xtype: 'displayfield',
67 fieldLabel: gettext('Predefined Tags'),
68 },
69 {
70 name: 'user-allow-list',
71 xtype: 'pveListField',
72 emptyText: gettext('No Tags defined'),
73 fieldTitle: gettext('Tag'),
74 maskRe: PVE.Utils.tagCharRegex,
432aec56
DC
75 gridConfig: {
76 height: 200,
77 scrollable: true,
78 },
0a627d94
DC
79 listeners: {
80 change: 'tagChange',
81 },
82 },
83 {
84 hidden: true,
85 xtype: 'displayfield',
86 reference: 'hintField',
87 userCls: 'pmx-hint',
88 },
89 ],
90 },
91 ],
92});