feat: drag & drop de fichiers dans l'arborescence (portion 5)
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 13s

- Backend: nouvel endpoint POST /api/move/{vault_name} pour déplacer
  fichiers et dossiers vers un autre répertoire parent
- Frontend: module dragdrop.js avec délégation d'événements sur le
  vault-tree (dragstart, dragover, dragleave, drop)
- CSS: styles pour drag-source, drag-valid-target, drag-over
- Protections: pas de drop sur soi-même, pas dans un enfant,
  pas de cross-vault
- Mise à jour de l'index et broadcast SSE après move
- ROADMAP: portion 5 marquée comme complétée
This commit is contained in:
2026-06-03 13:56:27 -04:00
parent 96c1e9e6ec
commit cfb3825dbe
5 changed files with 498 additions and 2 deletions
+31
View File
@@ -911,6 +911,37 @@ select {
outline: none;
}
/* ---------------------------------------------------------------------------
Drag & Drop — tree items
--------------------------------------------------------------------------- */
/* Source item being dragged */
.tree-item.drag-source {
opacity: 0.35;
outline: 1px dashed var(--border);
}
/* Valid drop targets during drag — subtle pulse indicator */
.tree-item.drag-valid-target {
outline: 1px dashed color-mix(in srgb, var(--accent) 30%, transparent);
outline-offset: -1px;
}
/* Active drop target (hovering over) */
.tree-item.drag-over {
background: color-mix(in srgb, var(--accent) 18%, transparent) !important;
outline: 2px solid var(--accent);
outline-offset: -2px;
border-radius: 4px;
}
/* Vault item as drop target */
.tree-item.vault-item.drag-over {
background: color-mix(in srgb, var(--accent) 15%, transparent) !important;
outline: 2px solid var(--accent);
outline-offset: -2px;
}
.tree-children {
padding-left: 16px;
overflow: hidden;