]>
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 var settings
= ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
49 settings
.forEach(function(setting
) {
50 var val
= localStorage
.getItem('pve-xterm-' + setting
);
51 if (val
!== undefined && val
!== null) {
52 var field
= me
.lookup(setting
);
54 field
.resetOriginalValue();
59 set_button_status: function() {
62 var form
= me
.lookup('xtermform');
63 var valid
= form
.isValid();
64 var dirty
= form
.isDirty();
66 var hasvalues
= false;
67 var values
= form
.getValues();
68 Ext
.Object
.eachValue(values
, function(value
) {
75 me
.lookup('xtermsave').setDisabled(!dirty
|| !valid
);
76 me
.lookup('xtermreset').setDisabled(!hasvalues
);
81 dirtychange
: 'set_button_status',
82 validitychange
: 'set_button_status'
85 click: function(button
) {
87 var settings
= ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
88 settings
.forEach(function(setting
) {
89 var field
= me
.lookup(setting
);
90 if (button
.reference
=== 'xtermsave') {
91 var value
= field
.getValue();
93 localStorage
.setItem('pve-xterm-' + setting
, value
);
95 localStorage
.removeItem('pve-xterm-' + setting
);
97 } else if (button
.reference
=== 'xtermreset') {
98 field
.setValue(undefined);
99 localStorage
.removeItem('pve-xterm-' + setting
);
101 field
.resetOriginalValue();
103 me
.set_button_status();
106 'button[name=reset]': {
108 var blacklist
= ['GuiCap', 'login-username', 'dash-storages'];
109 var sp
= Ext
.state
.Manager
.getProvider();
111 for (state
in sp
.state
) {
112 if (sp
.state
.hasOwnProperty(state
)) {
113 if (blacklist
.indexOf(state
) !== -1) {
121 window
.location
.reload();
124 'button[name=clear-username]': {
127 var usernamefield
= me
.lookupReference('savedUserName');
128 var sp
= Ext
.state
.Manager
.getProvider();
130 usernamefield
.setValue(Proxmox
.Utils
.noneText
);
131 sp
.clear('login-username');
134 'grid[reference=dashboard-storages]': {
135 selectionchange: function(grid
, selected
) {
137 var sp
= Ext
.state
.Manager
.getProvider();
139 // saves the selected storageids as
141 // or clears the variable
142 if (selected
.length
> 0) {
143 sp
.set('dash-storages',
144 Ext
.Array
.pluck(selected
, 'id').join(','));
146 sp
.clear('dash-storages');
149 afterrender: function(grid
) {
151 var sp
= Ext
.state
.Manager
.getProvider();
152 var store
= me
.getStore();
154 me
.suspendEvent('selectionchange');
155 var storages
= sp
.get('dash-storages') || '';
156 storages
.split(',').forEach(function(storage
){
157 // we have to get the records
158 // to be able to select them
159 if (storage
!== '') {
160 var item
= store
.getById(storage
);
166 me
.getSelectionModel().select(items
);
167 me
.resumeEvent('selectionchange');
170 'field[reference=summarycolumns]': {
171 change: function(el
, newValue
) {
172 var sp
= Ext
.state
.Manager
.getProvider();
173 sp
.set('summarycolumns', newValue
);
182 title
: gettext('Webinterface Settings'),
194 xtype
: 'displayfield',
195 fieldLabel
: gettext('Dashboard Storages'),
202 reference
: 'dashboard-storages',
204 selType
: 'checkboxmodel'
207 header
: gettext('Name'),
208 dataIndex
: 'storage',
211 header
: gettext('Node'),
217 field
: ['type', 'storage', 'id', 'node'],
218 rstore
: PVE
.data
.ResourceStore
,
223 sorters
: [ 'node','storage']
235 xtype
: 'displayfield',
236 fieldLabel
: gettext('Saved User Name') + ':',
238 stateId
: 'login-username',
239 reference
: 'savedUserName',
245 cls
: 'x-btn-default-toolbar-small proxmox-inline-button',
246 text
: gettext('Reset'),
247 name
: 'clear-username',
260 xtype
: 'displayfield',
261 fieldLabel
: gettext('Layout') + ':',
266 cls
: 'x-btn-default-toolbar-small proxmox-inline-button',
267 text
: gettext('Reset'),
268 tooltip
: gettext('Reset all layout changes (for example, column widths)'),
278 xtype
: 'proxmoxKVComboBox',
279 fieldLabel
: gettext('Summary columns') + ':',
281 stateId
: 'summarycolumns',
282 reference
: 'summarycolumns',
299 // right margin ensures that the right border of the fieldsets
307 title
: gettext('xterm.js Settings'),
310 reference
: 'xtermform',
324 reference
: 'fontFamily',
325 emptyText
: Proxmox
.Utils
.defaultText
,
326 fieldLabel
: gettext('Font-Family')
329 xtype
: 'proxmoxintegerfield',
330 emptyText
: Proxmox
.Utils
.defaultText
,
332 reference
: 'fontSize',
334 fieldLabel
: gettext('Font-Size')
337 xtype
: 'numberfield',
338 name
: 'letterSpacing',
339 reference
: 'letterSpacing',
340 emptyText
: Proxmox
.Utils
.defaultText
,
341 fieldLabel
: gettext('Letter Spacing')
344 xtype
: 'numberfield',
347 reference
: 'lineHeight',
348 emptyText
: Proxmox
.Utils
.defaultText
,
349 fieldLabel
: gettext('Line Height')
363 reference
: 'xtermreset',
365 text
: gettext('Reset')
369 reference
: 'xtermsave',
371 text
: gettext('Save')
379 title
: gettext('noVNC Settings'),
383 fieldLabel
: gettext('Scaling mode'),
384 reference
: 'noVNCScalingGroup',
385 height
: '15px', // renders faster with value assigned
392 name
: 'noVNCScalingField',
394 boxLabel
: 'Local Scaling',
398 name
: 'noVNCScalingField',
405 change: function(el
, newValue
, undefined) {
406 var sp
= Ext
.state
.Manager
.getProvider();
407 sp
.set('novnc-scaling', newValue
.noVNCScalingField
);