[Feature] Drag-and-drop upload onto file spaces and folders #32

Closed
opened 2026-07-14 20:08:43 +02:00 by zemion · 2 comments
Owner

Problem / User Need

Users should be able to upload by dragging files directly onto a file space or folder, not only through a dedicated upload control.

Acceptance Criteria

  • Dropping files onto a managed file space uploads them to that space root or current folder.
  • Dropping files onto a folder uploads them into that folder.
  • Drop targets provide visual feedback before drop.
  • Permissions and connector/write-policy restrictions are enforced before accepting drops.
## Problem / User Need Users should be able to upload by dragging files directly onto a file space or folder, not only through a dedicated upload control. ## Acceptance Criteria - Dropping files onto a managed file space uploads them to that space root or current folder. - Dropping files onto a folder uploads them into that folder. - Drop targets provide visual feedback before drop. - Permissions and connector/write-policy restrictions are enforced before accepting drops.
Author
Owner

Codex State: progress

Summary

  • Local Core commit b5cfba6 resolves browser drops explicitly, adds drag-state feedback and readable disabled/empty/unreadable rejection paths, and tests directory/file extraction.
  • Local Files commit 8c5f149 routes each drop to the concrete file-space/folder target, covers the current-folder surface, and refuses permission-denied, busy, missing, or connector targets with an explanation.

Verification

  • Core: npm run test:file-drop-zone (passed)
  • Files: npm run test:file-drop-target (passed)
  • Core WebUI production build (passed)

Next / Blocked

  • Keep open until the local commits are reviewed/integrated; then verify the server-side connector/write-policy response in the integrated UI and close if no gap remains.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - Local Core commit b5cfba6 resolves browser drops explicitly, adds drag-state feedback and readable disabled/empty/unreadable rejection paths, and tests directory/file extraction. - Local Files commit 8c5f149 routes each drop to the concrete file-space/folder target, covers the current-folder surface, and refuses permission-denied, busy, missing, or connector targets with an explanation. ### Verification - `Core: npm run test:file-drop-zone (passed)` - `Files: npm run test:file-drop-target (passed)` - `Core WebUI production build (passed)` ### Next / Blocked - Keep open until the local commits are reviewed/integrated; then verify the server-side connector/write-policy response in the integrated UI and close if no gap remains. Suggested status label: `status/in-progress`
zemion added the area/apicodex/readymodule/files
priority
p2
status
ready
type
feature
labels 2026-07-29 14:15:04 +02:00
Author
Owner

Closed after integration verification.

The previously recorded implementation commits are now in main history:

  • Core b5cfba6: explicit browser drop resolution, drag-state feedback, readable rejection paths, and directory/file extraction coverage.
  • Files 8c5f149: concrete file-space/root/current-folder target routing with permission, busy, missing-target, and connector-space refusal.

The drop path delegates successful managed-space uploads to the existing scoped Files upload API, so server-side upload authorization and connector-import policy remain authoritative. Connector spaces are rejected before browser drops are accepted rather than being treated as writable managed storage.

Reverified on current main: npm --prefix webui run test:file-drop-zone (Core), npm --prefix webui run test:file-drop-target (Files), plus the just-completed full focused workspace suite (57 module permutations and 7 Playwright conformance scenarios).

Closed after integration verification. The previously recorded implementation commits are now in `main` history: - Core `b5cfba6`: explicit browser drop resolution, drag-state feedback, readable rejection paths, and directory/file extraction coverage. - Files `8c5f149`: concrete file-space/root/current-folder target routing with permission, busy, missing-target, and connector-space refusal. The drop path delegates successful managed-space uploads to the existing scoped Files upload API, so server-side upload authorization and connector-import policy remain authoritative. Connector spaces are rejected before browser drops are accepted rather than being treated as writable managed storage. Reverified on current `main`: `npm --prefix webui run test:file-drop-zone` (Core), `npm --prefix webui run test:file-drop-target` (Files), plus the just-completed full focused workspace suite (57 module permutations and 7 Playwright conformance scenarios).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-files#32