82ecd61f5c
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
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();
|
|
}
|
|
});
|
|
});
|
|
};
|