mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-03-01 05:29:41 +00:00
1.5 KiB
1.5 KiB
Select All Keyboard Shortcut Specification
Overview
Enable Ctrl+A (or Cmd+A on macOS) to select all items in the library listing screen.
Date
2026-02-15
User Interface
- Component:
client/components/app/LazyBookshelf.vue - Trigger: Global
keydownevent listener active when the bookshelf is mounted. - Shortcut:
Ctrl+A/Cmd+A. - Behavior:
- Selects all currently loaded items in the bookshelf.
- Sets a
isSelectAllflag that automatically selects newly loaded items as the user scrolls. - Updates the "Selection Mode" UI with the total count of selected items.
- Clicking/Deselecting an individual item while
isSelectAllis active will toggle off theisSelectAllpersistent state (but keep existing selections).
Implementation Details
Vuex Store
- File:
client/store/globals.js - Mutation:
addBatchMediaItemsSelected - Purpose: Efficiently add a large number of items to the
selectedMediaItemsarray without duplicates.
LazyBookshelf Component
- Methods:
handleKeyDown(e): Detects the shortcut and callsselectAll().selectAll(): Iterates through loadedentities, builds media item objects, and commits them to the store.mountEntities()Extension: CheckisSelectAllflag and auto-select items as they are rendered.
- Events:
- Listen for
keydownonwindow. - Handle
bookshelf_clear_selectionevent to resetisSelectAllflag.
- Listen for
Artifacts
- This specification is saved as
artifacts/2026-02-15/select_all.md.