From 05a977a227dab87439b0a84b726440d019e74e6a Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Sat, 6 Jun 2020 17:15:42 +0200 Subject: [PATCH] make eslint 100% happy lots of churn and changes but will allow to enforce linting again in the build system. Also switch over from var to let. Signed-off-by: Thomas Lamprecht --- Toolkit.js | 209 +++++++++++++++-------------- Utils.js | 79 ++++++----- button/Button.js | 22 +-- button/HelpButton.js | 32 ++--- data/DiffStore.js | 18 +-- data/ObjectStore.js | 6 +- data/ProxmoxProxy.js | 3 +- data/RRDStore.js | 10 +- data/reader/JsonObject.js | 20 +-- form/BondModeSelector.js | 2 +- form/Checkbox.js | 6 +- form/ComboGrid.js | 273 +++++++++++++++++++------------------- form/DateTimeField.js | 18 +-- form/IntegerField.js | 2 +- form/KVComboBox.js | 13 +- form/NetworkSelector.js | 4 +- form/RRDTypeSelector.js | 6 +- form/RealmComboBox.js | 6 +- form/TextField.js | 6 +- grid/ObjectGrid.js | 54 ++++---- grid/PendingObjectGrid.js | 47 ++++--- mixin/CBind.js | 58 ++++---- node/APT.js | 34 ++--- node/DNSEdit.js | 2 +- node/DNSView.js | 6 +- node/HostsView.js | 28 ++-- node/NetworkEdit.js | 24 ++-- node/NetworkView.js | 79 +++++------ node/ServiceView.js | 66 +++++---- node/TimeEdit.js | 2 +- node/TimeView.js | 12 +- panel/GaugeWidget.js | 8 +- panel/InputPanel.js | 18 +-- panel/JournalView.js | 82 ++++++------ panel/LogView.js | 74 +++++------ panel/RRDChart.js | 36 +++-- window/Edit.js | 1 - window/TaskViewer.js | 52 ++++---- 38 files changed, 702 insertions(+), 716 deletions(-) diff --git a/Toolkit.js b/Toolkit.js index 30f2a88..d528ea7 100644 --- a/Toolkit.js +++ b/Toolkit.js @@ -14,16 +14,16 @@ Ext.apply(Ext.form.field.VTypes, { return Proxmox.Utils.IP4_match.test(v); }, IPAddressText: gettext('Example') + ': 192.168.1.1', - IPAddressMask: /[\d\.]/i, + IPAddressMask: /[\d.]/i, IPCIDRAddress: function(v) { - var result = Proxmox.Utils.IP4_cidr_match.exec(v); + let result = Proxmox.Utils.IP4_cidr_match.exec(v); // limits according to JSON Schema see // pve-common/src/PVE/JSONSchema.pm return result !== null && result[1] >= 8 && result[1] <= 32; }, - IPCIDRAddressText: gettext('Example') + ': 192.168.1.1/24' + "
" + gettext('Valid CIDR Range') + ': 8-32', - IPCIDRAddressMask: /[\d\.\/]/i, + IPCIDRAddressText: gettext('Example') + ': 192.168.1.1/24
' + gettext('Valid CIDR Range') + ': 8-32', + IPCIDRAddressMask: /[\d./]/i, IP6Address: function(v) { return Proxmox.Utils.IP6_match.test(v); @@ -32,13 +32,13 @@ Ext.apply(Ext.form.field.VTypes, { IP6AddressMask: /[A-Fa-f0-9:]/, IP6CIDRAddress: function(v) { - var result = Proxmox.Utils.IP6_cidr_match.exec(v); + let result = Proxmox.Utils.IP6_cidr_match.exec(v); // limits according to JSON Schema see // pve-common/src/PVE/JSONSchema.pm return result !== null && result[1] >= 8 && result[1] <= 128; }, - IP6CIDRAddressText: gettext('Example') + ': 2001:DB8::42/64' + "
" + gettext('Valid CIDR Range') + ': 8-128', - IP6CIDRAddressMask: /[A-Fa-f0-9:\/]/, + IP6CIDRAddressText: gettext('Example') + ': 2001:DB8::42/64
' + gettext('Valid CIDR Range') + ': 8-128', + IP6CIDRAddressMask: /[A-Fa-f0-9:/]/, IP6PrefixLength: function(v) { return v >= 0 && v <= 128; @@ -50,10 +50,10 @@ Ext.apply(Ext.form.field.VTypes, { return Proxmox.Utils.IP64_match.test(v); }, IP64AddressText: gettext('Example') + ': 192.168.1.1 2001:DB8::42', - IP64AddressMask: /[A-Fa-f0-9\.:]/, + IP64AddressMask: /[A-Fa-f0-9.:]/, IP64CIDRAddress: function(v) { - var result = Proxmox.Utils.IP64_cidr_match.exec(v); + let result = Proxmox.Utils.IP64_cidr_match.exec(v); if (result === null) { return false; } @@ -66,7 +66,7 @@ Ext.apply(Ext.form.field.VTypes, { } }, IP64CIDRAddressText: gettext('Example') + ': 192.168.1.1/24 2001:DB8::42/64', - IP64CIDRAddressMask: /[A-Fa-f0-9\.:\/]/, + IP64CIDRAddressMask: /[A-Fa-f0-9.:/]/, MacAddress: function(v) { return (/^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$/).test(v); @@ -101,24 +101,24 @@ Ext.apply(Ext.form.field.VTypes, { InterfaceName: function(v) { return (/^[a-z][a-z0-9_]{1,20}$/).test(v); }, - InterfaceNameText: gettext("Allowed characters") + ": 'a-z', '0-9', '_'" + "
" + - gettext("Minimum characters") + ": 2" + "
" + - gettext("Maximum characters") + ": 21" + "
" + + InterfaceNameText: gettext("Allowed characters") + ": 'a-z', '0-9', '_'
" + + gettext("Minimum characters") + ": 2
" + + gettext("Maximum characters") + ": 21
" + gettext("Must start with") + ": 'a-z'", StorageId: function(v) { - return (/^[a-z][a-z0-9\-\_\.]*[a-z0-9]$/i).test(v); + return (/^[a-z][a-z0-9\-_.]*[a-z0-9]$/i).test(v); }, - StorageIdText: gettext("Allowed characters") + ": 'A-Z', 'a-z', '0-9', '-', '_', '.'" + "
" + - gettext("Minimum characters") + ": 2" + "
" + + StorageIdText: gettext("Allowed characters") + ": 'A-Z', 'a-z', '0-9', '-', '_', '.'
" + + gettext("Minimum characters") + ": 2
" + gettext("Must start with") + ": 'A-Z', 'a-z'
" + gettext("Must end with") + ": 'A-Z', 'a-z', '0-9'
", ConfigId: function(v) { - return (/^[a-z][a-z0-9\_]+$/i).test(v); + return (/^[a-z][a-z0-9_]+$/i).test(v); }, - ConfigIdText: gettext("Allowed characters") + ": 'A-Z', 'a-z', '0-9', '_'" + "
" + - gettext("Minimum characters") + ": 2" + "
" + + ConfigIdText: gettext("Allowed characters") + ": 'A-Z', 'a-z', '0-9', '_'
" + + gettext("Minimum characters") + ": 2
" + gettext("Must start with") + ": " + gettext("letter"), HttpProxy: function(v) { @@ -133,7 +133,7 @@ Ext.apply(Ext.form.field.VTypes, { // workaround for https://www.sencha.com/forum/showthread.php?302150 proxmoxMail: function(v) { - return (/^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,63}$/).test(v); + return (/^(\w+)([-+.][\w]+)*@(\w[-\w]*\.){1,5}([A-Za-z]){2,63}$/).test(v); }, proxmoxMailText: gettext('Example') + ": user@example.com", @@ -148,10 +148,10 @@ Ext.apply(Ext.form.field.VTypes, { DnsOrIpText: gettext('Not a valid DNS name or IP address.'), HostList: function(v) { - var list = v.split(/[\ \,\;]+/); - var i; + let list = v.split(/[ ,;]+/); + let i; for (i = 0; i < list.length; i++) { - if (list[i] == "") { + if (list[i] === '') { continue; } @@ -168,9 +168,8 @@ Ext.apply(Ext.form.field.VTypes, { password: function(val, field) { if (field.initialPassField) { - var pwd = field.up('form').down( - '[name=' + field.initialPassField + ']'); - return val == pwd.getValue(); + let pwd = field.up('form').down(`[name=${field.initialPassField}]`); + return val === pwd.getValue(); } return true; }, @@ -184,7 +183,7 @@ Ext.apply(Ext.form.field.VTypes, { Ext.define('EXTJS_23846.Element', { override: 'Ext.dom.Element', }, function(Element) { - var supports = Ext.supports, + let supports = Ext.supports, proto = Element.prototype, eventMap = proto.eventMap, additiveEvents = proto.additiveEvents; @@ -213,11 +212,11 @@ Ext.define('EXTJS_23846.Element', { Ext.define('EXTJS_23846.Gesture', { override: 'Ext.event.publisher.Gesture', }, function(Gesture) { - var me = Gesture.instance; + let gestures = Gesture.instance; if (Ext.supports.TouchEvents && !Ext.isWebKit && Ext.os.is.Desktop) { - me.handledDomEvents.push('mousedown', 'mousemove', 'mouseup'); - me.registerEvents(); + gestures.handledDomEvents.push('mousedown', 'mousemove', 'mouseup'); + gestures.registerEvents(); } }); @@ -226,7 +225,7 @@ Ext.define('EXTJS_18900.Pie', { // from 6.0.2 betweenAngle: function(x, a, b) { - var pp = Math.PI * 2, + let pp = Math.PI * 2, offset = this.rotationOffset; if (a === b) { @@ -273,7 +272,7 @@ Ext.define('Proxmox.UnderlayPool', { override: 'Ext.dom.UnderlayPool', checkOut: function() { - var cache = this.cache, + let cache = this.cache, len = cache.length, el; @@ -324,12 +323,13 @@ Ext.define('Proxmox.form.ComboBox', { reset: function() { // copied from combobox - var me = this; + let me = this; me.callParent(); // clear and set when not the same - var value = me.getValue(); - if (Ext.isArray(me.originalValue) && Ext.isArray(value) && !Ext.Array.equals(value, me.originalValue)) { + let value = me.getValue(); + if (Ext.isArray(me.originalValue) && Ext.isArray(value) && + !Ext.Array.equals(value, me.originalValue)) { me.clearValue(); me.setValue(me.originalValue); } @@ -373,67 +373,66 @@ Ext.define(null, { jumpToFocus: false, saveFocusState: function() { - var me = this, - store = me.dataSource, - actionableMode = me.actionableMode, - navModel = me.getNavigationModel(), - focusPosition = actionableMode ? me.actionPosition : navModel.getPosition(true), - refocusRow, refocusCol; - - if (focusPosition) { - // Separate this from the instance that the nav model is using. - focusPosition = focusPosition.clone(); - - // Exit actionable mode. - // We must inform any Actionables that they must relinquish control. - // Tabbability must be reset. - if (actionableMode) { - me.ownerGrid.setActionableMode(false); - } + let me = this, + store = me.dataSource, + actionableMode = me.actionableMode, + navModel = me.getNavigationModel(), + focusPosition = actionableMode ? me.actionPosition : navModel.getPosition(true), + refocusRow, refocusCol; + + if (focusPosition) { + // Separate this from the instance that the nav model is using. + focusPosition = focusPosition.clone(); + + // Exit actionable mode. + // We must inform any Actionables that they must relinquish control. + // Tabbability must be reset. + if (actionableMode) { + me.ownerGrid.setActionableMode(false); + } - // Blur the focused descendant, but do not trigger focusLeave. - me.el.dom.focus(); - - // Exiting actionable mode navigates to the owning cell, so in either focus mode we must - // clear the navigation position - navModel.setPosition(); - - // The following function will attempt to refocus back in the same mode to the same cell - // as it was at before based upon the previous record (if it's still inthe store), or the row index. - return function() { - // If we still have data, attempt to refocus in the same mode. - if (store.getCount()) { - // Adjust expectations of where we are able to refocus according to what kind of destruction - // might have been wrought on this view's DOM during focus save. - refocusRow = Math.min(focusPosition.rowIdx, me.all.getCount() - 1); - refocusCol = Math.min(focusPosition.colIdx, me.getVisibleColumnManager().getColumns().length - 1); - focusPosition = new Ext.grid.CellContext(me).setPosition( - store.contains(focusPosition.record) ? focusPosition.record : refocusRow, refocusCol); - - if (actionableMode) { - me.ownerGrid.setActionableMode(true, focusPosition); - } else { - me.cellFocused = true; + // Blur the focused descendant, but do not trigger focusLeave. + me.el.dom.focus(); + + // Exiting actionable mode navigates to the owning cell, so in either focus mode we must + // clear the navigation position + navModel.setPosition(); + + // The following function will attempt to refocus back in the same mode to the same cell + // as it was at before based upon the previous record (if it's still inthe store), or the row index. + return function() { + // If we still have data, attempt to refocus in the same mode. + if (store.getCount()) { + // Adjust expectations of where we are able to refocus according to what kind of destruction + // might have been wrought on this view's DOM during focus save. + refocusRow = Math.min(focusPosition.rowIdx, me.all.getCount() - 1); + refocusCol = Math.min(focusPosition.colIdx, + me.getVisibleColumnManager().getColumns().length - 1); + refocusRow = store.contains(focusPosition.record) ? focusPosition.record : refocusRow; + focusPosition = new Ext.grid.CellContext(me).setPosition(refocusRow, refocusCol); + + if (actionableMode) { + me.ownerGrid.setActionableMode(true, focusPosition); + } else { + me.cellFocused = true; // we sometimes want to scroll back to where we were - var x = me.getScrollX(); - var y = me.getScrollY(); + let x = me.getScrollX(); + let y = me.getScrollY(); - // Pass "preventNavigation" as true so that that does not cause selection. - navModel.setPosition(focusPosition, null, null, null, true); + // Pass "preventNavigation" as true so that that does not cause selection. + navModel.setPosition(focusPosition, null, null, null, true); if (!me.jumpToFocus) { me.scrollTo(x, y); } - } - } - // No rows - focus associated column header - else { - focusPosition.column.focus(); - } - }; - } - return Ext.emptyFn; + } + } else { // No rows - focus associated column header + focusPosition.column.focus(); + } + }; + } + return Ext.emptyFn; }, }); @@ -461,7 +460,7 @@ Ext.define(null, { override: 'Ext.layout.container.boxOverflow.Scroller', createWheelListener: function() { - var me = this; + let me = this; if (Ext.isFirefox) { me.wheelListener = me.layout.innerCt.on('wheel', me.onMouseWheelFirefox, me, { destroyable: true }); } else { @@ -474,7 +473,7 @@ Ext.define(null, { // because it is already onMouseWheelFirefox: function(e) { e.stopEvent(); - var delta = e.browserEvent.deltaY || 0; + let delta = e.browserEvent.deltaY || 0; this.scrollBy(delta * this.wheelIncrement, false); }, @@ -483,7 +482,7 @@ Ext.define(null, { // add '@' to the valid id Ext.define('Proxmox.validIdReOverride', { override: 'Ext.Component', - validIdRe: /^[a-z_][a-z0-9\-_\@]*$/i, + validIdRe: /^[a-z_][a-z0-9\-_@]*$/i, }); // force alert boxes to be rendered with an Error Icon @@ -492,9 +491,9 @@ Ext.define('Proxmox.validIdReOverride', { Ext.onReady(function() { /*jslint confusion: true */ Ext.override(Ext.Msg, { - alert: function(title, message, fn, scope) { + alert: function(title, message, fn, scope) { // eslint-disable-line consistent-return if (Ext.isString(title)) { - var config = { + let config = { title: title, message: message, icon: this.ERROR, @@ -530,7 +529,7 @@ Ext.define('Ext.ux.IFrame', { }, initEvents: function() { - var me = this; + let me = this; me.callParent(); me.iframeEl.on('load', me.onLoad, me); }, @@ -543,7 +542,7 @@ Ext.define('Ext.ux.IFrame', { }, getBody: function() { - var doc = this.getDoc(); + let doc = this.getDoc(); return doc.body || doc.documentElement; }, @@ -556,7 +555,7 @@ Ext.define('Ext.ux.IFrame', { }, getWin: function() { - var me = this, + let me = this, name = me.frameName, win = Ext.isIE ? me.iframeEl.dom.contentWindow @@ -565,7 +564,7 @@ Ext.define('Ext.ux.IFrame', { }, getFrame: function() { - var me = this; + let me = this; return me.iframeEl.dom; }, @@ -575,29 +574,29 @@ Ext.define('Ext.ux.IFrame', { }, cleanupListeners: function(destroying) { - var doc, prop; + let doc, prop; if (this.rendered) { try { doc = this.getDoc(); if (doc) { - /*jslint nomen: true*/ Ext.get(doc).un(this._docListeners); - /*jslint nomen: false*/ if (destroying && doc.hasOwnProperty) { for (prop in doc) { - if (doc.hasOwnProperty(prop)) { + if (Object.prototype.hasOwnProperty.call(doc, prop)) { delete doc[prop]; } } } } - } catch (e) { } + } catch (e) { + // do nothing + } } }, onLoad: function() { - var me = this, + let me = this, doc = me.getDoc(), fn = me.onRelayedEvent; @@ -638,7 +637,7 @@ Ext.define('Ext.ux.IFrame', { onRelayedEvent: function(event) { // relay event from the iframe's document to the document that owns the iframe... - var iframeEl = this.iframeEl, + let iframeEl = this.iframeEl, // Get the left-based iframe position iframeXY = iframeEl.getTrueXY(), @@ -659,7 +658,7 @@ Ext.define('Ext.ux.IFrame', { }, load: function(src) { - var me = this, + let me = this, text = me.loadMask, frame = me.getFrame(); diff --git a/Utils.js b/Utils.js index f86fa09..c3b13f4 100644 --- a/Utils.js +++ b/Utils.js @@ -14,7 +14,7 @@ Ext.enableAriaPanels = false; // avoid errors when running without development tools if (!Ext.isDefined(Ext.global.console)) { - var console = { + let console = { dir: function() { // do nothing }, @@ -93,7 +93,7 @@ utilities: { if (!value) { return Proxmox.Utils.defaultText + ' (English)'; } - var text = Proxmox.Utils.language_map[value]; + let text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } @@ -101,7 +101,7 @@ utilities: { }, language_array: function() { - var data = [['__default__', Proxmox.Utils.render_language('')]]; + let data = [['__default__', Proxmox.Utils.render_language('')]]; Ext.Object.each(Proxmox.Utils.language_map, function(key, value) { data.push([key, Proxmox.Utils.render_language(value)]); }); @@ -192,22 +192,22 @@ utilities: { }, format_duration_long: function(ut) { - var days = Math.floor(ut / 86400); + let days = Math.floor(ut / 86400); ut -= days*86400; - var hours = Math.floor(ut / 3600); + let hours = Math.floor(ut / 3600); ut -= hours*3600; - var mins = Math.floor(ut / 60); + let mins = Math.floor(ut / 60); ut -= mins*60; - var hours_str = '00' + hours.toString(); + let hours_str = '00' + hours.toString(); hours_str = hours_str.substr(hours_str.length - 2); - var mins_str = "00" + mins.toString(); + let mins_str = "00" + mins.toString(); mins_str = mins_str.substr(mins_str.length - 2); - var ut_str = "00" + ut.toString(); + let ut_str = "00" + ut.toString(); ut_str = ut_str.substr(ut_str.length - 2); if (days) { - var ds = days > 1 ? Proxmox.Utils.daysText : Proxmox.Utils.dayText; + let ds = days > 1 ? Proxmox.Utils.daysText : Proxmox.Utils.dayText; return days.toString() + ' ' + ds + ' ' + hours_str + ':' + mins_str + ':' + ut_str; } else { @@ -232,8 +232,8 @@ utilities: { compute_min_label_width: function(text, width) { if (width === undefined) { width = 100; } - var tm = new Ext.util.TextMetrics(); - var min = tm.getWidth(text + ':'); + let tm = new Ext.util.TextMetrics(); + let min = tm.getWidth(text + ':'); return min < width ? width : min; }, @@ -269,7 +269,7 @@ utilities: { // comp.setLoading() is buggy in ExtJS 4.0.7, so we // use el.mask() instead setErrorMask: function(comp, msg) { - var el = comp.el; + let el = comp.el; if (!el) { return; } @@ -334,7 +334,7 @@ utilities: { }, extractRequestError: function(result, verbose) { - var msg = gettext('Successful'); + let msg = gettext('Successful'); if (!result.success) { msg = gettext("Unknown error"); @@ -358,7 +358,7 @@ utilities: { // Ext.Ajax.request API2Request: function(reqOpts) { - var newopts = Ext.apply({ + let newopts = Ext.apply({ waitMsg: gettext('Please wait...'), }, reqOpts); @@ -367,7 +367,7 @@ utilities: { } delete newopts.callback; - var createWrapper = function(successFn, callbackFn, failureFn) { + let createWrapper = function(successFn, callbackFn, failureFn) { Ext.apply(newopts, { success: function(response, options) { if (options.waitMsgTarget) { @@ -377,7 +377,7 @@ utilities: { options.waitMsgTarget.setLoading(false); } } - var result = Ext.decode(response.responseText); + let result = Ext.decode(response.responseText); response.result = result; if (!result.success) { response.htmlStatus = Proxmox.Utils.extractRequestError(result, true); @@ -402,7 +402,7 @@ utilities: { } catch (e) { // ignore } - var msg = gettext('Connection error') + ' - server offline?'; + let msg = gettext('Connection error') + ' - server offline?'; if (response.aborted) { msg = gettext('Connection error') + ' - aborted.'; } else if (response.timedout) { @@ -419,7 +419,7 @@ utilities: { createWrapper(reqOpts.success, reqOpts.callback, reqOpts.failure); - var target = newopts.waitMsgTarget; + let target = newopts.waitMsgTarget; if (target) { if (Proxmox.Utils.toolkit === 'touch') { target.setMasked({ xtype: 'loadmask', message: newopts.waitMsg }); @@ -657,11 +657,8 @@ utilities: { }, format_size: function(size) { - /*jslint confusion: true */ - - var units = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi']; - var num = 0; - + let units = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi']; + let num = 0; while (size >= 1024 && num++ <= units.length) { size = size / 1024; } @@ -678,7 +675,7 @@ utilities: { }, render_uptime: function(value) { - var uptime = value; + let uptime = value; if (uptime === undefined) { return ''; @@ -692,9 +689,9 @@ utilities: { }, parse_task_upid: function(upid) { - var task = {}; + let task = {}; - var res = upid.match(/^UPID:([^\s:]+):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8,9}):(([0-9A-Fa-f]{8,16}):)?([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/); + let res = upid.match(/^UPID:([^\s:]+):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8,9}):(([0-9A-Fa-f]{8,16}):)?([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/); if (!res) { throw "unable to parse upid '" + upid + "'"; } @@ -722,12 +719,12 @@ utilities: { }, render_timestamp: function(value, metaData, record, rowIndex, colIndex, store) { - var servertime = new Date(value * 1000); + let servertime = new Date(value * 1000); return Ext.Date.format(servertime, 'Y-m-d H:i:s'); }, get_help_info: function(section) { - var helpMap; + let helpMap; if (typeof proxmoxOnlineHelpInfo !== 'undefined') { helpMap = proxmoxOnlineHelpInfo; // eslint-disable-line no-undef } else if (typeof pveOnlineHelpInfo !== 'undefined') { @@ -741,7 +738,7 @@ utilities: { }, get_help_link: function(section) { - var info = Proxmox.Utils.get_help_info(section); + let info = Proxmox.Utils.get_help_info(section); if (!info) { return undefined; } @@ -749,7 +746,7 @@ utilities: { }, openXtermJsViewer: function(vmtype, vmid, nodename, vmname, cmd) { - var url = Ext.Object.toQueryString({ + let url = Ext.Object.toQueryString({ console: vmtype, // kvm, lxc, upgrade or shell xtermjs: 1, vmid: vmid, @@ -758,7 +755,7 @@ utilities: { cmd: cmd, }); - var nw = window.open("?" + url, '_blank', 'toolbar=no,location=no,status=no,menubar=no,resizable=yes,width=800,height=420'); + let nw = window.open("?" + url, '_blank', 'toolbar=no,location=no,status=no,menubar=no,resizable=yes,width=800,height=420'); if (nw) { nw.focus(); } @@ -768,22 +765,22 @@ utilities: { singleton: true, constructor: function() { - var me = this; + let me = this; Ext.apply(me, me.utilities); - var IPV4_OCTET = "(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])"; - var IPV4_REGEXP = "(?:(?:" + IPV4_OCTET + "\\.){3}" + IPV4_OCTET + ")"; - var IPV6_H16 = "(?:[0-9a-fA-F]{1,4})"; - var IPV6_LS32 = "(?:(?:" + IPV6_H16 + ":" + IPV6_H16 + ")|" + IPV4_REGEXP + ")"; - var IPV4_CIDR_MASK = "([0-9]{1,2})"; - var IPV6_CIDR_MASK = "([0-9]{1,3})"; + let IPV4_OCTET = "(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])"; + let IPV4_REGEXP = "(?:(?:" + IPV4_OCTET + "\\.){3}" + IPV4_OCTET + ")"; + let IPV6_H16 = "(?:[0-9a-fA-F]{1,4})"; + let IPV6_LS32 = "(?:(?:" + IPV6_H16 + ":" + IPV6_H16 + ")|" + IPV4_REGEXP + ")"; + let IPV4_CIDR_MASK = "([0-9]{1,2})"; + let IPV6_CIDR_MASK = "([0-9]{1,3})"; me.IP4_match = new RegExp("^(?:" + IPV4_REGEXP + ")$"); me.IP4_cidr_match = new RegExp("^(?:" + IPV4_REGEXP + ")/" + IPV4_CIDR_MASK + "$"); /* eslint-disable no-useless-concat,no-multi-spaces */ - var IPV6_REGEXP = "(?:" + + let IPV6_REGEXP = "(?:" + "(?:(?:" + "(?:" + IPV6_H16 + ":){6})" + IPV6_LS32 + ")|" + "(?:(?:" + "::" + "(?:" + IPV6_H16 + ":){5})" + IPV6_LS32 + ")|" + "(?:(?:(?:" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){4})" + IPV6_LS32 + ")|" + @@ -803,7 +800,7 @@ utilities: { me.IP64_match = new RegExp("^(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + ")$"); me.IP64_cidr_match = new RegExp("^(?:" + IPV6_REGEXP + "/" + IPV6_CIDR_MASK + ")|(?:" + IPV4_REGEXP + "/" + IPV4_CIDR_MASK + ")$"); - var DnsName_REGEXP = "(?:(([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)\\.)*([A-Za-z0-9]([A-Za-z0-9\\-]*[A-Za-z0-9])?))"; + let DnsName_REGEXP = "(?:(([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)\\.)*([A-Za-z0-9]([A-Za-z0-9\\-]*[A-Za-z0-9])?))"; me.DnsName_match = new RegExp("^" + DnsName_REGEXP + "$"); me.HostPort_match = new RegExp("^(" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")(:\\d+)?$"); diff --git a/button/Button.js b/button/Button.js index 9b8d66e..93c773c 100644 --- a/button/Button.js +++ b/button/Button.js @@ -24,14 +24,14 @@ Ext.define('Proxmox.button.Button', { parentXType: 'grid', initComponent: function() { - var me = this; + let me = this; if (me.handler) { // Note: me.realHandler may be a string (see named scopes) - var realHandler = me.handler; + let realHandler = me.handler; me.handler = function(button, event) { - var rec, msg; + let rec, msg; if (me.selModel) { rec = me.selModel.getSelection()[0]; if (!rec || me.enableFn(rec) === false) { @@ -66,9 +66,9 @@ Ext.define('Proxmox.button.Button', { me.callParent(); - var grid; + let grid; if (!me.selModel && me.selModel !== null && me.selModel !== false) { - parent = me.up(me.parentXType); + let parent = me.up(me.parentXType); if (parent && parent.selModel) { me.selModel = parent.selModel; } @@ -85,7 +85,7 @@ Ext.define('Proxmox.button.Button', { if (me.selModel) { me.mon(me.selModel, "selectionchange", function() { - var rec = me.selModel.getSelection()[0]; + let rec = me.selModel.getSelection()[0]; if (!rec || me.enableFn(rec) === false) { me.setDisabled(true); } else { @@ -113,7 +113,7 @@ Ext.define('Proxmox.button.StdRemoveButton', { }, getUrl: function(rec) { - var me = this; + let me = this; if (me.selModel) { return me.baseurl + '/' + rec.getId(); @@ -130,16 +130,16 @@ Ext.define('Proxmox.button.StdRemoveButton', { getRecordName: (rec) => rec.getId(), confirmMsg: function(rec) { - var me = this; + let me = this; - var name = me.getRecordName(rec); + let name = me.getRecordName(rec); return Ext.String.format(gettext('Are you sure you want to remove entry {0}'), `'${name}'`); }, handler: function(btn, event, rec) { - var me = this; + let me = this; - var url = me.getUrl(rec); + let url = me.getUrl(rec); if (typeof me.delay !== 'undefined' && me.delay >= 0) { url += "?delay=" + me.delay; diff --git a/button/HelpButton.js b/button/HelpButton.js index 8fbcf5c..d97a6c4 100644 --- a/button/HelpButton.js +++ b/button/HelpButton.js @@ -1,9 +1,6 @@ /* help button pointing to an online documentation for components contained in a modal window */ -/*global - proxmoxOnlineHelpInfo -*/ Ext.define('Proxmox.button.Help', { extend: 'Ext.button.Button', xtype: 'proxmoxHelpButton', @@ -27,28 +24,28 @@ Ext.define('Proxmox.button.Help', { }, }, onProxmoxShowHelp: function(helpLink) { - var me = this.getView(); - if (me.listenToGlobalEvent === true) { - me.setOnlineHelp(helpLink); - me.show(); + let view = this.getView(); + if (view.listenToGlobalEvent === true) { + view.setOnlineHelp(helpLink); + view.show(); } }, onProxmoxHideHelp: function() { - var me = this.getView(); - if (me.listenToGlobalEvent === true) { - me.hide(); + let view = this.getView(); + if (view.listenToGlobalEvent === true) { + view.hide(); } }, }, // this sets the link and the tooltip text setOnlineHelp: function(blockid) { - var me = this; + let me = this; - var info = Proxmox.Utils.get_help_info(blockid); + let info = Proxmox.Utils.get_help_info(blockid); if (info) { me.onlineHelp = blockid; - var title = info.title; + let title = info.title; if (info.subtitle) { title += ' - ' + info.subtitle; } @@ -58,13 +55,13 @@ Ext.define('Proxmox.button.Help', { // helper to set the onlineHelp via a config object setHelpConfig: function(config) { - var me = this; + let me = this; me.setOnlineHelp(config.onlineHelp); }, handler: function() { - var me = this; - var docsURI; + let me = this; + let docsURI; if (me.onlineHelp) { docsURI = Proxmox.Utils.get_help_link(me.onlineHelp); @@ -78,8 +75,7 @@ Ext.define('Proxmox.button.Help', { }, initComponent: function() { - /*jslint confusion: true */ - var me = this; + let me = this; me.callParent(); diff --git a/data/DiffStore.js b/data/DiffStore.js index db608c5..e4143f5 100644 --- a/data/DiffStore.js +++ b/data/DiffStore.js @@ -40,7 +40,7 @@ Ext.define('Proxmox.data.DiffStore', { }, constructor: function(config) { - var me = this; + let me = this; config = config || {}; @@ -73,10 +73,10 @@ Ext.define('Proxmox.data.DiffStore', { me.rstore = rstore; - var first_load = true; + let first_load = true; - var cond_add_item = function(data, id) { - var olditem = me.getById(id); + let cond_add_item = function(data, id) { + let olditem = me.getById(id); if (olditem) { olditem.beginEdit(); Ext.Array.each(me.model.prototype.fields, function(field) { @@ -87,13 +87,13 @@ Ext.define('Proxmox.data.DiffStore', { olditem.endEdit(true); olditem.commit(); } else { - var newrec = Ext.create(me.model, data); - var pos = me.appendAtStart && !first_load ? 0 : me.data.length; + let newrec = Ext.create(me.model, data); + let pos = me.appendAtStart && !first_load ? 0 : me.data.length; me.insert(pos, newrec); } }; - var loadFn = function(s, records, success) { + let loadFn = function(s, records, success) { if (!success) { return; } @@ -102,11 +102,11 @@ Ext.define('Proxmox.data.DiffStore', { // getSource returns null if data is not filtered // if it is filtered it returns all records - var allItems = me.getData().getSource() || me.getData(); + let allItems = me.getData().getSource() || me.getData(); // remove vanished items allItems.each(function(olditem) { - var item = me.rstore.getById(olditem.getId()); + let item = me.rstore.getById(olditem.getId()); if (!item) { me.remove(olditem); } diff --git a/data/ObjectStore.js b/data/ObjectStore.js index e9fd2ce..860cbfd 100644 --- a/data/ObjectStore.js +++ b/data/ObjectStore.js @@ -7,8 +7,8 @@ Ext.define('Proxmox.data.ObjectStore', { extend: 'Proxmox.data.UpdateStore', getRecord: function() { - var me = this; - var record = Ext.create('Ext.data.Model'); + let me = this; + let record = Ext.create('Ext.data.Model'); me.getData().each(function(item) { record.set(item.data.key, item.data.value); }); @@ -17,7 +17,7 @@ Ext.define('Proxmox.data.ObjectStore', { }, constructor: function(config) { - var me = this; + let me = this; config = config || {}; diff --git a/data/ProxmoxProxy.js b/data/ProxmoxProxy.js index e9e78f7..53e92f3 100644 --- a/data/ProxmoxProxy.js +++ b/data/ProxmoxProxy.js @@ -59,8 +59,7 @@ Ext.define('Proxmox.RestProxy', { { name: 'id', convert: function(value, record) { - var info = record.data; - var text; + let info = record.data; if (value) { return value; diff --git a/data/RRDStore.js b/data/RRDStore.js index 65b0410..67ffb57 100644 --- a/data/RRDStore.js +++ b/data/RRDStore.js @@ -7,7 +7,7 @@ Ext.define('Proxmox.data.RRDStore', { alias: 'store.proxmoxRRDStore', setRRDUrl: function(timeframe, cf) { - var me = this; + let me = this; if (!timeframe) { timeframe = me.timeframe; } @@ -28,7 +28,7 @@ Ext.define('Proxmox.data.RRDStore', { cf: 'AVERAGE', constructor: function(config) { - var me = this; + let me = this; config = config || {}; @@ -47,9 +47,9 @@ Ext.define('Proxmox.data.RRDStore', { throw "no rrdurl specified"; } - var stateid = 'proxmoxRRDTypeSelection'; - var sp = Ext.state.Manager.getProvider(); - var stateinit = sp.get(stateid); + let stateid = 'proxmoxRRDTypeSelection'; + let sp = Ext.state.Manager.getProvider(); + let stateinit = sp.get(stateid); if (stateinit) { if (stateinit.timeframe !== me.timeframe || stateinit.cf !== me.rrdcffn) { diff --git a/data/reader/JsonObject.js b/data/reader/JsonObject.js index 5deadd3..0489df8 100644 --- a/data/reader/JsonObject.js +++ b/data/reader/JsonObject.js @@ -18,7 +18,7 @@ * * Additional feature: specify allowed properties with default values with 'rows' object * - * var rows = { + * let rows = { * memory: { * required: true, * defaultValue: 512 @@ -36,7 +36,7 @@ Ext.define('Proxmox.data.reader.JsonObject', { rows: undefined, constructor: function(config) { - var me = this; + let me = this; Ext.apply(me, config || {}); @@ -44,16 +44,16 @@ Ext.define('Proxmox.data.reader.JsonObject', { }, getResponseData: function(response) { - var me = this; + let me = this; - var data = []; + let data = []; try { - var result = Ext.decode(response.responseText); + let result = Ext.decode(response.responseText); // get our data items inside the server response - var root = result[me.getRootProperty()]; + let root = result[me.getRootProperty()]; if (me.readArray) { - var rec_hash = {}; + let rec_hash = {}; Ext.Array.each(root, function(rec) { if (Ext.isDefined(rec.key)) { rec_hash[rec.key] = rec; @@ -62,7 +62,7 @@ Ext.define('Proxmox.data.reader.JsonObject', { if (me.rows) { Ext.Object.each(me.rows, function(key, rowdef) { - var rec = rec_hash[key]; + let rec = rec_hash[key]; if (Ext.isDefined(rec)) { if (!Ext.isDefined(rec.value)) { rec.value = rowdef.defaultValue; @@ -82,10 +82,10 @@ Ext.define('Proxmox.data.reader.JsonObject', { }); } } else { - var org_root = root; + let org_root = root; if (Ext.isArray(org_root)) { - if (root.length == 1) { + if (root.length === 1) { root = org_root[0]; } else { root = {}; diff --git a/form/BondModeSelector.js b/form/BondModeSelector.js index 8131496..1fe45b9 100644 --- a/form/BondModeSelector.js +++ b/form/BondModeSelector.js @@ -5,7 +5,7 @@ Ext.define('Proxmox.form.BondModeSelector', { openvswitch: false, initComponent: function() { - var me = this; + let me = this; if (me.openvswitch) { me.comboItems = Proxmox.Utils.bond_mode_array([ diff --git a/form/Checkbox.js b/form/Checkbox.js index dd654df..2b29e1c 100644 --- a/form/Checkbox.js +++ b/form/Checkbox.js @@ -11,14 +11,14 @@ Ext.define('Proxmox.form.Checkbox', { inputValue: '1', getSubmitData: function() { - var me = this, + let me = this, data = null, val; if (!me.disabled && me.submitValue) { val = me.getSubmitValue(); if (val !== null) { data = {}; - if (val == me.getDefaultValue() && me.getDeleteDefaultValue()) { + if (val === me.getDefaultValue() && me.getDeleteDefaultValue()) { data.delete = me.getName(); } else { data[me.getName()] = val; @@ -33,7 +33,7 @@ Ext.define('Proxmox.form.Checkbox', { // also accept integer 1 as true setRawValue: function(value) { - var me = this; + let me = this; if (value === 1) { me.callParent([true]); diff --git a/form/ComboGrid.js b/form/ComboGrid.js index c9eaa5c..e5a1920 100644 --- a/form/ComboGrid.js +++ b/form/ComboGrid.js @@ -16,11 +16,11 @@ Ext.define('Proxmox.form.ComboGrid', { // hack: allow to select empty value // seems extjs does not allow that when 'editable == false' onKeyUp: function(e, t) { - var me = this; - var key = e.getKey(); + let me = this; + let key = e.getKey(); if (!me.editable && me.allowBlank && !me.multiSelect && - (key == e.BACKSPACE || key == e.DELETE)) { + (key === e.BACKSPACE || key === e.DELETE)) { me.setValue(''); } @@ -44,14 +44,14 @@ Ext.define('Proxmox.form.ComboGrid', { weight: -1, hidden: true, handler: function() { - var me = this; + let me = this; me.setValue(''); }, }, }, setValue: function(value) { - var me = this; + let me = this; let empty = Ext.isArray(value) ? !value.length : !value; me.triggers.clear.setVisible(!empty && me.allowBlank); return me.callParent([value]); @@ -68,7 +68,7 @@ Ext.define('Proxmox.form.ComboGrid', { // should be an array) and else we do callParent so // it should not impact any other use of the class getRawValue: function() { - var me = this; + let me = this; if (me.multiSelect) { return me.rawValue; } else { @@ -77,7 +77,7 @@ Ext.define('Proxmox.form.ComboGrid', { }, getSubmitData: function() { - var me = this; + let me = this; let data = null; if (!me.disabled && me.submitValue) { @@ -94,9 +94,9 @@ Ext.define('Proxmox.form.ComboGrid', { }, getSubmitValue: function() { - var me = this; + let me = this; - var value = me.callParent(); + let value = me.callParent(); if (value !== '') { return value; } @@ -111,121 +111,122 @@ Ext.define('Proxmox.form.ComboGrid', { // override ExtJS protected method onBindStore: function(store, initial) { - var me = this, - picker = me.picker, - extraKeySpec, - valueCollectionConfig; - - // We're being bound, not unbound... - if (store) { - // If store was created from a 2 dimensional array with generated field names 'field1' and 'field2' - if (store.autoCreated) { - me.queryMode = 'local'; - me.valueField = me.displayField = 'field1'; - if (!store.expanded) { - me.displayField = 'field2'; - } + let me = this, + picker = me.picker, + extraKeySpec, + valueCollectionConfig; + + // We're being bound, not unbound... + if (store) { + // If store was created from a 2 dimensional array with generated field names 'field1' and 'field2' + if (store.autoCreated) { + me.queryMode = 'local'; + me.valueField = me.displayField = 'field1'; + if (!store.expanded) { + me.displayField = 'field2'; + } - // displayTpl config will need regenerating with the autogenerated displayField name 'field1' - me.setDisplayTpl(null); - } - if (!Ext.isDefined(me.valueField)) { - me.valueField = me.displayField; - } - - // Add a byValue index to the store so that we can efficiently look up records by the value field - // when setValue passes string value(s). - // The two indices (Ext.util.CollectionKeys) are configured unique: false, so that if duplicate keys - // are found, they are all returned by the get call. - // This is so that findByText and findByValue are able to return the *FIRST* matching value. By default, - // if unique is true, CollectionKey keeps the *last* matching value. - extraKeySpec = { - byValue: { - rootProperty: 'data', - unique: false, - }, - }; - extraKeySpec.byValue.property = me.valueField; - store.setExtraKeys(extraKeySpec); - - if (me.displayField === me.valueField) { - store.byText = store.byValue; - } else { - extraKeySpec.byText = { - rootProperty: 'data', - unique: false, - }; - extraKeySpec.byText.property = me.displayField; - store.setExtraKeys(extraKeySpec); - } - - // We hold a collection of the values which have been selected, keyed by this field's valueField. - // This collection also functions as the selected items collection for the BoundList's selection model - valueCollectionConfig = { - rootProperty: 'data', - extraKeys: { - byInternalId: { - property: 'internalId', - }, - byValue: { - property: me.valueField, - rootProperty: 'data', - }, - }, - // Whenever this collection is changed by anyone, whether by this field adding to it, - // or the BoundList operating, we must refresh our value. - listeners: { - beginupdate: me.onValueCollectionBeginUpdate, - endupdate: me.onValueCollectionEndUpdate, - scope: me, - }, - }; - - // This becomes our collection of selected records for the Field. - me.valueCollection = new Ext.util.Collection(valueCollectionConfig); - - // We use the selected Collection as our value collection and the basis - // for rendering the tag list. - - //proxmox override: since the picker is represented by a grid panel, - // we changed here the selection to RowModel - me.pickerSelectionModel = new Ext.selection.RowModel({ - mode: me.multiSelect ? 'SIMPLE' : 'SINGLE', - // There are situations when a row is selected on mousedown but then the mouse is dragged to another row - // and released. In these situations, the event target for the click event won't be the row where the mouse - // was released but the boundview. The view will then determine that it should fire a container click, and - // the DataViewModel will then deselect all prior selections. Setting `deselectOnContainerClick` here will - // prevent the model from deselecting. - deselectOnContainerClick: false, - enableInitialSelection: false, - pruneRemoved: false, - selected: me.valueCollection, - store: store, - listeners: { - scope: me, - lastselectedchanged: me.updateBindSelection, - }, - }); + // displayTpl config will need regenerating with the autogenerated displayField name 'field1' + me.setDisplayTpl(null); + } + if (!Ext.isDefined(me.valueField)) { + me.valueField = me.displayField; + } - if (!initial) { - me.resetToDefault(); - } + // Add a byValue index to the store so that we can efficiently look up records by the value field + // when setValue passes string value(s). + // The two indices (Ext.util.CollectionKeys) are configured unique: false, so that if duplicate keys + // are found, they are all returned by the get call. + // This is so that findByText and findByValue are able to return the *FIRST* matching value. By default, + // if unique is true, CollectionKey keeps the *last* matching value. + extraKeySpec = { + byValue: { + rootProperty: 'data', + unique: false, + }, + }; + extraKeySpec.byValue.property = me.valueField; + store.setExtraKeys(extraKeySpec); + + if (me.displayField === me.valueField) { + store.byText = store.byValue; + } else { + extraKeySpec.byText = { + rootProperty: 'data', + unique: false, + }; + extraKeySpec.byText.property = me.displayField; + store.setExtraKeys(extraKeySpec); + } - if (picker) { - picker.setSelectionModel(me.pickerSelectionModel); - if (picker.getStore() !== store) { - picker.bindStore(store); - } - } - } + // We hold a collection of the values which have been selected, keyed by this field's valueField. + // This collection also functions as the selected items collection for the BoundList's selection model + valueCollectionConfig = { + rootProperty: 'data', + extraKeys: { + byInternalId: { + property: 'internalId', + }, + byValue: { + property: me.valueField, + rootProperty: 'data', + }, + }, + // Whenever this collection is changed by anyone, whether by this field adding to it, + // or the BoundList operating, we must refresh our value. + listeners: { + beginupdate: me.onValueCollectionBeginUpdate, + endupdate: me.onValueCollectionEndUpdate, + scope: me, + }, + }; + + // This becomes our collection of selected records for the Field. + me.valueCollection = new Ext.util.Collection(valueCollectionConfig); + + // We use the selected Collection as our value collection and the basis + // for rendering the tag list. + + //proxmox override: since the picker is represented by a grid panel, + // we changed here the selection to RowModel + me.pickerSelectionModel = new Ext.selection.RowModel({ + mode: me.multiSelect ? 'SIMPLE' : 'SINGLE', + // There are situations when a row is selected on mousedown but then the mouse is + // dragged to another row and released. In these situations, the event target for + // the click event won't be the row where the mouse was released but the boundview. + // The view will then determine that it should fire a container click, and the + // DataViewModel will then deselect all prior selections. Setting + // `deselectOnContainerClick` here will prevent the model from deselecting. + deselectOnContainerClick: false, + enableInitialSelection: false, + pruneRemoved: false, + selected: me.valueCollection, + store: store, + listeners: { + scope: me, + lastselectedchanged: me.updateBindSelection, + }, + }); + + if (!initial) { + me.resetToDefault(); + } + + if (picker) { + picker.setSelectionModel(me.pickerSelectionModel); + if (picker.getStore() !== store) { + picker.bindStore(store); + } + } + } }, // copied from ComboBox createPicker: function() { - var me = this; - var picker; + let me = this; + let picker; - var pickerCfg = Ext.apply({ + let pickerCfg = Ext.apply({ // proxmox overrides: display a grid for selection xtype: 'gridpanel', id: me.pickerId, @@ -273,10 +274,9 @@ Ext.define('Proxmox.form.ComboGrid', { beforedeselect: me.onBeforeDeselect, focuschange: me.onFocusChange, selectionChange: function(sm, selectedRecords) { - var me = this; if (selectedRecords.length) { - me.setValue(selectedRecords); - me.fireEvent('select', me, selectedRecords); + this.setValue(selectedRecords); + this.fireEvent('select', me, selectedRecords); } }, scope: me, @@ -312,7 +312,7 @@ Ext.define('Proxmox.form.ComboGrid', { }, clearLocalFilter: function() { - var me = this, + let me = this, filter = me.queryFilter; if (filter) { @@ -324,9 +324,9 @@ Ext.define('Proxmox.form.ComboGrid', { }, isValueInStore: function(value) { - var me = this; - var store = me.store; - var found = false; + let me = this; + let store = me.store; + let found = false; if (!store) { return found; @@ -345,6 +345,7 @@ Ext.define('Proxmox.form.ComboGrid', { found = true; return false; // break } + return true; }); } else { found = !!store.findRecord(me.valueField, value); @@ -354,7 +355,7 @@ Ext.define('Proxmox.form.ComboGrid', { }, validator: function(value) { - var me = this; + let me = this; if (!value) { return true; // handled later by allowEmpty in the getErrors call chain @@ -366,8 +367,8 @@ Ext.define('Proxmox.form.ComboGrid', { // // we also have to get the 'real' value if the we have a mulitSelect // Field but got a non array value - if (me.valueField && me.valueField !== me.displayField || - me.multiSelect && !Ext.isArray(value)) { + if ((me.valueField && me.valueField !== me.displayField) || + (me.multiSelect && !Ext.isArray(value))) { value = me.getValue(); } @@ -386,7 +387,7 @@ Ext.define('Proxmox.form.ComboGrid', { }, initComponent: function() { - var me = this; + let me = this; Ext.apply(me, { queryMode: 'local', @@ -397,12 +398,12 @@ Ext.define('Proxmox.form.ComboGrid', { Ext.applyIf(me.listConfig, { width: 400 }); - me.callParent(); + me.callParent(); - // Create the picker at an early stage, so it is available to store the previous selection - if (!me.picker) { - me.createPicker(); - } + // Create the picker at an early stage, so it is available to store the previous selection + if (!me.picker) { + me.createPicker(); + } me.mon(me.store, 'beforeload', function() { if (!me.isDisabled()) { @@ -419,7 +420,7 @@ Ext.define('Proxmox.form.ComboGrid', { delete me.enableLoadMask; // if the picker exists, - // we reset its minheight to the saved var/0 + // we reset its minheight to the saved let/0 // we have to update the layout, otherwise the height // gets not recalculated if (me.picker) { @@ -429,17 +430,17 @@ Ext.define('Proxmox.form.ComboGrid', { } } - var def = me.getValue() || me.preferredValue; + let def = me.getValue() || me.preferredValue; if (def) { me.setValue(def, true); // sync with grid } - var found = false; + let found = false; if (def) { found = me.isValueInStore(def); } if (!found) { - var rec = me.store.first(); + let rec = me.store.first(); if (me.autoSelect && rec && rec.data) { def = rec.data[me.valueField]; me.setValue(def, true); diff --git a/form/DateTimeField.js b/form/DateTimeField.js index c49ec55..a061e15 100644 --- a/form/DateTimeField.js +++ b/form/DateTimeField.js @@ -9,24 +9,24 @@ Ext.define('Proxmox.DateTimeField', { submitFormat: 'U', getValue: function() { - var me = this; - var d = me.lookupReference('dateentry').getValue(); + let me = this; + let d = me.lookupReference('dateentry').getValue(); if (d === undefined || d === null) { return null; } - var t = me.lookupReference('timeentry').getValue(); + let t = me.lookupReference('timeentry').getValue(); if (t === undefined || t === null) { return null; } - var offset = (t.getHours()*3600+t.getMinutes()*60)*1000; + let offset = (t.getHours() * 3600 + t.getMinutes() * 60) * 1000; return new Date(d.getTime() + offset); }, getSubmitValue: function() { - var me = this; - var format = me.submitFormat; - var value = me.getValue(); + let me = this; + let format = me.submitFormat; + let value = me.getValue(); return value ? Ext.Date.format(value, format) : null; }, @@ -128,11 +128,11 @@ Ext.define('Proxmox.DateTimeField', { }, initComponent: function() { - var me = this; + let me = this; me.callParent(); - var value = me.value || new Date(); + let value = me.value || new Date(); me.lookupReference('dateentry').setValue(value); me.lookupReference('timeentry').setValue(value); diff --git a/form/IntegerField.js b/form/IntegerField.js index 457c302..67dd215 100644 --- a/form/IntegerField.js +++ b/form/IntegerField.js @@ -11,7 +11,7 @@ Ext.define('Proxmox.form.field.Integer', { step: 1, getSubmitData: function() { - var me = this, + let me = this, data = null, val; if (!me.disabled && me.submitValue && !me.isFileUpload()) { diff --git a/form/KVComboBox.js b/form/KVComboBox.js index f14f934..361217e 100644 --- a/form/KVComboBox.js +++ b/form/KVComboBox.js @@ -20,7 +20,7 @@ Ext.define('Proxmox.form.KVComboBox', { // overide framework function to implement deleteEmpty behaviour getSubmitData: function() { - var me = this, + let me = this, data = null, val; if (!me.disabled && me.submitValue) { @@ -37,15 +37,15 @@ Ext.define('Proxmox.form.KVComboBox', { }, validator: function(val) { - var me = this; + let me = this; if (me.editable || val === null || val === '') { return true; } if (me.store.getCount() > 0) { - var values = me.multiSelect ? val.split(me.delimiter) : [val]; - var items = me.store.getData().collect('value', 'data'); + let values = me.multiSelect ? val.split(me.delimiter) : [val]; + let items = me.store.getData().collect('value', 'data'); if (Ext.Array.every(values, function(value) { return Ext.Array.contains(items, value); })) { @@ -54,12 +54,11 @@ Ext.define('Proxmox.form.KVComboBox', { } // returns a boolean or string - /*jslint confusion: true */ return "value '" + val + "' not allowed!"; }, initComponent: function() { - var me = this; + let me = this; me.store = Ext.create('Ext.data.ArrayStore', { model: 'KeyValue', @@ -74,7 +73,7 @@ Ext.define('Proxmox.form.KVComboBox', { }, setComboItems: function(items) { - var me = this; + let me = this; me.getStore().setData(items); }, diff --git a/form/NetworkSelector.js b/form/NetworkSelector.js index 154ea3a..b87efc1 100644 --- a/form/NetworkSelector.js +++ b/form/NetworkSelector.js @@ -3,7 +3,7 @@ Ext.define('Proxmox.form.NetworkSelectorController', { alias: 'controller.proxmoxNetworkSelectorController', init: function(view) { - var me = this; + let me = this; if (!view.nodename) { throw "missing custom view config: nodename"; @@ -36,7 +36,7 @@ Ext.define('Proxmox.form.NetworkSelector', { nodename: 'localhost', setNodename: function(nodename) { this.nodename = nodename; - var networkSelectorStore = this.getStore(); + let networkSelectorStore = this.getStore(); networkSelectorStore.removeAll(); // because of manual local copy of data for ip4/6 this.getPicker().refresh(); diff --git a/form/RRDTypeSelector.js b/form/RRDTypeSelector.js index f7f7f26..16cac20 100644 --- a/form/RRDTypeSelector.js +++ b/form/RRDTypeSelector.js @@ -38,10 +38,10 @@ Ext.define('Proxmox.form.RRDTypeSelector', { }, // save current selection in the state Provider so RRDView can read it getState: function() { - var ind = this.getStore().findExact('id', this.getValue()); - var rec = this.getStore().getAt(ind); + let ind = this.getStore().findExact('id', this.getValue()); + let rec = this.getStore().getAt(ind); if (!rec) { - return; + return undefined; } return { id: rec.data.id, diff --git a/form/RealmComboBox.js b/form/RealmComboBox.js index e391fbf..309bf4f 100644 --- a/form/RealmComboBox.js +++ b/form/RealmComboBox.js @@ -13,10 +13,10 @@ Ext.define('Proxmox.form.RealmComboBox', { if (!success) { return; } - var me = this; - var val = me.getValue(); + let me = this; + let val = me.getValue(); if (!val || !me.store.findRecord('realm', val)) { - var def = 'pam'; + let def = 'pam'; Ext.each(records, function(rec) { if (rec.data && rec.data.default) { def = rec.data.realm; diff --git a/form/TextField.js b/form/TextField.js index 66f890f..56e5976 100644 --- a/form/TextField.js +++ b/form/TextField.js @@ -9,7 +9,7 @@ Ext.define('Proxmox.form.field.Textfield', { }, getSubmitData: function() { - var me = this, + let me = this, data = null, val; if (!me.disabled && me.submitValue && !me.isFileUpload()) { @@ -26,9 +26,9 @@ Ext.define('Proxmox.form.field.Textfield', { }, getSubmitValue: function() { - var me = this; + let me = this; - var value = this.processRawValue(this.getRawValue()); + let value = this.processRawValue(this.getRawValue()); if (value !== '') { return value; } diff --git a/grid/ObjectGrid.js b/grid/ObjectGrid.js index 4a722ac..541cf1d 100644 --- a/grid/ObjectGrid.js +++ b/grid/ObjectGrid.js @@ -2,7 +2,7 @@ mandatory config parameters: rows: an object container where each propery is a key-value object we want to render - var rows = { + let rows = { keyboard: { header: gettext('Keyboard Layout'), editor: 'Your.KeyboardEdit', @@ -25,7 +25,7 @@ Ext.define('Proxmox.grid.ObjectGrid', { monStoreErrors: false, add_combobox_row: function(name, text, opts) { - var me = this; + let me = this; opts = opts || {}; me.rows = me.rows || {}; @@ -58,7 +58,7 @@ Ext.define('Proxmox.grid.ObjectGrid', { }, add_text_row: function(name, text, opts) { - var me = this; + let me = this; opts = opts || {}; me.rows = me.rows || {}; @@ -90,7 +90,7 @@ Ext.define('Proxmox.grid.ObjectGrid', { }, add_boolean_row: function(name, text, opts) { - var me = this; + let me = this; opts = opts || {}; me.rows = me.rows || {}; @@ -123,7 +123,7 @@ Ext.define('Proxmox.grid.ObjectGrid', { }, add_integer_row: function(name, text, opts) { - var me = this; + let me = this; opts = opts || {}; me.rows = me.rows || {}; @@ -159,22 +159,22 @@ Ext.define('Proxmox.grid.ObjectGrid', { editorConfig: {}, // default config passed to editor run_editor: function() { - var me = this; + let me = this; - var sm = me.getSelectionModel(); - var rec = sm.getSelection()[0]; + let sm = me.getSelectionModel(); + let rec = sm.getSelection()[0]; if (!rec) { return; } - var rows = me.rows; - var rowdef = rows[rec.data.key]; + let rows = me.rows; + let rowdef = rows[rec.data.key]; if (!rowdef.editor) { return; } - var win; - var config; + let win; + let config; if (Ext.isString(rowdef.editor)) { config = Ext.apply({ confid: rec.data.key, @@ -194,13 +194,13 @@ Ext.define('Proxmox.grid.ObjectGrid', { }, reload: function() { - var me = this; + let me = this; me.rstore.load(); }, getObjectValue: function(key, defaultValue) { - var me = this; - var rec = me.store.getById(key); + let me = this; + let rec = me.store.getById(key); if (rec) { return rec.data.value; } @@ -208,19 +208,19 @@ Ext.define('Proxmox.grid.ObjectGrid', { }, renderKey: function(key, metaData, record, rowIndex, colIndex, store) { - var me = this; - var rows = me.rows; - var rowdef = rows && rows[key] ? rows[key] : {}; + let me = this; + let rows = me.rows; + let rowdef = rows && rows[key] ? rows[key] : {}; return rowdef.header || key; }, renderValue: function(value, metaData, record, rowIndex, colIndex, store) { - var me = this; - var rows = me.rows; - var key = record.data.key; - var rowdef = rows && rows[key] ? rows[key] : {}; + let me = this; + let rows = me.rows; + let key = record.data.key; + let rowdef = rows && rows[key] ? rows[key] : {}; - var renderer = rowdef.renderer; + let renderer = rowdef.renderer; if (renderer) { return renderer(value, metaData, record, rowIndex, colIndex, store); } @@ -235,7 +235,7 @@ Ext.define('Proxmox.grid.ObjectGrid', { } }, itemkeyup: function(view, record, item, index, e) { - if (e.getKey() === e.ENTER && index == this.pressedIndex) { + if (e.getKey() === e.ENTER && index === this.pressedIndex) { this.run_editor(); } @@ -244,9 +244,9 @@ Ext.define('Proxmox.grid.ObjectGrid', { }, initComponent: function() { - var me = this; + let me = this; - var rows = me.rows; + let rows = me.rows; if (!me.rstore) { if (!me.url) { @@ -287,7 +287,7 @@ Ext.define('Proxmox.grid.ObjectGrid', { store.filters.add(Ext.create('Ext.util.Filter', { filterFn: function(item) { if (rows) { - var rowdef = rows[item.data.key]; + let rowdef = rows[item.data.key]; if (!rowdef || rowdef.visible === false) { return false; } diff --git a/grid/PendingObjectGrid.js b/grid/PendingObjectGrid.js index 0ab16d6..a5a640c 100644 --- a/grid/PendingObjectGrid.js +++ b/grid/PendingObjectGrid.js @@ -3,10 +3,10 @@ Ext.define('Proxmox.grid.PendingObjectGrid', { alias: ['widget.proxmoxPendingObjectGrid'], getObjectValue: function(key, defaultValue, pending) { - var me = this; - var rec = me.store.getById(key); + let me = this; + let rec = me.store.getById(key); if (rec) { - var value = rec.data.value; + let value = rec.data.value; if (pending) { if (Ext.isDefined(rec.data.pending) && rec.data.pending !== '') { value = rec.data.pending; @@ -25,42 +25,42 @@ Ext.define('Proxmox.grid.PendingObjectGrid', { }, hasPendingChanges: function(key) { - var me = this; - var rows = me.rows; - var rowdef = rows && rows[key] ? rows[key] : {}; - var keys = rowdef.multiKey || [key]; - var pending = false; + let me = this; + let rows = me.rows; + let rowdef = rows && rows[key] ? rows[key] : {}; + let keys = rowdef.multiKey || [key]; + let pending = false; Ext.Array.each(keys, function(k) { - var rec = me.store.getById(k); + let rec = me.store.getById(k); if (rec && rec.data && ( - Ext.isDefined(rec.data.pending) && rec.data.pending !== '' || + (Ext.isDefined(rec.data.pending) && rec.data.pending !== '') || rec.data.delete === 1 )) { pending = true; return false; // break } + return true; }); return pending; }, renderValue: function(value, metaData, record, rowIndex, colIndex, store) { - var me = this; - var rows = me.rows; - var key = record.data.key; - var rowdef = rows && rows[key] ? rows[key] : {}; - var renderer = rowdef.renderer; - var current = ''; - var pendingdelete = ''; - var pending = ''; + let me = this; + let rows = me.rows; + let key = record.data.key; + let rowdef = rows && rows[key] ? rows[key] : {}; + let renderer = rowdef.renderer; + let current = ''; + let pending = ''; if (renderer) { current = renderer(value, metaData, record, rowIndex, colIndex, store, false); if (me.hasPendingChanges(key)) { pending = renderer(record.data.pending, metaData, record, rowIndex, colIndex, store, true); } - if (pending == current) { + if (pending === current) { pending = undefined; } } else { @@ -69,14 +69,15 @@ Ext.define('Proxmox.grid.PendingObjectGrid', { } if (record.data.delete) { - var delete_all = true; + let delete_all = true; if (rowdef.multiKey) { Ext.Array.each(rowdef.multiKey, function(k) { - var rec = me.store.getById(k); + let rec = me.store.getById(k); if (rec && rec.data && rec.data.delete !== 1) { delete_all = false; return false; // break } + return true; }); } if (delete_all) { @@ -92,9 +93,7 @@ Ext.define('Proxmox.grid.PendingObjectGrid', { }, initComponent: function() { - var me = this; - - var rows = me.rows; + let me = this; if (!me.rstore) { if (!me.url) { diff --git a/mixin/CBind.js b/mixin/CBind.js index 14710a5..afef53a 100644 --- a/mixin/CBind.js +++ b/mixin/CBind.js @@ -8,14 +8,14 @@ Ext.define('Proxmox.Mixin.CBind', { }, cloneTemplates: function() { - var me = this; + let me = this; if (typeof me.cbindData === "function") { me.cbindData = me.cbindData(me.initialConfig); } me.cbindData = me.cbindData || {}; - var getConfigValue = function(cname) { + let getConfigValue = function(cname) { if (cname in me.initialConfig) { return me.initialConfig[cname]; } @@ -33,25 +33,26 @@ Ext.define('Proxmox.Mixin.CBind', { throw "unable to get cbind data for '" + cname + "'"; }; - var applyCBind = function(obj) { - var cbind = obj.cbind, prop, cdata, cvalue, match, found; + let applyCBind = function(obj) { + let cbind = obj.cbind, cdata; if (!cbind) return; - for (prop in cbind) { + for (const prop in cbind) { // eslint-disable-line guard-for-in + let match, found; cdata = cbind[prop]; found = false; if (typeof cdata === 'function') { obj[prop] = cdata(getConfigValue, prop); found = true; - } else if (match = /^\{(!)?([a-z_][a-z0-9_]*)\}$/i.exec(cdata)) { - var cvalue = getConfigValue(match[2]); + } else if ((match = /^\{(!)?([a-z_][a-z0-9_]*)\}$/i.exec(cdata))) { + let cvalue = getConfigValue(match[2]); if (match[1]) cvalue = !cvalue; obj[prop] = cvalue; found = true; - } else if (match = /^\{(!)?([a-z_][a-z0-9_]*(\.[a-z_][a-z0-9_]*)+)\}$/i.exec(cdata)) { - var keys = match[2].split('.'); - var cvalue = getConfigValue(keys.shift()); + } else if ((match = /^\{(!)?([a-z_][a-z0-9_]*(\.[a-z_][a-z0-9_]*)+)\}$/i.exec(cdata))) { + let keys = match[2].split('.'); + let cvalue = getConfigValue(keys.shift()); keys.forEach(function(k) { if (k in cvalue) { cvalue = cvalue[k]; @@ -63,8 +64,8 @@ Ext.define('Proxmox.Mixin.CBind', { obj[prop] = cvalue; found = true; } else { - obj[prop] = cdata.replace(/{([a-z_][a-z0-9_]*)\}/ig, function(match, cname) { - var cvalue = getConfigValue(cname); + obj[prop] = cdata.replace(/{([a-z_][a-z0-9_]*)\}/ig, (_match, cname) => { + let cvalue = getConfigValue(cname); found = true; return cvalue; }); @@ -79,14 +80,15 @@ Ext.define('Proxmox.Mixin.CBind', { applyCBind(me); } - var cloneTemplateArray = function(org) { - var copy, i, found, el, elcopy, arrayLength; + let cloneTemplateObject; + let cloneTemplateArray = function(org) { + let copy, i, found, el, elcopy, arrayLength; arrayLength = org.length; found = false; for (i = 0; i < arrayLength; i++) { el = org[i]; - if (el.constructor == Object && el.xtype) { + if (el.constructor === Object && el.xtype) { found = true; break; } @@ -97,13 +99,13 @@ Ext.define('Proxmox.Mixin.CBind', { copy = []; for (i = 0; i < arrayLength; i++) { el = org[i]; - if (el.constructor == Object && el.xtype) { + if (el.constructor === Object && el.xtype) { elcopy = cloneTemplateObject(el); if (elcopy.cbind) { applyCBind(elcopy); } copy.push(elcopy); - } else if (el.constructor == Array) { + } else if (el.constructor === Array) { elcopy = cloneTemplateArray(el); copy.push(elcopy); } else { @@ -113,21 +115,21 @@ Ext.define('Proxmox.Mixin.CBind', { return copy; }; - var cloneTemplateObject = function(org) { - var res = {}, prop, el, copy; - for (prop in org) { + cloneTemplateObject = function(org) { + let res = {}, prop, el, copy; + for (prop in org) { // eslint-disable-line guard-for-in el = org[prop]; if (el === undefined || el === null) { res[prop] = el; continue; } - if (el.constructor == Object && el.xtype) { + if (el.constructor === Object && el.xtype) { copy = cloneTemplateObject(el); if (copy.cbind) { applyCBind(copy); } res[prop] = copy; - } else if (el.constructor == Array) { + } else if (el.constructor === Array) { copy = cloneTemplateArray(el); res[prop] = copy; } else { @@ -137,17 +139,17 @@ Ext.define('Proxmox.Mixin.CBind', { return res; }; - var condCloneProperties = function() { - var prop, el, i, tmp; + let condCloneProperties = function() { + let prop, el, tmp; - for (prop in me) { + for (prop in me) { // eslint-disable-line guard-for-in el = me[prop]; if (el === undefined || el === null) continue; - if (typeof el === 'object' && el.constructor == Object) { - if (el.xtype && prop != 'config') { + if (typeof el === 'object' && el.constructor === Object) { + if (el.xtype && prop !== 'config') { me[prop] = cloneTemplateObject(el); } - } else if (el.constructor == Array) { + } else if (el.constructor === Array) { tmp = cloneTemplateArray(el); me[prop] = tmp; } diff --git a/node/APT.js b/node/APT.js index a2c5f1c..1b564ef 100644 --- a/node/APT.js +++ b/node/APT.js @@ -45,13 +45,13 @@ Ext.define('Proxmox.node.APT', { ], initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; } - var store = Ext.create('Ext.data.Store', { + let store = Ext.create('Ext.data.Store', { model: 'apt-pkglist', groupField: 'Origin', proxy: { @@ -66,15 +66,15 @@ Ext.define('Proxmox.node.APT', { ], }); - var groupingFeature = Ext.create('Ext.grid.feature.Grouping', { + let groupingFeature = Ext.create('Ext.grid.feature.Grouping', { groupHeaderTpl: '{[ "Origin: " + values.name ]} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})', enableGroupingMenu: false, }); - var rowBodyFeature = Ext.create('Ext.grid.feature.RowBody', { + let rowBodyFeature = Ext.create('Ext.grid.feature.RowBody', { getAdditionalData: function(data, rowIndex, record, orig) { - var headerCt = this.view.headerCt; - var colspan = headerCt.getColumnCount(); + let headerCt = this.view.headerCt; + let colspan = headerCt.getColumnCount(); return { rowBody: '
' + Ext.String.htmlEncode(data.Description) + @@ -85,13 +85,13 @@ Ext.define('Proxmox.node.APT', { }, }); - var reload = function() { + let reload = function() { store.load(); }; Proxmox.Utils.monStoreErrors(me, store, true); - var apt_command = function(cmd) { + let apt_command = function(cmd) { Proxmox.Utils.API2Request({ url: "/nodes/" + me.nodename + "/apt/" + cmd, method: 'POST', @@ -99,9 +99,9 @@ Ext.define('Proxmox.node.APT', { Ext.Msg.alert(gettext('Error'), response.htmlStatus); }, success: function(response, opts) { - var upid = response.result.data; + let upid = response.result.data; - var win = Ext.create('Proxmox.window.TaskViewer', { + let win = Ext.create('Proxmox.window.TaskViewer', { upid: upid, }); win.show(); @@ -110,21 +110,21 @@ Ext.define('Proxmox.node.APT', { }); }; - var sm = Ext.create('Ext.selection.RowModel', {}); + let sm = Ext.create('Ext.selection.RowModel', {}); - var update_btn = new Ext.Button({ + let update_btn = new Ext.Button({ text: gettext('Refresh'), handler: function() { Proxmox.Utils.checked_command(function() { apt_command('update'); }); }, }); - var show_changelog = function(rec) { + let show_changelog = function(rec) { if (!rec || !rec.data || !(rec.data.ChangeLogUrl && rec.data.Package)) { return; } - var view = Ext.createWidget('component', { + let view = Ext.createWidget('component', { autoScroll: true, style: { 'background-color': 'white', @@ -134,7 +134,7 @@ Ext.define('Proxmox.node.APT', { }, }); - var win = Ext.create('Ext.window.Window', { + let win = Ext.create('Ext.window.Window', { title: gettext('Changelog') + ": " + rec.data.Package, width: 800, height: 400, @@ -162,7 +162,7 @@ Ext.define('Proxmox.node.APT', { }); }; - var changelog_btn = new Proxmox.button.Button({ + let changelog_btn = new Proxmox.button.Button({ text: gettext('Changelog'), selModel: sm, disabled: true, @@ -177,7 +177,7 @@ Ext.define('Proxmox.node.APT', { }, }); - var verbose_desc_checkbox = new Ext.form.field.Checkbox({ + let verbose_desc_checkbox = new Ext.form.field.Checkbox({ boxLabel: gettext('Show details'), value: false, listeners: { diff --git a/node/DNSEdit.js b/node/DNSEdit.js index c4f2ff7..0b1135e 100644 --- a/node/DNSEdit.js +++ b/node/DNSEdit.js @@ -3,7 +3,7 @@ Ext.define('Proxmox.node.DNSEdit', { alias: ['widget.proxmoxNodeDNSEdit'], initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; diff --git a/node/DNSView.js b/node/DNSView.js index 6afec54..e40e5a1 100644 --- a/node/DNSView.js +++ b/node/DNSView.js @@ -3,14 +3,14 @@ Ext.define('Proxmox.node.DNSView', { alias: ['widget.proxmoxNodeDNSView'], initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; } - var run_editor = function() { - var win = Ext.create('Proxmox.node.DNSEdit', { + let run_editor = function() { + let win = Ext.create('Proxmox.node.DNSEdit', { nodename: me.nodename, }); win.show(); diff --git a/node/HostsView.js b/node/HostsView.js index 6f594b2..9adb6b2 100644 --- a/node/HostsView.js +++ b/node/HostsView.js @@ -3,7 +3,7 @@ Ext.define('Proxmox.node.HostsView', { xtype: 'proxmoxNodeHostsView', reload: function() { - var me = this; + let me = this; me.store.load(); }, @@ -13,17 +13,17 @@ Ext.define('Proxmox.node.HostsView', { disabled: true, itemId: 'savebtn', handler: function() { - var me = this.up('panel'); + let view = this.up('panel'); Proxmox.Utils.API2Request({ params: { - digest: me.digest, - data: me.down('#hostsfield').getValue(), + digest: view.digest, + data: view.down('#hostsfield').getValue(), }, method: 'POST', - url: '/nodes/' + me.nodename + '/hosts', - waitMsgTarget: me, + url: '/nodes/' + view.nodename + '/hosts', + waitMsgTarget: view, success: function(response, opts) { - me.reload(); + view.reload(); }, failure: function(response, opts) { Ext.Msg.alert('Error', response.htmlStatus); @@ -36,8 +36,8 @@ Ext.define('Proxmox.node.HostsView', { disabled: true, itemId: 'resetbtn', handler: function() { - var me = this.up('panel'); - me.down('#hostsfield').reset(); + let view = this.up('panel'); + view.down('#hostsfield').reset(); }, }, ], @@ -54,16 +54,16 @@ Ext.define('Proxmox.node.HostsView', { }, listeners: { dirtychange: function(ta, dirty) { - var me = this.up('panel'); - me.down('#savebtn').setDisabled(!dirty); - me.down('#resetbtn').setDisabled(!dirty); + let view = this.up('panel'); + view.down('#savebtn').setDisabled(!dirty); + view.down('#resetbtn').setDisabled(!dirty); }, }, }, ], initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; @@ -85,7 +85,7 @@ Ext.define('Proxmox.node.HostsView', { return; } me.digest = records[0].data.digest; - var data = records[0].data.data; + let data = records[0].data.data; me.down('#hostsfield').setValue(data); me.down('#hostsfield').resetOriginalValue(); }); diff --git a/node/NetworkEdit.js b/node/NetworkEdit.js index b4cb4c9..72aab6f 100644 --- a/node/NetworkEdit.js +++ b/node/NetworkEdit.js @@ -3,7 +3,7 @@ Ext.define('Proxmox.node.NetworkEdit', { alias: ['widget.proxmoxNodeNetworkEdit'], initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; @@ -15,7 +15,7 @@ Ext.define('Proxmox.node.NetworkEdit', { me.isCreate = !me.iface; - var iface_vtype; + let iface_vtype; if (me.iftype === 'bridge') { iface_vtype = 'BridgeName'; @@ -109,12 +109,12 @@ Ext.define('Proxmox.node.NetworkEdit', { if (Proxmox.Utils.VlanInterface_match.test(me.iface)) { me.disablevlanid = true; me.disablevlanrawdevice = true; - var arr = Proxmox.Utils.VlanInterface_match.exec(me.iface); + let arr = Proxmox.Utils.VlanInterface_match.exec(me.iface); me.vlanrawdevicevalue = arr[1]; me.vlanidvalue = arr[2]; } else if (Proxmox.Utils.Vlan_match.test(me.iface)) { me.disablevlanid = true; - var arr = Proxmox.Utils.Vlan_match.exec(me.iface); + let arr = Proxmox.Utils.Vlan_match.exec(me.iface); me.vlanidvalue = arr[1]; } } else { @@ -149,14 +149,14 @@ Ext.define('Proxmox.node.NetworkEdit', { name: 'slaves', }); - var policySelector = Ext.createWidget('bondPolicySelector', { + let policySelector = Ext.createWidget('bondPolicySelector', { fieldLabel: gettext('Hash policy'), name: 'bond_xmit_hash_policy', deleteEmpty: !me.isCreate, disabled: true, }); - var primaryfield = Ext.createWidget('textfield', { + let primaryfield = Ext.createWidget('textfield', { fieldLabel: gettext('bond-primary'), name: 'bond-primary', value: '', @@ -222,8 +222,8 @@ Ext.define('Proxmox.node.NetworkEdit', { name: 'comments', }); - var url; - var method; + let url; + let method; if (me.isCreate) { url = "/api2/extjs/nodes/" + me.nodename + "/network"; @@ -248,8 +248,8 @@ Ext.define('Proxmox.node.NetworkEdit', { listeners: { change: function(f, value) { if (me.isCreate && iface_vtype === 'VlanName') { - var vlanidField = me.down('field[name=vlan-id]'); - var vlanrawdeviceField = me.down('field[name=vlan-raw-device]'); + let vlanidField = me.down('field[name=vlan-id]'); + let vlanrawdeviceField = me.down('field[name=vlan-raw-device]'); if (Proxmox.Utils.VlanInterface_match.test(value)) { vlanidField.setDisabled(true); vlanrawdeviceField.setDisabled(true); @@ -345,9 +345,9 @@ Ext.define('Proxmox.node.NetworkEdit', { } else { me.load({ success: function(response, options) { - var data = response.result.data; + let data = response.result.data; if (data.type !== me.iftype) { - var msg = "Got unexpected device type"; + let msg = "Got unexpected device type"; Ext.Msg.alert(gettext('Error'), msg, function() { me.close(); }); diff --git a/node/NetworkView.js b/node/NetworkView.js index 9503aa5..886b8de 100644 --- a/node/NetworkView.js +++ b/node/NetworkView.js @@ -32,15 +32,15 @@ Ext.define('Proxmox.node.NetworkView', { showApplyBtn: false, initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; } - var baseUrl = '/nodes/' + me.nodename + '/network'; + let baseUrl = '/nodes/' + me.nodename + '/network'; - var store = Ext.create('Ext.data.Store', { + let store = Ext.create('Ext.data.Store', { model: 'proxmox-networks', proxy: { type: 'proxmox', @@ -54,10 +54,10 @@ Ext.define('Proxmox.node.NetworkView', { ], }); - var reload = function() { - var changeitem = me.down('#changes'); - var apply_btn = me.down('#apply'); - var revert_btn = me.down('#revert'); + let reload = function() { + let changeitem = me.down('#changes'); + let apply_btn = me.down('#apply'); + let revert_btn = me.down('#revert'); Proxmox.Utils.API2Request({ url: baseUrl, failure: function(response, opts) { @@ -67,9 +67,9 @@ Ext.define('Proxmox.node.NetworkView', { changeitem.setHidden(true); }, success: function(response, opts) { - var result = Ext.decode(response.responseText); + let result = Ext.decode(response.responseText); store.loadData(result.data); - var changes = result.changes; + let changes = result.changes; if (changes === undefined || changes === '') { changes = gettext("No changes"); changeitem.setHidden(true); @@ -85,15 +85,15 @@ Ext.define('Proxmox.node.NetworkView', { }); }; - var run_editor = function() { - var grid = me.down('gridpanel'); - var sm = grid.getSelectionModel(); - var rec = sm.getSelection()[0]; + let run_editor = function() { + let grid = me.down('gridpanel'); + let sm = grid.getSelectionModel(); + let rec = sm.getSelection()[0]; if (!rec) { return; } - var win = Ext.create('Proxmox.node.NetworkEdit', { + let win = Ext.create('Proxmox.node.NetworkEdit', { nodename: me.nodename, iface: rec.data.iface, iftype: rec.data.type, @@ -102,24 +102,24 @@ Ext.define('Proxmox.node.NetworkView', { win.on('destroy', reload); }; - var edit_btn = new Ext.Button({ + let edit_btn = new Ext.Button({ text: gettext('Edit'), disabled: true, handler: run_editor, }); - var del_btn = new Ext.Button({ + let del_btn = new Ext.Button({ text: gettext('Remove'), disabled: true, handler: function() { - var grid = me.down('gridpanel'); - var sm = grid.getSelectionModel(); - var rec = sm.getSelection()[0]; + let grid = me.down('gridpanel'); + let sm = grid.getSelectionModel(); + let rec = sm.getSelection()[0]; if (!rec) { return; } - var iface = rec.data.iface; + let iface = rec.data.iface; Proxmox.Utils.API2Request({ url: baseUrl + '/' + iface, @@ -135,7 +135,7 @@ Ext.define('Proxmox.node.NetworkView', { }, }); - var apply_btn = Ext.create('Proxmox.button.Button', { + let apply_btn = Ext.create('Proxmox.button.Button', { text: gettext('Apply Configuration'), itemId: 'apply', disabled: true, @@ -147,9 +147,9 @@ Ext.define('Proxmox.node.NetworkView', { method: 'PUT', waitMsgTarget: me, success: function(response, opts) { - var upid = response.result.data; + let upid = response.result.data; - var win = Ext.create('Proxmox.window.TaskProgress', { + let win = Ext.create('Proxmox.window.TaskProgress', { taskDone: reload, upid: upid, }); @@ -162,16 +162,16 @@ Ext.define('Proxmox.node.NetworkView', { }, }); - var set_button_status = function() { - var grid = me.down('gridpanel'); - var sm = grid.getSelectionModel(); - var rec = sm.getSelection()[0]; + let set_button_status = function() { + let grid = me.down('gridpanel'); + let sm = grid.getSelectionModel(); + let rec = sm.getSelection()[0]; edit_btn.setDisabled(!rec); del_btn.setDisabled(!rec); }; - var render_ports = function(value, metaData, record) { + let render_ports = function(value, metaData, record) { if (value === 'bridge') { return record.data.bridge_ports; } else if (value === 'bond') { @@ -181,10 +181,11 @@ Ext.define('Proxmox.node.NetworkView', { } else if (value === 'OVSBond') { return record.data.ovs_bonds; } + return ''; }; - var find_next_iface_id = function(prefix) { - var next; + let find_next_iface_id = function(prefix) { + let next; for (next = 0; next <= 9999; next++) { if (!store.getById(prefix + next.toString())) { break; @@ -193,13 +194,13 @@ Ext.define('Proxmox.node.NetworkView', { return prefix + next.toString(); }; - var menu_items = []; + let menu_items = []; if (me.types.indexOf('bridge') !== -1) { menu_items.push({ text: Proxmox.Utils.render_network_iface_type('bridge'), handler: function() { - var win = Ext.create('Proxmox.node.NetworkEdit', { + let win = Ext.create('Proxmox.node.NetworkEdit', { nodename: me.nodename, iftype: 'bridge', iface_default: find_next_iface_id('vmbr'), @@ -215,7 +216,7 @@ Ext.define('Proxmox.node.NetworkView', { menu_items.push({ text: Proxmox.Utils.render_network_iface_type('bond'), handler: function() { - var win = Ext.create('Proxmox.node.NetworkEdit', { + let win = Ext.create('Proxmox.node.NetworkEdit', { nodename: me.nodename, iftype: 'bond', iface_default: find_next_iface_id('bond'), @@ -231,7 +232,7 @@ Ext.define('Proxmox.node.NetworkView', { menu_items.push({ text: Proxmox.Utils.render_network_iface_type('vlan'), handler: function() { - var win = Ext.create('Proxmox.node.NetworkEdit', { + let win = Ext.create('Proxmox.node.NetworkEdit', { nodename: me.nodename, iftype: 'vlan', iface_default: 'interfaceX.1', @@ -252,7 +253,7 @@ Ext.define('Proxmox.node.NetworkView', { { text: Proxmox.Utils.render_network_iface_type('OVSBridge'), handler: function() { - var win = Ext.create('Proxmox.node.NetworkEdit', { + let win = Ext.create('Proxmox.node.NetworkEdit', { nodename: me.nodename, iftype: 'OVSBridge', iface_default: find_next_iface_id('vmbr'), @@ -264,7 +265,7 @@ Ext.define('Proxmox.node.NetworkView', { { text: Proxmox.Utils.render_network_iface_type('OVSBond'), handler: function() { - var win = Ext.create('Proxmox.node.NetworkEdit', { + let win = Ext.create('Proxmox.node.NetworkEdit', { nodename: me.nodename, iftype: 'OVSBond', iface_default: find_next_iface_id('bond'), @@ -276,7 +277,7 @@ Ext.define('Proxmox.node.NetworkView', { { text: Proxmox.Utils.render_network_iface_type('OVSIntPort'), handler: function() { - var win = Ext.create('Proxmox.node.NetworkEdit', { + let win = Ext.create('Proxmox.node.NetworkEdit', { nodename: me.nodename, iftype: 'OVSIntPort', }); @@ -287,9 +288,9 @@ Ext.define('Proxmox.node.NetworkView', { ); } - var renderer_generator = function(fieldname) { + let renderer_generator = function(fieldname) { return function(val, metaData, rec) { - var tmp = []; + let tmp = []; if (rec.data[fieldname]) { tmp.push(rec.data[fieldname]); } diff --git a/node/ServiceView.js b/node/ServiceView.js index 416edf7..88026a4 100644 --- a/node/ServiceView.js +++ b/node/ServiceView.js @@ -12,13 +12,13 @@ Ext.define('Proxmox.node.ServiceView', { startOnlyServices: {}, initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; } - var rstore = Ext.create('Proxmox.data.UpdateStore', { + let rstore = Ext.create('Proxmox.data.UpdateStore', { interval: 1000, storeid: 'proxmox-services' + me.nodename, model: 'proxmox-services', @@ -28,7 +28,7 @@ Ext.define('Proxmox.node.ServiceView', { }, }); - var store = Ext.create('Proxmox.data.DiffStore', { + let store = Ext.create('Proxmox.data.DiffStore', { rstore: rstore, sortAfterUpdate: true, sorters: [ @@ -39,10 +39,10 @@ Ext.define('Proxmox.node.ServiceView', { ], }); - var view_service_log = function() { - var sm = me.getSelectionModel(); - var rec = sm.getSelection()[0]; - var win = Ext.create('Ext.window.Window', { + let view_service_log = function() { + let sm = me.getSelectionModel(); + let rec = sm.getSelection()[0]; + let win = Ext.create('Ext.window.Window', { title: gettext('Syslog') + ': ' + rec.data.service, modal: true, width: 800, @@ -58,9 +58,9 @@ Ext.define('Proxmox.node.ServiceView', { win.show(); }; - var service_cmd = function(cmd) { - var sm = me.getSelectionModel(); - var rec = sm.getSelection()[0]; + let service_cmd = function(cmd) { + let sm = me.getSelectionModel(); + let rec = sm.getSelection()[0]; Proxmox.Utils.API2Request({ url: "/nodes/" + me.nodename + "/services/" + rec.data.service + "/" + cmd, method: 'POST', @@ -70,9 +70,9 @@ Ext.define('Proxmox.node.ServiceView', { }, success: function(response, opts) { rstore.startUpdate(); - var upid = response.result.data; + let upid = response.result.data; - var win = Ext.create('Proxmox.window.TaskProgress', { + let win = Ext.create('Proxmox.window.TaskProgress', { upid: upid, }); win.show(); @@ -80,7 +80,7 @@ Ext.define('Proxmox.node.ServiceView', { }); }; - var start_btn = new Ext.Button({ + let start_btn = new Ext.Button({ text: gettext('Start'), disabled: true, handler: function() { @@ -88,7 +88,7 @@ Ext.define('Proxmox.node.ServiceView', { }, }); - var stop_btn = new Ext.Button({ + let stop_btn = new Ext.Button({ text: gettext('Stop'), disabled: true, handler: function() { @@ -96,7 +96,7 @@ Ext.define('Proxmox.node.ServiceView', { }, }); - var restart_btn = new Ext.Button({ + let restart_btn = new Ext.Button({ text: gettext('Restart'), disabled: true, handler: function() { @@ -104,15 +104,15 @@ Ext.define('Proxmox.node.ServiceView', { }, }); - var syslog_btn = new Ext.Button({ + let syslog_btn = new Ext.Button({ text: gettext('Syslog'), disabled: true, handler: view_service_log, }); - var set_button_status = function() { - var sm = me.getSelectionModel(); - var rec = sm.getSelection()[0]; + let set_button_status = function() { + let sm = me.getSelectionModel(); + let rec = sm.getSelection()[0]; if (!rec) { start_btn.disable(); @@ -121,29 +121,25 @@ Ext.define('Proxmox.node.ServiceView', { syslog_btn.disable(); return; } - var service = rec.data.service; - var state = rec.data.state; + let service = rec.data.service; + let state = rec.data.state; syslog_btn.enable(); - if (me.startOnlyServices[service]) { - if (state == 'running') { - start_btn.disable(); - restart_btn.enable(); - } else { - start_btn.enable(); - restart_btn.disable(); - } - stop_btn.disable(); - } else if (state == 'running') { - start_btn.disable(); - restart_btn.enable(); + if (state === 'running') { + start_btn.disable(); + restart_btn.enable(); + } else { + start_btn.enable(); + restart_btn.disable(); + } + if (!me.startOnlyServices[service]) { + if (state === 'running') { stop_btn.enable(); } else { - start_btn.enable(); - restart_btn.disable(); stop_btn.disable(); } + } }; me.mon(store, 'refresh', set_button_status); diff --git a/node/TimeEdit.js b/node/TimeEdit.js index 43bbfe9..613a2f5 100644 --- a/node/TimeEdit.js +++ b/node/TimeEdit.js @@ -26,7 +26,7 @@ Ext.define('Proxmox.node.TimeEdit', { }, initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; diff --git a/node/TimeView.js b/node/TimeView.js index 0b09483..9033d13 100644 --- a/node/TimeView.js +++ b/node/TimeView.js @@ -3,20 +3,20 @@ Ext.define('Proxmox.node.TimeView', { alias: ['widget.proxmoxNodeTimeView'], initComponent: function() { - var me = this; + let me = this; if (!me.nodename) { throw "no node name specified"; } - var tzoffset = new Date().getTimezoneOffset()*60000; - var renderlocaltime = function(value) { - var servertime = new Date(value * 1000 + tzoffset); + let tzoffset = new Date().getTimezoneOffset()*60000; + let renderlocaltime = function(value) { + let servertime = new Date((value * 1000) + tzoffset); return Ext.Date.format(servertime, 'Y-m-d H:i:s'); }; - var run_editor = function() { - var win = Ext.create('Proxmox.node.TimeEdit', { + let run_editor = function() { + let win = Ext.create('Proxmox.node.TimeEdit', { nodename: me.nodename, }); win.show(); diff --git a/panel/GaugeWidget.js b/panel/GaugeWidget.js index b5c1539..6cd6b60 100644 --- a/panel/GaugeWidget.js +++ b/panel/GaugeWidget.js @@ -61,9 +61,9 @@ Ext.define('Proxmox.panel.GaugeWidget', { updateValue: function(value, text) { - var me = this; - var color = me.defaultColor; - var attr = {}; + let me = this; + let color = me.defaultColor; + let attr = {}; if (value >= me.criticalThreshold) { color = me.criticalColor; @@ -88,7 +88,7 @@ Ext.define('Proxmox.panel.GaugeWidget', { }, initComponent: function() { - var me = this; + let me = this; me.callParent(); diff --git a/panel/InputPanel.js b/panel/InputPanel.js index cac9574..0ac5e48 100644 --- a/panel/InputPanel.js +++ b/panel/InputPanel.js @@ -33,13 +33,13 @@ Ext.define('Proxmox.panel.InputPanel', { }, getValues: function(dirtyOnly) { - var me = this; + let me = this; if (Ext.isFunction(me.onGetValues)) { dirtyOnly = false; } - var values = {}; + let values = {}; Ext.Array.each(me.query('[isFormField]'), function(field) { if (!dirtyOnly || field.isDirty()) { @@ -51,17 +51,17 @@ Ext.define('Proxmox.panel.InputPanel', { }, setAdvancedVisible: function(visible) { - var me = this; - var advItems = me.getComponent('advancedContainer'); + let me = this; + let advItems = me.getComponent('advancedContainer'); if (advItems) { advItems.setVisible(visible); } }, setValues: function(values) { - var me = this; + let me = this; - var form = me.up('form'); + let form = me.up('form'); Ext.iterate(values, function(fieldId, val) { let fields = me.query('[isFormField][name=' + fieldId + ']'); @@ -77,9 +77,9 @@ Ext.define('Proxmox.panel.InputPanel', { }, initComponent: function() { - var me = this; + let me = this; - var items; + let items; if (me.items) { me.columns = 1; @@ -155,7 +155,7 @@ Ext.define('Proxmox.panel.InputPanel', { throw "unsupported config"; } - var advItems; + let advItems; if (me.advancedItems) { advItems = [ { diff --git a/panel/JournalView.js b/panel/JournalView.js index a8f2fc3..b81cc45 100644 --- a/panel/JournalView.js +++ b/panel/JournalView.js @@ -16,10 +16,10 @@ Ext.define('Proxmox.panel.JournalView', { xclass: 'Ext.app.ViewController', updateParams: function() { - var me = this; - var viewModel = me.getViewModel(); - var since = viewModel.get('since'); - var until = viewModel.get('until'); + let me = this; + let viewModel = me.getViewModel(); + let since = viewModel.get('since'); + let until = viewModel.get('until'); since.setHours(0, 0, 0, 0); until.setHours(0, 0, 0, 0); @@ -34,48 +34,48 @@ Ext.define('Proxmox.panel.JournalView', { }, scrollPosBottom: function() { - var view = this.getView(); - var pos = view.getScrollY(); - var maxPos = view.getScrollable().getMaxPosition().y; + let view = this.getView(); + let pos = view.getScrollY(); + let maxPos = view.getScrollable().getMaxPosition().y; return maxPos - pos; }, scrollPosTop: function() { - var view = this.getView(); + let view = this.getView(); return view.getScrollY(); }, updateScroll: function(livemode, num, scrollPos, scrollPosTop) { - var me = this; - var view = me.getView(); + let me = this; + let view = me.getView(); if (!livemode) { setTimeout(function() { view.scrollTo(0, 0); }, 10); } else if (view.scrollToEnd && scrollPos <= 0) { setTimeout(function() { view.scrollTo(0, Infinity); }, 10); - } else if (!view.scrollToEnd && scrollPosTop < 20*view.lineHeight) { - setTimeout(function() { view.scrollTo(0, num*view.lineHeight + scrollPosTop); }, 10); + } else if (!view.scrollToEnd && scrollPosTop < 20 * view.lineHeight) { + setTimeout(function() { view.scrollTo(0, (num * view.lineHeight) + scrollPosTop); }, 10); } }, updateView: function(lines, livemode, top) { - var me = this; - var view = me.getView(); - var viewmodel = me.getViewModel(); + let me = this; + let view = me.getView(); + let viewmodel = me.getViewModel(); if (!viewmodel || viewmodel.get('livemode') !== livemode) { return; // we switched mode, do not update the content } - var contentEl = me.lookup('content'); + let contentEl = me.lookup('content'); // save old scrollpositions - var scrollPos = me.scrollPosBottom(); - var scrollPosTop = me.scrollPosTop(); + let scrollPos = me.scrollPosBottom(); + let scrollPosTop = me.scrollPosTop(); - var newend = lines.shift(); - var newstart = lines.pop(); + let newend = lines.shift(); + let newstart = lines.pop(); - var num = lines.length; - var text = lines.map(Ext.htmlEncode).join('
'); + let num = lines.length; + let text = lines.map(Ext.htmlEncode).join('
'); if (!livemode) { if (num) { @@ -107,14 +107,14 @@ Ext.define('Proxmox.panel.JournalView', { }, doLoad: function(livemode, top, since, until) { - var me = this; + let me = this; if (me.running) { me.requested = true; return; } me.running = true; - var view = me.getView(); - var params = { + let view = me.getView(); + let params = { lastentries: view.numEntries || 500, }; if (livemode) { @@ -138,7 +138,7 @@ Ext.define('Proxmox.panel.JournalView', { method: 'GET', success: function(response) { Proxmox.Utils.setErrorMask(me, false); - var lines = response.result.data; + let lines = response.result.data; me.updateView(lines, livemode, top); me.running = false; if (me.requested) { @@ -147,7 +147,7 @@ Ext.define('Proxmox.panel.JournalView', { } }, failure: function(response) { - var msg = response.htmlStatus; + let msg = response.htmlStatus; Proxmox.Utils.setErrorMask(me, msg); me.running = false; if (me.requested) { @@ -159,10 +159,10 @@ Ext.define('Proxmox.panel.JournalView', { }, onScroll: function(x, y) { - var me = this; - var view = me.getView(); - var viewmodel = me.getViewModel(); - var livemode = viewmodel.get('livemode'); + let me = this; + let view = me.getView(); + let viewmodel = me.getViewModel(); + let livemode = viewmodel.get('livemode'); if (!livemode) { return; } @@ -176,15 +176,15 @@ Ext.define('Proxmox.panel.JournalView', { }, init: function(view) { - var me = this; + let me = this; if (!view.url) { throw "no url specified"; } - var viewmodel = me.getViewModel(); - var viewModel = this.getViewModel(); - var since = new Date(); + let viewmodel = me.getViewModel(); + let viewModel = this.getViewModel(); + let since = new Date(); since.setDate(since.getDate() - 3); viewModel.set('until', new Date()); viewModel.set('since', since); @@ -208,8 +208,8 @@ Ext.define('Proxmox.panel.JournalView', { }, onLiveMode: function() { - var me = this; - var view = me.getView(); + let me = this; + let view = me.getView(); delete view.startcursor; delete view.endcursor; delete view.content; @@ -219,14 +219,14 @@ Ext.define('Proxmox.panel.JournalView', { }, onTimespan: function() { - var me = this; + let me = this; me.getViewModel().set('livemode', false); me.updateView([], false); }, }, onDestroy: function() { - var me = this; + let me = this; me.loadTask.cancel(); Ext.TaskManager.stop(me.task); delete me.content; @@ -234,7 +234,7 @@ Ext.define('Proxmox.panel.JournalView', { // for user to initiate a load from outside requestUpdate: function() { - var me = this; + let me = this; me.loadTask.delay(200); }, @@ -257,7 +257,7 @@ Ext.define('Proxmox.panel.JournalView', { // the panel have a 'scroll' event' scroll: { fn: function(scroller, x, y) { - var controller = this.component.getController(); + let controller = this.component.getController(); if (controller) { // on destroy, controller can be gone controller.onScroll(x, y); } diff --git a/panel/LogView.js b/panel/LogView.js index 98c8f2b..1ce83bc 100644 --- a/panel/LogView.js +++ b/panel/LogView.js @@ -20,10 +20,10 @@ Ext.define('Proxmox.panel.LogView', { xclass: 'Ext.app.ViewController', updateParams: function() { - var me = this; - var viewModel = me.getViewModel(); - var since = viewModel.get('since'); - var until = viewModel.get('until'); + let me = this; + let viewModel = me.getViewModel(); + let since = viewModel.get('since'); + let until = viewModel.get('until'); if (viewModel.get('hide_timespan')) { return; } @@ -39,18 +39,18 @@ Ext.define('Proxmox.panel.LogView', { }, scrollPosBottom: function() { - var view = this.getView(); - var pos = view.getScrollY(); - var maxPos = view.getScrollable().getMaxPosition().y; + let view = this.getView(); + let pos = view.getScrollY(); + let maxPos = view.getScrollable().getMaxPosition().y; return maxPos - pos; }, updateView: function(text, first, total) { - var me = this; - var view = me.getView(); - var viewModel = me.getViewModel(); - var content = me.lookup('content'); - var data = viewModel.get('data'); + let me = this; + let view = me.getView(); + let viewModel = me.getViewModel(); + let content = me.lookup('content'); + let data = viewModel.get('data'); if (first === data.first && total === data.total && text.length === data.textlen) { return; // same content, skip setting and scrolling @@ -61,7 +61,7 @@ Ext.define('Proxmox.panel.LogView', { textlen: text.length, }); - var scrollPos = me.scrollPosBottom(); + let scrollPos = me.scrollPosBottom(); content.update(text); @@ -72,23 +72,23 @@ Ext.define('Proxmox.panel.LogView', { }, doLoad: function() { - var me = this; + let me = this; if (me.running) { me.requested = true; return; } me.running = true; - var view = me.getView(); - var viewModel = me.getViewModel(); + let view = me.getView(); + let viewModel = me.getViewModel(); Proxmox.Utils.API2Request({ url: me.getView().url, params: viewModel.get('params'), method: 'GET', success: function(response) { Proxmox.Utils.setErrorMask(me, false); - var total = response.result.total; - var lines = new Array(); - var first = Infinity; + let total = response.result.total; + let lines = []; + let first = Infinity; Ext.Array.each(response.result.data, function(line) { if (first > line.n) { @@ -109,7 +109,7 @@ Ext.define('Proxmox.panel.LogView', { if (view.failCallback) { view.failCallback(response); } else { - var msg = response.htmlStatus; + let msg = response.htmlStatus; Proxmox.Utils.setErrorMask(me, msg); } me.running = false; @@ -122,35 +122,35 @@ Ext.define('Proxmox.panel.LogView', { }, onScroll: function(x, y) { - var me = this; - var view = me.getView(); - var viewModel = me.getViewModel(); + let me = this; + let view = me.getView(); + let viewModel = me.getViewModel(); - var lineHeight = view.lineHeight; - var line = view.getScrollY()/lineHeight; - var start = viewModel.get('params.start'); - var limit = viewModel.get('params.limit'); - var viewLines = view.getHeight()/lineHeight; + let lineHeight = view.lineHeight; + let line = view.getScrollY()/lineHeight; + let start = viewModel.get('params.start'); + let limit = viewModel.get('params.limit'); + let viewLines = view.getHeight()/lineHeight; - var viewStart = Math.max(parseInt(line - 1 - view.viewBuffer, 10), 0); - var viewEnd = parseInt(line + viewLines + 1 + view.viewBuffer, 10); + let viewStart = Math.max(parseInt(line - 1 - view.viewBuffer, 10), 0); + let viewEnd = parseInt(line + viewLines + 1 + view.viewBuffer, 10); if (viewStart < start || viewEnd > start+limit) { viewModel.set('params.start', - Math.max(parseInt(line - limit/2 + 10, 10), 0)); + Math.max(parseInt(line - (limit / 2) + 10, 10), 0)); view.loadTask.delay(200); } }, init: function(view) { - var me = this; + let me = this; if (!view.url) { throw "no url specified"; } - var viewModel = this.getViewModel(); - var since = new Date(); + let viewModel = this.getViewModel(); + let since = new Date(); since.setDate(since.getDate() - 3); viewModel.set('until', new Date()); viewModel.set('since', since); @@ -177,14 +177,14 @@ Ext.define('Proxmox.panel.LogView', { }, onDestroy: function() { - var me = this; + let me = this; me.loadTask.cancel(); Ext.TaskManager.stop(me.task); }, // for user to initiate a load from outside requestUpdate: function() { - var me = this; + let me = this; me.loadTask.delay(200); }, @@ -216,7 +216,7 @@ Ext.define('Proxmox.panel.LogView', { // the panel have a 'scroll' event' scroll: { fn: function(scroller, x, y) { - var controller = this.component.getController(); + let controller = this.component.getController(); if (controller) { // on destroy, controller can be gone controller.onScroll(x, y); } diff --git a/panel/RRDChart.js b/panel/RRDChart.js index 718b32b..b4f89a4 100644 --- a/panel/RRDChart.js +++ b/panel/RRDChart.js @@ -8,8 +8,8 @@ Ext.define('Proxmox.widget.RRDChart', { xclass: 'Ext.app.ViewController', convertToUnits: function(value) { - var units = ['', 'k', 'M', 'G', 'T', 'P']; - var si = 0; + let units = ['', 'k', 'M', 'G', 'T', 'P']; + let si = 0; let format = '0.##'; if (value < 0.1) format += '#'; while (value >= 1000 && si < units.length -1) { @@ -27,26 +27,25 @@ Ext.define('Proxmox.widget.RRDChart', { }, leftAxisRenderer: function(axis, label, layoutContext) { - var me = this; + let me = this; return me.convertToUnits(label); }, onSeriesTooltipRender: function(tooltip, record, item) { - var me = this.getView(); + let view = this.getView(); - var suffix = ''; - - if (me.unit === 'percent') { + let suffix = ''; + if (view.unit === 'percent') { suffix = '%'; - } else if (me.unit === 'bytes') { + } else if (view.unit === 'bytes') { suffix = 'B'; - } else if (me.unit === 'bytespersecond') { + } else if (view.unit === 'bytespersecond') { suffix = 'B/s'; } - var prefix = item.field; - if (me.fieldTitles && me.fieldTitles[me.fields.indexOf(item.field)]) { - prefix = me.fieldTitles[me.fields.indexOf(item.field)]; + let prefix = item.field; + if (view.fieldTitles && view.fieldTitles[view.fields.indexOf(item.field)]) { + prefix = view.fieldTitles[view.fields.indexOf(item.field)]; } let v = this.convertToUnits(record.get(item.field)); let t = new Date(record.get('time')); @@ -55,8 +54,8 @@ Ext.define('Proxmox.widget.RRDChart', { onAfterAnimation: function(chart, eopts) { // if the undo button is disabled, disable our tool - var ourUndoZoomButton = chart.header.tools[0]; - var undoButton = chart.interactions[0].getUndoButton(); + let ourUndoZoomButton = chart.header.tools[0]; + let undoButton = chart.interactions[0].getUndoButton(); ourUndoZoomButton.setDisabled(undoButton.isDisabled()); }, }, @@ -92,8 +91,7 @@ Ext.define('Proxmox.widget.RRDChart', { }, initComponent: function() { - var me = this; - var series = {}; + let me = this; if (!me.store) { throw "cannot work without store"; @@ -106,7 +104,7 @@ Ext.define('Proxmox.widget.RRDChart', { me.callParent(); // add correct label for left axis - var axisTitle = ""; + let axisTitle = ""; if (me.unit === 'percent') { axisTitle = "%"; } else if (me.unit === 'bytes') { @@ -134,7 +132,7 @@ Ext.define('Proxmox.widget.RRDChart', { disabled: true, tooltip: gettext('Undo Zoom'), handler: function() { - var undoButton = me.interactions[0].getUndoButton(); + let undoButton = me.interactions[0].getUndoButton(); if (undoButton.handler) { undoButton.handler(); } @@ -144,7 +142,7 @@ Ext.define('Proxmox.widget.RRDChart', { // add a series for each field we get me.fields.forEach(function(item, index) { - var title = item; + let title = item; if (me.fieldTitles && me.fieldTitles[index]) { title = me.fieldTitles[index]; } diff --git a/window/Edit.js b/window/Edit.js index e258e49..c165141 100644 --- a/window/Edit.js +++ b/window/Edit.js @@ -1,5 +1,4 @@ // fixme: how can we avoid those lint errors? -/*jslint confusion: true */ Ext.define('Proxmox.window.Edit', { extend: 'Ext.window.Window', alias: 'widget.proxmoxWindowEdit', diff --git a/window/TaskViewer.js b/window/TaskViewer.js index 96bf3e7..2f31023 100644 --- a/window/TaskViewer.js +++ b/window/TaskViewer.js @@ -5,15 +5,15 @@ Ext.define('Proxmox.window.TaskProgress', { taskDone: Ext.emptyFn, initComponent: function() { - var me = this; + let me = this; if (!me.upid) { throw "no task specified"; } - var task = Proxmox.Utils.parse_task_upid(me.upid); + let task = Proxmox.Utils.parse_task_upid(me.upid); - var statstore = Ext.create('Proxmox.data.ObjectStore', { + let statstore = Ext.create('Proxmox.data.ObjectStore', { url: "/api2/json/nodes/" + task.node + "/tasks/" + me.upid + "/status", interval: 1000, rows: { @@ -24,21 +24,21 @@ Ext.define('Proxmox.window.TaskProgress', { me.on('destroy', statstore.stopUpdate); - var getObjectValue = function(key, defaultValue) { - var rec = statstore.getById(key); + let getObjectValue = function(key, defaultValue) { + let rec = statstore.getById(key); if (rec) { return rec.data.value; } return defaultValue; }; - var pbar = Ext.create('Ext.ProgressBar', { text: 'running...' }); + let pbar = Ext.create('Ext.ProgressBar', { text: 'running...' }); me.mon(statstore, 'load', function() { - var status = getObjectValue('status'); + let status = getObjectValue('status'); if (status === 'stopped') { - var exitstatus = getObjectValue('exitstatus'); - if (exitstatus == 'OK') { + let exitstatus = getObjectValue('exitstatus'); + if (exitstatus === 'OK') { pbar.reset(); pbar.updateText("Done!"); Ext.Function.defer(me.close, 1000, me); @@ -46,11 +46,11 @@ Ext.define('Proxmox.window.TaskProgress', { me.close(); Ext.Msg.alert('Task failed', exitstatus); } - me.taskDone(exitstatus == 'OK'); + me.taskDone(exitstatus === 'OK'); } }); - var descr = Proxmox.Utils.format_task_description(task.type, task.id); + let descr = Proxmox.Utils.format_task_description(task.type, task.id); Ext.apply(me, { title: gettext('Task') + ': ' + descr, @@ -63,7 +63,7 @@ Ext.define('Proxmox.window.TaskProgress', { { text: gettext('Details'), handler: function() { - var win = Ext.create('Proxmox.window.TaskViewer', { + let win = Ext.create('Proxmox.window.TaskViewer', { taskDone: me.taskDone, upid: me.upid, }); @@ -83,7 +83,6 @@ Ext.define('Proxmox.window.TaskProgress', { }); // fixme: how can we avoid those lint errors? -/*jslint confusion: true */ Ext.define('Proxmox.window.TaskViewer', { extend: 'Ext.window.Window', @@ -94,28 +93,29 @@ Ext.define('Proxmox.window.TaskViewer', { taskDone: Ext.emptyFn, initComponent: function() { - var me = this; + let me = this; if (!me.upid) { throw "no task specified"; } - var task = Proxmox.Utils.parse_task_upid(me.upid); + let task = Proxmox.Utils.parse_task_upid(me.upid); - var statgrid; + let statgrid; - var rows = { + let rows = { status: { header: gettext('Status'), defaultValue: 'unknown', renderer: function(value) { - if (value != 'stopped') { + if (value !== 'stopped') { return value; } - var es = statgrid.getObjectValue('exitstatus'); + let es = statgrid.getObjectValue('exitstatus'); if (es) { return value + ': ' + es; } + return 'unknown'; }, }, exitstatus: { @@ -152,7 +152,7 @@ Ext.define('Proxmox.window.TaskViewer', { }, }; - var statstore = Ext.create('Proxmox.data.ObjectStore', { + let statstore = Ext.create('Proxmox.data.ObjectStore', { url: "/api2/json/nodes/" + task.node + "/tasks/" + me.upid + "/status", interval: 1000, rows: rows, @@ -160,7 +160,7 @@ Ext.define('Proxmox.window.TaskViewer', { me.on('destroy', statstore.stopUpdate); - var stop_task = function() { + let stop_task = function() { Proxmox.Utils.API2Request({ url: "/nodes/" + task.node + "/tasks/" + me.upid, waitMsgTarget: me, @@ -171,13 +171,13 @@ Ext.define('Proxmox.window.TaskViewer', { }); }; - var stop_btn1 = new Ext.Button({ + let stop_btn1 = new Ext.Button({ text: gettext('Stop'), disabled: true, handler: stop_task, }); - var stop_btn2 = new Ext.Button({ + let stop_btn2 = new Ext.Button({ text: gettext('Stop'), disabled: true, handler: stop_task, @@ -192,7 +192,7 @@ Ext.define('Proxmox.window.TaskViewer', { border: false, }); - var logView = Ext.create('Proxmox.panel.LogView', { + let logView = Ext.create('Proxmox.panel.LogView', { title: gettext('Output'), tbar: [stop_btn2], border: false, @@ -200,13 +200,13 @@ Ext.define('Proxmox.window.TaskViewer', { }); me.mon(statstore, 'load', function() { - var status = statgrid.getObjectValue('status'); + let status = statgrid.getObjectValue('status'); if (status === 'stopped') { logView.scrollToEnd = false; logView.requestUpdate(); statstore.stopUpdate(); - me.taskDone(statgrid.getObjectValue('exitstatus') == 'OK'); + me.taskDone(statgrid.getObjectValue('exitstatus') === 'OK'); } stop_btn1.setDisabled(status !== 'running'); -- 2.39.2