Skip to content

feat(llc): Kanban boards UI wired to the boards API (list/create/move) (#12213) - #12254

Merged
mrveiss merged 1 commit into
Dev_new_guifrom
issue-12213
Jul 24, 2026
Merged

mrveiss merged 1 commit into
Dev_new_guifrom
issue-12213

Conversation

@mrveiss

@mrveiss mrveiss commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Thinking Path

Audit-first (issue premise was stale). The LLC Kanban board UI already exists and is reachable: BoardsView (list), KanbanBoardView (drag-and-drop POST /move, WIP limits), SprintBoardView, all routed under /llc/companies/:companyId/... with a nav.llcBoards sidebar entry. So the GET /boards, GET /{id}, GET /{id}/items, POST /{id}/move endpoints were already consumed.

The one genuine gap: the board create endpoints (POST /api/llc/boards/kanban, POST /api/llc/boards/sprint) had zero frontend callers — a fresh company's empty board list was a dead end (nothing ever creates a board). This wires the create path rather than duplicating the existing views.

What Changed

  • New composable useKanbanBoardsApi (autobot-frontend/src/composables/llc/useKanbanBoardsApi.ts) centralising list / create-kanban / create-sprint / move against llc/api/boards.py.
  • BoardsView.vue — adds a "New Kanban Board" affordance (header button + empty-state CTA) that opens a project picker (GET /api/llc/companies/{id}/projects), calls createKanbanBoard (get-or-create), and navigates to the new board. Reuses the existing BaseModal + design-token styling; no new design language, no hardcoded strings.
  • i18n: added llc.boards.{newKanban,createTitle,project,selectProject,loadingProjects,noProjects,creating,create} to all 11 locales (translated de/es/fr/pt; English fallback for the rest, matching the existing partial-coverage pattern in the boards block).
  • Unit test useKanbanBoardsApi.test.ts (6 tests) asserting each call hits the right endpoint + payload and parses responses.

Verification

  • npx vitest run src/composables/llc/__tests__/useKanbanBoardsApi.test.ts → 6 passed.
  • npx vue-tsc --noEmit -p tsconfig.app.json → no errors in touched files.
  • npx eslint <touched files> → clean (exit 0).

Model Used

claude-opus-4-8

Closes #12213

@github-actions

Copy link
Copy Markdown
Contributor

✅ SSOT Configuration Compliance: Passing

🎉 No hardcoded values detected that have SSOT config equivalents!

@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@mrveiss
mrveiss merged commit 8cfee33 into Dev_new_gui Jul 24, 2026
37 of 38 checks passed
@mrveiss
mrveiss deleted the issue-12213 branch July 24, 2026 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant