]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/OptionView.js
use Proxmox.Utils instead of PVE.Utils
[pve-manager.git] / www / manager6 / dc / OptionView.js
CommitLineData
bb2948de
DM
1Ext.define('PVE.dc.HttpProxyEdit', {
2 extend: 'PVE.window.Edit',
3
4 initComponent : function() {
5 var me = this;
6
7 Ext.applyIf(me, {
8 subject: gettext('HTTP proxy'),
9 items: {
dbed4c1c 10 xtype: 'proxmoxtextfield',
bb2948de
DM
11 name: 'http_proxy',
12 vtype: 'HttpProxy',
e7ade592 13 emptyText: Proxmox.Utils.noneText,
bb2948de
DM
14 deleteEmpty: true,
15 value: '',
16 fieldLabel: gettext('HTTP proxy')
17 }
18 });
19
20 me.callParent();
21
22 me.load();
23 }
24});
25
26Ext.define('PVE.dc.KeyboardEdit', {
27 extend: 'PVE.window.Edit',
28
29 initComponent : function() {
30 var me = this;
31
32 Ext.applyIf(me, {
33 subject: gettext('Keyboard Layout'),
34 items: {
35 xtype: 'VNCKeyboardSelector',
36 name: 'keyboard',
f2782813 37 value: '__default__',
bb2948de
DM
38 fieldLabel: gettext('Keyboard Layout')
39 }
40 });
41
42 me.callParent();
43
44 me.load();
45 }
46});
47
48Ext.define('PVE.dc.ConsoleViewerEdit', {
49 extend: 'PVE.window.Edit',
50
51 initComponent : function() {
52 var me = this;
53
54 var data = [];
55
f2782813 56 Ext.Array.each(['__default__','vv', 'html5'], function(value) {
bb2948de
DM
57 data.push([value, PVE.Utils.render_console_viewer(value)]);
58 });
59
60 Ext.applyIf(me, {
61 subject: gettext('Console Viewer'),
62 items: {
63 xtype: 'pveKVComboBox',
64 name: 'console',
f2782813 65 value: '__default__',
d5301f23 66 fieldLabel: gettext('Console Viewer'),
22f2f9d6 67 comboItems: data
bb2948de
DM
68 }
69 });
70
71 me.callParent();
72
73 me.load();
74 }
75});
76
77Ext.define('PVE.dc.EmailFromEdit', {
78 extend: 'PVE.window.Edit',
79
80 initComponent : function() {
81 var me = this;
82
83 Ext.applyIf(me, {
84 subject: gettext('Email from address'),
85 items: {
dbed4c1c 86 xtype: 'proxmoxtextfield',
bb2948de 87 name: 'email_from',
8ca163bd 88 vtype: 'pveMail',
185a77e5 89 emptyText: 'root@$hostname',
bb2948de
DM
90 deleteEmpty: true,
91 value: '',
92 fieldLabel: gettext('Email from address')
93 }
94 });
95
96 me.callParent();
97
98 me.load();
99 }
100});
101
4050aade
WB
102Ext.define('PVE.dc.MacPrefixEdit', {
103 extend: 'PVE.window.Edit',
104
105 initComponent : function() {
106 var me = this;
107
108 Ext.applyIf(me, {
109 subject: gettext('MAC address prefix'),
110 items: {
dbed4c1c 111 xtype: 'proxmoxtextfield',
4050aade
WB
112 name: 'mac_prefix',
113 regex: /^[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?$/i,
114 regexText: gettext('Example') + ': 02:8f',
e7ade592 115 emptyText: Proxmox.Utils.noneText,
4050aade
WB
116 deleteEmpty: true,
117 value: '',
118 fieldLabel: gettext('MAC address prefix')
119 }
120 });
121
122 me.callParent();
123
124 me.load();
125 }
126});
127
bb2948de
DM
128Ext.define('PVE.dc.OptionView', {
129 extend: 'PVE.grid.ObjectGrid',
130 alias: ['widget.pveDcOptionView'],
131
ba93a9c6
DC
132 onlineHelp: 'datacenter_configuration_file',
133
bb2948de
DM
134 initComponent : function() {
135 var me = this;
136
137 var reload = function() {
138 me.rstore.load();
139 };
140
141 var rows = {
142 keyboard: {
143 header: gettext('Keyboard Layout'),
144 editor: 'PVE.dc.KeyboardEdit',
145 renderer: PVE.Utils.render_kvm_language,
146 required: true
147 },
148 http_proxy: {
149 header: gettext('HTTP proxy'),
150 editor: 'PVE.dc.HttpProxyEdit',
151 required: true,
152 renderer: function(value) {
153 if (!value) {
e7ade592 154 return Proxmox.Utils.noneText;
bb2948de
DM
155 }
156 return value;
157 }
158 },
159 console: {
160 header: gettext('Console Viewer'),
161 editor: 'PVE.dc.ConsoleViewerEdit',
162 required: true,
163 renderer: PVE.Utils.render_console_viewer
164 },
165 email_from: {
166 header: gettext('Email from address'),
167 editor: 'PVE.dc.EmailFromEdit',
168 required: true,
169 renderer: function(value) {
170 if (!value) {
185a77e5 171 return 'root@$hostname';
bb2948de
DM
172 }
173 return value;
174 }
4050aade
WB
175 },
176 mac_prefix: {
177 header: gettext('MAC address prefix'),
178 editor: 'PVE.dc.MacPrefixEdit',
179 required: true,
180 renderer: function(value) {
181 if (!value) {
e7ade592 182 return Proxmox.Utils.noneText;
4050aade
WB
183 }
184 return value;
185 }
bb2948de
DM
186 }
187 };
188
189 var sm = Ext.create('Ext.selection.RowModel', {});
190
191 var run_editor = function() {
192 var rec = sm.getSelection()[0];
193 if (!rec) {
194 return;
195 }
196
197 var rowdef = rows[rec.data.key];
198 if (!rowdef.editor) {
199 return;
200 }
201
202 var win = Ext.create(rowdef.editor, {
203 url: "/api2/extjs/cluster/options",
204 confid: rec.data.key
205 });
206 win.show();
207 win.on('destroy', reload);
208 };
209
5720fafa 210 var edit_btn = new Proxmox.button.Button({
bb2948de
DM
211 text: gettext('Edit'),
212 disabled: true,
213 selModel: sm,
214 handler: run_editor
215 });
216
bc5d0cf8 217 Ext.apply(me, {
bb2948de 218 url: "/api2/json/cluster/options",
bb2948de
DM
219 interval: 1000,
220 selModel: sm,
221 tbar: [ edit_btn ],
222 rows: rows,
223 listeners: {
c0b3df6e
EK
224 itemdblclick: run_editor,
225 activate: reload
bb2948de
DM
226 }
227 });
228
229 me.callParent();
bb2948de
DM
230 }
231});