mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Add option to select all items on the screen #2761
Open
opened 2026-04-25 00:10:17 +02:00 by adam
·
9 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No Label
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#2761
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
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?
Originally created by @DorjeDorf on GitHub (May 10, 2025).
Type of Enhancement
Web Interface/Frontend
Describe the Feature/Enhancement
Let's say I want to add a tag to all books in a series.
I would like to be able to go to a series, open it - and have a button in the top bar that would allow me to select all items currently displayed, another one to deselect all and a third one to invert selection.
Ideally, this should be available in all major screen (library, artists, series, etc).
Why would this be helpful?
It saves a lot of time when you want to bulk edit items.
Future Implementation (Screenshot)
Extra buttons above the items. Or extra menus like Plex does it (I feel the overall feel of ABS is taking a couple leafs out of Plex's book). I'd prefer individual icons to Plex's menu popping up, but at this point, I'll take anything :)
Audiobookshelf Server Version
v2.21.0
Current Implementation (Screenshot)
No there is no way to bulk select, or I couldn't find it.
@nichwall commented on GitHub (May 10, 2025):
Duplicate of https://github.com/advplyr/audiobookshelf/issues/1708
You can Shift+Click to select all items between two items.
@DorjeDorf commented on GitHub (May 10, 2025):
I would disagree that it is a duplicate.
This is not just about select/deselct all. There's also the invert option there.
And while shift clicking solves my issue in general - a simple icon/button I feel would still be easier and quicker to use (I know it's a click more, but it's more user friendly and visible in the GUI). Just a better UX choice.
@advplyr commented on GitHub (May 10, 2025):
Do you know of an example software that has the select all on page and deselect?
The issue I'm having trouble with is how you determine how many to select if there are thousands of items. It could use screen size but what if the item only has like 10px showing. Select all feels clunky unless you are actually selecting all items. That's why it hasn't been implemented
@DorjeDorf commented on GitHub (May 11, 2025):
Understood.
To be perfectly honest, I don't think you should worry about this granular a devision of how much to select and not.
The way I would suggest it (putting my old product owner hat on) would be to divide the feature into batches.
Start with - select all / deselect all / inverse selection within the current filtering of items. Doesn't matter how many there are. All or nothing. I would imagine this is in line with what most users would expect anyways in other systems. That's the way it would work in your operating system, when you go into a folder - they don't care how many files there are. If you select all - all gets selected even if it's thousands of files.
If you look at Plex - that's how I see them doing things. Granted... I don't have enough content on it to run up a list of thousands of items (or even tens of them on a single screen), but I'd just keep it simple for now.
You could mark it as an experimental feature and ask for feedback. If people will want to add more division into the select all - that could be investigated and done or rejected. Or add pagination and then it's even simpler - mark all on the single page.
You could even go the GMail way, where select all marks all messages on the screen and you get an extra option of marking all items in the current folder regardless whether they are shown or not. But this I would add later.
Start with small things, expand further if you need :D
Anyone else want my soap box? I'll sell it cheap :D
PS. Don't get me wrong - I absolutely love ABS. It's an amazing piece of software and a true testament to your skill and vision. But as luck would have it - there's always someone like me bugging for more... oh and Carplay! ;D
@advplyr commented on GitHub (May 11, 2025):
One issue is that the items you are selecting might not be loaded yet. If they aren't loaded then we don't know if they are an audiobook or an ebook. The options that appear at the top are based on the items that are selected. For example, if you only select ebooks then you won't see a "Play" button at the top.
It could be built so that if you are selecting items that aren't loaded yet then the available bulk options are limited. This could be a confusing user experience though.
I don't think Plex handles this either from my limited testing.
This issue is related https://github.com/advplyr/audiobookshelf/issues/2950. A bug with shift selecting when not all items are loaded. It can be reproduced by grabbing the scrollbar and quickly jumping to the bottom so that the middle pages of items aren't loaded.
@jinnatar commented on GitHub (Jun 1, 2025):
The one place where this is the most painful, and perhaps easier to implement is the podcast episode list view:
$$('input[type="checkbox"').map(i => i.checked = true)Select all matchingoption, for example from the three dot menu and hittingRemove 168 episode(s)would be a good flow.@advplyr commented on GitHub (Jun 1, 2025):
This is closer related to https://github.com/advplyr/audiobookshelf/issues/1354
@Phantomwise commented on GitHub (Jun 15, 2025):
Not sure if that'll help, but the closest I know is Suwayomi Server
The square button on the top right is "Select all" (tooltip doesn't show up on the screenshot sorry), and when clicked it changes to this:
"Clear" and "Cancel" respectively. "Cancel" cancels the whole thing and goes back to normal with nothing selected. "Clear" clears the selection but keeps you in select mode, and if nothing is selected the checkmark in the square disappears and the button becomes "Select All". I don't know if it selects everything visible or everything even if it's not loaded, I don't have enough items to test.
@linuxdaemon commented on GitHub (Jul 27, 2025):
Not sure if this should be a separate request or not, but being able to select all episodes of a podcast would be ideal, especially in cases where I need to bulk edit them. As for the selection of large numbers of items, I have seen GMail for instance will select one "page" worth of items even with infinite scrolling on and prompt for if you want to select every single match or not