diff --git a/internal/ui/static/js/.jshintrc b/internal/ui/static/js/.jshintrc index 8ed5b20f..7b1b1d0d 100644 --- a/internal/ui/static/js/.jshintrc +++ b/internal/ui/static/js/.jshintrc @@ -1,6 +1,7 @@ { "esversion": 11, "bitwise": true, + "eqeqeq": true, "freeze": true, "nonew": true, "latedef": "nofunc", diff --git a/internal/ui/static/js/app.js b/internal/ui/static/js/app.js index 5f36b095..74ea4588 100644 --- a/internal/ui/static/js/app.js +++ b/internal/ui/static/js/app.js @@ -151,7 +151,7 @@ function handleEntryStatus(item, element, setToRead) { const toasting = !element; const currentEntry = findEntry(element); if (currentEntry) { - if (!setToRead || currentEntry.querySelector(":is(a, button)[data-toggle-status]").dataset.value == "unread") { + if (!setToRead || currentEntry.querySelector(":is(a, button)[data-toggle-status]").dataset.value === "unread") { toggleEntryStatus(currentEntry, toasting); } if (isListView() && currentEntry.classList.contains('current-item')) { @@ -380,7 +380,7 @@ function openOriginalLink(openLinkInCurrentTab) { const currentItem = document.querySelector(".current-item"); // If we are not on the list of starred items, move to the next item - if (document.location.href != document.querySelector(':is(a, button)[data-page=starred]').href) { + if (document.location.href !== document.querySelector(':is(a, button)[data-page=starred]').href) { goToListItem(1); } markEntryAsRead(currentItem); @@ -522,9 +522,9 @@ function goToListItem(offset) { // By default adjust selection by offset let itemOffset = (i + offset + items.length) % items.length; // Allow jumping to top or bottom - if (offset == TOP) { + if (offset === TOP) { itemOffset = 0; - } else if (offset == BOTTOM) { + } else if (offset === BOTTOM) { itemOffset = items.length - 1; } const item = items[itemOffset]; @@ -595,7 +595,7 @@ function findEntry(element) { } function handleConfirmationMessage(linkElement, callback) { - if (linkElement.tagName != 'A' && linkElement.tagName != "BUTTON") { + if (linkElement.tagName !== 'A' && linkElement.tagName !== "BUTTON") { linkElement = linkElement.parentNode; } diff --git a/internal/ui/static/js/bootstrap.js b/internal/ui/static/js/bootstrap.js index af216671..82b08d7d 100644 --- a/internal/ui/static/js/bootstrap.js +++ b/internal/ui/static/js/bootstrap.js @@ -57,7 +57,7 @@ document.addEventListener("DOMContentLoaded", () => { onClick("#webauthn-delete", () => { webauthnHandler.removeAllCredentials(); }); const registerButton = document.getElementById("webauthn-register"); - if (registerButton != null) { + if (registerButton !== null) { registerButton.disabled = false; onClick("#webauthn-register", () => { @@ -66,13 +66,13 @@ document.addEventListener("DOMContentLoaded", () => { } const loginButton = document.getElementById("webauthn-login"); - if (loginButton != null) { + if (loginButton !== null) { const abortController = new AbortController(); loginButton.disabled = false; onClick("#webauthn-login", () => { const usernameField = document.getElementById("form-username"); - if (usernameField != null) { + if (usernameField !== null) { abortController.abort(); webauthnHandler.login(usernameField.value).catch(err => WebAuthnHandler.showErrorMessage(err)); } @@ -108,7 +108,7 @@ document.addEventListener("DOMContentLoaded", () => { handleEntryStatus("next", event.target, true); }, true); onAuxClick("a[data-original-link='true']", (event) => { - if (event.button == 1) { + if (event.button === 1) { handleEntryStatus("next", event.target, true); } }, true); diff --git a/internal/ui/static/js/keyboard_handler.js b/internal/ui/static/js/keyboard_handler.js index 8bd76f2c..cf3fea01 100644 --- a/internal/ui/static/js/keyboard_handler.js +++ b/internal/ui/static/js/keyboard_handler.js @@ -17,7 +17,7 @@ class KeyboardHandler { return; } - if (key != "Enter") { + if (key !== "Enter") { event.preventDefault(); } diff --git a/internal/ui/static/js/webauthn_handler.js b/internal/ui/static/js/webauthn_handler.js index 60a6a25c..2714f4c4 100644 --- a/internal/ui/static/js/webauthn_handler.js +++ b/internal/ui/static/js/webauthn_handler.js @@ -149,7 +149,7 @@ class WebAuthnHandler { } catch (err) { // Swallow aborted conditional logins - if (err instanceof DOMException && err.name == "AbortError") { + if (err instanceof DOMException && err.name === "AbortError") { return; } WebAuthnHandler.showErrorMessage(err);