feat: déplacer ou copier un dossier vers un autre emplacement depuis /browse #59

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

Description

Depuis /browse, permettre de déplacer ou de copier un dossier (et tout son contenu) vers un autre emplacement de l'arborescence.

Comportement attendu

  • Icônes « Déplacer » et « Copier » sur chaque dossier listé dans /browse (en plus des fichiers)
  • Sélecteur de dossier de destination partagé avec #57/#58 (même composant)
  • Gestion des conflits sur la destination :
    • Déplacer : renommer le dossier déplacé si un dossier du même nom existe déjà
    • Copier : renommer la copie si conflit (ex. mon-dossier → mon-dossier-1)
  • Retour visuel : confirmation avec chemin de destination final
  • Empêcher de déplacer/copier un dossier dans lui-même ou dans l'un de ses sous-dossiers

Compatibilité corbeille

  • Déplacer : opération atomique (shutil.move) — pas de passage par la corbeille
  • Copier : shutil.copytree — le dossier copié peut ensuite être supprimé normalement via #56 (→ corbeille)

Notes techniques

  • Backend : POST /browse/move et POST /browse/copy (étendre les endpoints de #57/#58 pour accepter des dossiers en plus des fichiers)
  • Vérification anti-boucle : dest ne doit pas être un sous-chemin de src
  • Dépend de #57 et #58 pour les endpoints et le sélecteur de dossier
## Description Depuis /browse, permettre de déplacer ou de copier un dossier (et tout son contenu) vers un autre emplacement de l'arborescence. ## Comportement attendu - Icônes « Déplacer » et « Copier » sur chaque dossier listé dans /browse (en plus des fichiers) - Sélecteur de dossier de destination partagé avec #57/#58 (même composant) - Gestion des conflits sur la destination : - Déplacer : renommer le dossier déplacé si un dossier du même nom existe déjà - Copier : renommer la copie si conflit (ex. mon-dossier → mon-dossier-1) - Retour visuel : confirmation avec chemin de destination final - Empêcher de déplacer/copier un dossier dans lui-même ou dans l'un de ses sous-dossiers ## Compatibilité corbeille - Déplacer : opération atomique (shutil.move) — pas de passage par la corbeille - Copier : shutil.copytree — le dossier copié peut ensuite être supprimé normalement via #56 (→ corbeille) ## Notes techniques - Backend : POST /browse/move et POST /browse/copy (étendre les endpoints de #57/#58 pour accepter des dossiers en plus des fichiers) - Vérification anti-boucle : dest ne doit pas être un sous-chemin de src - Dépend de #57 et #58 pour les endpoints et le 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#59
No description provided.