perf & ux : cache getAll, fingerprint assets, Last-Modified, 404 log, row-click bulk (v1.6.19)
- getAll() : cache fichier articles_list.json, invalidé à chaque écriture (#16) - layout.php : fingerprinting ?v=<hash> sur CSS/JS pour invalidation navigateur (#18) - case 'view' : Last-Modified + 304 Not Modified pour les articles publiés (#18) - case 'not_found' : logging JSON des 404 dans _logs/not_found.jsonl (#52) - case 'view' : echo nu → templates/404.php pour brouillons/privés (#52) - admin.js : clic sur ligne tableau → toggle bulk-check (#86) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,23 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
});
|
||||
}
|
||||
|
||||
// Clic sur la ligne entière pour cocher/décocher la case de sélection
|
||||
document.querySelectorAll('table tbody tr').forEach(function (tr) {
|
||||
var cb = tr.querySelector('.bulk-check');
|
||||
if (!cb) { return; }
|
||||
tr.style.cursor = 'pointer';
|
||||
tr.addEventListener('click', function (e) {
|
||||
if (e.target.closest('a, button, input, label')) { return; }
|
||||
cb.checked = !cb.checked;
|
||||
if (checkAll) {
|
||||
var total = document.querySelectorAll('.bulk-check').length;
|
||||
var checked = document.querySelectorAll('.bulk-check:checked').length;
|
||||
checkAll.checked = total > 0 && checked === total;
|
||||
checkAll.indeterminate = checked > 0 && checked < total;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Indicateurs de traitement formulaire SMTP (config + tester connexion)
|
||||
var smtpForm = document.getElementById('smtp-config-form');
|
||||
if (smtpForm) {
|
||||
|
||||
Reference in New Issue
Block a user