Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

MOTIR-189Done

3.6.3 Board-configuration UI — column manager + status mapping; repoint the unmapped tray

Estimate: 30m · Depends on: 3.6.1, 3.6.2, 3.2.6, 2.2.5

The admin surface itself, per design/boards/board-config.mock.html (3.6.1), consuming the 3.6.2 API — and the subtask that finally CLOSES the 3.2.6 unmapped-tray loop.

The page. A new app/(authed)/settings/project/board/page.tsx (Server Component resolving the active project + the caller’s admin role, mirroring the settings/project/workflow page, Story 2.2.5) handing typed data to a client BoardConfigEditor. Add the settings-nav entry ("Board", beside "Workflow"). The editor: rename the board; the column manager (add / rename / reorder via drag / delete — reuse the dnd-kit setup from 3.2.4, no new lib); and the status mapping (each column shows its mapped status Pills; an unmapped-statuses rail; drag a status into a column OR use a per-column status picker — keyboard-operable, finding #35). Every write is optimistic-with-reconcile against the 3.6.2 endpoints; the delete-column confirm + guard from the design. Membership-gated affordances (read-only for non-admins, the server re-gates).

Close the 3.2.6 loop (the headline). Repoint the unmapped-statuses tray (UnmappedStatusesTray, 3.2.6): the interim "Manage statuses →" CTA (which went to the workflow editor because no mapping admin existed) becomes "Map columns →" linking to settings/project/board — the real surface. Update the boards i18n keys (en + zh) and the design/boards/design-notes.md "CTA reality" note accordingly. Also wire the 3.2.3 column [⋯] menu (a disabled seam) to open here.

Acceptance criteria

  • settings/project/board renders the board-config editor (board rename + column manager + status mapping) per design/boards/board-config.mock.html, with a settings-nav entry beside Workflow; colours via --el-*, shape via element tokens; render checklist clean; AA-safe.
  • An admin can add / rename / reorder / delete a column and map / unmap / move a status; changes reconcile against the 3.6.2 API and reflect on /boards (a mapped status appears as/in its column; an unmapped one returns to the tray).
  • Status mapping is operable by keyboard, not drag-only (finding #35); the delete-column confirm names the consequence (statuses → unmapped) and respects the 3.6.2 guard.
  • The 3.2.6 unmapped tray CTA is repointed to this surface ("Map columns →" → settings/project/board), the boards i18n keys updated (en + zh, parity holds), and the design-notes "CTA reality" note updated; the 3.2.3 column [⋯] menu opens here.
  • Non-admins get the read-only treatment; component tests cover the column manager, the map/unmap interaction (incl. the keyboard path), and the tray repoint.

Context refs

  • app/(authed)/settings/project/workflow/page.tsx + _components/WorkflowEditor.tsx (2.2.5) — the sibling settings page + client-editor pattern to mirror; the settings nav to extend
  • app/(authed)/boards/_components/UnmappedStatusesTray.tsx (3.2.6) — the tray to repoint ("Manage statuses" → "Map columns"); messages/en.json + zh.json boards.*; design/boards/design-notes.md (the "CTA reality" note)
  • app/(authed)/boards/_components/BoardContainer.tsx (3.2.4 dnd-kit setup to reuse) + BoardColumn.tsx (the [⋯] seam) — reuse, do not add a second DnD lib
  • Story 3.6.2 — the column-config service + API this consumes; components/ui/* (Pill, Button, Modal, Input); motir-core/CLAUDE.md (--el-* + element-shape rules)