feat(kanban): inline task CRUD + column management + drop undo #112
No reviewers
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_archipelagos!112
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/kanban_round2"
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?
Summary
Kanban was drag-drop-only: users had to leave the board to add, edit, or delete tasks, and there was no way to manage swimlanes through the UI. This branch adds per-column inline CRUD, column add/remove, and a drop-undo banner; fixes a drop-target highlight that burnt in on every traversed column; adds drag-autoscroll so tasks can reach off-viewport columns; and opens a task detail dialog when a card is clicked.
Related Issues
Closes #113
Closes #114
Closes #120
Closes #126
Changes
archipelagos/productivity/kanban/src/services/kanban_service.rscreate_task(project_sid, swimlane, title),delete_task(sid)(tolerates the SDKinvalid type: booleanresponse on delete),save_project(project)archipelagos/productivity/kanban/src/views/kanban_card.rson_deleteprop renders a trash button; tags keyed by enumerate indexon_clickprop raises the fullTaskto the board so it can open a detail dialogarchipelagos/productivity/kanban/src/views/kanban_column.rson_add_task/on_delete_task/on_remove_swimlane/on_task_clickpropsdrag_hover: Signal<Option<String>>so only one column is highlighted at a timeliteral ↔ var()transitionsarchipelagos/productivity/kanban/src/views/board_view.rsConfirmDialogguardsAddColumnRailcomponent at the far right of the boarddragend/droplistener clearsdrag_hover, installed viause_hook+use_dropso navigating between projects does not leak listeners firing on freed signalsonmountedcaptures the element ref,ondragoversets a direction signal when the cursor is within 100px of an edge, and asetInterval(16ms)tick scrolls the container ±10px per frame so motion continues while the cursor is held still at the edgeDialogwired to adetail_task: Signal<Option<Task>>that opens on card click and closes on overlay clickarchipelagos/productivity/kanban/src/views/inline_quick_form.rs(new)archipelagos/productivity/kanban/Cargo.tomlchronoworkspace dep for the detail dialog's date formattingTest Results
cargo check --workspace: passcargo test --workspace: passcargo clippy --workspace -- -D warnings: passcargo fmt --checkon changed files: passdx build --package hero_os_app --web --features web: pass, deployed to the shared test instancetests/e2e/kanban.spec.tscover parallel fan-out, drag-highlight, autoscroll, and card-click flowsUI-heavy change — also covered by manual verification below.
Manual verification