-
-
Notifications
You must be signed in to change notification settings - Fork 827
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
Improved list view for scenes, galleries and performers #4368
Improved list view for scenes, galleries and performers #4368
Conversation
Welcome changes, my issue is that it fractures the UI even more than it already is by only addressing the scenes section. Also, being able to change the order in which columns are presented would be ideal, as the fields you want to see can depend on preference or workflow. |
The style is inherited by other pages that use a table for lists. Those tables would just be missing the column selector. Given the work involved, it wouldn't make sense to do everything at once. And yes, rearrangeable columns would be nice but is not a requirement. I can’t commit to that work, but it can be added later. |
Looks great, but I agree with @DogmaDragon that it's not ideal to have this change only for scenes. I'm happy to take a stab at creating an abstraction that can be reused for other pages if you'd like. |
Sure, I won’t turn down help that would make migrating the work easier. ATM it’s not clear to me how much further abstraction is possible here to meaningfully help migration. I would think each new column for other pages would still require their own function. The list pages for galleries, performers, and This work is just more digestible for me, going page by page to make managing my time easier. I have a habit of doing very long sprints when I tackle work, which has a negative impact on my eating and sleeping habits. I end up not doing much of either, as I have a hard time getting the work out of my mind. Update: |
@cj12312021 Hope you don't mind I pushed a commit with some refactoring. It behaves exactly the same, but I've abstracted out the column selection so it'll be easier to reuse elsewhere. Hopefully someone else will pick up the other tables once this PR has landed. |
Much appreciated, Infinite. I'll go through your changes and see what I can learn. |
@InfiniteStash, I think you forgot to commit changes to |
I forgot about that entirely. It should be |
Perfect thanks. I just pushed the update. |
This part of your comment just clicked. I see. The runtime issue I was running into when I pulled the changes was due to the code not accounting for tableColumns being undefined during the first run. I went ahead and removed the code in config.ts and updated the column selector code to consider that tableColumns could be undefined. |
I've added a generic |
Thanks for going through this work. I've taken a quick look at the change to get a general understanding of the restructure—good touch with the mandatory column change. I also built and ran the change to ensure no new issues exist. Feel free to merge your branch and this branch when you're ready. |
After your merge, I noticed the unique hover solution I created for lists with anchor items was being used on all cells with ellipsed data, which was not the intended use case. Ellipsed text not in a list should just use the title property. Using that style on all ellipsed cells breaks some cells. My latest push addresses that issue. |
This was in response to this commit. I was trying to avoid ignoring the linter rules and misunderstood the intention. Having taken another look, this rule only ( |
For future refinement ideas, I think we should utilise the vertical space afforded by the cover image to show lists vertically rather than horizontally. Note also that if |
Ah okay. Yeah, I could have saved you some trouble there by removing the |
Noted. Removing the position: absolute rule would resolve the issue, but it would also cause the table contents to shift every time an ellipsed cell is hovering. Another solution may be to keep the max-width of the hovered text box set to the width of the cell and instead let the content break vertically. But then you would end up with the same issue with hovered text at the bottom of the table. An improved solution will require more thought. There may not be a compromise-free solution. |
Co-authored-by: InfiniteStash <[email protected]> Co-authored-by: WithoutPants <[email protected]>
author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291425 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291424 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291423 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291422 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291420 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291418 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291418 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291417 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291413 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291412 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291411 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291410 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291409 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291407 +0000 parent 0cdea20 author dogwithakeyboard <[email protected]> 1703879810 +0000 committer dogwithakeyboard <[email protected]> 1708291326 +0000 Image performer age filter Fix saved filter UI bugs (stashapp#4394) * Fix missing intl strings * Fix saved filter list z-index * Fix saved filter list double scrollbar * Display error inside filter list * Filter out nonexistent saved filter rows in FrontPageConfig Refresh package managers after setup (stashapp#4397) * Refresh package managers after setup * Fix default plugins/scrapers paths Fix Scene Tagger config blacklist (stashapp#4396) * Refactoring * Add item on Enter * Don't add duplicate items Update macOS readme links (stashapp#4347) * Update readme macOS download links * Update docker readme to point to develop branch Revert modal button order change (stashapp#4400) Use 8.14.3-r0 of vips (stashapp#4402) Workaround setting protocol on external player url (stashapp#4403) Update changelog for bugfix release Add CSP to plugin from the yaml file (stashapp#4424) Add join to intCriterionHandler (stashapp#4414) * Add join to intCriterionHandler * Add join to floatCriterionHandler Fix scraped performer alias matching (stashapp#4432) Fixes package manger head border (stashapp#4420) Scene queue autoplay (stashapp#4428) * Remove unnecessary undefined checks * Respect autostartVideoOnPlaySelected in scene queue Fix settings tab links (stashapp#4430) Disable select all checkbox for plugin sources (stashapp#4434) Sort plugin settings (stashapp#4435) Update FieldStrategyOverwrite to work when scene has no existing URL (stashapp#4412) Hide tag input when set tags is disabled (stashapp#4440) Calculate DetailImage fallback width using rem (stashapp#4441) Don't bail on error when scraping all (stashapp#4442) Fix error when creating/updating performer with alias == name (stashapp#4443) * Filter out performer aliases that match the name * Validate when creating/updating performer in stash-box task Fix scene marker merging (stashapp#4446) Update changelog for bugfix release Don't retry failed autoplay (stashapp#4450) Fix studio name uniqueness validation (stashapp#4454) Update changelog added support for image orientation filter (stashapp#4404) * added support for image orientation filter * Add orientation filtering to scenes --------- Co-authored-by: WithoutPants <[email protected]> Bump golang.org/x/crypto from 0.14.0 to 0.17.0 (stashapp#4375) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](golang/crypto@v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Bump vite from 4.4.11 to 4.4.12 in /ui/v2.5 (stashapp#4348) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.11 to 4.4.12. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.4.12/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.4.12/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Improved scene queue (stashapp#4448) * Improved scene queue --------- Co-authored-by: WithoutPants <[email protected]> Update Performer gender filter (stashapp#4419) * Update Performer gender filter Updated the Performer gender filter to allow selection of multiple genders (`IS`) or performers with no gender specified (`IS NULL`). * Add default modifier for circumcised * Handle existing saved filters --------- Co-authored-by: WithoutPants <[email protected]> Move zip files while moving folders (stashapp#4374) Add support for disabling mobile media-viewer's fullscreen auto-rotate (stashapp#4416) Advanced settings (stashapp#4378) * Add advanced settings mode toggle * Add advanced settings Improved list view for scenes, galleries and performers (stashapp#4368) Co-authored-by: InfiniteStash <[email protected]> Co-authored-by: WithoutPants <[email protected]> Tag select refactor (stashapp#4478) * Add interface to load tags by id * Use minimal data for tag select queries * Center image/text in select list * Overhaul tag select * Support excludeIds. Comment out image in dropdown * Replace existing selects * Remove unused code * Fix styling of aliases Clarify session description (stashapp#4468) Add note for auto tag (stashapp#4490) Update scene list setting (stashapp#4473) Minor UI fixes (stashapp#4509) * Fix a zero value disabling the SettingModal * Fix performer disambiguation styling * Fix performer tagger error message only use details background image when provided (stashapp#4515) Frontend fix media_err_decode on playback (stashapp#4506) Improve list table readability (stashapp#4497) * fixes mandatory columns bug and consistency issues Link improvements and fixes (stashapp#4501) * Add ExternalLink * Replace <a> with <Link> Add blank favicon on login page (stashapp#4498) Fix tag selector in scrape dialogs (stashapp#4526) Studio select refactor (stashapp#4493) * Add id interface to findStudios * Replace existing selects * Remove unused code * Fix scrape/merge select * Make clearable expose useful libs (stashapp#4489) * expose useful libs * Update UIPluginApi.md Fix UI crash during setup (stashapp#4527) Fit cards properly within their containers (stashapp#4514) * created missing cards grids support filesize in scene list (stashapp#4480) Studio child filter and sort (stashapp#4479) Improve client-side graphql scalar types (stashapp#4511) * Add types to graphql scalars * Upgrade dependencies * Override UI config type * Remove all IUIConfig casts * Add tableColumns to IUIConfig * Add BoolMap type, set strictScalars * Add PluginConfigMap * Replace any with unknown * Add SavedObjectFilter and SavedUIOptions * Remove unused items from CriterionType Bump vite from 4.4.12 to 4.5.2 in /ui/v2.5 (stashapp#4477) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.12 to 4.5.2. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Improve sorting of results when entering text in select fields (stashapp#4528) * Sort select results by relevance * Apply relevance sorting to studio select * Apply relevance sorting to filter select Fix tag popper over card (stashapp#4529) Fix UI config mutation not working (stashapp#4533) Add gallery select filter and fix image gallery filtering (stashapp#4535) * Accept gallery ids in findGalleries * Add gallery select component * Add and fix image gallery filter * Show gallery path as alias Wrap card popovers (stashapp#4539) Common studio overlay component (stashapp#4540) * Move GridCard to own directory * Make common studio overlay component Add disambiguation to performer link and performer select values (stashapp#4541) * Add disambiguation to PerformerLink * Add disambiguation to performer select values Plugin api improvements (stashapp#4546) * Expose useToast * Expose components: - studio/tag/performer/gallery selects - date input - country select - folder select Fix url not updated for default tab on Performer/Studio/Tag pages (stashapp#4538) Fix scraped studio not matching existing value (stashapp#4548) * Fix scraped studio not matching existing * Fix incorrect key value Fix segment repeating + cleanup speed calculation (stashapp#4557) Bugfix: No Image Upscale for Clips (stashapp#4569) Fix country selector in bulk performer edit dialog (stashapp#4565) * Fix country select in edit performers dialog * Fix edit performer dialog height Mount edit panels only when first entering (stashapp#4564) Fix merge not deleting deleted scene generated files (stashapp#4567) Developer option: extra blob paths (stashapp#4566) * Allow additional read-only blob paths * Add developer option to add more blob sources * Add makefile targets to start and remove build container * Documentation Weblate translations update (stashapp#4578) * Translated using Weblate (French) Currently translated at 100.0% (1056 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/fr/ * Translated using Weblate (Portuguese (Brazil)) Currently translated at 81.3% (859 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/pt_BR/ * Translated using Weblate (Swedish) Currently translated at 96.3% (1017 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/sv/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/ * Translated using Weblate (French) Currently translated at 100.0% (1056 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/fr/ * Translated using Weblate (Swedish) Currently translated at 99.8% (1054 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/sv/ * Translated using Weblate (French) Currently translated at 100.0% (1056 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/fr/ * Added translation using Weblate (Norwegian Bokmål) * Translated using Weblate (French) Currently translated at 100.0% (1056 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/fr/ * Translated using Weblate (Hungarian) Currently translated at 37.5% (397 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/hu/ * Translated using Weblate (Swedish) Currently translated at 99.9% (1055 of 1056 strings) Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/sv/ * Pretty locale files * Sort locale keys --------- Co-authored-by: doodoo <[email protected]> Co-authored-by: Robert de Abreu Viana <[email protected]> Co-authored-by: alpacaserious <[email protected]> Co-authored-by: Hosted Weblate <[email protected]> Co-authored-by: Allan Nordhøy <[email protected]> Co-authored-by: R Balu <[email protected]> Co-authored-by: Luna Jernberg <[email protected]> Update translation files (stashapp#4581) Updated by "Cleanup translation files" hook in Weblate. Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/ Co-authored-by: Hosted Weblate <[email protected]> Fix saved filter UI bugs (stashapp#4394) * Fix missing intl strings * Fix saved filter list z-index * Fix saved filter list double scrollbar * Display error inside filter list * Filter out nonexistent saved filter rows in FrontPageConfig Refresh package managers after setup (stashapp#4397) * Refresh package managers after setup * Fix default plugins/scrapers paths Fix Scene Tagger config blacklist (stashapp#4396) * Refactoring * Add item on Enter * Don't add duplicate items Update macOS readme links (stashapp#4347) * Update readme macOS download links * Update docker readme to point to develop branch Revert modal button order change (stashapp#4400) Use 8.14.3-r0 of vips (stashapp#4402) Workaround setting protocol on external player url (stashapp#4403) Add CSP to plugin from the yaml file (stashapp#4424) Add join to intCriterionHandler (stashapp#4414) * Add join to intCriterionHandler * Add join to floatCriterionHandler Fix scraped performer alias matching (stashapp#4432) Fixes package manger head border (stashapp#4420) Scene queue autoplay (stashapp#4428) * Remove unnecessary undefined checks * Respect autostartVideoOnPlaySelected in scene queue Disable select all checkbox for plugin sources (stashapp#4434) Sort plugin settings (stashapp#4435) Update FieldStrategyOverwrite to work when scene has no existing URL (stashapp#4412) Hide tag input when set tags is disabled (stashapp#4440) Calculate DetailImage fallback width using rem (stashapp#4441) Don't bail on error when scraping all (stashapp#4442) Fix error when creating/updating performer with alias == name (stashapp#4443) * Filter out performer aliases that match the name * Validate when creating/updating performer in stash-box task Fix scene marker merging (stashapp#4446) Don't retry failed autoplay (stashapp#4450) Fix studio name uniqueness validation (stashapp#4454) Update changelog Bump golang.org/x/crypto from 0.14.0 to 0.17.0 (stashapp#4375) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](golang/crypto@v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Improved scene queue (stashapp#4448) * Improved scene queue --------- Co-authored-by: WithoutPants <[email protected]> Move zip files while moving folders (stashapp#4374) Clarify session description (stashapp#4468) Add note for auto tag (stashapp#4490) Update scene list setting (stashapp#4473) only use details background image when provided (stashapp#4515) Frontend fix media_err_decode on playback (stashapp#4506) Improve list table readability (stashapp#4497) * fixes mandatory columns bug and consistency issues Add blank favicon on login page (stashapp#4498) expose useful libs (stashapp#4489) * expose useful libs * Update UIPluginApi.md Fix UI crash during setup (stashapp#4527) support filesize in scene list (stashapp#4480) Studio child filter and sort (stashapp#4479) Bump vite from 4.4.12 to 4.5.2 in /ui/v2.5 (stashapp#4477) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.12 to 4.5.2. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Fix tag popper over card (stashapp#4529) Fix UI config mutation not working (stashapp#4533) Wrap card popovers (stashapp#4539) Common studio overlay component (stashapp#4540) * Move GridCard to own directory * Make common studio overlay component Add disambiguation to performer link and performer select values (stashapp#4541) * Add disambiguation to PerformerLink * Add disambiguation to performer select values Plugin api improvements (stashapp#4546) * Expose useToast * Expose components: - studio/tag/performer/gallery selects - date input - country select - folder select Fix url not updated for default tab on Performer/Studio/Tag pages (stashapp#4538) Fix scraped studio not matching existing value (stashapp#4548) * Fix scraped studio not matching existing * Fix incorrect key value Fix segment repeating + cleanup speed calculation (stashapp#4557) Bugfix: No Image Upscale for Clips (stashapp#4569) Fix country selector in bulk performer edit dialog (stashapp#4565) * Fix country select in edit performers dialog * Fix edit performer dialog height Mount edit panels only when first entering (stashapp#4564) Fix merge not deleting deleted scene generated files (stashapp#4567) Developer option: extra blob paths (stashapp#4566) * Allow additional read-only blob paths * Add developer option to add more blob sources * Add makefile targets to start and remove build container * Documentation Update translation files (stashapp#4581) Updated by "Cleanup translation files" hook in Weblate. Translation: stashapp/stash Translate-URL: https://hosted.weblate.org/projects/stashapp/stash/ Co-authored-by: Hosted Weblate <[email protected]>
Co-authored-by: InfiniteStash <[email protected]> Co-authored-by: WithoutPants <[email protected]>
This pull request improves the list, which was previously unusable, in my opinion. The big addition is the ability to show or hide specific columns. With that capability, I will add more columns to the existing table. Aside from that, I touched up a few areas to modernize the table's appearance.
Here is an image of the updated table:
The selectable columns can be seen here:
Resolves #4165