v1.6.8 — scripts CSP-conformes, densité L/M/S, RSS XML #76

Merged
cedricAbonnel merged 9 commits from dev into main 2026-05-15 19:09:10 +00:00

9 Commits

Author SHA1 Message Date
cedricAbonnel fa00f61ee0 chore : version 1.6.8 — scripts CSP-conformes, densité M par défaut
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 21:08:23 +02:00
cedricAbonnel 8889110133 fix : densité M par défaut (au lieu de L)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 21:07:36 +02:00
cedricAbonnel 3e856dc476 fix : externaliser tous les scripts inline (CSP script-src 'self')
Tous les <script> inline et event handlers inline bloqués par la CSP sont
déplacés vers des fichiers JS statiques servis par 'self' :
- density-fouc.js  : anti-FOUC densité (chargé en <head>)
- density.js       : widget L/M/S
- trending-home.js : AJAX "Meilleures audiences" (RSS XML)
- admin-stats.js   : groupes AS + pages trending (RSS XML)
- admin.js         : bookAddArticle + bulk-delete (onclick/onchange → listeners)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 21:00:26 +02:00
cedricAbonnel 58a110d5b9 fix : densité L/M/S — injection <style> dynamique dans <head>
Remplace body[data-density] + CSS externe par un élément <style id="density-fouc">
injecté dynamiquement dans <head>, insensible aux problèmes de spécificité et de cache CSS.
Remplace aussi closest() par une boucle parentNode et dataset par getAttribute.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 20:49:08 +02:00
cedricAbonnel 5e88d44129 fix : densité L/M/S — widget fixe haut-droite, CSS !important
- Widget retiré du hero-search, replacé en position:fixed top-right (sous navbar)
- max-width !important pour garantir l'override de Bootstrap sur main.container-fluid
- transition douce sur main, caché en < 576px

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 20:35:59 +02:00
cedricAbonnel a55e22f1f4 feat : sélecteur de densité L/M/S sur la page liste (v1.6.7)
Boutons [L][M][S] dans la barre de recherche hero : pleine largeur (défaut),
980 px centré, 660 px compact. Préférence localStorage. Anti-FOUC inline dans layout.php.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 20:24:28 +02:00
cedricAbonnel 5cea473d17 feat : "Meilleures audiences" + admin/stats pages via flux RSS XML (v1.6.6)
- post_list.php : section AJAX qui lit /trending?period=1h en XML (DOMParser) — plus de rendu PHP
- admin_stats.php : colonne "Pages les plus visitées" chargée en AJAX depuis /trending?period=14d XML
- index.php/stats : suppression de topGrouped pour /post/ ; seuls /book/ et ASN restent côté serveur

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 20:08:24 +02:00
cedricAbonnel 1d05138329 docs : deployment.md — bouton Mettre à jour (sudoers) + flux trending
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 18:27:28 +02:00
cedricAbonnel ee2b8a4ac7 docs : documenter la configuration sudoers pour le bouton Mettre à jour
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 18:26:16 +02:00