feat: drag & drop de fichiers dans l'arborescence (portion 5)
- 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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user