Some checks failed
cache-seeder / prune (push) Has been skipped
cache-seeder / frontend (push) Failing after 3s
cache-seeder / python (push) Failing after 3s
cache-seeder / gobuild (push) Failing after 4s
cache-seeder / lint (bindata, lint-backend) (push) Failing after 3s
giteabot backport / giteabot (push) Has been skipped
giteabot / giteabot (push) Has been skipped
cache-prune / prune (push) Has been skipped
release-nightly-snapcraft / build-and-publish (ubuntu-24.04) (push) Has been cancelled
release-nightly-snapcraft / build-and-publish (ubuntu-24.04-arm) (push) Has been cancelled
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
cron-renovate / cron-renovate (push) Has been skipped
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
export function initAdminUserListSearchForm(): void {
|
|
const searchForm = window.config.pageData.adminUserListSearchForm;
|
|
if (!searchForm) return;
|
|
|
|
const form = document.querySelector<HTMLFormElement>('#user-list-search-form');
|
|
if (!form) return;
|
|
|
|
for (const button of form.querySelectorAll(`button[name=sort][value="${CSS.escape(searchForm.SortType)}"]`)) {
|
|
button.classList.add('active');
|
|
}
|
|
|
|
for (const [k, v] of Object.entries(searchForm.StatusFilterMap || {})) {
|
|
if (!v) continue;
|
|
for (const input of form.querySelectorAll<HTMLInputElement>(`input[name="status_filter[${CSS.escape(k)}]"][value="${CSS.escape(v)}"]`)) {
|
|
input.checked = true;
|
|
}
|
|
}
|
|
|
|
for (const radio of form.querySelectorAll<HTMLInputElement>('input[type=radio]')) {
|
|
radio.addEventListener('click', () => {
|
|
form.submit();
|
|
});
|
|
}
|
|
|
|
const resetButtons = form.querySelectorAll<HTMLAnchorElement>('.j-reset-status-filter');
|
|
for (const button of resetButtons) {
|
|
button.addEventListener('click', (e) => {
|
|
e.preventDefault();
|
|
for (const input of form.querySelectorAll<HTMLInputElement>('input[type=radio]')) {
|
|
if (input.name.startsWith('status_filter[')) {
|
|
input.checked = false;
|
|
}
|
|
}
|
|
form.submit();
|
|
});
|
|
}
|
|
}
|