Vault import dialog in the pond settings #118
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#118
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Pond admins need the UI: upload the vault ZIP and set the import options the backend expects. Today's sidebar
ImportControlhas neither a parent picker nor label selection — the vault flow gets its own admin section.Scope
PondSettingsPage(admin-visible, like the other admin sections) opening a dialog: ZIP file input, indented parent-page picker (extract/reuse the picker fromMovePageDialog), label multi-select over the pond's label tree (reuseuse-pond-labels), frontmatter radio (strip / preserve as code block).POST /ponds/:id/import/vault; pollGET /jobs/:id(extend theuse-import.tspattern with a larger poll budget — vaults take longer than single files); render queued/converting/succeeded/failed with the translatederrorCodeand a retry.['pages'],['pond-links'],['phantom-links'], and the labels query so the sidebar tree, graph, and label pickers show the import without a reload.Acceptance criteria
strip.Technical notes
apps/web/src/pages/PondSettingsPage.tsx, newapps/web/src/import/VaultImportDialog.tsx,apps/web/src/import/use-import.ts,apps/web/src/pages/MovePageDialog.tsx(picker extraction), i18n namespaceimport.Dependencies
Requires #117 (API contract; UI work can start against the agreed DTO).
Size
~1.5 days.
Implemented in
704ebe4. An admin-only 'Import an Obsidian vault' section in the pond settings opens a dialog with the ZIP input, an indented mount-parent picker over the page tree, a label multi-select, and the frontmatter radio. It uploads, polls the job with a vault-sized budget, invalidates pages/graph/phantom-links/labels so everything shows without a reload, and links to the mount page.apiUploadFilenow takes extra multipart fields.import-vault.spec.tsdrives the whole flow in the browser.