Skip to content
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

Tag select refactor #4478

Merged
merged 8 commits into from
Jan 24, 2024
Merged

Conversation

WithoutPants
Copy link
Collaborator

Similar to #4013. Prerequisite for #4342.

This is the part of the work to remove the select controls which load entire datasets into the client (only studios remains). This addresses the tag select specifically.

The new select control no longer uses allTags (and this interface has been marked as deprecated). The main select control now stores tags objects instead of ids. For ease of compatibility, a TagIDSelect control is added where it's not easy to use objects. This control will load tags by id as needed, and a modification to findTags was made to accept a list of tag ids.

The presentation of the tag results is tweaked to show the actual matching tag alias (instead of a hardcoded (alias) string), and it only shows this if the search string matches an alias.

image

I expect this to improve performance for users with a significant amount of tags in their database.

@WithoutPants WithoutPants added the improvement Something needed tweaking. label Jan 20, 2024
@WithoutPants WithoutPants added this to the Version 0.25.0 milestone Jan 20, 2024
@Maista6969
Copy link
Contributor

I don't have enough local tags to see if this makes a difference in performance, even in my test instance which has all of the tags from StashDB I haven't experienced any slowdown when using the tag select, so I can't speak to that.

However I also couldn't find any breakages here, and the alias matching is amazing! 👍

@WithoutPants WithoutPants merged commit 723211a into stashapp:develop Jan 24, 2024
2 checks passed
dogwithakeyboard pushed a commit to dogwithakeyboard/stash that referenced this pull request Feb 18, 2024
* 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
dogwithakeyboard added a commit to dogwithakeyboard/stash that referenced this pull request Feb 18, 2024
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291425 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291424 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291423 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291422 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291420 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291418 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291418 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291417 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291413 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291412 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291411 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291410 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291409 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 1708291407 +0000

parent 0cdea20
author dogwithakeyboard <gdkjhsahdka@protonmail.com> 1703879810 +0000
committer dogwithakeyboard <gdkjhsahdka@protonmail.com> 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 <53250216+WithoutPants@users.noreply.github.com>

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] <support@github.com>
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Improved scene queue (stashapp#4448)

* Improved scene queue
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>

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 <53250216+WithoutPants@users.noreply.github.com>

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 <117855276+InfiniteStash@users.noreply.github.com>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>

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] <support@github.com>
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 <adr.web@hotmail.fr>
Co-authored-by: Robert de Abreu Viana <deathrobert2010@gmail.com>
Co-authored-by: alpacaserious <srhsgsef@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: R Balu <balu.ka@hotmail.com>
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>

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 <hosted@weblate.org>

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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Improved scene queue (stashapp#4448)

* Improved scene queue
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>

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] <support@github.com>
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 <hosted@weblate.org>
halkeye pushed a commit to halkeye/stash that referenced this pull request Sep 1, 2024
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Something needed tweaking.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants