diff --git a/anime-loads-bulk-delete-history.user.js b/anime-loads-bulk-delete-history.user.js index 0b0a033..b21da33 100644 --- a/anime-loads-bulk-delete-history.user.js +++ b/anime-loads-bulk-delete-history.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Anime-Loads: Verlauf-Massenlöschung // @namespace https://git.ponywave.de/Akamaru/Userscripts -// @version 1.0 +// @version 1.1 // @description Fügt Buttons hinzu, um Verlaufseinträge auf anime-loads.org schneller zu löschen // @author Akamaru // @match https://www.anime-loads.org/history* @@ -91,10 +91,15 @@ } function addCheckboxes() { - const removeButtons = document.querySelectorAll('.remove-history'); - removeButtons.forEach(btn => { - const tr = btn.closest('tr'); - if (!tr || tr.querySelector('.bulk-delete-checkbox')) return; + const historyDiv = document.getElementById('history'); + if (!historyDiv) return; + + const rows = historyDiv.querySelectorAll('table tbody tr'); + rows.forEach(row => { + if (row.querySelector('.bulk-delete-checkbox')) return; + + const removeBtn = row.querySelector('.remove-history'); + if (!removeBtn) return; const checkbox = document.createElement('input'); checkbox.type = 'checkbox'; @@ -102,7 +107,7 @@ checkbox.style.cssText = 'margin-right: 10px; transform: scale(1.3);'; checkbox.addEventListener('change', updateCounter); - const td = btn.closest('td'); + const td = removeBtn.closest('td'); td.insertBefore(checkbox, td.firstChild); }); @@ -241,9 +246,26 @@ const newRows = doc.querySelectorAll('#history table tbody tr'); newRows.forEach(row => { - table.appendChild(row.cloneNode(true)); + const clonedRow = row.cloneNode(true); + table.appendChild(clonedRow); + + // Checkbox sofort zum geklonten Row hinzufügen + const removeBtn = clonedRow.querySelector('.remove-history'); + if (removeBtn && !clonedRow.querySelector('.bulk-delete-checkbox')) { + const checkbox = document.createElement('input'); + checkbox.type = 'checkbox'; + checkbox.className = 'bulk-delete-checkbox'; + checkbox.style.cssText = 'margin-right: 10px; transform: scale(1.3);'; + checkbox.addEventListener('change', updateCounter); + + const td = removeBtn.closest('td'); + td.insertBefore(checkbox, td.firstChild); + } }); + // Counter nach jeder Seite aktualisieren + updateCounter(); + // Kleine Verzögerung, um Server nicht zu überlasten await new Promise(resolve => setTimeout(resolve, 500)); } catch (error) { @@ -254,9 +276,6 @@ // Pagination verstecken pagination.style.display = 'none'; - // Checkboxen zu neuen Einträgen hinzufügen - addCheckboxes(); - btn.textContent = 'Alle Seiten geladen!'; setTimeout(() => { btn.textContent = 'Alle Seiten laden';