Commit graph

8 commits

Author SHA1 Message Date
Alpinux
937433c0e5 feat: prévisualisation depuis la corbeille + suppression doublon nav
- 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>
2026-05-06 10:53:07 +02:00
Alpinux
dd83e6f36e fix: resize ICO et comportement sans sélection
- Convertit le mode palette (ICO, GIF) en RGBA avant LANCZOS pour
  éviter l'erreur de resampling sur les sources ICO
- Sans dimension sélectionnée : conserve les dimensions d'origine
- Sans format sélectionné : conserve le format d'origine
- Bouton toujours actif, texte dynamique "Générer la copie / N copies"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 10:11:17 +02:00
Alpinux
3e8b18b127 feat: dimension libre pour le redimensionnement d'images
Ajout d'un champ W×H dans la carte resize, contraint à la résolution
source. Option "carré" synchronise les deux valeurs. Le bouton Générer
s'active si au moins un format est sélectionné et une taille valide
(prédéfinie ou libre) est renseignée.

Supprime le code mort dans la route /resize (errors_pre).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 10:03:48 +02:00
Alpinux
8f6aa292ef feat: conflit resize à la demande + nommage sans suffixe dimensions
- Route POST /check-resize : pre-check des fichiers cibles avant génération
  (utilise déjà le strip _NxN sur le stem)
- Route /resize : strip du suffixe _NxN dans le stem source
  (logo_1024x1024.png → 500x500 = logo_500x500.png)
- preview_image.html : bloc conflit masqué par défaut
  Au clic Générer → pre-check AJAX → si conflit : panneau jaune identique
  à l'upload avec Backup/Écraser/Renommer/Ignorer puis Confirmer
  Sans conflit → génération directe sans interruption

Ferme #10.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:54:39 +02:00
Alpinux
31ddff2a75 feat: affichage des métadonnées image dans la page de prévisualisation
Ajoute une carte de propriétés au-dessus de l'image :
- Dimensions (largeur × hauteur), format, mode couleur, résolution DPI
- Données EXIF complètes si présentes (appareil, exposition, ISO, focale,
  balance des blancs, auteur, copyright…)
- Coordonnées GPS avec lien OpenStreetMap si le champ est renseigné

Nouvelle fonction _image_meta() et _parse_gps() dans app.py (Pillow).
Grille CSS responsive, n'apparaît pas si aucune métadonnée disponible.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:41:31 +02:00
Alpinux
14259c59f1 feat: renommage de fichiers + gestion des conflits dans le redimensionnement
- Route POST /rename : renomme un fichier CDN avec validation sécurité,
  retourne JSON (name, path, browse_url)
- Route /resize : accepte param `conflict` (backup | overwrite | rename | skip)
  backup  → renomme l'existant en {stem}_bak_{timestamp}{ext} avant création
  rename  → auto-incrémente le nom de la copie ({stem}_1, _2…)
  overwrite → écrase silencieusement
  skip    → ignore (signalé dans les erreurs)
- browse.html : bouton ✏️ par fichier, renommage inline avec Entrée/Échap
- preview_image.html : bouton ✏️ dans l'en-tête, champ inline + redirect
  après validation ; radio segmenté pour la stratégie de conflit
- app.css : styles btn-rename, rename-inline, radio-chips segmentés

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:26:26 +02:00
Alpinux
c503f5e074 feat: redimensionnement d'images depuis la prévisualisation CDN
Ajoute une carte interactive sous chaque aperçu d'image permettant de
générer des copies redimensionnées directement dans le même dossier CDN.

- Route POST /resize avec Pillow (PNG, JPG, ICO) et cairosvg optionnel (SVG)
- Tailles disponibles : 32, 64, 100, 128, 200, 300, 500, 600, 1024 px (carré)
- Formats : png, jpg, ico (svg uniquement si la source est déjà SVG)
- Nommage automatique : {nom}_{taille}x{taille}.{ext}
- UI chips cliquables, soumission AJAX, retour avec liens directs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 08:26:51 +02:00
Alpinux
64989e83c8 feat: upload de fichiers dans l'app Flask CDN
Ajoute la route POST /upload (admin uniquement) et la zone de dépôt
dans browse.html — glisser-déposer ou sélection multiple, destination
= dossier courant du navigateur.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 20:35:29 +02:00