Skip to content

Add list view for grouped author/series in audiobooks library#585

Draft
kevinheneveld wants to merge 1 commit into
Listenarrs:canaryfrom
kevinheneveld:feat/audiobooks-grouped-list-view
Draft

Add list view for grouped author/series in audiobooks library#585
kevinheneveld wants to merge 1 commit into
Listenarrs:canaryfrom
kevinheneveld:feat/audiobooks-grouped-list-view

Conversation

@kevinheneveld
Copy link
Copy Markdown

@kevinheneveld kevinheneveld commented May 13, 2026

Summary

  • The audiobooks toolbar exposes a list/grid view toggle, but the grouped views (?group=authors, ?group=series) only had a grid template. Toggling list mode while grouped was silently a no-op.
  • This PR adds a parallel list rendering for grouped collections: one row per collection (cover thumb, collection name, book count). Clicking a row navigates to the collection page, matching the grid-card behavior.
  • The book grouping (?group=books) was already correct and is unchanged.

Implementation notes

  • Template change is localized to the grouped-view block in fe/src/views/library/AudiobooksView.vue. The existing grid is now wrapped in v-else, with the new v-if="viewMode === 'list'" branch above it.
  • CSS reuses the existing .audiobooks-list / .audiobook-list-item patterns; collection rows have their own three-column grid template (cover / name / count) since they don't carry status badges or per-item actions.
  • showItemDetails is treated as a no-op for collection list rows — the book count is the primary metadata for a collection and is always visible.
  • viewMode and toggleViewMode are exposed via defineExpose so the new tests can drive the view deterministically.

Test plan

  • cd fe && npm run test:unit — 350 / 350 passing (includes 2 new parameterized cases for authors + series list mode)
  • npx vue-tsc --noEmit -p tsconfig.app.json — clean
  • cd tests && dotnet test — 613 / 613 passing (no backend changes; sanity)

Closes #595

The audiobooks toolbar exposes a list/grid toggle, but the grouped view
template only rendered a grid — toggling to list mode while grouped by
author or series was silently ignored. The list template only existed
inside the `groupBy === 'books'` branch.

This adds a parallel list rendering for grouped collections:
- Row per collection (cover thumb, name, book count)
- Clicking a row navigates to the collection page (matches grid behavior)
- Keyboard accessible (Enter / Space activate the row)

CSS reuses the existing `.audiobooks-list` / `.audiobook-list-item`
patterns; the row layout has its own three-column grid template
(cover / name / count) since collection rows don't carry status badges
or per-item actions.

Tests added for both authors and series groupings in list mode.
@T4g1
Copy link
Copy Markdown
Contributor

T4g1 commented May 14, 2026

Small note regarding the issue linked to this: Is there a particular reason why you created it on the fork instead of here ? It might be better to open them here instead if you expect feedback on those (or perhaps there is a way to see forked repository issues from here ?)

@kevinheneveld
Copy link
Copy Markdown
Author

Good point. My workflow tracks issues on the fork as a working backlog, but you're right that anything expecting upstream feedback belongs here. I'll re-open this one on Listenarrs/Listenarr and relink it.

@kevinheneveld
Copy link
Copy Markdown
Author

Re-filed the linked issue here: #595 (was kevinheneveld#1). Will update the PR body to point at the new one.

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.

[Enhancement] List view missing for ?group=authors and ?group=series

2 participants