Fix JavaScript linter path in GitHub Actions
This commit is contained in:
parent
fd8f25916b
commit
45fa641d26
4 changed files with 35 additions and 34 deletions
4
.github/workflows/linters.yml
vendored
4
.github/workflows/linters.yml
vendored
|
@ -15,9 +15,9 @@ jobs:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install jshint
|
- name: Install jshint
|
||||||
run: |
|
run: |
|
||||||
sudo npm install -g jshint@2.13.3
|
sudo npm install -g jshint@2.13.6
|
||||||
- name: Run jshint
|
- name: Run jshint
|
||||||
run: jshint ui/static/js/*.js
|
run: jshint internal/ui/static/js/*.js
|
||||||
|
|
||||||
golangci:
|
golangci:
|
||||||
name: Golang Linter
|
name: Golang Linter
|
||||||
|
|
|
@ -28,49 +28,49 @@ function onAuxClick(selector, callback, noPreventDefault) {
|
||||||
// make logo element as button on mobile layout
|
// make logo element as button on mobile layout
|
||||||
function checkMenuToggleModeByLayout() {
|
function checkMenuToggleModeByLayout() {
|
||||||
const logoElement = document.querySelector(".logo");
|
const logoElement = document.querySelector(".logo");
|
||||||
const homePageLinkElement = document.querySelector(".logo > a")
|
const homePageLinkElement = document.querySelector(".logo > a");
|
||||||
if (!logoElement) return
|
if (!logoElement) return;
|
||||||
const logoToggleButtonLabel = logoElement.getAttribute("data-toggle-button-label")
|
const logoToggleButtonLabel = logoElement.getAttribute("data-toggle-button-label");
|
||||||
|
|
||||||
const navMenuElement = document.getElementById("header-menu");
|
const navMenuElement = document.getElementById("header-menu");
|
||||||
const navMenuElementIsExpanded = navMenuElement.classList.contains("js-menu-show")
|
const navMenuElementIsExpanded = navMenuElement.classList.contains("js-menu-show");
|
||||||
|
|
||||||
if (document.documentElement.clientWidth < 620) {
|
if (document.documentElement.clientWidth < 620) {
|
||||||
logoElement.setAttribute("role", "button");
|
logoElement.setAttribute("role", "button");
|
||||||
logoElement.setAttribute("tabindex", "0");
|
logoElement.setAttribute("tabindex", "0");
|
||||||
logoElement.setAttribute("aria-label", logoToggleButtonLabel)
|
logoElement.setAttribute("aria-label", logoToggleButtonLabel);
|
||||||
if (navMenuElementIsExpanded) {
|
if (navMenuElementIsExpanded) {
|
||||||
logoElement.setAttribute("aria-expanded", "true")
|
logoElement.setAttribute("aria-expanded", "true");
|
||||||
} else {
|
} else {
|
||||||
logoElement.setAttribute("aria-expanded", "false")
|
logoElement.setAttribute("aria-expanded", "false");
|
||||||
}
|
}
|
||||||
homePageLinkElement.setAttribute("tabindex", "-1")
|
homePageLinkElement.setAttribute("tabindex", "-1");
|
||||||
} else {
|
} else {
|
||||||
logoElement.removeAttribute("role");
|
logoElement.removeAttribute("role");
|
||||||
logoElement.removeAttribute("tabindex");
|
logoElement.removeAttribute("tabindex");
|
||||||
logoElement.removeAttribute("aria-expanded");
|
logoElement.removeAttribute("aria-expanded");
|
||||||
logoElement.removeAttribute("aria-label")
|
logoElement.removeAttribute("aria-label");
|
||||||
homePageLinkElement.removeAttribute("tabindex");
|
homePageLinkElement.removeAttribute("tabindex");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function fixVoiceOverDetailsSummaryBug() {
|
function fixVoiceOverDetailsSummaryBug() {
|
||||||
const detailsElements = document.querySelectorAll("details")
|
const detailsElements = document.querySelectorAll("details");
|
||||||
detailsElements.forEach((details) => {
|
detailsElements.forEach((details) => {
|
||||||
const summaryElement = details.querySelector("summary")
|
const summaryElement = details.querySelector("summary");
|
||||||
summaryElement.setAttribute("role", "button")
|
summaryElement.setAttribute("role", "button");
|
||||||
setSummaryAriaExpandedByDetails(details, summaryElement)
|
setSummaryAriaExpandedByDetails(details, summaryElement);
|
||||||
|
|
||||||
details.addEventListener("toggle", () => {
|
details.addEventListener("toggle", () => {
|
||||||
setSummaryAriaExpandedByDetails(details, summaryElement)
|
setSummaryAriaExpandedByDetails(details, summaryElement);
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
|
|
||||||
function setSummaryAriaExpandedByDetails(details, summary) {
|
function setSummaryAriaExpandedByDetails(details, summary) {
|
||||||
if (details.open) {
|
if (details.open) {
|
||||||
summary.setAttribute("aria-expanded", "true")
|
summary.setAttribute("aria-expanded", "true");
|
||||||
} else {
|
} else {
|
||||||
summary.setAttribute("aria-expanded", "false")
|
summary.setAttribute("aria-expanded", "false");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,20 +78,21 @@ function fixVoiceOverDetailsSummaryBug() {
|
||||||
// Show and hide the main menu on mobile devices.
|
// Show and hide the main menu on mobile devices.
|
||||||
function toggleMainMenu(event) {
|
function toggleMainMenu(event) {
|
||||||
if (event.type === "keydown" && !(event.key === "Enter" || event.key === " ")) {
|
if (event.type === "keydown" && !(event.key === "Enter" || event.key === " ")) {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.currentTarget.getAttribute("role")) {
|
if (event.currentTarget.getAttribute("role")) {
|
||||||
event.preventDefault()
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
let menu = document.querySelector(".header nav ul");
|
let menu = document.querySelector(".header nav ul");
|
||||||
let menuToggleButton = document.querySelector(".logo");
|
let menuToggleButton = document.querySelector(".logo");
|
||||||
if (menu.classList.contains("js-menu-show")) {
|
if (menu.classList.contains("js-menu-show")) {
|
||||||
menu.classList.remove("js-menu-show")
|
menu.classList.remove("js-menu-show");
|
||||||
menuToggleButton.setAttribute("aria-expanded", false)
|
menuToggleButton.setAttribute("aria-expanded", false);
|
||||||
} else {
|
} else {
|
||||||
menu.classList.add("js-menu-show")
|
menu.classList.add("js-menu-show");
|
||||||
menuToggleButton.setAttribute("aria-expanded", true)
|
menuToggleButton.setAttribute("aria-expanded", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,7 +353,7 @@ function handleFetchOriginalContent() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let previousElement = element.cloneNode(true)
|
let previousElement = element.cloneNode(true);
|
||||||
element.innerHTML = '<span class="icon-label">' + element.dataset.labelLoading + '</span>';
|
element.innerHTML = '<span class="icon-label">' + element.dataset.labelLoading + '</span>';
|
||||||
|
|
||||||
let request = new RequestBuilder(element.dataset.fetchContentUrl);
|
let request = new RequestBuilder(element.dataset.fetchContentUrl);
|
||||||
|
@ -572,7 +573,7 @@ function isListView() {
|
||||||
function findEntry(element) {
|
function findEntry(element) {
|
||||||
if (isListView()) {
|
if (isListView()) {
|
||||||
if (element) {
|
if (element) {
|
||||||
return element.closest(".item")
|
return element.closest(".item");
|
||||||
} else {
|
} else {
|
||||||
return document.querySelector(".current-item");
|
return document.querySelector(".current-item");
|
||||||
}
|
}
|
||||||
|
|
10
internal/ui/static/js/bootstrap.js
vendored
10
internal/ui/static/js/bootstrap.js
vendored
|
@ -52,7 +52,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||||
if (WebAuthnHandler.isWebAuthnSupported()) {
|
if (WebAuthnHandler.isWebAuthnSupported()) {
|
||||||
const webauthnHandler = new WebAuthnHandler();
|
const webauthnHandler = new WebAuthnHandler();
|
||||||
|
|
||||||
onClick("#webauthn-delete", () => { webauthnHandler.removeAllCredentials() });
|
onClick("#webauthn-delete", () => { webauthnHandler.removeAllCredentials(); });
|
||||||
|
|
||||||
let registerButton = document.getElementById("webauthn-register");
|
let registerButton = document.getElementById("webauthn-register");
|
||||||
if (registerButton != null) {
|
if (registerButton != null) {
|
||||||
|
@ -112,12 +112,12 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
checkMenuToggleModeByLayout()
|
checkMenuToggleModeByLayout();
|
||||||
window.addEventListener("resize", checkMenuToggleModeByLayout, { passive: true })
|
window.addEventListener("resize", checkMenuToggleModeByLayout, { passive: true });
|
||||||
|
|
||||||
fixVoiceOverDetailsSummaryBug()
|
fixVoiceOverDetailsSummaryBug();
|
||||||
|
|
||||||
const logoElement = document.querySelector(".logo")
|
const logoElement = document.querySelector(".logo");
|
||||||
logoElement.addEventListener("click", (event) => toggleMainMenu(event));
|
logoElement.addEventListener("click", (event) => toggleMainMenu(event));
|
||||||
logoElement.addEventListener("keydown", (event) => toggleMainMenu(event));
|
logoElement.addEventListener("keydown", (event) => toggleMainMenu(event));
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ class TouchHandler {
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
|
||||||
return element.closest(".entry-swipe")
|
return element.closest(".entry-swipe");
|
||||||
}
|
}
|
||||||
|
|
||||||
onItemTouchStart(event) {
|
onItemTouchStart(event) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue