]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/Settings.js
1 Ext
.define('PVE.window.Settings', {
2 extend
: 'Ext.window.Window',
5 title
: gettext('My Settings'),
13 xtype
: 'proxmoxHelpButton',
14 onlineHelp
: 'gui_my_settings',
19 text
: gettext('Close'),
21 this.up('window').close();
32 xclass
: 'Ext.app.ViewController',
34 init: function(view
) {
36 var sp
= Ext
.state
.Manager
.getProvider();
38 var username
= sp
.get('login-username') || Proxmox
.Utils
.noneText
;
39 me
.lookupReference('savedUserName').setValue(username
);
40 var vncMode
= sp
.get('novnc-scaling');
41 if (vncMode
!== undefined) {
42 me
.lookupReference('noVNCScalingGroup').setValue({ noVNCScalingField
: vncMode
});
45 let summarycolumns
= sp
.get('summarycolumns', 'auto');
46 me
.lookup('summarycolumns').setValue(summarycolumns
);
48 me
.lookup('guestNotesCollapse').setValue(sp
.get('guest-notes-collapse', 'never'));
50 var settings
= ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
51 settings
.forEach(function(setting
) {
52 var val
= localStorage
.getItem('pve-xterm-' + setting
);
53 if (val
!== undefined && val
!== null) {
54 var field
= me
.lookup(setting
);
56 field
.resetOriginalValue();
61 set_button_status: function() {
64 var form
= me
.lookup('xtermform');
65 var valid
= form
.isValid();
66 var dirty
= form
.isDirty();
68 var hasvalues
= false;
69 var values
= form
.getValues();
70 Ext
.Object
.eachValue(values
, function(value
) {
77 me
.lookup('xtermsave').setDisabled(!dirty
|| !valid
);
78 me
.lookup('xtermreset').setDisabled(!hasvalues
);
83 dirtychange
: 'set_button_status',
84 validitychange
: 'set_button_status'
87 click: function(button
) {
89 var settings
= ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
90 settings
.forEach(function(setting
) {
91 var field
= me
.lookup(setting
);
92 if (button
.reference
=== 'xtermsave') {
93 var value
= field
.getValue();
95 localStorage
.setItem('pve-xterm-' + setting
, value
);
97 localStorage
.removeItem('pve-xterm-' + setting
);
99 } else if (button
.reference
=== 'xtermreset') {
100 field
.setValue(undefined);
101 localStorage
.removeItem('pve-xterm-' + setting
);
103 field
.resetOriginalValue();
105 me
.set_button_status();
108 'button[name=reset]': {
110 var blacklist
= ['GuiCap', 'login-username', 'dash-storages'];
111 var sp
= Ext
.state
.Manager
.getProvider();
113 for (state
in sp
.state
) {
114 if (sp
.state
.hasOwnProperty(state
)) {
115 if (blacklist
.indexOf(state
) !== -1) {
123 window
.location
.reload();
126 'button[name=clear-username]': {
129 var usernamefield
= me
.lookupReference('savedUserName');
130 var sp
= Ext
.state
.Manager
.getProvider();
132 usernamefield
.setValue(Proxmox
.Utils
.noneText
);
133 sp
.clear('login-username');
136 'grid[reference=dashboard-storages]': {
137 selectionchange: function(grid
, selected
) {
139 var sp
= Ext
.state
.Manager
.getProvider();
141 // saves the selected storageids as
143 // or clears the variable
144 if (selected
.length
> 0) {
145 sp
.set('dash-storages',
146 Ext
.Array
.pluck(selected
, 'id').join(','));
148 sp
.clear('dash-storages');
151 afterrender: function(grid
) {
153 var sp
= Ext
.state
.Manager
.getProvider();
154 var store
= me
.getStore();
156 me
.suspendEvent('selectionchange');
157 var storages
= sp
.get('dash-storages') || '';
158 storages
.split(',').forEach(function(storage
){
159 // we have to get the records
160 // to be able to select them
161 if (storage
!== '') {
162 var item
= store
.getById(storage
);
168 me
.getSelectionModel().select(items
);
169 me
.resumeEvent('selectionchange');
172 'field[reference=summarycolumns]': {
173 change: function(el
, newValue
) {
174 var sp
= Ext
.state
.Manager
.getProvider();
175 sp
.set('summarycolumns', newValue
);
178 'field[reference=guestNotesCollapse]': {
179 change: function(e
, v
) {
180 Ext
.state
.Manager
.getProvider().set('guest-notes-collapse', v
);
189 title
: gettext('Webinterface Settings'),
201 xtype
: 'displayfield',
202 fieldLabel
: gettext('Dashboard Storages'),
209 reference
: 'dashboard-storages',
211 selType
: 'checkboxmodel'
214 header
: gettext('Name'),
215 dataIndex
: 'storage',
218 header
: gettext('Node'),
224 field
: ['type', 'storage', 'id', 'node'],
225 rstore
: PVE
.data
.ResourceStore
,
230 sorters
: [ 'node','storage']
242 xtype
: 'displayfield',
243 fieldLabel
: gettext('Saved User Name') + ':',
245 stateId
: 'login-username',
246 reference
: 'savedUserName',
252 cls
: 'x-btn-default-toolbar-small proxmox-inline-button',
253 text
: gettext('Reset'),
254 name
: 'clear-username',
267 xtype
: 'displayfield',
268 fieldLabel
: gettext('Layout') + ':',
273 cls
: 'x-btn-default-toolbar-small proxmox-inline-button',
274 text
: gettext('Reset'),
275 tooltip
: gettext('Reset all layout changes (for example, column widths)'),
285 xtype
: 'proxmoxKVComboBox',
286 fieldLabel
: gettext('Summary columns') + ':',
288 stateId
: 'summarycolumns',
289 reference
: 'summarycolumns',
298 xtype
: 'proxmoxKVComboBox',
299 fieldLabel
: gettext('Guest Notes') + ':',
301 stateId
: 'guest-notes-collapse',
302 reference
: 'guestNotesCollapse',
304 ['never', 'Show by default'],
305 ['always', 'Collapse by default'],
306 ['auto', 'auto (Collapse if empty)'],
318 // right margin ensures that the right border of the fieldsets
326 title
: gettext('xterm.js Settings'),
329 reference
: 'xtermform',
343 reference
: 'fontFamily',
344 emptyText
: Proxmox
.Utils
.defaultText
,
345 fieldLabel
: gettext('Font-Family')
348 xtype
: 'proxmoxintegerfield',
349 emptyText
: Proxmox
.Utils
.defaultText
,
351 reference
: 'fontSize',
353 fieldLabel
: gettext('Font-Size')
356 xtype
: 'numberfield',
357 name
: 'letterSpacing',
358 reference
: 'letterSpacing',
359 emptyText
: Proxmox
.Utils
.defaultText
,
360 fieldLabel
: gettext('Letter Spacing')
363 xtype
: 'numberfield',
366 reference
: 'lineHeight',
367 emptyText
: Proxmox
.Utils
.defaultText
,
368 fieldLabel
: gettext('Line Height')
382 reference
: 'xtermreset',
384 text
: gettext('Reset')
388 reference
: 'xtermsave',
390 text
: gettext('Save')
398 title
: gettext('noVNC Settings'),
402 fieldLabel
: gettext('Scaling mode'),
403 reference
: 'noVNCScalingGroup',
404 height
: '15px', // renders faster with value assigned
411 name
: 'noVNCScalingField',
413 boxLabel
: 'Local Scaling',
417 name
: 'noVNCScalingField',
424 change: function(el
, newValue
, undefined) {
425 var sp
= Ext
.state
.Manager
.getProvider();
426 sp
.set('novnc-scaling', newValue
.noVNCScalingField
);