26 lines
886 B
JavaScript
26 lines
886 B
JavaScript
document.querySelectorAll("form").forEach((form) => {
|
|
form.addEventListener("submit", (event) => {
|
|
const danger = event.submitter?.classList.contains("danger");
|
|
if (danger && !confirm("Please confirm this permanent action.")) {
|
|
event.preventDefault();
|
|
return;
|
|
}
|
|
const button = event.submitter;
|
|
if (button && button.tagName === "BUTTON") {
|
|
button.dataset.originalText = button.textContent;
|
|
button.textContent = "Saving...";
|
|
}
|
|
});
|
|
});
|
|
|
|
document.querySelectorAll("input[type='file']").forEach((input) => {
|
|
input.addEventListener("change", () => {
|
|
const existing = input.parentElement.querySelector(".file-hint");
|
|
existing?.remove();
|
|
const hint = document.createElement("small");
|
|
hint.className = "file-hint";
|
|
hint.textContent = `${input.files.length} selected`;
|
|
input.parentElement.appendChild(hint);
|
|
});
|
|
});
|