c364b1273b
Change-Id: I763e7a6b367ea5b474ab3aa13c7ff21e99db34af Reviewed-on: https://cl.tvl.fyi/c/depot/+/5023 Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
window.onload = () => {
|
|
const input = document.getElementById("name-autocomplete");
|
|
if (input != null) {
|
|
const attendeeList = document.getElementById("attendees-list");
|
|
const filterAttendees = (filter) => {
|
|
if (filter == "") {
|
|
for (let elt of attendeeList.querySelectorAll("li")) {
|
|
elt.classList.remove("hidden");
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
let re = "";
|
|
for (let c of filter) {
|
|
re += `${c}.*`;
|
|
}
|
|
let filterRe = new RegExp(re, "i");
|
|
|
|
for (let elt of attendeeList.querySelectorAll("li")) {
|
|
const attendee = JSON.parse(elt.dataset.attendee);
|
|
if (attendee["bbbg.attendee/meetup-name"].match(filterRe) == null) {
|
|
elt.classList.add("hidden");
|
|
} else {
|
|
elt.classList.remove("hidden");
|
|
}
|
|
}
|
|
};
|
|
|
|
const attendeeIDInput = document.getElementById("attendee-id");
|
|
const submit = document.querySelector("#submit-button");
|
|
const signupForm = document.getElementById("signup-form");
|
|
|
|
input.oninput = (e) => {
|
|
filterAttendees(e.target.value);
|
|
attendeeIDInput.value = null;
|
|
submit.classList.add("hidden");
|
|
submit.setAttribute("disabled", "disabled");
|
|
signupForm.setAttribute("disabled", "disabled");
|
|
};
|
|
|
|
attendeeList.addEventListener("click", (e) => {
|
|
if (!(e.target instanceof HTMLLIElement)) {
|
|
return;
|
|
}
|
|
if (e.target.dataset.attendee == null) {
|
|
return;
|
|
}
|
|
|
|
const attendee = JSON.parse(e.target.dataset.attendee);
|
|
input.value = attendee["bbbg.attendee/meetup-name"];
|
|
attendeeIDInput.value = attendee["bbbg.attendee/id"];
|
|
|
|
submit.classList.remove("hidden");
|
|
submit.removeAttribute("disabled");
|
|
signupForm.removeAttribute("disabled");
|
|
});
|
|
}
|
|
|
|
document.querySelectorAll("form").forEach((form) => {
|
|
form.addEventListener("submit", (e) => {
|
|
if (e.target.attributes.disabled) {
|
|
e.preventDefault();
|
|
}
|
|
|
|
const confirmMessage = e.target.dataset.confirm;
|
|
if (confirmMessage != null && !confirm(confirmMessage)) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
}
|
|
});
|
|
});
|
|
};
|