X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=www%2Fmanager6%2Fwindow%2FSettings.js;h=5cf7a70f8aa63387cff9ca56639099e266131253;hb=c7f66bd038bb8e15ba43575801c960ddef870c59;hp=3bf974f0e046e8012fe0d5c1279b257285c20dae;hpb=d27a44a615441d00a01bbc3ee798df36c33c690d;p=pve-manager.git diff --git a/www/manager6/window/Settings.js b/www/manager6/window/Settings.js index 3bf974f0..5cf7a70f 100644 --- a/www/manager6/window/Settings.js +++ b/www/manager6/window/Settings.js @@ -12,15 +12,15 @@ Ext.define('PVE.window.Settings', { { xtype: 'proxmoxHelpButton', onlineHelp: 'gui_my_settings', - hidden: false + hidden: false, }, '->', { text: gettext('Close'), handler: function() { this.up('window').close(); - } - } + }, + }, ], layout: 'hbox', @@ -34,10 +34,8 @@ Ext.define('PVE.window.Settings', { var username = sp.get('login-username') || Proxmox.Utils.noneText; me.lookupReference('savedUserName').setValue(Ext.String.htmlEncode(username)); - var vncMode = sp.get('novnc-scaling'); - if (vncMode !== undefined) { - me.lookupReference('noVNCScalingGroup').setValue({ noVNCScalingField: vncMode }); - } + var vncMode = sp.get('novnc-scaling') || 'auto'; + me.lookupReference('noVNCScalingGroup').setValue({ noVNCScalingField: vncMode }); let summarycolumns = sp.get('summarycolumns', 'auto'); me.lookup('summarycolumns').setValue(summarycolumns); @@ -56,29 +54,20 @@ Ext.define('PVE.window.Settings', { }, set_button_status: function() { - var me = this; + let me = this; + let form = me.lookup('xtermform'); - var form = me.lookup('xtermform'); - var valid = form.isValid(); - var dirty = form.isDirty(); - - var hasvalues = false; - var values = form.getValues(); - Ext.Object.eachValue(values, function(value) { - if (value) { - hasvalues = true; - return false; - } - }); + let valid = form.isValid(), dirty = form.isDirty(); + let hasValues = Object.values(form.getValues()).some(v => !!v); me.lookup('xtermsave').setDisabled(!dirty || !valid); - me.lookup('xtermreset').setDisabled(!hasvalues); + me.lookup('xtermreset').setDisabled(!hasValues); }, control: { '#xtermjs form': { dirtychange: 'set_button_status', - validitychange: 'set_button_status' + validitychange: 'set_button_status', }, '#xtermjs button': { click: function(button) { @@ -100,84 +89,64 @@ Ext.define('PVE.window.Settings', { field.resetOriginalValue(); }); me.set_button_status(); - } + }, }, 'button[name=reset]': { - click: function () { - var blacklist = ['GuiCap', 'login-username', 'dash-storages']; - var sp = Ext.state.Manager.getProvider(); - var state; - for (state in sp.state) { - if (sp.state.hasOwnProperty(state)) { - if (blacklist.indexOf(state) !== -1) { - continue; - } - + click: function() { + let blacklist = ['GuiCap', 'login-username', 'dash-storages']; + let sp = Ext.state.Manager.getProvider(); + for (const state of Object.keys(sp.state)) { + if (!blacklist.includes(state)) { sp.clear(state); } } - window.location.reload(); - } + }, }, 'button[name=clear-username]': { - click: function () { - var me = this; - var usernamefield = me.lookupReference('savedUserName'); - var sp = Ext.state.Manager.getProvider(); - - usernamefield.setValue(Proxmox.Utils.noneText); - sp.clear('login-username'); - } + click: function() { + let me = this; + me.lookupReference('savedUserName').setValue(Proxmox.Utils.noneText); + Ext.state.Manager.getProvider().clear('login-username'); + }, }, 'grid[reference=dashboard-storages]': { selectionchange: function(grid, selected) { var me = this; var sp = Ext.state.Manager.getProvider(); - // saves the selected storageids as - // "id1,id2,id3,..." - // or clears the variable + // saves the selected storageids as "id1,id2,id3,..." or clears the variable if (selected.length > 0) { - sp.set('dash-storages', - Ext.Array.pluck(selected, 'id').join(',')); + sp.set('dash-storages', Ext.Array.pluck(selected, 'id').join(',')); } else { sp.clear('dash-storages'); } }, afterrender: function(grid) { - var me = grid; - var sp = Ext.state.Manager.getProvider(); - var store = me.getStore(); - var items = []; - me.suspendEvent('selectionchange'); - var storages = sp.get('dash-storages') || ''; - storages.split(',').forEach(function(storage){ - // we have to get the records - // to be able to select them - if (storage !== '') { - var item = store.getById(storage); + let store = grid.getStore(); + let storages = Ext.state.Manager.getProvider().get('dash-storages') || ''; + + let items = []; + storages.split(',').forEach(storage => { + if (storage !== '') { // we have to get the records to be able to select them + let item = store.getById(storage); if (item) { items.push(item); } } }); - me.getSelectionModel().select(items); - me.resumeEvent('selectionchange'); - } + grid.suspendEvent('selectionchange'); + grid.getSelectionModel().select(items); + grid.resumeEvent('selectionchange'); + }, }, 'field[reference=summarycolumns]': { - change: function(el, newValue) { - var sp = Ext.state.Manager.getProvider(); - sp.set('summarycolumns', newValue); - } + change: (el, newValue) => Ext.state.Manager.getProvider().set('summarycolumns', newValue), }, 'field[reference=guestNotesCollapse]': { - change: function(e, v) { - Ext.state.Manager.getProvider().set('guest-notes-collapse', v); - }, + change: (e, v) => Ext.state.Manager.getProvider().set('guest-notes-collapse', v), }, - } + }, }, items: [{ @@ -187,34 +156,34 @@ Ext.define('PVE.window.Settings', { margin: '5', layout: { type: 'vbox', - align: 'left' + align: 'left', }, defaults: { width: '100%', - margin: '0 0 10 0' + margin: '0 0 10 0', }, items: [ { xtype: 'displayfield', fieldLabel: gettext('Dashboard Storages'), labelAlign: 'left', - labelWidth: '50%' + labelWidth: '50%', }, { xtype: 'grid', maxHeight: 150, reference: 'dashboard-storages', selModel: { - selType: 'checkboxmodel' + selType: 'checkboxmodel', }, columns: [{ header: gettext('Name'), dataIndex: 'storage', - flex: 1 - },{ + flex: 1, + }, { header: gettext('Node'), dataIndex: 'node', - flex: 1 + flex: 1, }], store: { type: 'diff', @@ -222,27 +191,27 @@ Ext.define('PVE.window.Settings', { rstore: PVE.data.ResourceStore, filters: [{ property: 'type', - value: 'storage' + value: 'storage', }], - sorters: [ 'node','storage'] - } + sorters: ['node', 'storage'], + }, }, { xtype: 'box', - autoEl: { tag: 'hr'} + autoEl: { tag: 'hr' }, }, { xtype: 'container', - layout: 'hbox', + layout: 'hbox', items: [ { xtype: 'displayfield', fieldLabel: gettext('Saved User Name') + ':', - labelWidth: '150', + labelWidth: 150, stateId: 'login-username', reference: 'savedUserName', flex: 1, - value: '' + value: '', }, { xtype: 'button', @@ -250,11 +219,11 @@ Ext.define('PVE.window.Settings', { text: gettext('Reset'), name: 'clear-username', }, - ] + ], }, { xtype: 'box', - autoEl: { tag: 'hr'} + autoEl: { tag: 'hr' }, }, { xtype: 'container', @@ -272,11 +241,11 @@ Ext.define('PVE.window.Settings', { tooltip: gettext('Reset all layout changes (for example, column widths)'), name: 'reset', }, - ] + ], }, { xtype: 'box', - autoEl: { tag: 'hr'} + autoEl: { tag: 'hr' }, }, { xtype: 'proxmoxKVComboBox', @@ -303,7 +272,7 @@ Ext.define('PVE.window.Settings', { ['auto', 'auto (Collapse if empty)'], ], }, - ] + ], }, { xtype: 'container', @@ -314,9 +283,9 @@ Ext.define('PVE.window.Settings', { width: '100%', // right margin ensures that the right border of the fieldsets // is shown - margin: '0 2 10 0' + margin: '0 2 10 0', }, - items:[ + items: [ { xtype: 'fieldset', itemId: 'xtermjs', @@ -327,7 +296,7 @@ Ext.define('PVE.window.Settings', { border: false, layout: { type: 'vbox', - algin: 'left' + algin: 'left', }, defaults: { width: '100%', @@ -339,7 +308,7 @@ Ext.define('PVE.window.Settings', { name: 'fontFamily', reference: 'fontFamily', emptyText: Proxmox.Utils.defaultText, - fieldLabel: gettext('Font-Family') + fieldLabel: gettext('Font-Family'), }, { xtype: 'proxmoxintegerfield', @@ -347,14 +316,14 @@ Ext.define('PVE.window.Settings', { name: 'fontSize', reference: 'fontSize', minValue: 1, - fieldLabel: gettext('Font-Size') + fieldLabel: gettext('Font-Size'), }, { xtype: 'numberfield', name: 'letterSpacing', reference: 'letterSpacing', emptyText: Proxmox.Utils.defaultText, - fieldLabel: gettext('Letter Spacing') + fieldLabel: gettext('Letter Spacing'), }, { xtype: 'numberfield', @@ -362,13 +331,13 @@ Ext.define('PVE.window.Settings', { minValue: 0.1, reference: 'lineHeight', emptyText: Proxmox.Utils.defaultText, - fieldLabel: gettext('Line Height') + fieldLabel: gettext('Line Height'), }, { xtype: 'container', layout: { type: 'hbox', - pack: 'end' + pack: 'end', }, defaults: { margin: '0 0 0 5', @@ -378,19 +347,19 @@ Ext.define('PVE.window.Settings', { xtype: 'button', reference: 'xtermreset', disabled: true, - text: gettext('Reset') + text: gettext('Reset'), }, { xtype: 'button', reference: 'xtermsave', disabled: true, - text: gettext('Save') - } - ] - } - ] - }] - },{ + text: gettext('Save'), + }, + ], + }, + ], + }], + }, { xtype: 'fieldset', title: gettext('noVNC Settings'), items: [ @@ -403,29 +372,39 @@ Ext.define('PVE.window.Settings', { type: 'hbox', }, items: [ + { + xtype: 'radiofield', + name: 'noVNCScalingField', + inputValue: 'auto', + boxLabel: 'Auto', + }, { xtype: 'radiofield', name: 'noVNCScalingField', inputValue: 'scale', boxLabel: 'Local Scaling', - checked: true, - },{ + margin: '0 0 0 10', + }, { xtype: 'radiofield', name: 'noVNCScalingField', inputValue: 'off', boxLabel: 'Off', margin: '0 0 0 10', - } + }, ], listeners: { - change: function(el, newValue, undefined) { - var sp = Ext.state.Manager.getProvider(); - sp.set('novnc-scaling', newValue.noVNCScalingField); - } + change: function(el, { noVNCScalingField }) { + let provider = Ext.state.Manager.getProvider(); + if (noVNCScalingField === 'auto') { + provider.clear('novnc-scaling'); + } else { + provider.set('novnc-scaling', noVNCScalingField); + } + }, }, }, - ] + ], }, - ] + ], }], });