]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/OptionView.js
632ae72c96b529ca1844f0e5122eb2d5f06ae9a0
1 Ext
.define('PVE.dc.OptionView', {
2 extend
: 'Proxmox.grid.ObjectGrid',
3 alias
: ['widget.pveDcOptionView'],
5 onlineHelp
: 'datacenter_configuration_file',
9 add_inputpanel_row: function(name
, text
, opts
) {
13 me
.rows
= me
.rows
|| {};
15 let canEdit
= (!opts
.hasOwnProperty('caps') || opts
.caps
);
18 defaultValue
: opts
.defaultValue
,
20 renderer
: opts
.renderer
,
22 xtype
: 'proxmoxWindowEdit',
23 width
: opts
.width
|| 350,
25 onlineHelp
: opts
.onlineHelp
,
27 labelWidth
: opts
.labelWidth
|| 100
29 setValues: function(values
) {
30 var edit_value
= values
[name
];
32 if (opts
.parseBeforeSet
) {
33 edit_value
= PVE
.Parser
.parsePropertyString(edit_value
);
36 Ext
.Array
.each(this.query('inputpanel'), function(panel
) {
37 panel
.setValues(edit_value
);
43 onGetValues: function(values
) {
44 if (values
=== undefined || Object
.keys(values
).length
=== 0) {
45 return { 'delete': name
};
48 ret_val
[name
] = PVE
.Parser
.printPropertyString(values
);
57 render_bwlimits: function(value
) {
59 return gettext("None");
62 let parsed
= PVE
.Parser
.parsePropertyString(value
);
63 return Object
.entries(parsed
)
64 .map(([k
, v
]) => k
+ ": " + Proxmox
.Utils
.format_size(v
* 1024) + "/s")
68 initComponent : function() {
71 var caps
= Ext
.state
.Manager
.get('GuiCap');
73 me
.add_combobox_row('keyboard', gettext('Keyboard Layout'), {
74 renderer
: PVE
.Utils
.render_kvm_language
,
75 comboItems
: PVE
.Utils
.kvm_keymap_array(),
76 defaultValue
: '__default__',
79 me
.add_text_row('http_proxy', gettext('HTTP proxy'), {
80 defaultValue
: Proxmox
.Utils
.noneText
,
84 me
.add_combobox_row('console', gettext('Console Viewer'), {
85 renderer
: PVE
.Utils
.render_console_viewer
,
86 comboItems
: PVE
.Utils
.console_viewer_array(),
87 defaultValue
: '__default__',
90 me
.add_text_row('email_from', gettext('Email from address'), {
93 defaultValue
: 'root@$hostname'
95 me
.add_text_row('mac_prefix', gettext('MAC address prefix'), {
98 defaultValue
: Proxmox
.Utils
.noneText
100 me
.add_inputpanel_row('migration', gettext('Migration Settings'), {
101 renderer
: PVE
.Utils
.render_dc_ha_opts
,
103 url
: "/api2/extjs/cluster/options",
106 xtype
: 'displayfield',
108 fieldLabel
: gettext('Type'),
112 xtype
: 'proxmoxNetworkSelector',
114 fieldLabel
: gettext('Network'),
116 emptyText
: Proxmox
.Utils
.defaultText
,
121 me
.add_inputpanel_row('ha', gettext('HA Settings'), {
122 renderer
: PVE
.Utils
.render_dc_ha_opts
,
124 url
: "/api2/extjs/cluster/options",
125 onlineHelp
: 'ha_manager_shutdown_policy',
127 xtype
: 'proxmoxKVComboBox',
128 name
: 'shutdown_policy',
129 fieldLabel
: gettext('Shutdown Policy'),
131 value
: '__default__',
133 ['__default__', Proxmox
.Utils
.defaultText
+ ' (conditional)' ],
134 ['freeze', 'freeze'],
135 ['failover', 'failover'],
136 ['migrate', 'migrate'],
137 ['conditional', 'conditional']
139 defaultValue
: '__default__'
142 me
.add_inputpanel_row('u2f', gettext('U2F Settings'), {
143 renderer
: PVE
.Utils
.render_dc_ha_opts
,
145 url
: "/api2/extjs/cluster/options",
146 onlineHelp
: 'pveum_configure_u2f',
150 fieldLabel
: gettext('U2F AppID URL'),
151 emptyText
: gettext('Defaults to origin'),
155 submitEmptyText
: false,
160 fieldLabel
: gettext('U2F Origin'),
161 emptyText
: gettext('Defaults to requesting host URI'),
165 submitEmptyText
: false,
168 xtype
: 'displayfield',
170 value
: gettext('NOTE: Changing an AppID breaks existing U2F registrations!'),
173 me
.add_inputpanel_row('bwlimit', gettext('Bandwidth Limits'), {
174 renderer
: me
.render_bwlimits
,
176 url
: "/api2/extjs/cluster/options",
177 parseBeforeSet
: true,
180 xtype
: 'pveBandwidthField',
182 fieldLabel
: gettext('Default'),
183 emptyText
: gettext('none'),
187 xtype
: 'pveBandwidthField',
189 fieldLabel
: gettext('Backup Restore'),
190 emptyText
: gettext('default'),
194 xtype
: 'pveBandwidthField',
196 fieldLabel
: gettext('Migration'),
197 emptyText
: gettext('default'),
201 xtype
: 'pveBandwidthField',
203 fieldLabel
: gettext('Clone'),
204 emptyText
: gettext('default'),
208 xtype
: 'pveBandwidthField',
210 fieldLabel
: gettext('Disk Move'),
211 emptyText
: gettext('default'),
215 me
.add_integer_row('max_workers', gettext('Maximal Workers/bulk-action'), {
219 maxValue
: 64, // arbitrary but generous limit as limits are good
222 me
.selModel
= Ext
.create('Ext.selection.RowModel', {});
226 text
: gettext('Edit'),
227 xtype
: 'proxmoxButton',
229 handler: function() { me
.run_editor(); },
230 selModel
: me
.selModel
232 url
: "/api2/json/cluster/options",
234 url
: "/api2/extjs/cluster/options"
239 itemdblclick
: me
.run_editor
245 // set the new value for the default console
246 me
.mon(me
.rstore
, 'load', function(store
, records
, success
) {
251 var rec
= store
.getById('console');
252 PVE
.VersionInfo
.console
= rec
.data
.value
;
253 if (rec
.data
.value
=== '__default__') {
254 delete PVE
.VersionInfo
.console
;
258 me
.on('activate', me
.rstore
.startUpdate
);
259 me
.on('destroy', me
.rstore
.stopUpdate
);
260 me
.on('deactivate', me
.rstore
.stopUpdate
);