[PR #1826] Implement favorite property for library items #1711

Open
opened 2026-04-25 00:00:46 +02:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf-app/pull/1826
Author: @Rapha149
Created: 3/16/2026
Status: 🔄 Open

Base: masterHead: favorites


📝 Commits (1)

  • 4df385c Add favorite property for items and associated filters.

📊 Changes

8 files changed (+69 additions, -2 deletions)

View changed files

📝 components/cards/LazyBookCard.vue (+10 -0)
📝 components/modals/FilterModal.vue (+10 -0)
📝 components/tables/podcast/LatestEpisodeRow.vue (+1 -0)
📝 pages/bookshelf/latest.vue (+19 -2)
📝 pages/item/_id/index.vue (+21 -0)
📝 store/user.js (+4 -0)
📝 strings/de.json (+2 -0)
📝 strings/en-us.json (+2 -0)

📄 Description

Brief summary

This pr is the companion for my other pr (https://github.com/advplyr/audiobookshelf/pull/5128) and also adds the ability to mark podcasts (and other library items) as favorite and allows to filter for favorite items in the library page and the latest episodes page.

Which issue is fixed?

https://github.com/advplyr/audiobookshelf/issues/2968 and https://github.com/advplyr/audiobookshelf/issues/4816

Pull Request Type

It changes the frontend, the backend is in the other pr. I only changed .js and .vue files, so it affects both Android and iOS.

In-depth Description

Added features:

  • Star icon next to the title in the item page, clickable to toggle.
  • Star icon in the bottom left corner of item covers when the item is favorite.
  • Filter by favorite in audiobook and podcasts libraries.
  • Filter by episodes of favorite podcasts in the latest episodes page (implemented via checkbox, the state is saved in the cookies like the library filters).

I added two new strings: LabelFavorite (en: "Favorite") and LabelOnlyFavorites (en: "Only Favorites"), but I only added them in English and German.

How have you tested this?

I tested it on Android:

  • The star icon appears correctly in the item page and in the cover.
  • Adding and removing an item from the favorites works.
  • Filtering in the library page as well as the latest page also works as expected.

I couldn't test it on iOS since I don't have Apple devices but I would expect that it works as well since I changed nothing in the android nor ios folders.

Screenshots

Cover:

Item page:

Filter menu:

Latest page:


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/advplyr/audiobookshelf-app/pull/1826 **Author:** [@Rapha149](https://github.com/Rapha149) **Created:** 3/16/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `favorites` --- ### 📝 Commits (1) - [`4df385c`](https://github.com/advplyr/audiobookshelf-app/commit/4df385c6cc36513d0a40eaf1a16486bfcd90019c) Add favorite property for items and associated filters. ### 📊 Changes **8 files changed** (+69 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `components/cards/LazyBookCard.vue` (+10 -0) 📝 `components/modals/FilterModal.vue` (+10 -0) 📝 `components/tables/podcast/LatestEpisodeRow.vue` (+1 -0) 📝 `pages/bookshelf/latest.vue` (+19 -2) 📝 `pages/item/_id/index.vue` (+21 -0) 📝 `store/user.js` (+4 -0) 📝 `strings/de.json` (+2 -0) 📝 `strings/en-us.json` (+2 -0) </details> ### 📄 Description <!-- For Work In Progress Pull Requests, please use the Draft PR feature, see https://github.blog/2019-02-14-introducing-draft-pull-requests/ for further details. If you do not follow this template, the PR may be closed without review. Please ensure all checks pass. If you are a new contributor, the workflows will need to be manually approved before they run. --> ## Brief summary <!-- Please provide a brief summary of what your PR attempts to achieve. --> This pr is the companion for my other pr (https://github.com/advplyr/audiobookshelf/pull/5128) and also adds the ability to mark podcasts (and other library items) as favorite and allows to filter for favorite items in the library page and the latest episodes page. ## Which issue is fixed? <!-- Which issue number does this PR fix? Ex: "Fixes #1234" --> https://github.com/advplyr/audiobookshelf/issues/2968 and https://github.com/advplyr/audiobookshelf/issues/4816 ## Pull Request Type <!-- Does this affect only Android, only iOS, or both? Does this change the frontend or the backend of the apps? --> It changes the frontend, the backend is in the other pr. I only changed `.js` and `.vue` files, so it affects both Android and iOS. ## In-depth Description <!-- Describe your solution in more depth. How does it work? Why is this the best solution? Does it solve a problem that affects multiple users or is this an edge case for your setup? --> Added features: - Star icon next to the title in the item page, clickable to toggle. - Star icon in the bottom left corner of item covers when the item is favorite. - Filter by favorite in audiobook and podcasts libraries. - Filter by episodes of favorite podcasts in the latest episodes page (implemented via checkbox, the state is saved in the cookies like the library filters). I added two new strings: `LabelFavorite` (en: "Favorite") and `LabelOnlyFavorites` (en: "Only Favorites"), but I only added them in English and German. ## How have you tested this? <!-- Please describe in detail with reproducible steps how you tested your changes. --> I tested it on Android: - The star icon appears correctly in the item page and in the cover. - Adding and removing an item from the favorites works. - Filtering in the library page as well as the latest page also works as expected. I couldn't test it on iOS since I don't have Apple devices but I would expect that it works as well since I changed nothing in the `android` nor `ios` folders. ## Screenshots <!-- If your PR includes any changes to the front-end, please include screenshots or a short video from before and after your changes. --> Cover: <img height="300" src="https://github.com/user-attachments/assets/79bf5aee-9672-4521-a2ec-9a9530d15a50"> Item page: <img height="500" src="https://github.com/user-attachments/assets/c595c47e-591b-4ddc-9b0d-ebfb33a2bae8"> <img height="500" src="https://github.com/user-attachments/assets/a2d841c2-d782-4052-b937-68c3ddafb912"> Filter menu: <img height="400" src="https://github.com/user-attachments/assets/7eeeb278-0ded-40f2-9150-4280a208d507"> Latest page: <img height="500" src="https://github.com/user-attachments/assets/b00b752e-639a-4d68-90dc-c7f3b9ab6de4"> <img height="300" src="https://github.com/user-attachments/assets/cdeaee68-36d1-4cd1-a321-9e8c5598bc78"> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2026-04-25 00:00:46 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf-app#1711