#53 résumé req/IPs par statut dans Erreurs 404
#54 titre onglet avec compteur non résolus
#2 Tout/Aucun dans resize (tailles + formats)
#7 backup filename affiché dans résultats resize
#8 flash message résumé après upload
#6 renommage inline sur preview_text + preview_other
#23 filtre + tri par nom/taille/date dans corbeille
#20 sélection multiple + batch restore/delete corbeille
#45 /sitemap.xml (assets publics)
#52 ignoreip fail2ban sync sur Ignorer/Retirer une IP
#1 cairosvg>=2.7 dans requirements.txt
#51 ignored_ips.json exclu du rsync --delete
#48 as_cache/ exclu du rsync --delete
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Route /trash/preview/<path> : réutilise preview_image/text/other.html
avec from_trash=True (← Corbeille, pas de rename ni de resize)
- Nom de fichier cliquable dans la liste corbeille → aperçu
- Suppression du lien "Tableau de bord" du header (doublon avec le logo)
- Ferme #25
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Suppression déplace dans .trash/ (arborescence préservée + .trashinfo)
- /trash : liste, restauration (conflit overwrite/rename), suppression
définitive, vidage complet
- Purge automatique des fichiers > 30 jours à chaque visite /trash
- Badge rouge dans la nav avec le nombre de fichiers en corbeille
- Extraction du tableau de fichiers en partial _file_table.html
partagé entre browse et trash
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>