feat(slides): add multi-select with bulk actions and improved drag-drop #13

Merged
casper-stevens merged 2 commits from development_multiselect_slides_bulk_actions into development 2026-04-14 07:06:12 +00:00
Member

Summary

  • Add duplicate_slide, bulk_delete_slides, bulk_move_slides to hero_slides_lib with full unit tests
  • Add slide.duplicate, slide.bulkDelete, slide.bulkMove RPC handlers
  • Multi-select slide cards via click (Ctrl/Cmd-toggle, Shift-range, single-clear), with Ctrl/Cmd+A to select all
  • Selection toolbar (count, Select All, Deselect All, Delete Selected) shown when one or more cards are selected
  • Dragging a selected slide in a multi-selection moves the whole group atomically; single-card drags do not activate the selection toolbar
  • Empty-space end zone appended to the slides grid as a drop target to move slides to the end of the deck
  • CSS: selected card outline with checkmark badge, selection toolbar styles, end-zone drag indicator

Closes #5

Test Results

49 tests passed, 0 failed (including 5 new unit tests for the bulk operations)

## Summary - Add `duplicate_slide`, `bulk_delete_slides`, `bulk_move_slides` to `hero_slides_lib` with full unit tests - Add `slide.duplicate`, `slide.bulkDelete`, `slide.bulkMove` RPC handlers - Multi-select slide cards via click (Ctrl/Cmd-toggle, Shift-range, single-clear), with Ctrl/Cmd+A to select all - Selection toolbar (count, Select All, Deselect All, Delete Selected) shown when one or more cards are selected - Dragging a selected slide in a multi-selection moves the whole group atomically; single-card drags do not activate the selection toolbar - Empty-space end zone appended to the slides grid as a drop target to move slides to the end of the deck - CSS: selected card outline with checkmark badge, selection toolbar styles, end-zone drag indicator ## Related Issue Closes https://forge.ourworld.tf/lhumina_code/hero_slides/issues/5 ## Test Results 49 tests passed, 0 failed (including 5 new unit tests for the bulk operations)
feat(slides): add multi-select with bulk actions and improved drag-drop
Some checks failed
Test / test (push) Failing after 1m25s
Test / test (pull_request) Failing after 1m26s
c7a110f762
- Add duplicate_slide, bulk_delete_slides, bulk_move_slides to hero_slides_lib
  with full unit tests; update excluded-MD check to cover indexed temp names
- Add slide.duplicate, slide.bulkDelete, slide.bulkMove RPC handlers
- Add selection state (Set + lastClickedSlide) to dashboard.js with
  click handlers supporting Ctrl/Cmd-toggle, Shift-range, and single-clear
- Bulk delete via selection toolbar; Ctrl/Cmd+A selects all when slides tab active
- Multi-drag: dragging a selected slide in a multi-selection moves the whole
  group; single-card drags never activate the selection toolbar
- Empty-space end zone appended to slides grid as a drop target for end-of-deck moves
- Selection toolbar (count, Select All, Deselect All, Delete Selected) hidden
  until one or more cards are selected
- CSS: selected card outline + checkmark badge, toolbar, end-zone styles

lhumina_code/hero_slides2#5
chore: merge development into feature branch, resolve lib.rs conflict
Some checks failed
Test / test (push) Failing after 1m1s
Test / test (pull_request) Failing after 1m1s
190b92f072
Combined exports from development (HistoryCleanupResult, deck_history_cleanup,
slide_delete_versions) with feature exports (slide_bulk_delete, slide_bulk_move,
slide_duplicate).

#5
casper-stevens merged commit 7534dcfe5d into development 2026-04-14 07:06:12 +00:00
casper-stevens deleted branch development_multiselect_slides_bulk_actions 2026-04-14 07:06:13 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_slides!13
No description provided.