* override "name" sort with COALESCE
* tag sort_name frontend
adds `data-sort-name` attribute to tag links prioritizes sort_name value but will default to tag name if not present in the same way that COALESCE will prioritize the same values in the same way
* add sort_name filter, update locale per request
* Include sort name in anonymiser
* Add import/export support
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
* Translated using Weblate (Swedish)
Currently translated at 100.0% (1175 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/sv/
* Translated using Weblate (Estonian)
Currently translated at 100.0% (1175 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/et/
* Added translation using Weblate (Slovak)
* Translated using Weblate (Slovak)
Currently translated at 1.9% (23 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/sk/
* Added translation using Weblate (Vietnamese)
* Translated using Weblate (Vietnamese)
Currently translated at 9.4% (111 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/vi/
* Translated using Weblate (Czech)
Currently translated at 100.0% (1175 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/cs/
* Translated using Weblate (German)
Currently translated at 87.4% (1028 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/de/
* Translated using Weblate (French)
Currently translated at 100.0% (1179 of 1179 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/fr/
* Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1179 of 1179 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hant/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1181 of 1181 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1181 of 1181 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hant/
* Translated using Weblate (Estonian)
Currently translated at 100.0% (1181 of 1181 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/et/
* Translated using Weblate (French)
Currently translated at 100.0% (1181 of 1181 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/fr/
* Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1181 of 1181 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hant/
* Translated using Weblate (Czech)
Currently translated at 99.3% (1175 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/cs/
* Translated using Weblate (Czech)
Currently translated at 100.0% (1183 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/cs/
* Translated using Weblate (French)
Currently translated at 100.0% (1183 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/fr/
* Translated using Weblate (Polish)
Currently translated at 83.8% (992 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/pl/
* Translated using Weblate (Vietnamese)
Currently translated at 14.1% (167 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/vi/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1183 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (Turkish)
Currently translated at 72.6% (859 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (Turkish)
Currently translated at 82.3% (974 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (German)
Currently translated at 87.1% (1031 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/de/
* Translated using Weblate (Dutch)
Currently translated at 69.7% (825 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/nl/
* Translated using Weblate (Turkish)
Currently translated at 85.4% (1011 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (Dutch)
Currently translated at 70.4% (834 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/nl/
* Translated using Weblate (Turkish)
Currently translated at 87.2% (1032 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (Turkish)
Currently translated at 87.2% (1032 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (Norwegian Nynorsk)
Currently translated at 14.7% (174 of 1183 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/nn/
* Translated using Weblate (French)
Currently translated at 100.0% (1184 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/fr/
* Translated using Weblate (Korean)
Currently translated at 99.5% (1179 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/ko/
* Translated using Weblate (Turkish)
Currently translated at 91.0% (1078 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1184 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1184 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hant/
* Translated using Weblate (Turkish)
Currently translated at 93.3% (1105 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (French)
Currently translated at 100.0% (1184 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/fr/
* Translated using Weblate (Ukrainian)
Currently translated at 18.7% (222 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 29.3% (348 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 60.3% (714 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/uk/
* Translated using Weblate (Swedish)
Currently translated at 100.0% (1184 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/sv/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1184 of 1184 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (German)
Currently translated at 87.5% (1037 of 1185 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/de/
* Translated using Weblate (English (United States))
Currently translated at 1.3% (16 of 1185 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/en_US/
* Translated using Weblate (Spanish)
Currently translated at 97.6% (1157 of 1185 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/es/
* Translated using Weblate (French)
Currently translated at 100.0% (1192 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/fr/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1192 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (Czech)
Currently translated at 99.9% (1191 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/cs/
* Translated using Weblate (Ukrainian)
Currently translated at 88.2% (1052 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/uk/
* Translated using Weblate (Swedish)
Currently translated at 100.0% (1192 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/sv/
* Translated using Weblate (German)
Currently translated at 100.0% (1192 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/de/
* Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (1192 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hant/
* Translated using Weblate (Slovak)
Currently translated at 2.4% (29 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/sk/
* Translated using Weblate (Japanese)
Currently translated at 83.8% (999 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/ja/
* Translated using Weblate (Latvian)
Currently translated at 9.4% (113 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/lv/
* Translated using Weblate (Norwegian Bokmål)
Currently translated at 19.0% (227 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/nb_NO/
* Translated using Weblate (Turkish)
Currently translated at 92.7% (1105 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/tr/
* Translated using Weblate (Polish)
Currently translated at 83.8% (1000 of 1192 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/pl/
* Add instructions to merge codeberg translations
* Rename locale files to correct format
* Add new locales to dropdown list
* Fix error when selecting nn-NO locale
---------
Co-authored-by: AlpacaSerious <AlpacaSerious@users.noreply.translate.codeberg.org>
Co-authored-by: Zesty6249 <Zesty6249@users.noreply.translate.codeberg.org>
Co-authored-by: rodopd <rodopd@users.noreply.translate.codeberg.org>
Co-authored-by: namphongbody <namphongbody@users.noreply.translate.codeberg.org>
Co-authored-by: NymeriaCZ <NymeriaCZ@users.noreply.translate.codeberg.org>
Co-authored-by: upstairs <upstairs@users.noreply.translate.codeberg.org>
Co-authored-by: doodoo <doodoo@users.noreply.translate.codeberg.org>
Co-authored-by: TWNO1 <TWNO1@users.noreply.translate.codeberg.org>
Co-authored-by: wql219 <wanqinglin219@hotmail.com>
Co-authored-by: Larsluph <Larsluph@users.noreply.translate.codeberg.org>
Co-authored-by: danny60718 <danny60718@users.noreply.translate.codeberg.org>
Co-authored-by: k1ngt0ng <k1ngt0ng@users.noreply.translate.codeberg.org>
Co-authored-by: slickdaddy <slickdaddy@users.noreply.translate.codeberg.org>
Co-authored-by: Vistaus <Vistaus@users.noreply.translate.codeberg.org>
Co-authored-by: throbbing <throbbing@users.noreply.translate.codeberg.org>
Co-authored-by: yec <yec@users.noreply.translate.codeberg.org>
Co-authored-by: orders-pawl <orders-pawl@users.noreply.translate.codeberg.org>
Co-authored-by: Mila_42 <Mila_42@users.noreply.translate.codeberg.org>
Co-authored-by: murgleburgle <murgleburgle@users.noreply.translate.codeberg.org>
Co-authored-by: DJSweder <DJSweder@users.noreply.translate.codeberg.org>
Co-authored-by: debate <debate@users.noreply.translate.codeberg.org>
Co-authored-by: abev66 <abev66@users.noreply.translate.codeberg.org>
Co-authored-by: pipo <pipo@users.noreply.translate.codeberg.org>
Co-authored-by: ikayaki <ikayaki@users.noreply.translate.codeberg.org>
Co-authored-by: Marky05 <marky05@users.noreply.translate.codeberg.org>
Co-authored-by: lexiconi <lexiconi@users.noreply.translate.codeberg.org>
Co-authored-by: LauraS <lauras@users.noreply.translate.codeberg.org>
* Update Tasks.md
Denoted which task items are only accessible in advanced mode.
* Add note to transcodes
---------
Co-authored-by: DogmaDragon <103123951+DogmaDragon@users.noreply.github.com>
* Backend changes
* Show custom field values
* Add custom fields table input
* Add custom field filtering
* Add unit tests
* Include custom fields in import/export
* Anonymise performer custom fields
* Move json.Number handler functions to api
* Handle json.Number conversion in api
* Markers can have end time
Other metadata sources such as ThePornDB and timestamp.trade support end times for markers but Stash did not yet support saving those. This is a first step which only allows end time to be set either via API or via UI. Other aspects of Stash such as video player timeline are not yet updated to take end time into account.
- User can set end time when creating or editing markers in the UI or in the API.
- End time cannot be before start time. This is validated in the backend and for better UX also in the frontend.
- End time is shown in scene details view or markers wall view if present.
- GraphQL API does not require end_seconds.
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
* Add updated_at field to stash_id's
* Only set updated at on stash ids when actually updating in identify
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
* flippable images in expanded view
* adjust table title width
* cleanup
* eliminate bounce and other improvements
* expand support to non full-width option
* Don't play video when seeking non-started video
* Set initial time on load instead of play
* Continue playing from current position when switching sources on error
* Remove unnecessary ref
* Translated using Weblate (Korean)
Currently translated at 100.0% (1174 of 1174 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/ko/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1174 of 1174 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1174 of 1174 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (Hungarian)
Currently translated at 41.9% (493 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/hu/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1175 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/zh_Hans/
* Translated using Weblate (French)
Currently translated at 100.0% (1175 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/fr/
* Translated using Weblate (Hungarian)
Currently translated at 43.7% (514 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/hu/
* Translated using Weblate (Czech)
Currently translated at 100.0% (1175 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/cs/
* Translated using Weblate (German)
Currently translated at 87.2% (1025 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/de/
* Translated using Weblate (Norwegian Bokmål)
Currently translated at 18.7% (220 of 1175 strings)
Translation: stash/stash
Translate-URL: https://translate.codeberg.org/projects/stash/stash/nb_NO/
---------
Co-authored-by: yec <yec@users.noreply.translate.codeberg.org>
Co-authored-by: wql219 <wanqinglin219@hotmail.com>
Co-authored-by: tozoktala <tozoktala@users.noreply.translate.codeberg.org>
Co-authored-by: zdh <zdh@users.noreply.translate.codeberg.org>
Co-authored-by: doodoo <doodoo@users.noreply.translate.codeberg.org>
Co-authored-by: NymeriaCZ <NymeriaCZ@users.noreply.translate.codeberg.org>
Co-authored-by: augeee <augeee@users.noreply.translate.codeberg.org>
Co-authored-by: noTranslator <noTranslator@users.noreply.translate.codeberg.org>
* Don't log context canceled error during live transcode
* Pause live transcode if still scrubbing
* Debounce loading live transcode source to avoid multiple ffmpeg instances
* Don't start from start or resume time if seeking before playing
* Play video when seeked before playing
* Move optimise out of RunAllMigrations
* Separate read and write database connections
* Enforce readonly connection constraint
* Fix migrations not using tx
* #5155 - allow setting cache size from environment
* Document new environment variable
Per convo with people on Discord. I have updated the Reload Scrapers UI. It now adds a button if the filter box appears and then the button extends and takes up the whole space if the filter box does not exist.
---------
Co-authored-by: CJ <tedabed@gmail.com>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
I think was was happening is the browser was trying to do too much at once (Rendering the popup and focusing the input simultaneously). I believe it was triggering a reflow and setting the site back to default aka: back to the top.
I set the timeout to 0 which moves the execution to the next loop event. It gives the browser time to do one and then the other, not both at the same time.
I moved `onKeyPress` to `onKeyDown` due to the former being depreciated.
* Fix Tag and Alias odd spacing
As Echo6ix brough up the HTML Engine doesn't generate whitespace at the beginning of a string. Modifying it to use ` ` so that the spacing will be correct.
fixes https://github.com/stashapp/stash/issues/4997
* update for performerSelect and studioSelect
* Add default gallery image
* Add gallery cover URL path
* Use new cover URL in UI
* Hide gallery preview scrubber when gallery has no images
* Don't try to show lightbox for gallery without images
* Ignore unrelated lint issue
* Add UI support for setting containing groups
* Show containing groups in group details panel
* Move tag hierarchical filter code into separate type
* Add depth to scene_count and add sub_group_count
* Add sub-groups tab to groups page
* Add containing groups to edit groups dialog
* Show containing group description in sub-group view
* Show group scene number in group scenes view
* Add ability to drag move grid cards
* Add sub group order option
* Add reorder sub-groups interface
* Separate page size selector component
* Add interfaces to add and remove sub-groups to a group
* Separate MultiSet components
* Allow setting description while setting containing groups
* Remove Play Button With No File
* Hide controls when there is no file
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
* Show controls before video plays
* Allow interaction with controls while displaying error
* Source selector improvements
Don't auto-play next source if manually selected.
Don't remove errored sources
* Show errored sources in different style