feat: copier un ou plusieurs fichiers vers un autre dossier depuis /browse #58

Open
opened 2026-05-06 19:18:12 +00:00 by Cédric A5L · 0 comments
Owner

Description

Depuis /browse, permettre de copier un ou plusieurs fichiers sélectionnés vers un autre dossier de l'arborescence (l'original reste en place).

Comportement attendu

  • Sélection multiple via cases à cocher (réutiliser le mécanisme de sélection de /trash #20)
  • Bouton « Copier » dans la barre de lot (batch bar) après sélection, distinct de « Déplacer » (#57)
  • Sélecteur de dossier de destination partagé avec #57 (même composant)
  • Gestion des conflits sur la destination : écraser / renommer / ignorer (cohérent avec upload)
  • Retour visuel : X copié(s), Y renommé(s), Z ignoré(s)

Compatibilité corbeille

  • La copie crée un nouveau fichier — aucune interaction avec la corbeille
  • Le fichier copié peut être supprimé indépendamment (et ira en corbeille normalement)

Notes techniques

  • Backend : POST /browse/copy avec { paths: [...], dest: '...' }
  • shutil.copy2 (préserve les métadonnées)
  • Accessible aussi depuis la page de prévisualisation (copier le fichier courant)
  • Dépend de #57 pour le composant sélecteur de dossier
## Description Depuis /browse, permettre de copier un ou plusieurs fichiers sélectionnés vers un autre dossier de l'arborescence (l'original reste en place). ## Comportement attendu - Sélection multiple via cases à cocher (réutiliser le mécanisme de sélection de /trash #20) - Bouton « Copier » dans la barre de lot (batch bar) après sélection, distinct de « Déplacer » (#57) - Sélecteur de dossier de destination partagé avec #57 (même composant) - Gestion des conflits sur la destination : écraser / renommer / ignorer (cohérent avec upload) - Retour visuel : X copié(s), Y renommé(s), Z ignoré(s) ## Compatibilité corbeille - La copie crée un nouveau fichier — aucune interaction avec la corbeille - Le fichier copié peut être supprimé indépendamment (et ira en corbeille normalement) ## Notes techniques - Backend : POST /browse/copy avec { paths: [...], dest: '...' } - shutil.copy2 (préserve les métadonnées) - Accessible aussi depuis la page de prévisualisation (copier le fichier courant) - Dépend de #57 pour le composant sélecteur de dossier
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: alpinux.cedrica5l/alpinux-static#58
No description provided.