-
Notifications
You must be signed in to change notification settings - Fork 867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add video batch selection mode #4198
base: development
Are you sure you want to change the base?
Add video batch selection mode #4198
Conversation
…at/add-select-mode
…to be fully accurate
…at/add-select-mode
We will need to think about what to do for lazy loading. Probably add a click/etc handler that checks if highlight-interrupting event was made at any point.
…at/add-select-mode
This prevents titles/thumbnails/etc. being selected when Ctrl+A is pressed in Select Mode.
…deos when 'Clear selections' button is pressed with many videos
While the more conventional 'highlighting' behavior could be argued for, this would be more awkward while we don't actually have a visible selection rectangle. This dragging behavior is a decent compromise.
Conflicts have been resolved. A maintainer will review the pull request shortly. |
This PR is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 14 days. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
…at/add-select-mode
Conflicts have been resolved. A maintainer will review the pull request shortly. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Boosting this now that playlists PR is merged |
I still have some work left here (resolving conflicts, adding "Add to Playlist" to the Select Mode dropdown options). I intend to get on this next month or later. If there are any concerns about the way the code itself is currently structured, please speak up now, so it doesn't come up late in the process. |
Looking into working on this soon. To reiterate my comment from February, please share any concerns with the code structure before I move forward and it's too late to attend to them. CC: @absidue @efb4f5ff-1298-471a-8973-3d47447115dc @PikachuEXE @ChunkyProgrammer @MarmadileManteater |
Other than the obvious ones of it requiring a bunch of changes due to it being abandoned for so long (make sure you check everything not just the merge conflicts), the performance problems this will cause and realising that there is probably no good way to structure the code regardless of what you do (you are trying to plug patch processing into an app that has been designed to do the opposite), I currently don't have any additional concerns no. |
@absidue Thanks for providing your input! Do you have any recommendations on how you would prefer this to be implemented, or do you just personally not think there is an optimal way to do it? |
I think there isn't an optimal way to do it, all the functionality that you want to do in batches, is currently handled directly in video element itself. So you'll either have to duplicate a load of stuff into the various ancestors or find some hacky way to call stuff on the video elements that are nested multiple layers deep. |
From that perspective, then, is the way that things are being done in the PR the best we can do for the situation? Would you think that there are any broader cons to adding this as an optional feature? |
@absidue and other teammates, still awaiting response on the above:
I personally would quite like this feature, but I don't want to continue work on adding it in if it's too divisive amongst the team, and/or only have any blocking concerns actually be fully expressed until after the work is actually complete. I would be disappointed to both lose this feature and have this work go to waste, but arguing takes more years off of my life than developing. |
I like how this feature is currently implemented and would like this to be merged bc there are way too much moments when i thought |
Coming back to this PR and every actions feels pretty slow when you have allot of items. Not sure if thats just because this needs to be rebased or that its related to the concerns laid out earlier. Personally i like the PR but if this PR brings more cons with it for us than pro's for the users then we should maybe close this PR and all the related issues. I would also like to hear from the others if we should continue this or just kill it. Edit:
I also dont this PR addresses these issues as this is a way to over engineered workaround for it |
I would like to make two major logical changes to this PR if we are okay with the feature in the abstract as a team:
With the above two changes, we should have much better performance and handle a large number of elements better. Plus, like we discussed with our playlist performance issues, reactivity is a non-negligible part of the performance issues that should hopefully be noticeably improved post-Vue 3 migration.
I agree, I don't think I marked this PR as closing them, just more remarking for these users' use cases in case we don't come around to building those specific solutions. |
@kommunarr is right that implementing proper batch actions would help with the performance problems. However as we have no one-size-fits-all list implementation in FreeTube, the batch actions code would likely have to be similarly specialised for all the different parts of FreeTube. The advantage of the current solution is that it doesn't have to care too much about handling all those different situations as it simulates the user manually doing the action lots of times so can rely on all of the existing code and logic. Batching code would definitely by the right solution, I'm just not sure if the feature is worth the extra maintenance burden of having to maintain what is essentially two versions of everything, one to do the action once on user interaction and a second version to do stuff in batches. To be completely transparent it's a feature that I have no use for, so please take my opinions with a grain of salt, as the only times I would use it would be during the testing of this pull request and any pull request in the future that goes anywhere near the affected parts of the app. |
Add video batch selection mode
Pull Request Type
Related issue
closes #2517
#1053 (go to history -> select videos you want to delete / press Ctrl+A / enter search query and press Ctrl+A -> Remove from Watched)
#413 (when playlist PR is merged: go to subscriptions -> press Ctrl+A -> Add to Playlist -> watch the playlist)
#629 (when playlist PR is merged: go to channel -> press Ctrl+A -> Add to Playlist -> watch the playlist)
#1088 (when playlist PR is merged: select videos you want to add to Watched -> Mark as Watched)
closes PikachuEXE#67
Description
Implements a Selection Mode toggle for selecting multiple videos at once and performing all the batch actions that you would on a singular video.
Incidental:
Video
This video does everything that needs to be tested, more or less. Only two things I forgot to include in the demo were the "mouse drag select" to drag to select multiple videos more easily in selection mode and mobile interaction.
Demo-Selection-Mode.mp4
Testing
Desktop
Additional context
Let's wait on the playlist PR to be merged first.