mirror of
https://gh-proxy.org/https://github.com/klinsmaya/multica.git
synced 2026-11-09 01:46:46 +08:00
* feat(issues): add Project as a grouping option on Board and Table Board and Table only offered status / assignee (plus select properties) as grouping dimensions, so a workspace that models each customer as a Project could filter to one project everywhere but only ORGANISE by project in the Swimlane. Closes #7337. The server side already exists: the table group endpoint has carried `{ kind: "project" }` — group expression, `__no_project__` bucket, ordering by project title — since the Swimlane shipped, so this only widens the two client grouping types and routes them to it. Notes: - `projectGroupId()` reproduces the server's group key exactly (`project:<id>` / `project:none`). The board builds column ids from cards and the server builds them from descriptors; a mismatch drops every card. - `projectId` sits beside `assigneeId` on BoardColumnGroup, so the drop handler and the column heading both match it explicitly — the assignee fallthrough would otherwise unassign a card on every drop and head a project column with a no-assignee glyph. - Group titles come from the projects query, which the surface now primes for this grouping. A project it cannot resolve reads as unavailable, never as its raw id. - Sorting by project / assignee is deliberately not part of this change. Co-authored-by: multica-agent <[email protected]> * fix(issues): pin the No project board column and match the Table's unavailable wording Review nits on #7383. The "No project" column was derived from the result set like every other project column, so a workspace where every card has a project lost it — and with it the only way to clear a card's project by dragging. It is now kept whenever the board has any columns at all; an entirely empty board still renders its empty state rather than one lone column. The board also fell back to an empty title for a project the projects query cannot resolve, while the Table said "Unavailable value" for the same project. Both now share the Table's wording, so a board column can no longer render as an icon and a count with no name at all. Both paths that build a project column go through one helper now, which is what keeps the client fallback and the server-descriptor path from drifting apart again. Co-authored-by: multica-agent <[email protected]> --------- Co-authored-by: Bohan-J <[email protected]> Co-authored-by: multica-agent <[email protected]>