fix eslint errors

This commit is contained in:
Dennis Eichhorn 2022-09-27 16:46:37 +02:00
parent e3aef7338a
commit 7bf4ebd3df
12 changed files with 56 additions and 35 deletions

View File

@ -324,7 +324,7 @@ export class Request
// GET request doesn't allow body/payload. Therefor we have to put the data into the uri // GET request doesn't allow body/payload. Therefor we have to put the data into the uri
if (this.method === RequestMethod.GET) { if (this.method === RequestMethod.GET) {
let url = this.uri; let url = this.uri;
for (let pair of this.data.entries()) { for (const pair of this.data.entries()) {
url += '&' + pair[0] + '=' + pair[1]; url += '&' + pair[0] + '=' + pair[1];
} }

View File

@ -67,7 +67,7 @@ export class ResponseManager
) { ) {
this.messages[key][request](data); this.messages[key][request](data);
} else if (typeof this.messages[key] !== 'undefined') { } else if (typeof this.messages[key] !== 'undefined') {
this.messages[key][null](data); this.messages[key].null(data);
} else { } else {
jsOMS.Log.Logger.instance.warning('Undefined type: ' + key); jsOMS.Log.Logger.instance.warning('Undefined type: ' + key);
} }

View File

@ -11,7 +11,13 @@ export function formSubmitAction (action, callback, id)
{ {
'use strict'; 'use strict';
const submit = action.base === 'self' ? (action.selector === '' ? [document.getElementById(id)] : document.getElementById(id).querySelectorAll(action.selector)) : document.querySelectorAll(action.selector); const submit = action.base === 'self'
? (
action.selector === ''
? [document.getElementById(id)]
: document.getElementById(id).querySelectorAll(action.selector)
)
: document.querySelectorAll(action.selector);
if (!submit) { if (!submit) {
return; return;

View File

@ -29,15 +29,15 @@ export class SystemUtils
return BrowserType.FIREFOX; return BrowserType.FIREFOX;
} else if (Object.toString.call(window.HTMLElement).indexOf('Constructor') > 0) { } else if (Object.toString.call(window.HTMLElement).indexOf('Constructor') > 0) {
return BrowserType.SAFARI; return BrowserType.SAFARI;
} else if (/* @cc_on!@ */false || !!document.documentMode) { } else if (/* @cc_on!@ */false || !!document.documentMode) { // eslint-disable-line no-extra-boolean-cast
return BrowserType.IE; return BrowserType.IE;
} else if (!!window.StyleMedia) { } else if (!!window.StyleMedia) { // eslint-disable-line no-extra-boolean-cast
return BrowserType.EDGE; return BrowserType.EDGE;
} else if (!!window.chrome && !!window.chrome.webstore) { } else if (!!window.chrome && !!window.chrome.webstore) { // eslint-disable-line no-extra-boolean-cast
return BrowserType.CHROME; return BrowserType.CHROME;
} else if (((typeof isChrome !== 'undefined' && isChrome) } else if (((typeof isChrome !== 'undefined' && isChrome)
|| (typeof isOpera !== 'undefined' && isOpera)) || (typeof isOpera !== 'undefined' && isOpera))
&& !!window.CSS && !!window.CSS // eslint-disable-line no-extra-boolean-cast
) { ) {
return BrowserType.BLINK; return BrowserType.BLINK;
} }

View File

@ -122,7 +122,7 @@ export class Form
@todo: removed because sometimes it is already bound but bound in a wrong way (e.g. no success is defined) @todo: removed because sometimes it is already bound but bound in a wrong way (e.g. no success is defined)
if (Object.prototype.hasOwnProperty.call(this.forms, id)) { if (Object.prototype.hasOwnProperty.call(this.forms, id)) {
return; return;
}*/ } */
this.forms[id] = new FormView(id); this.forms[id] = new FormView(id);
const self = this; const self = this;
@ -277,7 +277,10 @@ export class Form
/** @var {Element} dataOriginElement Element where the value data comes from */ /** @var {Element} dataOriginElement Element where the value data comes from */
const dataOriginElement = tplValue.startsWith('http') || tplValue.startsWith('{') const dataOriginElement = tplValue.startsWith('http') || tplValue.startsWith('{')
? newElements[i].firstElementChild // data comes from remote source ? newElements[i].firstElementChild // data comes from remote source
: formElement; // data comes from the form (even if the api returns something after adding). What if remote returns a DB id? how do we add it? is this a @todo ? probably yes, maybe first use local data and then if remote data available replace local data? : formElement; // data comes from the form (even if the api returns something after adding).
// What if remote returns a DB id? how do we add it?
// is this a @todo ? probably yes.
// maybe first use local data and then if remote data available replace local data?
values = values.concat( values = values.concat(
dataOriginElement.hasAttribute('data-tpl-value') dataOriginElement.hasAttribute('data-tpl-value')
@ -400,7 +403,10 @@ export class Form
/** @var {Element} dataOriginElement Element where the value data comes from */ /** @var {Element} dataOriginElement Element where the value data comes from */
const dataOriginElement = tplValue.startsWith('http') || tplValue.startsWith('{') const dataOriginElement = tplValue.startsWith('http') || tplValue.startsWith('{')
? newElements[i].firstElementChild // data comes from remote source ? newElements[i].firstElementChild // data comes from remote source
: elementContainer; // data comes from the form (even if the api returns something after adding). What if remote returns a DB id? how do we add it? is this a @todo ? probably yes, maybe first use local data and then if remote data available replace local data? : elementContainer; // data comes from the form (even if the api returns something after adding).
// What if remote returns a DB id? how do we add it?
// is this a @todo ? probably yes.
// maybe first use local data and then if remote data available replace local data?
values = values.concat( values = values.concat(
dataOriginElement.hasAttribute('data-tpl-value') dataOriginElement.hasAttribute('data-tpl-value')
@ -468,7 +474,10 @@ export class Form
/** @var {Element} dataOriginElement Element where the value data comes from */ /** @var {Element} dataOriginElement Element where the value data comes from */
const dataOriginElement = updateValue.startsWith('http') || updateValue.startsWith('{') const dataOriginElement = updateValue.startsWith('http') || updateValue.startsWith('{')
? updateElements[i].firstElementChild // data comes from remote source ? updateElements[i].firstElementChild // data comes from remote source
: elementContainer; // data comes from the form (even if the api returns something after adding). What if remote returns a DB id? how do we add it? is this a @todo ? probably yes, maybe first use local data and then if remote data available replace local data? : elementContainer; // data comes from the form (even if the api returns something after adding).
// What if remote returns a DB id? how do we add it?
// is this a @todo ? probably yes.
// maybe first use local data and then if remote data available replace local data?
values = values.concat( values = values.concat(
dataOriginElement.hasAttribute('data-tpl-value') dataOriginElement.hasAttribute('data-tpl-value')
@ -554,7 +563,10 @@ export class Form
/** @var {Element} dataOriginElement Element where the value data comes from */ /** @var {Element} dataOriginElement Element where the value data comes from */
const dataOriginElement = updateValue.startsWith('http') || updateValue.startsWith('{') const dataOriginElement = updateValue.startsWith('http') || updateValue.startsWith('{')
? updateElements[i].firstElementChild // data comes from remote source ? updateElements[i].firstElementChild // data comes from remote source
: externalFormElement; // data comes from the form (even if the api returns something after adding). What if remote returns a DB id? how do we add it? is this a @todo ? probably yes, maybe first use local data and then if remote data available replace local data? : externalFormElement; // data comes from the form (even if the api returns something after adding).
// What if remote returns a DB id? how do we add it?
// is this a @todo ? probably yes.
// maybe first use local data and then if remote data available replace local data?
values = values.concat( values = values.concat(
dataOriginElement.hasAttribute('data-tpl-value') dataOriginElement.hasAttribute('data-tpl-value')
@ -591,21 +603,21 @@ export class Form
// show add button + hide update button + hide cancel button // show add button + hide update button + hide cancel button
const addButtons = self.forms[externalFormId].getAdd(); const addButtons = self.forms[externalFormId].getAdd();
length = addButtons.length; let buttonLength = addButtons.length;
for (let i = 0; i < length; ++i) { for (let i = 0; i < buttonLength; ++i) {
jsOMS.removeClass(addButtons[i], 'hidden'); jsOMS.removeClass(addButtons[i], 'hidden');
} }
const saveButtons = self.forms[externalFormId].getSave(); const saveButtons = self.forms[externalFormId].getSave();
length = saveButtons.length; buttonLength = saveButtons.length;
for (let i = 0; i < length; ++i) { for (let i = 0; i < buttonLength; ++i) {
jsOMS.addClass(saveButtons[i], 'hidden'); jsOMS.addClass(saveButtons[i], 'hidden');
} }
const cancelButtons = self.forms[externalFormId].getCancel(); const cancelButtons = self.forms[externalFormId].getCancel();
length = cancelButtons.length; buttonLength = cancelButtons.length;
for (let i = 0; i < length; ++i) { for (let i = 0; i < buttonLength; ++i) {
jsOMS.addClass(cancelButtons[i], 'hidden'); jsOMS.addClass(cancelButtons[i], 'hidden');
} }
} }
@ -636,7 +648,7 @@ export class Form
jsOMS.removeClass(element, 'hidden'); jsOMS.removeClass(element, 'hidden');
elementContainer.parentNode.removeChild(elementContainer) elementContainer.parentNode.removeChild(elementContainer);
} else { } else {
// handle external cancel // handle external cancel
@ -732,14 +744,14 @@ export class Form
} }
const saveButtons = self.forms[id].getSave(); const saveButtons = self.forms[id].getSave();
length = saveButtons.length; let buttonLength = saveButtons.length;
for (let i = 0; i < length; ++i) { for (let i = 0; i < buttonLength; ++i) {
jsOMS.removeClass(saveButtons[i], 'hidden'); jsOMS.removeClass(saveButtons[i], 'hidden');
} }
const cancelButtons = self.forms[id].getCancel(); const cancelButtons = self.forms[id].getCancel();
length = cancelButtons.length; buttonLength = cancelButtons.length;
for (let i = 0; i < length; ++i) { for (let i = 0; i < buttonLength; ++i) {
jsOMS.removeClass(cancelButtons[i], 'hidden'); jsOMS.removeClass(cancelButtons[i], 'hidden');
} }
} else { } else {
@ -819,7 +831,7 @@ export class Form
) { ) {
jsOMS.preventAll(event); jsOMS.preventAll(event);
self.submit(self.forms[id], self.forms[id].getSubmit()[elementIndex]); self.submit(self.forms[id], self.forms[id].getSubmit()[elementIndex]);
} else if ((elementIndex = '')) { } else if (false) { // eslint-disable-line no-constant-condition
// @todo: if table head input field in popups changes -> check if input empty -> deactivate -> checkbox : else activate checkbox // @todo: if table head input field in popups changes -> check if input empty -> deactivate -> checkbox : else activate checkbox
// careful: the same checkbox is used for showing the filter popup. maybe create a separate checkbox, which only handles the highlighting if filter is defined. // careful: the same checkbox is used for showing the filter popup. maybe create a separate checkbox, which only handles the highlighting if filter is defined.
// this means popup active highlights filter icon AND different content checkbox also highlights filter // this means popup active highlights filter icon AND different content checkbox also highlights filter
@ -962,7 +974,7 @@ export class Form
request.setData(data); request.setData(data);
request.setType(RequestType.FORM_DATA); // @todo: consider to allow different request type request.setType(RequestType.FORM_DATA); // @todo: consider to allow different request type
request.setUri(action ? action : form.getAction()); request.setUri(action !== null ? action : form.getAction());
request.setMethod(form.getMethod()); request.setMethod(form.getMethod());
request.setSuccess(function (xhr) request.setSuccess(function (xhr)
{ {
@ -1157,7 +1169,7 @@ export class Form
if (data[i].getAttribute('data-tpl-' + type).startsWith('http') if (data[i].getAttribute('data-tpl-' + type).startsWith('http')
|| data[i].getAttribute('data-tpl-' + type).startsWith('{') || data[i].getAttribute('data-tpl-' + type).startsWith('{')
) { ) {
Form.populateRemoteUrls(type, data[i], path, remoteUrls); Form.populateRemoteUrls(matches[c], type, data[i], path, remoteUrls);
} else { } else {
if (type === 'value') { if (type === 'value') {
GeneralUI.setValueOfElement(matches[c], GeneralUI.getValueFromDataSource(data[i])); GeneralUI.setValueOfElement(matches[c], GeneralUI.getValueFromDataSource(data[i]));
@ -1184,7 +1196,7 @@ export class Form
if (data[i].getAttribute('data-tpl-' + type).startsWith('http') if (data[i].getAttribute('data-tpl-' + type).startsWith('http')
|| data[i].getAttribute('data-tpl-' + type).startsWith('{') || data[i].getAttribute('data-tpl-' + type).startsWith('{')
) { ) {
Form.populateRemoteUrls(type, data[i], path, remoteUrls); Form.populateRemoteUrls(matches[c], type, data[i], path, remoteUrls);
} else { } else {
if (type === 'value') { if (type === 'value') {
GeneralUI.setValueOfElement(matches[c], GeneralUI.getValueFromDataSource(data[i])); GeneralUI.setValueOfElement(matches[c], GeneralUI.getValueFromDataSource(data[i]));
@ -1196,7 +1208,7 @@ export class Form
} }
}; };
static populateRemoteUrls (type, data, path, remoteUrls) static populateRemoteUrls (ele, type, data, path, remoteUrls)
{ {
const uri = data.getAttribute('data-tpl-' + type).startsWith('/') const uri = data.getAttribute('data-tpl-' + type).startsWith('/')
? document.getElementsByTagName('base')[0].href ? document.getElementsByTagName('base')[0].href
@ -1208,7 +1220,7 @@ export class Form
remoteUrls[uri + data.getAttribute('data-tpl-' + type)].push({ remoteUrls[uri + data.getAttribute('data-tpl-' + type)].push({
path: path, path: path,
element: matches[c], element: ele,
type: type type: type
}); });
}; };

View File

@ -95,7 +95,6 @@ export class Input
const response = new Response(o); const response = new Response(o);
const responseLength = response.count(); const responseLength = response.count();
let tempResponse = null; let tempResponse = null;
let success = null;
for (let k = 0; k < responseLength; ++k) { for (let k = 0; k < responseLength; ++k) {
tempResponse = response.getByIndex(k); tempResponse = response.getByIndex(k);

View File

@ -216,7 +216,7 @@ export class GeneralUI
const length = e.length; const length = e.length;
for (let i = 0; i < length; ++i) { for (let i = 0; i < length; ++i) {
new AdvancedInput(e[i], this.app.eventManager, this.app.uiManager.getDOMObserver()); new AdvancedInput(e[i], this.app.eventManager, this.app.uiManager.getDOMObserver()); // eslint-disable-line no-new
} }
}; };

View File

@ -87,7 +87,7 @@ export class UIStateManager
element.scrollLeft = state.x; element.scrollLeft = state.x;
element.scrollTop = state.y; element.scrollTop = state.y;
element.scrollTo({ top: state.y, left: state.x }) element.scrollTo({ top: state.y, left: state.x });
element.addEventListener('scroll', function () { element.addEventListener('scroll', function () {
window.localStorage.setItem('ui-state-' + this.id, JSON.stringify({ x: this.scrollLeft, y: this.scrollTop })); window.localStorage.setItem('ui-state-' + this.id, JSON.stringify({ x: this.scrollLeft, y: this.scrollTop }));

View File

@ -77,11 +77,13 @@ export class HttpUri
'relative', 'path', 'directory', 'file', 'query', 'fragment' 'relative', 'path', 'directory', 'file', 'query', 'fragment'
]; ];
/* eslint-disable max-len */
const parser = { const parser = {
php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-scheme to catch file:/// (should restrict this) loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}; };
/* eslint-enable max-len */
if (!Object.prototype.hasOwnProperty.call(parser, mode)) { if (!Object.prototype.hasOwnProperty.call(parser, mode)) {
throw new Error('Unexpected parsing mode.', 'UriFactory', 52); throw new Error('Unexpected parsing mode.', 'UriFactory', 52);

View File

@ -60,6 +60,7 @@ const validatePage = function (url)
const aHref = document.querySelectorAll('a:not([alt]), a[href=""], a[href=" "], a[href="#"]'); const aHref = document.querySelectorAll('a:not([alt]), a[href=""], a[href=" "], a[href="#"]');
findings[url].href_empty = aHref.length; findings[url].href_empty = aHref.length;
/* eslint-disable max-len */
// analyze inline on* function // analyze inline on* function
const onFunction = document.querySelectorAll('[onafterprint], [onbeforeprint], [onbeforeunload], [onerror], [onhaschange], [onload], [onmessage], [onoffline], [ononline], [onpagehide], [onpageshow], [onpopstate], [onredo], [onresize], [onstorage], [onundo], [onunload], [onblur], [onchage], [oncontextmenu], [onfocus], [onformchange], [onforminput], [oninput], [oninvalid], [onreset], [onselect], [onsubmit], [onkeydown], [onkeypress], [onkeyup], [onclick], [ondblclick], [ondrag], [ondragend], [ondragenter], [ondragleave], [ondragover], [ondragstart], [ondrop], [onmousedown], [onmousemove], [onmouseout], [onmouseover], [onmouseup], [onmousewheel], [onscroll], [onabort], [oncanplay], [oncanplaythrough], [ondurationchange], [onemptied], [onended], [onerror], [onloadeddata], [onloadedmetadata], [onloadstart], [onpause], [onplay], [onplaying], [onprogress], [onratechange], [onreadystatechange], [onseeked], [onseeking], [onstalled], [onsuspend], [ontimeupdate], [onvolumechange], [onwaiting]'); const onFunction = document.querySelectorAll('[onafterprint], [onbeforeprint], [onbeforeunload], [onerror], [onhaschange], [onload], [onmessage], [onoffline], [ononline], [onpagehide], [onpageshow], [onpopstate], [onredo], [onresize], [onstorage], [onundo], [onunload], [onblur], [onchage], [oncontextmenu], [onfocus], [onformchange], [onforminput], [oninput], [oninvalid], [onreset], [onselect], [onsubmit], [onkeydown], [onkeypress], [onkeyup], [onclick], [ondblclick], [ondrag], [ondragend], [ondragenter], [ondragleave], [ondragover], [ondragstart], [ondrop], [onmousedown], [onmousemove], [onmouseout], [onmouseover], [onmouseup], [onmousewheel], [onscroll], [onabort], [oncanplay], [oncanplaythrough], [ondurationchange], [onemptied], [onended], [onerror], [onloadeddata], [onloadedmetadata], [onloadstart], [onpause], [onplay], [onplaying], [onprogress], [onratechange], [onreadystatechange], [onseeked], [onseeking], [onstalled], [onsuspend], [ontimeupdate], [onvolumechange], [onwaiting]');
findings[url].js_on = onFunction.length; findings[url].js_on = onFunction.length;
@ -71,6 +72,7 @@ const validatePage = function (url)
// analyze invalid container-children relationship (e.g. empty containers, invalid children) // analyze invalid container-children relationship (e.g. empty containers, invalid children)
const invalidContainerChildren = document.querySelectorAll(':not(tr) > td, :not(tr) > th, colgroup *:not(col), :not(colgroup) > col, tr > :not(td):not(th), optgroup > :not(option), :not(select) > option, :not(fieldset) > legend, select > :not(option):not(optgroup), :not(select):not(optgroup) > option, table > *:not(thead):not(tfoot):not(tbody):not(tr):not(colgroup):not(caption)'); const invalidContainerChildren = document.querySelectorAll(':not(tr) > td, :not(tr) > th, colgroup *:not(col), :not(colgroup) > col, tr > :not(td):not(th), optgroup > :not(option), :not(select) > option, :not(fieldset) > legend, select > :not(option):not(optgroup), :not(select):not(optgroup) > option, table > *:not(thead):not(tfoot):not(tbody):not(tr):not(colgroup):not(caption)');
findings[url].invalid_container_children = invalidContainerChildren.length; findings[url].invalid_container_children = invalidContainerChildren.length;
/* eslint-enable max-len */
// has inline styles // has inline styles
const hasInlineStyles = document.querySelectorAll('*[style]'); const hasInlineStyles = document.querySelectorAll('*[style]');

View File

@ -23,7 +23,7 @@
*/ */
jsOMS.watcher = (function () jsOMS.watcher = (function ()
{ {
var timer = 0; var timer = 0; // eslint-disable-line no-var
return function (callback, ms) return function (callback, ms)
{ {
clearTimeout(timer); clearTimeout(timer);

View File

@ -775,7 +775,7 @@ export class FormView
} }
}; };
getElementsToBind(e = null) getElementsToBind (e = null)
{ {
const parent = e === null ? document : e; const parent = e === null ? document : e;