[Glitch] Add batch remove for collections in reports

Port 07a05e1edfc796ac5f9ead4817aa7807e0028384 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
Pia B. 2026-05-18 16:53:40 +02:00 committed by Claire
parent a7741db576
commit 2e09ef3f25

View File

@ -69,8 +69,9 @@ on('change', '#batch_checkbox_all', ({ target }) => {
'.batch-table__select-all', '.batch-table__select-all',
); );
document target
.querySelectorAll<HTMLInputElement>(batchCheckboxClassName) .closest('.batch-table')
?.querySelectorAll<HTMLInputElement>(batchCheckboxClassName)
.forEach((content) => { .forEach((content) => {
content.checked = target.checked; content.checked = target.checked;
}); });
@ -112,17 +113,20 @@ on('click', '.batch-table__select-all button', () => {
} }
}); });
on('change', batchCheckboxClassName, () => { on('change', batchCheckboxClassName, (event) => {
const checkAllElement = document.querySelector<HTMLInputElement>( const targetTable = (event.target as HTMLElement).closest('.batch-table');
if (!targetTable) return;
const checkAllElement = targetTable.querySelector<HTMLInputElement>(
'input#batch_checkbox_all', 'input#batch_checkbox_all',
); );
const selectAllMatchingElement = document.querySelector( const selectAllMatchingElement = targetTable.querySelector(
'.batch-table__select-all', '.batch-table__select-all',
); );
if (checkAllElement) { if (checkAllElement) {
const allCheckboxes = Array.from( const allCheckboxes = Array.from(
document.querySelectorAll<HTMLInputElement>(batchCheckboxClassName), targetTable.querySelectorAll<HTMLInputElement>(batchCheckboxClassName),
); );
checkAllElement.checked = allCheckboxes.every((content) => content.checked); checkAllElement.checked = allCheckboxes.every((content) => content.checked);
checkAllElement.indeterminate = checkAllElement.indeterminate =