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

Fix studio name uniqueness validation #4454

Merged
merged 2 commits into from
Jan 14, 2024

Conversation

WithoutPants
Copy link
Collaborator

Fixes #4447

Also ensures the stash-box tagging task does pre-create validation.

@WithoutPants WithoutPants added the bug Something isn't working label Jan 13, 2024
@Maista6969
Copy link
Sponsor Contributor

Individually searching for and updating studios in studio tagger view works fine, but I found two crashes:

When creating a new studio from scene tagger view

ERRO[2024-01-13 02:57:38] list has not been loaded
goroutine 70818 [running]:
runtime/debug.Stack()
        C:/Program Files/Go/src/runtime/debug/stack.go:24 +0x6b
runtime/debug.PrintStack()
        C:/Program Files/Go/src/runtime/debug/stack.go:16 +0x13
github.com/stashapp/stash/internal/api.Initialize.func1({0x7ff7b7eb2be0, 0xc0014f39e0}, {0x7ff7b73864e0, 0x7ff7b7e9e670})
        D:/Code/Maista6969/stash/internal/api/server.go:120 +0xc5
github.com/99designs/gqlgen/graphql.(*OperationContext).Recover(0xc001faf440, {0x7ff7b7eb2be0, 0xc0014f39e0}, {0x7ff7b73864e0, 0x7ff7b7e9e670})
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/context_operation.go:114 +0x5b
github.com/stashapp/stash/internal/api.(*executionContext)._Mutation_studioCreate.func1()
        D:/Code/Maista6969/stash/internal/api/generated_exec.go:26379 +0x78
panic({0x7ff7b73864e0?, 0x7ff7b7e9e670?})
        C:/Program Files/Go/src/runtime/panic.go:920 +0x290
github.com/stashapp/stash/pkg/txn.withTxn.func1()
        D:/Code/Maista6969/stash/pkg/txn/transaction.go:68 +0x1c9
panic({0x7ff7b73864e0?, 0x7ff7b7e9e670?})
        C:/Program Files/Go/src/runtime/panic.go:920 +0x290
github.com/stashapp/stash/pkg/models.RelatedStrings.mustLoaded({{0x0, 0x0, 0x0}})
        D:/Code/Maista6969/stash/pkg/models/relationships.go:444 +0x48
github.com/stashapp/stash/pkg/models.RelatedStrings.List({{0x0, 0x0, 0x0}})
        D:/Code/Maista6969/stash/pkg/models/relationships.go:450 +0x45
github.com/stashapp/stash/pkg/studio.ValidateCreate({0x7ff7b7eb2be0, 0xc0046bd1d0}, {0x0, {0xc00104d110, 0xc}, {0xc0024a0600, 0x1b}, 0x0, {0xc160996486202de8, 0x779327f885, ...}, ...}, ...)
        D:/Code/Maista6969/stash/pkg/studio/validate.go:79 +0xbe
github.com/stashapp/stash/internal/api.(*mutationResolver).StudioCreate.func1({0x7ff7b7eb2be0, 0xc0046bd1d0})
        D:/Code/Maista6969/stash/internal/api/resolver_mutation_studio.go:64 +0x125
github.com/stashapp/stash/pkg/txn.withTxn({0x7ff7b7eb2be0, 0xc0014f39e0}, {0x7ff7b7eb2998, 0xc0000aeab0}, 0xc000cd4770, 0x1, 0x1)
        D:/Code/Maista6969/stash/pkg/txn/transaction.go:92 +0x308
github.com/stashapp/stash/pkg/txn.WithTxn({0x7ff7b7eb2be0, 0xc0014f39e0}, {0x7ff7b7eb2998, 0xc0000aeab0}, 0xc000cd4770)
        D:/Code/Maista6969/stash/pkg/txn/transaction.go:39 +0x5a
github.com/stashapp/stash/pkg/models.(*Repository).WithTxn(0xc000262240, {0x7ff7b7eb2be0, 0xc0014f39e0}, 0xc000cd4770)
        D:/Code/Maista6969/stash/pkg/models/repository.go:32 +0x8e
github.com/stashapp/stash/internal/api.(*Resolver).withTxn(0xc000262240, {0x7ff7b7eb2be0, 0xc0014f39e0}, 0xc000cd4770)
        D:/Code/Maista6969/stash/internal/api/resolver.go:124 +0x48
github.com/stashapp/stash/internal/api.(*mutationResolver).StudioCreate(0xc001401358, {0x7ff7b7eb2be0, 0xc0014f39e0}, {{0xc00104d110, 0xc}, 0xc0043d24d0, 0x0, 0xc0043d24f0, {0xc004daa1a0, 0x1, ...}, ...})
        D:/Code/Maista6969/stash/internal/api/resolver_mutation_studio.go:61 +0x8d1
github.com/stashapp/stash/internal/api.(*executionContext)._Mutation_studioCreate.func2({0x7ff7b7eb2be0, 0xc0014f39e0})
        D:/Code/Maista6969/stash/internal/api/generated_exec.go:26401 +0x1b5
github.com/99designs/gqlgen/graphql/executor.processExtensions.func4({0x7ff7b7eb2be0, 0xc0014f39e0}, 0xc004daa2c0)
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/executor/extensions.go:72 +0x5f
github.com/stashapp/stash/internal/api.(*executionContext)._Mutation_studioCreate(0xc0043d2430, {0x7ff7b7eb2be0, 0xc0014f39b0}, {0xc004a4a900, {0xc004daa120, 0x2, 0x2}})
        D:/Code/Maista6969/stash/internal/api/generated_exec.go:26399 +0x567
github.com/stashapp/stash/internal/api.(*executionContext)._Mutation.func43({0x7ff7b7eb2be0, 0xc0014f39b0})
        D:/Code/Maista6969/stash/internal/api/generated_exec.go:58414 +0x5e
github.com/99designs/gqlgen/graphql/executor.processExtensions.func3({0x7ff7b7eb2be0, 0xc0014f39b0}, 0xc004e214e8)
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/executor/extensions.go:69 +0x37
github.com/stashapp/stash/internal/api.(*executionContext)._Mutation(0xc0043d2430, {0x7ff7b7eb2be0, 0xc0014f3950}, {0xc000751d80, 0x1, 0x1})
        D:/Code/Maista6969/stash/internal/api/generated_exec.go:58417 +0x5ca6
github.com/stashapp/stash/internal/api.(*executableSchema).Exec.func2({0x7ff7b7eb2be0, 0xc0014f3920})
        D:/Code/Maista6969/stash/internal/api/generated_exec.go:8166 +0xb0
github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1.1({0x7ff7b7eb2be0, 0xc0014f3920})
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/executor/executor.go:106 +0x56
github.com/99designs/gqlgen/graphql/executor.processExtensions.func2({0x7ff7b7eb2be0, 0xc0014f3920}, 0xc0043d2440)
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/executor/extensions.go:66 +0x3a
github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1({0x7ff7b7eb2be0, 0xc0014f3920})
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/executor/executor.go:105 +0xe2
github.com/99designs/gqlgen/graphql/handler/transport.POST.Do({}, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e400, {0x7ff7b7eb0c20, 0xc00042a0a0})
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/handler/transport/http_post.go:52 +0x63b
github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP(0xc000390040, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e400)
        C:/Users/username/go/pkg/mod/github.com/99designs/gqlgen@v0.17.2/graphql/handler/server.go:120 +0x1b2
github.com/stashapp/stash/internal/api.Initialize.func3({0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e300)
        D:/Code/Maista6969/stash/internal/api/server.go:170 +0x73
net/http.HandlerFunc.ServeHTTP(0xc00010a0b0, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e300)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/go-chi/chi/v5.(*Mux).routeHTTP(0xc0002b0c60, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e300)
        C:/Users/username/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:444 +0x2fe
net/http.HandlerFunc.ServeHTTP(0xc00010a0c0, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e300)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/stashapp/stash/internal/api/loaders.Middleware.Middleware.func1({0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e200)
        D:/Code/Maista6969/stash/internal/api/loaders/dataloaders.go:115 +0xc19
net/http.HandlerFunc.ServeHTTP(0xc0003900e0, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e200)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/stashapp/stash/internal/api.BaseURLMiddleware.func1({0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e200)
        D:/Code/Maista6969/stash/internal/api/server.go:586 +0x367
net/http.HandlerFunc.ServeHTTP(0xc0002aa030, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e100)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/go-chi/chi/v5/middleware.StripSlashes.func1({0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e100)
        C:/Users/username/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/strip.go:30 +0x206
net/http.HandlerFunc.ServeHTTP(0xc0002aa048, {0x7ff7b7eb0c50, 0xc000bdb720}, 0xc00189e100)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/go-chi/chi/v5/middleware.(*Compressor).Handler.func1({0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e100)
        C:/Users/username/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/compress.go:213 +0x49a
net/http.HandlerFunc.ServeHTTP(0xc000390100, {0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e100)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/stashapp/stash/internal/api.SecurityHeadersMiddleware.func1({0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e100)
        D:/Code/Maista6969/stash/internal/api/server.go:554 +0x8e
net/http.HandlerFunc.ServeHTTP(0xc0002aa060, {0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e100)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/go-chi/chi/v5/middleware.Recoverer.func1({0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e100)
        C:/Users/username/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/recoverer.go:45 +0xf0
net/http.HandlerFunc.ServeHTTP(0xc0002aa078, {0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e100)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/stashapp/stash/pkg/session.(*Store).VisitedPluginHandler.func1.1({0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e100)
        D:/Code/Maista6969/stash/pkg/session/session.go:166 +0x2c5
net/http.HandlerFunc.ServeHTTP(0xc000390140, {0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e000)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/stashapp/stash/internal/api.authenticateHandler.func1.1({0x7ff7b7eaf920, 0xc002330b60}, 0xc00189e000)
        D:/Code/Maista6969/stash/internal/api/authentication.go:109 +0xc9b
net/http.HandlerFunc.ServeHTTP(0xc0002aa090, {0x7ff7b7eaf920, 0xc002330b60}, 0xc001351e00)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/go-chi/cors.(*Cors).Handler.func1({0x7ff7b7eaf920, 0xc002330b60}, 0xc001351e00)
        C:/Users/username/go/pkg/mod/github.com/go-chi/cors@v1.2.1/cors.go:228 +0x2e5
net/http.HandlerFunc.ServeHTTP(0xc000390160, {0x7ff7b7eaf920, 0xc002330b60}, 0xc001351e00)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/go-chi/chi/v5/middleware.Heartbeat.func1.1({0x7ff7b7eaf920, 0xc002330b60}, 0xc001351e00)
        C:/Users/username/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/heartbeat.go:21 +0x303
net/http.HandlerFunc.ServeHTTP(0xc000456270, {0x7ff7b7eaf920, 0xc002330b60}, 0xc001351e00)
        C:/Program Files/Go/src/net/http/server.go:2136 +0x3a
github.com/go-chi/chi/v5.(*Mux).ServeHTTP(0xc0002b0c60, {0x7ff7b7eaf920, 0xc002330b60}, 0xc001351e00)
        C:/Users/username/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:90 +0x28b
net/http.serverHandler.ServeHTTP({0xc00024b500}, {0x7ff7b7eaf920, 0xc002330b60}, 0xc001351d00)
        C:/Program Files/Go/src/net/http/server.go:2938 +0x257
net/http.(*conn).serve(0xc0005b6750, {0x7ff7b7eb2c18, 0xc0014834a0})
        C:/Program Files/Go/src/net/http/server.go:2009 +0x1a39
created by net/http.(*Server).Serve in goroutine 71
        C:/Program Files/Go/src/net/http/server.go:3086 +0xa25
ERRO[2024-01-13 02:57:38] studioCreate: input: studioCreate Internal system error. Error <list has not been loaded>
DEBU[2024-01-13 02:57:38] studioCreate: {"input":{"name":"Reid My Lips","url":"https://www.reidmylips.com/","parent_id":null,"image":"https://cdn.stashdb.org/images/49/2b/492b9472-e23d-4d6f-9f4a-c0ab5407166e","stash_ids":[{"stash_id":"ee777df6-5428-4451-ab18-73511a684d30","endpoint":"https://stashdb.org/graphql"}],"rating100":null,"details":null,"aliases":null,"ignore_auto_tag":null}}

When using Batch Add Studio in studio tagger view:

INFO[2024-01-13 02:59:28] Initiating stash-box batch studio tag
INFO[2024-01-13 02:59:28] Starting stash-box batch operation for 2 studios
ERRO[2024-01-13 02:59:29] panic in job 6 - Batch stash-box studio tag...: list has not been loaded
ERRO[2024-01-13 02:59:29] goroutine 126630 [running]:
runtime/debug.Stack()
        C:/Program Files/Go/src/runtime/debug/stack.go:24 +0x6b
github.com/stashapp/stash/pkg/job.(*Manager).executeJob.func1()
        D:/Code/Maista6969/stash/pkg/job/manager.go:200 +0x1b9
panic({0x7ff7b73864e0?, 0x7ff7b7e9e670?})
        C:/Program Files/Go/src/runtime/panic.go:920 +0x290
github.com/stashapp/stash/pkg/txn.withTxn.func1()
        D:/Code/Maista6969/stash/pkg/txn/transaction.go:68 +0x1c9
panic({0x7ff7b73864e0?, 0x7ff7b7e9e670?})
        C:/Program Files/Go/src/runtime/panic.go:920 +0x290
github.com/stashapp/stash/pkg/models.RelatedStrings.mustLoaded({{0x0, 0x0, 0x0}})
        D:/Code/Maista6969/stash/pkg/models/relationships.go:444 +0x48
github.com/stashapp/stash/pkg/models.RelatedStrings.List({{0x0, 0x0, 0x0}})
        D:/Code/Maista6969/stash/pkg/models/relationships.go:450 +0x45
github.com/stashapp/stash/pkg/studio.ValidateCreate({0x7ff7b7eb2be0, 0xc0009aa930}, {0x0, {0xc003db1cc0, 0x8}, {0xc0050f46e0, 0x1b}, 0x0, {0xc1609980461c1bb8, 0x916b417c55, ...}, ...}, ...)
        D:/Code/Maista6969/stash/pkg/studio/validate.go:79 +0xbe
github.com/stashapp/stash/internal/manager.(*StashBoxBatchTagTask).processMatchedStudio.func2({0x7ff7b7eb2be0, 0xc0009aa930})
        D:/Code/Maista6969/stash/internal/manager/task_stash_box_tag.go:358 +0x145
github.com/stashapp/stash/pkg/txn.withTxn({0x7ff7b7eb2c18, 0xc005f205a0}, {0x7ff7b7eb2998, 0xc0000aeab0}, 0xc000bfb4e0, 0x1, 0x1)
        D:/Code/Maista6969/stash/pkg/txn/transaction.go:92 +0x308
github.com/stashapp/stash/pkg/txn.WithTxn({0x7ff7b7eb2c18, 0xc005f205a0}, {0x7ff7b7eb2998, 0xc0000aeab0}, 0xc000bfb4e0)
        D:/Code/Maista6969/stash/pkg/txn/transaction.go:39 +0x5a
github.com/stashapp/stash/pkg/models.(*Repository).WithTxn(0xc000bfb558, {0x7ff7b7eb2c18, 0xc005f205a0}, 0xc000bfb4e0)
        D:/Code/Maista6969/stash/pkg/models/repository.go:32 +0x8e
github.com/stashapp/stash/internal/manager.(*StashBoxBatchTagTask).processMatchedStudio(0xc000bfbd38, {0x7ff7b7eb2c18, 0xc005f205a0}, 0xc005ddc690, 0xc000bfb850)
        D:/Code/Maista6969/stash/internal/manager/task_stash_box_tag.go:355 +0xc05
github.com/stashapp/stash/internal/manager.(*StashBoxBatchTagTask).stashBoxStudioTag(0xc000bfbd38, {0x7ff7b7eb2c18, 0xc005f205a0})
        D:/Code/Maista6969/stash/internal/manager/task_stash_box_tag.go:231 +0x349
github.com/stashapp/stash/internal/manager.(*StashBoxBatchTagTask).Start(0xc001083d38, {0x7ff7b7eb2c18, 0xc005f205a0})
        D:/Code/Maista6969/stash/internal/manager/task_stash_box_tag.go:38 +0x6b
github.com/stashapp/stash/internal/manager.(*Manager).StashBoxBatchStudioTag.func1.3()
        D:/Code/Maista6969/stash/internal/manager/manager_tasks.go:635 +0x33
github.com/stashapp/stash/pkg/job.(*Progress).ExecuteTask(0xc005f205f0, {0xc0041a8f90, 0x26}, 0xc001083cf0)
        D:/Code/Maista6969/stash/pkg/job/progress.go:175 +0x122
github.com/stashapp/stash/internal/manager.(*Manager).StashBoxBatchStudioTag.func1({0x7ff7b7eb2c18, 0xc005f205a0}, 0xc005f205f0)
        D:/Code/Maista6969/stash/internal/manager/manager_tasks.go:634 +0x905
github.com/stashapp/stash/pkg/job.(*jobExecImpl).Execute(0xc004b3ef70, {0x7ff7b7eb2c18, 0xc005f205a0}, 0xc005f205f0)
        D:/Code/Maista6969/stash/pkg/job/job.go:18 +0x39
github.com/stashapp/stash/pkg/job.(*Manager).executeJob(0xc000384690, {0x7ff7b7eb2c18, 0xc005f205a0}, 0xc003c5ac80, 0xc001ff8fc0)
        D:/Code/Maista6969/stash/pkg/job/manager.go:209 +0x207
created by github.com/stashapp/stash/pkg/job.(*Manager).dispatch in goroutine 6
        D:/Code/Maista6969/stash/pkg/job/manager.go:186 +0x326

@WithoutPants
Copy link
Collaborator Author

Good catch, thank you. This should now be fixed.

@Maista6969
Copy link
Sponsor Contributor

Can confirm, every way I can think of to add a studio now works as expected 👍

@WithoutPants WithoutPants merged commit 5cf28cf into stashapp:develop Jan 14, 2024
2 checks passed
dogwithakeyboard pushed a commit to dogwithakeyboard/stash that referenced this pull request Feb 18, 2024
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug Report] studio can not save
2 participants