]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/Settings.js
61eabde309e1abc86e6a623c985c338da53d546c
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(vncMode
);
45 var settings
= ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
46 settings
.forEach(function(setting
) {
47 var val
= localStorage
.getItem('pve-xterm-' + setting
);
48 if (val
!== undefined && val
!== null) {
49 var field
= me
.lookup(setting
);
51 field
.resetOriginalValue();
56 set_button_status: function() {
59 var form
= me
.lookup('xtermform');
60 var valid
= form
.isValid();
61 var dirty
= form
.isDirty();
63 var hasvalues
= false;
64 var values
= form
.getValues();
65 Ext
.Object
.eachValue(values
, function(value
) {
72 me
.lookup('xtermsave').setDisabled(!dirty
|| !valid
);
73 me
.lookup('xtermreset').setDisabled(!hasvalues
);
78 dirtychange
: 'set_button_status',
79 validitychange
: 'set_button_status'
82 click: function(button
) {
84 var settings
= ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
85 settings
.forEach(function(setting
) {
86 var field
= me
.lookup(setting
);
87 if (button
.reference
=== 'xtermsave') {
88 var value
= field
.getValue();
90 localStorage
.setItem('pve-xterm-' + setting
, value
);
92 localStorage
.removeItem('pve-xterm-' + setting
);
94 } else if (button
.reference
=== 'xtermreset') {
95 field
.setValue(undefined);
96 localStorage
.removeItem('pve-xterm-' + setting
);
98 field
.resetOriginalValue();
100 me
.set_button_status();
103 'button[name=reset]': {
105 var blacklist
= ['GuiCap', 'login-username', 'dash-storages'];
106 var sp
= Ext
.state
.Manager
.getProvider();
108 for (state
in sp
.state
) {
109 if (sp
.state
.hasOwnProperty(state
)) {
110 if (blacklist
.indexOf(state
) !== -1) {
118 window
.location
.reload();
121 'button[name=clear-username]': {
124 var usernamefield
= me
.lookupReference('savedUserName');
125 var sp
= Ext
.state
.Manager
.getProvider();
127 usernamefield
.setValue(Proxmox
.Utils
.noneText
);
128 sp
.clear('login-username');
131 'grid[reference=dashboard-storages]': {
132 selectionchange: function(grid
, selected
) {
134 var sp
= Ext
.state
.Manager
.getProvider();
136 // saves the selected storageids as
138 // or clears the variable
139 if (selected
.length
> 0) {
140 sp
.set('dash-storages',
141 Ext
.Array
.pluck(selected
, 'id').join(','));
143 sp
.clear('dash-storages');
146 afterrender: function(grid
) {
148 var sp
= Ext
.state
.Manager
.getProvider();
149 var store
= me
.getStore();
151 me
.suspendEvent('selectionchange');
152 var storages
= sp
.get('dash-storages') || '';
153 storages
.split(',').forEach(function(storage
){
154 // we have to get the records
155 // to be able to select them
156 if (storage
!== '') {
157 var item
= store
.getById(storage
);
163 me
.getSelectionModel().select(items
);
164 me
.resumeEvent('selectionchange');
173 title
: gettext('Webinterface Settings'),
185 xtype
: 'displayfield',
186 fieldLabel
: gettext('Dashboard Storages'),
193 reference
: 'dashboard-storages',
195 selType
: 'checkboxmodel'
198 header
: gettext('Name'),
199 dataIndex
: 'storage',
202 header
: gettext('Node'),
208 field
: ['type', 'storage', 'id', 'node'],
209 rstore
: PVE
.data
.ResourceStore
,
214 sorters
: [ 'node','storage']
226 xtype
: 'displayfield',
227 fieldLabel
: gettext('Saved User Name:'),
229 stateId
: 'login-username',
230 reference
: 'savedUserName',
236 cls
: 'x-btn-default-toolbar-small proxmox-inline-button',
237 text
: gettext('Reset'),
238 name
: 'clear-username',
251 xtype
: 'displayfield',
252 fieldLabel
: gettext('Layout:'),
257 cls
: 'x-btn-default-toolbar-small proxmox-inline-button',
258 text
: gettext('Reset'),
259 tooltip
: gettext('Reset all layout changes (for example, column widths)'),
272 // right margin ensures that the right border of the fieldsets
280 title
: gettext('xterm.js Settings'),
283 reference
: 'xtermform',
297 reference
: 'fontFamily',
298 emptyText
: Proxmox
.Utils
.defaultText
,
299 fieldLabel
: gettext('Font-Family')
302 xtype
: 'proxmoxintegerfield',
303 emptyText
: Proxmox
.Utils
.defaultText
,
305 reference
: 'fontSize',
307 fieldLabel
: gettext('Font-Size')
310 xtype
: 'numberfield',
311 name
: 'letterSpacing',
312 reference
: 'letterSpacing',
313 emptyText
: Proxmox
.Utils
.defaultText
,
314 fieldLabel
: gettext('Letter Spacing')
317 xtype
: 'numberfield',
320 reference
: 'lineHeight',
321 emptyText
: Proxmox
.Utils
.defaultText
,
322 fieldLabel
: gettext('Line Height')
333 reference
: 'xtermreset',
335 text
: gettext('Reset')
339 reference
: 'xtermsave',
341 text
: gettext('Save')
349 title
: gettext('noVNC Settings'),
353 fieldLabel
: gettext('Scaling mode'),
354 reference
: 'noVNCScalingGroup',
355 height
: '15px', // renders faster with value assigned
362 name
: 'noVNCScalingField',
364 boxLabel
: 'Local Scaling',
368 name
: 'noVNCScalingField',
375 change: function(el
, newValue
, undefined) {
376 var sp
= Ext
.state
.Manager
.getProvider();
377 sp
.set('novnc-scaling', newValue
);