v0.6.12: drag-and-drop move in the file listing (#179) #199

Merged
Cordy merged 4 commits from ship-v0.6.12 into main 2026-08-12 00:04:23 +00:00
Owner

Implements the direct-manipulation half of #179.

  • Drag a file/folder row onto a folder row → moves it inside.
  • Drag a row onto a breadcrumb segment → moves it up to that level.
  • Internal row drags carry a private MIME type (application/x-cairn-move), so the external OS-file upload drop zone (armed only on dataTransfer "Files") ignores them — the two drop paths never collide.
  • Moves reuse the same scoped POST /api/v1/rename as the Move dialog, so read-only spaces and held paths refuse server-side with the visible error (#172 pattern) and admins need no special-casing.
  • Guards: never onto itself, never a folder into its own subtree, no-op when already in the target folder.
  • The Move dialog + folder picker (#185) stay for keyboard/menu parity. Multi-select drag is noted as a follow-up once row selection exists.

Frontend-only (web/static/index.html) + CHANGELOG. Closes #179 (drag-and-drop + explicit affordance; multi-select drag tracked separately).

Implements the direct-manipulation half of #179. - Drag a file/folder row onto a **folder row** → moves it inside. - Drag a row onto a **breadcrumb segment** → moves it up to that level. - Internal row drags carry a private MIME type (`application/x-cairn-move`), so the external OS-file upload drop zone (armed only on `dataTransfer` "Files") ignores them — the two drop paths never collide. - Moves reuse the same scoped `POST /api/v1/rename` as the Move dialog, so read-only spaces and held paths refuse server-side with the visible error (#172 pattern) and admins need no special-casing. - Guards: never onto itself, never a folder into its own subtree, no-op when already in the target folder. - The Move dialog + folder picker (#185) stay for keyboard/menu parity. Multi-select drag is noted as a follow-up once row selection exists. Frontend-only (`web/static/index.html`) + CHANGELOG. Closes #179 (drag-and-drop + explicit affordance; multi-select drag tracked separately).
ci: one-shot ship v0.6.12 (#179 drag-to-move)
Some checks failed
ship-v0612 / ship (push) Failing after 6s
18c185d3aa
ci: v0.6.12 edit script (plain file, no base64)
Some checks failed
ship-v0612 / ship (push) Failing after 6s
65cef0a544
ci: slim ship-v0612 workflow (run committed script, no base64)
All checks were successful
ship-v0612 / ship (push) Successful in 36s
c5d44175b5
v0.6.12: drag-and-drop move in the file listing (#179)
All checks were successful
ci / test-and-build (pull_request) Successful in 33s
328cbf11e6
Cordy merged commit f25f7e5aae into main 2026-08-12 00:04:23 +00:00
Cordy deleted branch ship-v0.6.12 2026-08-12 00:04:27 +00:00
Sign in to join this conversation.
No reviewers
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: Cordy/Cairn#199
No description provided.