Compare commits

...

1987 Commits

Author SHA1 Message Date
Bond_009
32906e8a9d Make linter happy 2025-01-06 10:32:37 -05:00
Bond_009
1c13b436db Only show IsAVC for video streams 2025-01-06 10:32:37 -05:00
Bill Thornton
d1bc4c079f Merge pull request #6229 from abdulmueid/vidaa-hdr-dovi-support
Add HDR10 and Dolby Vision support for Vidaa OS
2025-01-06 10:31:42 -05:00
Bill Thornton
e8fb89378f Fix styling for wide device icons (#6427) 2025-01-06 10:13:28 -05:00
Bill Thornton
15bb9f8e24 Fix styling for wide device icons 2025-01-06 09:50:08 -05:00
Zigi84
801824523b Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-06 04:06:26 -05:00
Joe Kribs
bc9537d80f Add Device Icons for WebOS & Updated Infuse Naming (#6281) 2025-01-06 03:02:30 -05:00
Franco Castillo
505c986f11 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-06 01:01:15 -05:00
Franco Castillo
99091c083d Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 23:01:15 -05:00
Franco Castillo
08ab07ff0f Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:25:12 -05:00
Franco Castillo
2016e80765 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:22:08 -05:00
Franco Castillo
c4082e28ee Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:19:48 -05:00
Franco Castillo
5ca77e1bcd Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:19:43 -05:00
Franco Castillo
63a719ad57 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:17:49 -05:00
Franco Castillo
d00b9fe612 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:16:23 -05:00
Franco Castillo
3374ad700a Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:14:20 -05:00
Franco Castillo
cdeda15d78 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:07:50 -05:00
Franco Castillo
213c999c23 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 19:05:15 -05:00
Franco Castillo
42d926e8e9 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:57:07 -05:00
Franco Castillo
54a9d7b9b1 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:54:14 -05:00
Franco Castillo
f6b7d9bce0 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:50:50 -05:00
Franco Castillo
7cfc447c98 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:48:23 -05:00
Franco Castillo
2936d512d9 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:46:05 -05:00
Nikola Jevtovic
b1fda390f5 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:42:57 -05:00
Nikola Jevtovic
f918c27b40 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:34:26 -05:00
Nikola Jevtovic
620bd2cded Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:31:35 -05:00
Franco Castillo
c9d8609ca3 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:31:34 -05:00
Nikola Jevtovic
311f3fdcf4 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:27:16 -05:00
Franco Castillo
e8c7d50b42 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:27:16 -05:00
Nikola Jevtovic
471ee0158d Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:25:15 -05:00
Nikola Jevtovic
36fa2c2e88 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:22:32 -05:00
Franco Castillo
1bde84a537 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:22:31 -05:00
Franco Castillo
678c6c4e75 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:18:25 -05:00
Nikola Jevtovic
5d307aafd8 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:16:58 -05:00
Franco Castillo
96c97ecfe4 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:16:58 -05:00
Nikola Jevtovic
f0d194f8af Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:14:03 -05:00
Franco Castillo
1576b96cf0 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:14:03 -05:00
Nikola Jevtovic
7eb0b84955 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:10:39 -05:00
Franco Castillo
0a6a05d7b7 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:10:39 -05:00
Nikola Jevtovic
a097427731 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:08:07 -05:00
Franco Castillo
5ee73eec09 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 18:08:07 -05:00
Nikola Jevtovic
3a7e8a337c Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:05:40 -05:00
Nikola Jevtovic
609c7debf8 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 18:02:50 -05:00
Nikola Jevtovic
e958cd75ea Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 17:59:49 -05:00
Nikola Jevtovic
1f16bd7137 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 17:57:30 -05:00
Franco Castillo
55f4a30151 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 17:57:30 -05:00
Nikola Jevtovic
0353a79c60 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 17:46:53 -05:00
Franco Castillo
24c751eaca Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 17:46:53 -05:00
Nikola Jevtovic
1da549bd54 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 17:39:44 -05:00
Nikola Jevtovic
a4225a217b Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2025-01-05 17:39:43 -05:00
Franco Castillo
63ef8b06b1 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 17:39:42 -05:00
Franco Castillo
1c7f380ad2 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 16:07:40 -05:00
Franco Castillo
c73bc9d843 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-05 13:01:15 -05:00
Jashanpreet Singh
89867d21da Translated using Weblate (Punjabi)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pa/
2025-01-05 02:01:15 -05:00
Frederiks Kronbergs
b4c171668d Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2025-01-04 23:01:16 -05:00
Franco Castillo
75c80d1833 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-04 23:01:15 -05:00
Franco Castillo
5e1b7ea450 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-04 21:01:16 -05:00
Franco Castillo
592e109163 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-04 19:01:15 -05:00
Franco Castillo
c1faf48595 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-04 17:01:15 -05:00
Franco Castillo
24f79373e3 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2025-01-04 14:01:15 -05:00
Weevild
8f381c289e Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2025-01-03 19:01:15 -05:00
DJSweder
a694d6c921 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2025-01-03 07:01:16 -05:00
Adam Tait
19abd4b3ba Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2025-01-02 18:01:15 -05:00
Roi Gabay
612dc28238 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2025-01-02 14:35:59 -05:00
Bill Thornton
2ecab9052a Merge pull request #6423 from jellyfin/renovate/jellyfin-sdk-0.x 2025-01-02 11:00:27 -05:00
Bill Thornton
ad5b79e9b0 Merge pull request #6424 from jellyfin/renovate/ci-deps 2025-01-02 10:59:35 -05:00
renovate[bot]
2f7bfbd7b7 Update github/codeql-action action to v3.28.0 2025-01-02 14:58:32 +00:00
renovate[bot]
9a87920e38 Update dependency @jellyfin/sdk to v0.0.0-unstable.202501020501 2025-01-02 14:58:25 +00:00
朔夜月
ece8de3420 Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2025-01-02 07:01:15 -05:00
John Doe
c0894697dc Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2025-01-02 07:01:15 -05:00
BromTeque
5d00939f18 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2025-01-01 19:01:15 -05:00
Bill Thornton
d3db9ebc37 Merge pull request #6419 from tomheaton/fix-dev-dep 2025-01-01 13:12:28 -05:00
小造xu_zh
1c7438c035 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2025-01-01 10:00:09 -05:00
Tom Heaton
edbd298499 fix: move dev dep 2025-01-01 14:44:54 +00:00
hoanghuy309
f78c2922c4 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2025-01-01 04:01:15 -05:00
Bill Thornton
9614495fde Merge pull request #6379 from jellyfin/renovate/jellyfin-sdk-0.x 2024-12-31 23:48:41 -05:00
Bill Thornton
bfe5b7cc39 Fix ItemSortBy import path 2024-12-31 23:43:44 -05:00
Bill Thornton
89f317ab62 Merge pull request #6255 from jellyfin/renovate/hls.js-1.x 2024-12-31 17:55:30 -05:00
renovate[bot]
5dbca32784 Update dependency @jellyfin/sdk to v0.0.0-unstable.202412310501 2024-12-31 07:48:41 +00:00
Blackspirits
c8eed9a897 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-12-30 19:01:15 -05:00
Blackspirits
2dc995ad10 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-12-30 19:01:15 -05:00
Blackspirits
256a7b8b1d Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-12-30 14:01:15 -05:00
Blackspirits
4c59f6c571 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-12-30 14:01:15 -05:00
Pere
d0b198c6b3 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-12-30 14:01:15 -05:00
Pere
11cd8dd434 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-12-30 12:01:15 -05:00
Diogo Dinis
ac8fb37c8c Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-12-30 10:01:16 -05:00
Pere
b22e49c0e8 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-12-30 10:01:15 -05:00
bsfreq
712affbe98 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-12-29 17:01:15 -05:00
Arttu Kivinen
d3e5041a58 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-12-29 04:14:46 -05:00
bebeidon
225b2cd025 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-12-27 19:01:15 -05:00
theoverlordbamse
54a2dadbfc Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-12-27 19:01:14 -05:00
dtalens
512878e735 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-12-27 14:01:15 -05:00
John Doe
b82ec18b0b Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-12-27 12:01:14 -05:00
Mislav Milinković
2b220ff985 Translated using Weblate (Croatian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hr/
2024-12-27 06:01:15 -05:00
Resistive
bdb184155c Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-12-24 18:01:14 -05:00
renovate[bot]
3dbbff9b33 Update dependency hls.js to v1.5.18 2024-12-24 22:51:08 +00:00
koreapyj
89483b2f4c Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-12-21 09:35:31 -05:00
Bill Thornton
6e3fdbb122 Merge pull request #6387 from viown/remove-auto-port-forward 2024-12-20 20:00:58 -05:00
Zigi84
c36c58e6ba Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2024-12-20 13:03:31 -05:00
Zigi84
de4d6b9d27 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sr/
2024-12-20 12:58:49 -05:00
Bill Thornton
05bc77f407 Merge pull request #6402 from jellyfin/renovate/ci-deps 2024-12-20 08:40:00 -05:00
Bill Thornton
7548106970 Merge pull request #6401 from jellyfin/renovate/vitest 2024-12-20 08:39:22 -05:00
renovate[bot]
6a0111226e Update actions/upload-artifact action to v4.5.0 2024-12-20 07:42:19 +00:00
renovate[bot]
e24f9b77f7 Update Vitest to v2.1.8 2024-12-20 07:42:08 +00:00
stanol
0cf41f40f1 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-12-19 08:01:15 -05:00
Troja
04e1a8aeba Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-12-19 08:01:14 -05:00
Lai, Wei-Chen
e3e9511cc3 Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-12-19 00:51:47 -05:00
Alexander Brissman
268e161013 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-12-18 20:01:14 -05:00
Alexander Brissman
83f5a2314a Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-12-18 18:01:14 -05:00
Alexander Brissman
6fd90b0c36 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-12-18 16:01:14 -05:00
Troja
3c8f5e9387 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-12-18 06:01:14 -05:00
wxwrn
052eb6d5ee Translated using Weblate (Slovenian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sl/
2024-12-17 12:17:17 -05:00
Troja
b1b444a8e4 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-12-17 08:01:14 -05:00
viown
fb1ef7d905 Remove auto port forward options 2024-12-15 12:56:55 +03:00
Bill Thornton
9d7532ceab Merge pull request #6381 from jellyfin/renovate/ci-deps 2024-12-14 13:46:40 -05:00
renovate[bot]
34d6589667 Update CI dependencies 2024-12-14 17:29:32 +00:00
John Doe
44eee5be6e Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-12-13 07:01:14 -05:00
stanol
19f604ee24 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-12-12 16:01:14 -05:00
Bas
03cef65c88 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-12-11 16:01:14 -05:00
luizfern12
e0e266d1a6 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-12-09 14:01:14 -05:00
queeup
8ef78024b2 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-12-07 11:01:14 -05:00
queeup
c3c278b9f2 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-12-07 08:01:14 -05:00
queeup
39858bc103 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-12-07 06:01:14 -05:00
Raspi-it
94bbc8498d Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-12-06 15:00:03 -05:00
無情天
2cb722a588 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-12-05 13:00:03 -05:00
nextlooper42
a789df2add Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-12-03 06:00:04 -05:00
millallo
4385e1c937 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-12-03 06:00:03 -05:00
mau671
0fa73a972b Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-12-03 06:00:03 -05:00
mau671
2a62554b7c Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_MX/
2024-12-03 06:00:02 -05:00
Weevild
8a0387d51c Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-12-02 21:00:03 -05:00
ZolliusMeistrus
fd6cab45cc Translated using Weblate (Afrikaans)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/af/
2024-12-02 10:00:03 -05:00
Nyanmisaka
eee59078cd Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-12-02 10:00:03 -05:00
Chimorin
2fb7f92cba Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-12-02 08:00:02 -05:00
VC
90ba7135e3 Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-12-02 04:00:03 -05:00
hoanghuy309
9be865f470 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-12-01 12:00:03 -05:00
stanol
ad881412a7 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-12-01 08:00:02 -05:00
Blackspirits
672a6e9212 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-12-01 03:00:04 -05:00
Blackspirits
042f28fae7 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-12-01 03:00:03 -05:00
Kityn
39f5f952c2 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-12-01 03:00:02 -05:00
solidsnake1298
caffdfd5fa Backport pull request #6338 from jellyfin-web/release-10.10.z
Fix type for Prefer embedded episode info checkbox

Original-merge: 92e8821003

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-30 18:09:22 -05:00
nielsvanvelzen
a530389d54 Backport pull request #6329 from jellyfin-web/release-10.10.z
Fix lyric fetcher order not changeable in library options

Original-merge: 1496542381

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-30 18:09:21 -05:00
Andrijan Jovanovski
bab9c86521 Translated using Weblate (Macedonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mk/
2024-11-30 12:37:11 -05:00
Andrijan Jovanovski
2072cca091 Translated using Weblate (Macedonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mk/
2024-11-30 11:00:03 -05:00
Andrijan Jovanovski
0826138ade Translated using Weblate (Macedonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mk/
2024-11-30 07:00:03 -05:00
Matthew Haughton
2a8a4889d4 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-11-30 01:00:03 -05:00
John Doe
12d2cf31e2 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-11-29 00:00:02 -05:00
John Doe
c768653020 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-11-28 22:00:02 -05:00
John Doe
3a70d9208a Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-11-28 20:51:50 -05:00
John Doe
031a9aac74 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-11-28 20:00:02 -05:00
John Doe
681ce0f8e4 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-11-28 18:49:37 -05:00
a0193143
92b60bde62 Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-11-28 16:00:02 -05:00
Spiros Vita
1ec4f9b479 Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
2024-11-28 10:00:02 -05:00
felix920506
8fea5c0da0 Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-11-27 11:00:03 -05:00
felix920506
4cb00f35f8 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-11-27 11:00:02 -05:00
lucas prone
7f64f72c92 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-11-26 21:00:02 -05:00
lucas prone
b5b1f3bb06 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-11-26 17:00:01 -05:00
lucas prone
0185eb226d Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-11-26 15:00:03 -05:00
Thunderstrike116
bb89c40884 Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
2024-11-26 15:00:02 -05:00
DragoPrime
30117bcc86 Translated using Weblate (Romanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
2024-11-25 16:00:02 -05:00
Ariel Debrouvier
793649e83f Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-11-25 13:50:09 -05:00
Ariel Debrouvier
e39a7dc40b Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_MX/
2024-11-25 10:00:02 -05:00
KecskeTech
717d30cb56 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
2024-11-24 13:00:02 -05:00
Lucas Alvarez
cb48f6b15f Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-11-24 11:00:01 -05:00
Bill Thornton
3e7de3c580 Merge pull request #6341 from jellyfin/renovate/ci-deps 2024-11-24 03:15:33 -05:00
renovate[bot]
53fdd8ec15 Update CI dependencies 2024-11-24 08:10:02 +00:00
Bill Thornton
2b0f028b6f Merge pull request #6336 from thornbill/branding-help 2024-11-22 02:31:41 -05:00
lucas prone
a88110fcad Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-11-21 22:00:02 -05:00
Bill Thornton
ffd7cad65c Merge pull request #6277 from thornbill/no-self-cast-target 2024-11-21 20:07:44 -05:00
Bill Thornton
64f19c3bdd Add branding help link 2024-11-21 17:05:04 -05:00
Bill Thornton
ca7311cb08 Simplify play target sorting 2024-11-21 16:39:36 -05:00
Bill Thornton
bc4d6c95d1 Merge pull request #6254 from thornbill/dashboard-help
Move dashboard help links to header icon
2024-11-21 16:04:43 -05:00
Bill Thornton
20fd822b8b Merge pull request #6334 from thornbill/dashboard-branding
Add branding settings page
2024-11-21 16:03:59 -05:00
Bill Thornton
4fed499c99 Merge pull request #6213 from thornbill/eslint-naming
Add eslint rules for consistent naming
2024-11-21 15:26:54 -05:00
Bill Thornton
fbaab4e3c8 Set min rows on text areas 2024-11-21 14:07:08 -05:00
Bill Thornton
edacbb6c32 Fix stylelint issues 2024-11-21 13:54:01 -05:00
koreapyj
0d5e49e67b Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-11-21 09:00:01 -05:00
Bas
f0b7d7ad55 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-11-21 06:00:01 -05:00
burghy86
5c28f017ec Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-11-21 06:00:01 -05:00
Bill Thornton
06f2c226e1 Remove branding from general settings page 2024-11-20 18:06:44 -05:00
Xameon42
6f6d6f22bc Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-11-20 18:00:01 -05:00
Bill Thornton
ca5f94df63 Add dashboard branding page 2024-11-20 17:57:47 -05:00
Arcus92
441494d5b2 Backport pull request #6303 from jellyfin-web/release-10.10.z
Update dependency libpgs to v0.8.1

Original-merge: 133273a3e8

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-19 15:44:10 -05:00
viown
b4b3028da1 Backport pull request #6298 from jellyfin-web/release-10.10.z
Fix large PDF Display

Original-merge: 048d3f1e2c

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-19 15:44:09 -05:00
thornbill
f0fee2cfe5 Backport pull request #6297 from jellyfin-web/release-10.10.z
Fix missing theme images

Original-merge: 5c55e458dd

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-19 15:44:07 -05:00
Arcus92
c3d7401bc9 Backport pull request #6291 from jellyfin-web/release-10.10.z
Update dependency libpgs to v0.8.0

Original-merge: 22ae941a9a

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-19 15:44:06 -05:00
Muhammad Zufar
1c69ad4e6c Translated using Weblate (Indonesian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
2024-11-19 08:00:01 -05:00
MisterCry
fa8c542ad7 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-11-19 06:00:01 -05:00
Bill Thornton
33b6106f26 Merge pull request #6327 from thornbill/strict-mode-page 2024-11-18 23:02:26 -05:00
Bill Thornton
e71d83af94 Move strict mode to page component 2024-11-18 17:07:24 -05:00
Ace
23a71cba44 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-11-18 17:00:01 -05:00
burghy86
a077acb7c8 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-11-18 11:00:01 -05:00
koreapyj
7f904d5ac8 Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-11-17 07:00:00 -05:00
koreapyj
d2db4e52f6 Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-11-17 05:00:01 -05:00
Jamoliddin Rakhmonberdiev
2b86995fc7 Translated using Weblate (Uzbek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uz/
2024-11-15 08:00:00 -05:00
Jamoliddin Rakhmonberdiev
1fd7bf0c51 Translated using Weblate (Uzbek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uz/
2024-11-14 17:00:01 -05:00
NickSkier
275f896206 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-11-14 17:00:00 -05:00
Johan Dixelius
4a72478659 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-11-14 13:00:00 -05:00
GolanGitHub
79fe2d7bba Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-11-13 14:00:01 -05:00
Simon-Pierre Corriveau
1ec222ed1d Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
2024-11-13 03:00:00 -05:00
nextlooper42
c29c71f839 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-11-12 20:00:00 -05:00
George Vella
3fc766b6b6 Translated using Weblate (Maltese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/mt/
2024-11-12 13:00:00 -05:00
koreapyj
ff1d4fa45d Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-11-12 07:00:00 -05:00
l00d3r
f2474b5e44 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-11-11 11:00:00 -05:00
Blackspirits
0162c50213 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-11-11 04:00:00 -05:00
darkabella
ab1cf1e435 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-11-10 17:00:00 -05:00
Aindriú Mac Giolla Eoin
d63b1297c2 Translated using Weblate (Irish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ga/
2024-11-10 14:00:10 -05:00
Aindriú Mac Giolla Eoin
a965c14d77 Translated using Weblate (Irish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ga/
2024-11-10 12:00:00 -05:00
koreapyj
5d49a96d9a Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-11-10 05:00:01 -05:00
MisterCry
8036190ce5 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-11-09 22:00:00 -05:00
Kristian
34df712cf8 Translated using Weblate (Croatian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hr/
2024-11-09 17:00:01 -05:00
Frederik Palmø
d0a1fb2558 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-11-09 08:00:00 -05:00
Rainer Geiger
d2d6c64d5f Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-11-08 20:00:00 -05:00
Jose Riha
08a852dee3 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-11-07 05:00:00 -05:00
Quang Minh Nguyen
e640f0466e Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-11-07 02:00:00 -05:00
Kamran Imami
9b9006a6b5 Translated using Weblate (Persian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fa/
2024-11-06 20:00:00 -05:00
electreo
bfa9562318 Translated using Weblate (Bulgarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/bg/
2024-11-06 13:00:00 -05:00
Kristyan Petrov Georgiev
786d8c837d Translated using Weblate (Bulgarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/bg/
2024-11-05 23:00:00 -05:00
saleem0915
07eb8f9a15 Translated using Weblate (Japanese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ja/
2024-11-05 21:00:00 -05:00
Andi Chandler
79ae5c12bc Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-11-05 10:00:00 -05:00
kimpig
6ed9857f68 Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-11-05 07:00:00 -05:00
Rafael Morine
ed4849367e Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-11-05 05:00:00 -05:00
p0358
76095a8a11 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-11-04 18:00:00 -05:00
Nyanmisaka
655a32f745 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-11-04 13:00:00 -05:00
stanol
4caa8f7143 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-11-04 07:00:01 -05:00
Frederik Palmø
1fc8c2d683 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-11-04 07:00:00 -05:00
Roi Gabay
9839f991d9 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-04 03:00:00 -05:00
Lukáš Kucharczyk
a0fdf53cc2 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-11-04 03:00:00 -05:00
Robin Lavigne
2c363b2610 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-11-04 01:00:00 -05:00
Tomi
f5df123ace Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-11-04 01:00:00 -05:00
hoanghuy309
00eacba5b4 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-11-03 21:01:01 -05:00
Kityn
901af6b07b Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-11-03 18:06:00 -05:00
Justin
42c21b96c2 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-11-03 16:06:00 -05:00
hoanghuy309
43581367d0 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-11-03 12:06:01 -05:00
Frostslayer
c9c0d9587f Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-11-03 12:06:00 -05:00
Bas
4ce03b1887 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-11-03 12:06:00 -05:00
viown
08ad03275f Backport pull request #6286 from jellyfin-web/release-10.10.z
Always show enabled filters

Original-merge: ed3671a536

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:38 -05:00
thornbill
e4f7529052 Backport pull request #6284 from jellyfin-web/release-10.10.z
Exclude unneeded files from build output

Original-merge: c5cc093fba

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:37 -05:00
viown
8a6491dff5 Backport pull request #6282 from jellyfin-web/release-10.10.z
Add content hash to CSS files

Original-merge: d365dd1b98

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:36 -05:00
dmitrylyzo
4a5c52a92b Backport pull request #6278 from jellyfin-web/release-10.10.z
Fix displaying secondary subtitles on Tizen 5

Original-merge: 2ed3965197

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:34 -05:00
thornbill
acbb626492 Backport pull request #6276 from jellyfin-web/release-10.10.z
Update plugin category labels

Original-merge: 9ff9f05a26

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:33 -05:00
viown
fc314790d3 Backport pull request #6274 from jellyfin-web/release-10.10.z
Make filtering local to each device

Original-merge: ad8868a996

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:32 -05:00
viown
1bbae0ef23 Backport pull request #6266 from jellyfin-web/release-10.10.z
Make ask to skip the default for 'Intro' and 'Outro' segments

Original-merge: 7ccc494a5b

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:31 -05:00
thornbill
0ff58e81b0 Backport pull request #6265 from jellyfin-web/release-10.10.z
Add support for plugin revisions with bad timestamps

Original-merge: 71ab6fea5d

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:30 -05:00
rlauuzo
4f17bfb5ed Backport pull request #6258 from jellyfin-web/release-10.10.z
Show Skip Button When 'Next Video Info Overlay' is Disabled

Original-merge: 3311a1407f

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:28 -05:00
marissa999
e153eeb6e7 Backport pull request #6199 from jellyfin-web/release-10.10.z
Fix missing transcoding speed info

Original-merge: 6d37cfcd1b

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-03 10:54:27 -05:00
Roi Gabay
bd7724b5fc Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-02 18:41:37 -04:00
Roi Gabay
cb656d7e98 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-02 11:41:37 -04:00
Roi Gabay
fec00348d3 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-02 09:41:37 -04:00
Roi Gabay
3cb0865628 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-02 07:41:37 -04:00
Roi Gabay
0146f8e329 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-02 05:41:37 -04:00
Roi Gabay
a22bf24e5e Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-02 03:41:37 -04:00
jh
bf43cb3095 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-11-01 20:41:37 -04:00
Roi Gabay
497b723d5c Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-01 12:41:37 -04:00
Roi Gabay
8991d38ba9 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-11-01 10:41:38 -04:00
Roi Gabay
10c8ef160c Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-31 18:41:37 -04:00
Blackspirits
686ed79eec Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-31 14:41:38 -04:00
Blackspirits
f012c32859 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-31 14:41:38 -04:00
Bas
3af4989987 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-31 14:41:37 -04:00
millallo
60ab71d700 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-10-31 14:41:37 -04:00
Andi Chandler
6a49fffa9a Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-10-31 09:41:37 -04:00
Roi Gabay
5537654911 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-30 19:41:37 -04:00
Roi Gabay
d8ca158a78 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-30 17:41:37 -04:00
Bill Thornton
bc7ec0e876 Remove self cast target 2024-10-30 16:01:58 -04:00
Roi Gabay
0c818d5fdd Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-30 15:41:37 -04:00
Gabriel Santana
c3614a0c8c Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-10-29 20:41:37 -04:00
Roi Gabay
033e2edfdd Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-29 14:41:37 -04:00
Spiros Vita
4e1e737c0a Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
2024-10-29 10:41:37 -04:00
Daniel
955053c727 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-10-29 08:41:37 -04:00
Roi Gabay
f4c6a10972 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-29 04:41:37 -04:00
Roi Gabay
d0bc3e338e Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-29 02:41:37 -04:00
Blackspirits
8f150d50c5 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-28 20:41:37 -04:00
Blackspirits
c57632fde0 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-28 20:41:37 -04:00
Roi Gabay
1d2de7ad4b Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-28 20:41:37 -04:00
Blackspirits
8c793172d7 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-28 17:41:37 -04:00
Blackspirits
af7664ca18 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-28 17:41:37 -04:00
Frostslayer
6cc27fff3e Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-28 13:41:37 -04:00
Frostslayer
d549d0f0f9 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-10-28 13:41:37 -04:00
Antonios
9fbc37fbf3 Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
2024-10-28 10:41:37 -04:00
Blackspirits
c52c17e1bc Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-28 08:41:37 -04:00
Blackspirits
6c80fadc1b Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-28 08:41:37 -04:00
gendelo3
d8de2cddc1 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-10-28 06:41:37 -04:00
Blackspirits
4d5fcb5d46 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-27 20:41:37 -04:00
Blackspirits
3a5a49e1f1 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-27 20:41:37 -04:00
millallo
9a6cb89bae Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-10-27 15:41:37 -04:00
hoanghuy309
ecb8d7202a Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-10-27 11:41:37 -04:00
Frederik Palmø
34c6cd2bd1 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-10-27 09:41:37 -04:00
Frederik Palmø
dd705c31d9 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-10-27 07:41:38 -04:00
Lukáš Kucharczyk
474c16f601 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-10-27 07:41:37 -04:00
NOV
c92c012c7e Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-26 22:41:37 -04:00
Andrejs
7abb02454b Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2024-10-26 18:41:37 -04:00
queeup
118e08b820 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-10-26 18:41:37 -04:00
Bill Thornton
acb814a027 Merge pull request #6259 from jellyfin/ci-fix-syntax 2024-10-26 15:13:12 -04:00
Fernando Fernández
d49b47e201 Fix syntax error in push workflow
Somehow I missed this for quite some time, sorry!
2024-10-26 21:02:29 +02:00
Jellyfin Release Bot
ece5f7d713 Bump version to 10.11.0 2024-10-26 13:32:56 -04:00
Blackspirits
31b89b375c Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-26 06:41:38 -04:00
stanol
8720e02f8f Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-10-26 06:41:38 -04:00
nextlooper42
9ea33d21a6 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-10-26 06:41:37 -04:00
Blackspirits
d7ee1e55fa Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-26 06:41:37 -04:00
Blackspirits
7d88cf4688 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-26 04:41:37 -04:00
Blackspirits
8c5e31f3e0 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-26 04:41:37 -04:00
Lukáš Kucharczyk
c4363dd27b Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-10-26 04:41:37 -04:00
Blackspirits
d920bd7c8a Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-26 02:41:38 -04:00
hoanghuy309
cec009ca94 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-10-26 02:41:38 -04:00
Blackspirits
5d50060333 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-26 02:41:37 -04:00
Kityn
a2f2b52106 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-26 02:41:37 -04:00
Bill Thornton
dc35c9d59e Move dashboard help links to header icon 2024-10-26 01:45:01 -04:00
felix920506
18a9983ac8 Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-10-25 20:41:38 -04:00
Nyanmisaka
b890956a3a Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-25 20:41:38 -04:00
Bas
d272efd865 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-25 20:41:37 -04:00
Bill Thornton
207318c302 Merge pull request #6247 from jellyfin/renovate/jellyfin-sdk-0.x
Update dependency @jellyfin/sdk to v0.0.0-unstable.202410250501
2024-10-25 17:20:08 -04:00
Bill Thornton
3fb114372c Merge pull request #6246 from jellyfin/renovate/ci-deps
Update CI dependencies
2024-10-25 17:19:07 -04:00
Bill Thornton
fa1934a124 Merge pull request #6196 from viown/prompt-to-skip
Add 'ask to skip' to media segments
2024-10-25 17:18:30 -04:00
viown
8cc23f2882 Remove undefined MediaSegmentType 2024-10-25 21:01:23 +03:00
viown
d8db0ba226 Remove check for outro 2024-10-25 20:58:37 +03:00
Frostslayer
6ae494e07d Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-10-25 13:41:37 -04:00
George (Georgios) Vasilakis
6ed7d02eeb Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
2024-10-25 13:41:37 -04:00
Bas
1bfa279735 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-25 10:41:37 -04:00
Rafael Morine
2e1eb5396c Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-10-25 06:41:37 -04:00
renovate[bot]
c2918cacb1 Update dependency @jellyfin/sdk to v0.0.0-unstable.202410250501 2024-10-25 06:09:58 +00:00
hoanghuy309
0a75c18151 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-10-25 01:41:37 -04:00
Frostslayer
7255df6b08 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-10-24 17:41:37 -04:00
Bill Thornton
3823cc2b76 Merge pull request #6252 from thornbill/fix-metadata-dashboard-label
Fix drawer label for the dashboard metadata page
2024-10-24 17:01:13 -04:00
Bill Thornton
005fcec49c Fix drawer label for the dashboard metadata page 2024-10-24 16:17:34 -04:00
Bill Thornton
de87916c36 Merge pull request #6244 from thornbill/fix-playing-parts 2024-10-24 13:34:14 -04:00
renovate[bot]
0f6ecd2514 Update CI dependencies 2024-10-24 17:08:14 +00:00
Aldair Guzmán
a9586d412e Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
2024-10-24 11:41:37 -04:00
Aldair Guzmán
f0ec0b8462 Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
2024-10-24 07:41:36 -04:00
viown
11e4549b48 Use PlayerEvent constant 2024-10-24 12:37:38 +03:00
viown
459d0d7d9a Merge branch 'master' into prompt-to-skip 2024-10-24 12:34:55 +03:00
viown
87f2acaf40 Fix import 2024-10-24 12:34:52 +03:00
Bill Thornton
571b28099e Fix unhandled promises 2024-10-24 01:35:04 -04:00
Bill Thornton
1e45729850 Merge pull request #6241 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-23 19:38:27 -04:00
Bill Thornton
6530d2d7d8 Fix playing episodes when additional parts exist 2024-10-23 17:13:16 -04:00
Bill Thornton
9f8905989f Merge pull request #6243 from jellyfin/renovate/ci-deps 2024-10-23 12:20:16 -04:00
renovate[bot]
50d8c727f5 Update actions/checkout action to v4.2.2 2024-10-23 15:41:48 +00:00
stanol
68ffb211ae Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-10-23 06:41:37 -04:00
John Doe
2b10b6c74b Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-10-23 06:41:37 -04:00
renovate[bot]
64efe8e0ca Update dependency @jellyfin/sdk to v0.0.0-unstable.202410230556 2024-10-23 08:24:53 +00:00
Bill Thornton
ddc26d30d6 Merge pull request #6233 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-22 17:11:48 -04:00
Bill Thornton
7dfdd7c9c1 Merge pull request #6238 from jellyfin/renovate/ci-deps 2024-10-22 16:58:16 -04:00
Bill Thornton
b807aaf148 Merge pull request #6240 from thornbill/fix-nonstandard-tag-label 2024-10-22 16:47:07 -04:00
Bill Thornton
68413a09f0 Merge pull request #6239 from thornbill/video-osd-cleanup 2024-10-22 16:46:38 -04:00
Bill Thornton
f8f1ef0ae5 Fix capitalization of PreferNonstandardArtistsTag label 2024-10-22 16:38:48 -04:00
Bill Thornton
865046e668 Use async/await when getting playlist 2024-10-22 16:34:25 -04:00
Bill Thornton
a2e0f52297 Fix for niels OCD 2024-10-22 16:22:50 -04:00
Bill Thornton
f2b8c5e489 Fix order for 1hitsong OCD 2024-10-22 16:08:31 -04:00
Bill Thornton
29309bc4b8 Unhide next/prev track buttons if playlist has more items 2024-10-22 15:43:15 -04:00
Bas
f9b70339d6 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-22 15:41:36 -04:00
Bill Thornton
a72dd37ef0 Hide favorite button from osd on small screens 2024-10-22 15:41:24 -04:00
renovate[bot]
33fde51677 Update github/codeql-action action to v3.27.0 2024-10-22 18:33:26 +00:00
nicito
b40f68db12 Translated using Weblate (Bulgarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/bg/
2024-10-22 11:41:37 -04:00
renovate[bot]
561e593990 Update dependency @jellyfin/sdk to v0.0.0-unstable.202410220501 2024-10-22 06:10:36 +00:00
Bill Thornton
d60a6182ca Merge pull request #6236 from jellyfin/renovate/ci-deps 2024-10-21 22:42:03 -04:00
Bill Thornton
ead56660c4 Merge pull request #6234 from jellyfin/renovate/vitest 2024-10-21 22:16:08 -04:00
renovate[bot]
db47fa11eb Update actions/dependency-review-action action to v4.3.5 2024-10-22 00:43:13 +00:00
Bas
ca2c37c04e Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-21 14:41:36 -04:00
Blackspirits
2493e34fa0 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-21 11:41:37 -04:00
Blackspirits
263830109a Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-21 11:41:36 -04:00
renovate[bot]
6d74cf44a2 Update Vitest to v2.1.3 2024-10-21 14:56:59 +00:00
Tyler
a0b70bbf22 Translated using Weblate (Afrikaans)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/af/
2024-10-21 08:32:49 -04:00
Roi Gabay
a7cf87f1b3 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-20 17:41:36 -04:00
Bill Thornton
c2a37cfd58 Merge pull request #6230 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-20 15:31:59 -04:00
Bill Thornton
38ab2c168b Merge pull request #6231 from gnattu/fix-parental-tags 2024-10-20 15:31:02 -04:00
gnattu
e17d50f438 Cleanup functions 2024-10-20 23:28:18 +08:00
gnattu
a1acb57ce1 Fix lint 2024-10-20 22:59:23 +08:00
gnattu
5b687f6a7d Unbind event listeners when unmounting 2024-10-20 22:56:17 +08:00
Jonas Vendel
669ac28d88 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-10-20 10:41:36 -04:00
gnattu
bb17d58536 Use daysofweek and hours as key
This is better and any sane person should not set multiple schdules to be exactly the same
2024-10-20 22:39:50 +08:00
gnattu
95e935aede Fix lint 2024-10-20 22:28:03 +08:00
gnattu
3ae148f193 Use index as key for access schedule
Unfortuenately, the key is never populated in accessSchedule.js which cannot use that as a key for a list
2024-10-20 22:26:30 +08:00
gnattu
0ad0a6162b Add libraryMenu as dep 2024-10-20 22:21:36 +08:00
gnattu
d9786d4d24 Unset button style 2024-10-20 22:20:59 +08:00
gnattu
84f7cf1997 Use button 2024-10-20 22:17:50 +08:00
gnattu
7eda53f795 Use anchor for onClick 2024-10-20 22:15:26 +08:00
gnattu
88f9c3d31b Don’t use FIXME 2024-10-20 21:54:49 +08:00
gnattu
956f9bf7e4 Fix tags and schedule edit for parental control 2024-10-20 21:40:55 +08:00
Andrejs
568b5f607f Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2024-10-20 07:41:36 -04:00
Abdul Mueid
1400f20d75 Fix HDR10/DOVIWithHDR10plus support for Vidaa OS 2024-10-20 13:00:46 +02:00
renovate[bot]
90b41c8389 Update dependency @jellyfin/sdk to v0.0.0-unstable.202410200501 2024-10-20 07:02:57 +00:00
Bill Thornton
1ed7ce8cd3 Merge pull request #6224 from viown/fix-undefined-sub-stream-index 2024-10-20 03:01:58 -04:00
BlueMöhre
5e5b3ab019 Use "Save" in Metadata Editor and remove "SaveChanges". (#6212) 2024-10-20 02:56:23 -04:00
Roi Gabay
078b188d0e Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-20 02:41:36 -04:00
Bill Thornton
ddba3130e0 Merge pull request #6135 from abdulmueid/vidaa-disable-hevc 2024-10-19 16:44:58 -04:00
Blackspirits
3f247b27d6 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-19 14:41:38 -04:00
AfmanS
e0c45956e7 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-19 14:41:37 -04:00
Blackspirits
27cff85aaa Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-19 14:41:37 -04:00
Bill Thornton
a59865a2a7 Merge pull request #6226 from jellyfin/renovate/react 2024-10-19 13:44:53 -04:00
Bill Thornton
3595a1d059 Merge pull request #6181 from jellyfin/renovate/tanstack-query-monorepo 2024-10-19 13:42:09 -04:00
Bill Thornton
c6bf8929ec Merge pull request #6228 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-19 13:41:02 -04:00
viown
9b269296fe Use UpNextDialog for outro segments 2024-10-19 20:36:44 +03:00
Bill Thornton
05e138e1c0 Merge pull request #6180 from jellyfin/renovate/webpack 2024-10-19 13:34:26 -04:00
Bill Thornton
c3d3008af4 Merge pull request #6220 from jellyfin/renovate/postcss 2024-10-19 13:32:52 -04:00
renovate[bot]
665ccfac7f Update dependency @jellyfin/sdk to v0.0.0-unstable.202410191409 2024-10-19 17:29:37 +00:00
Bill Thornton
e66391888e Merge pull request #6227 from jellyfin/renovate/sass 2024-10-19 13:28:59 -04:00
Blackspirits
6c02aaab2b Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-19 13:23:28 -04:00
Blackspirits
e0d2b19ed2 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-19 13:23:28 -04:00
AfmanS
9180465d56 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-19 13:23:28 -04:00
renovate[bot]
386562fec8 Update Sass to v1.79.5 2024-10-19 17:22:41 +00:00
Bill Thornton
a860b3a239 Merge pull request #6194 from jellyfin/renovate/material-ui-monorepo 2024-10-19 13:21:53 -04:00
viown
7ad7f07b7c Do nothing if there is 1 second left 2024-10-19 20:11:10 +03:00
viown
64b9ab2a19 Keep button for 8 seconds 2024-10-19 20:11:10 +03:00
viown
198d4b157c Rename to ask to skip 2024-10-19 20:11:10 +03:00
viown
0008f89267 Fix OSD event after player reset 2024-10-19 20:11:10 +03:00
viown
dfff2efefc Don't show prompt when segment <3s 2024-10-19 20:11:10 +03:00
viown
0fb38c6894 Add 'prompt to skip' to media segments 2024-10-19 20:11:10 +03:00
Abdul Mueid
316542c100 Vidaa OS web browser reports it supports HEVC but playback is glitchy. Tested on 2 models (U7 & U8). This commit disables HEVC on Vidaa OS browser profile and uses transcoding instead to play HEVC files.
With MKV disabled and hlsInTs, hevc videos work properly by remuxing on Hisense Vidaa OS. Tested on model 55U7QF.

Removed force disabling hevc as it is no longer required with hlsInTs
2024-10-19 13:07:56 -04:00
HiPotionQ8
effa74356b Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
2024-10-19 11:41:36 -04:00
renovate[bot]
0fa454aef3 Update React 2024-10-19 14:34:06 +00:00
Bill Thornton
2a2aa28583 Merge pull request #6225 from jellyfin/renovate/ci-deps 2024-10-19 10:33:20 -04:00
HiPotionQ8
ba4be06e00 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
2024-10-19 10:13:19 -04:00
renovate[bot]
24d361fc7f Update CatChen/eslint-suggestion-action action to v4.1.7 2024-10-19 14:10:18 +00:00
Bill Thornton
01effc25d8 Merge pull request #6217 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-19 10:09:51 -04:00
renovate[bot]
eef48ddbad Update tanstack-query monorepo to v5.59.13 2024-10-19 11:36:00 +00:00
Bill Thornton
a8715d0181 Merge pull request #6223 from thornbill/strict-mode-strikes-again 2024-10-19 07:35:25 -04:00
viown
05ce167c77 Fix undefined subtitle stream index 2024-10-19 13:25:07 +03:00
Bas
9746bdfa60 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-19 05:41:37 -04:00
Roi Gabay
ceb0e8c7b0 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-19 05:41:37 -04:00
renovate[bot]
9c4d22b0a1 Update dependency @jellyfin/sdk to v0.0.0-unstable.202410190501 2024-10-19 07:30:45 +00:00
Bill Thornton
7abe0270b4 Do not use strict mode for view manager pages 2024-10-19 01:48:25 -04:00
Bill Thornton
d330f93bae Revert "Add hack to prevent rerendering legacy views in development"
This reverts commit 4d9ad8381f.
2024-10-19 01:32:35 -04:00
Blackspirits
b6dcda1473 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-18 18:41:36 -04:00
Blackspirits
397a61d6e3 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-18 18:41:36 -04:00
Blackspirits
3fd62046bd Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-18 16:41:37 -04:00
Blackspirits
1854493813 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-18 16:41:36 -04:00
Blackspirits
44fec34265 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-18 14:41:36 -04:00
Blackspirits
43d79cfade Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-18 14:41:36 -04:00
Blackspirits
23c72ab8d4 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-10-18 12:41:37 -04:00
Blackspirits
f2be380859 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-10-18 12:41:37 -04:00
JP
4d63921116 Translated using Weblate (Lithuanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lt/
2024-10-18 12:41:36 -04:00
JP
e14f0ad0bb Translated using Weblate (Lithuanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lt/
2024-10-18 09:41:36 -04:00
Roi Gabay
8260a0b14a Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-18 09:41:36 -04:00
renovate[bot]
41f09edc84 Update dependency @mui/x-date-pickers to v7.20.0 2024-10-18 09:28:44 +00:00
renovate[bot]
6b115a0425 Update dependency webpack to v5.95.0 2024-10-17 20:36:13 +00:00
renovate[bot]
d875fe0729 Update dependency postcss-preset-env to v10.0.7 2024-10-17 20:35:44 +00:00
Bill Thornton
d3fc3689c1 Merge pull request #6205 from thornbill/no-rerender-hack
Add hack to prevent rerendering legacy views in development
2024-10-17 16:34:37 -04:00
無情天
8b67b3a67d Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-17 14:41:36 -04:00
Bill Thornton
a43999d9c8 Merge pull request #6218 from jellyfin/renovate/babel
Update Babel to v7.25.8
2024-10-17 13:44:21 -04:00
renovate[bot]
cdb027405a Update Babel to v7.25.8 2024-10-17 13:54:23 +00:00
gendelo3
443f341cdc Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-10-17 06:41:36 -04:00
CGMads
6fb588129c Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-10-17 04:41:36 -04:00
CGMads
d140962b95 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-10-17 03:04:07 -04:00
Bill Thornton
a5e45f6cab Merge pull request #6215 from thornbill/remove-osd-ratings 2024-10-17 02:29:30 -04:00
Bill Thornton
cd78bbd92f Merge pull request #6214 from thornbill/download-item 2024-10-17 02:28:31 -04:00
Bill Thornton
13c0dc0ea6 Remove ratings from video osd 2024-10-17 02:08:36 -04:00
Bill Thornton
0d2652ce58 Add base item to download params 2024-10-17 01:41:13 -04:00
Bill Thornton
fdccb5c915 Fix inconsistent naming formats 2024-10-17 01:23:38 -04:00
AeRo
8b3a02c727 Fix queue when playing on remote device (partial) (#3381) 2024-10-16 21:27:10 -04:00
Bill Thornton
f9092e0678 Add eslint rules for consistent naming 2024-10-16 17:21:41 -04:00
Highlandword9
2564902573 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-10-16 13:41:36 -04:00
dickta
1e589303fe Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
2024-10-16 11:41:36 -04:00
Highlandword9
2a8f502ea7 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-10-16 11:41:36 -04:00
Bill Thornton
9439d6e413 Merge pull request #6209 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-16 07:47:32 -04:00
Roi Gabay
6b57b1fd18 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-16 06:08:36 -04:00
renovate[bot]
5059f71fcc Update dependency @jellyfin/sdk to v0.0.0-unstable.202410160502 2024-10-16 08:25:41 +00:00
Bill Thornton
3171523fa1 Merge pull request #6208 from jellyfin/renovate/typescript 2024-10-16 00:04:54 -04:00
Bill Thornton
db37ceda36 Merge pull request #6207 from jellyfin/renovate/hls.js-1.x 2024-10-16 00:04:29 -04:00
renovate[bot]
c40be076f1 Update dependency typescript to v5.6.3 2024-10-16 00:58:34 +00:00
renovate[bot]
8676ebaf9a Update dependency hls.js to v1.5.16 2024-10-16 00:58:11 +00:00
Bill Thornton
c4038debc9 Merge pull request #6195 from jellyfin/renovate/thollander-actions-comment-pull-request-3.x 2024-10-15 17:20:50 -04:00
Bill Thornton
810e3f2dd2 Update comment action variable names 2024-10-15 16:53:40 -04:00
Bill Thornton
6d6b35e36b Merge pull request #6206 from thornbill/seriously-10.6
Remove check for pre-10.6 server version
2024-10-15 16:46:00 -04:00
Bill Thornton
97aa442353 Remove check for pre-10.6 server version 2024-10-15 16:28:32 -04:00
Raphaël TISON
a133a33a00 Add unit tests for utils (#5412)
* add unit tests for Card utils

* add unit tests for DateFnsLocale utils

* fix lint

* add unit tests for Events utils

* fix lint

* fix lint
2024-10-15 16:22:10 -04:00
Bas
f57c089ae2 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-15 13:41:36 -04:00
Bill Thornton
4d9ad8381f Add hack to prevent rerendering legacy views in development 2024-10-15 11:44:14 -04:00
Bill Thornton
13e868212c Merge pull request #6204 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-15 09:04:03 -04:00
renovate[bot]
1eb5667d0e Update dependency @jellyfin/sdk to v0.0.0-unstable.202410150501 2024-10-15 10:43:38 +00:00
Bill Thornton
50dd1fb855 Merge pull request #6203 from jellyfin/renovate/ci-deps
Update github/codeql-action action to v3.26.13
2024-10-14 16:44:30 -04:00
Bill Thornton
d12fcf7d32 Merge pull request #6100 from grafixeyehero/Refactoring-Section-Container
Refactoring Section Container
2024-10-14 16:16:34 -04:00
grafixeyehero
47995ae9a1 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-10-14 16:03:55 -04:00
grafixeyehero
12995545b9 Refactoring Section Container 2024-10-14 16:03:55 -04:00
renovate[bot]
949df873d1 Update github/codeql-action action to v3.26.13 2024-10-14 18:05:27 +00:00
Bill Thornton
c3e253d98d Merge pull request #6202 from jellyfin/renovate/jellyfin-sdk-0.x
Update dependency @jellyfin/sdk to v0.0.0-unstable.202410140501
2024-10-14 14:05:03 -04:00
renovate[bot]
7c9d56f0f8 Update dependency @jellyfin/sdk to v0.0.0-unstable.202410140501 2024-10-14 17:45:52 +00:00
Bill Thornton
fbb8687629 Merge pull request #6201 from thornbill/dompurify-2
Rollback to dompurify v2 for legacy support
2024-10-14 13:45:08 -04:00
Bill Thornton
016fc1fdba Disable dompurify major updates from renovate 2024-10-14 13:20:52 -04:00
Habibur Rahman
d9ad1bdd5e Translated using Weblate (Bengali (Bangladesh))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/bn_BD/
2024-10-14 12:41:36 -04:00
Bill Thornton
33663d4b73 Rollback to dompurify v2 for legacy support 2024-10-14 12:29:15 -04:00
Nyanmisaka
81d50e73e5 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-14 09:41:36 -04:00
Bill Thornton
b34eb711f5 Merge pull request #6197 from nyanmisaka/fix-txtQsvDevice 2024-10-14 07:50:08 -04:00
Nyanmisaka
3165736e3e Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-14 07:41:36 -04:00
Anders
39ec804a5a Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-10-14 05:41:36 -04:00
nyanmisaka
14fbd12f7d Fix incorrect 'required' attribute in txtQsvDevice
fixes a0b944b

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-10-14 17:34:06 +08:00
Nyanmisaka
c4d0c428fb Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-14 03:41:37 -04:00
Kityn
5de953347c Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-14 03:41:36 -04:00
Lukáš Kucharczyk
bbc5bf5a2d Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-10-14 03:41:36 -04:00
Bas
25cc8fdba8 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-14 01:41:36 -04:00
nextlooper42
82d963bd84 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-10-13 19:41:36 -04:00
NOV
a2f1024a58 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-13 19:41:36 -04:00
renovate[bot]
1bcdd71a26 Update thollander/actions-comment-pull-request action to v3 2024-10-13 20:54:53 +00:00
Roi Gabay
f30a449ed6 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-13 16:54:30 -04:00
NOV
653b607000 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-13 16:54:30 -04:00
Bill Thornton
b6c194f321 Merge pull request #6192 from jellyfin/renovate/postcss
Update dependency postcss-preset-env to v10.0.6
2024-10-13 16:54:27 -04:00
Bill Thornton
f683339ea2 Merge pull request #6193 from jellyfin/renovate/linters
Update Linters
2024-10-13 16:53:06 -04:00
Bill Thornton
9c405e9360 Merge pull request #6184 from thornbill/playlist-editor
Add playlist editing
2024-10-13 16:50:49 -04:00
Bill Thornton
3ad0fb02e4 Move validation checks earlier 2024-10-13 16:41:25 -04:00
Mateusz
941f0e72a4 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-13 16:38:05 -04:00
NOV
97040a8324 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-13 16:38:05 -04:00
Bill Thornton
a7185ed750 Merge pull request #6157 from thornbill/media-segment-actions
Add media segment skipping
2024-10-13 16:38:01 -04:00
renovate[bot]
a06a837339 Update Linters 2024-10-13 17:01:19 +00:00
renovate[bot]
855e8a4aec Update dependency postcss-preset-env to v10.0.6 2024-10-13 16:59:34 +00:00
Bill Thornton
5b4a527358 Merge pull request #6186 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-13 12:59:13 -04:00
Bill Thornton
c82f49c882 Merge pull request #6084 from jellyfin/renovate/ci-deps 2024-10-13 12:58:42 -04:00
nextlooper42
af20470b4a Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-10-13 12:41:36 -04:00
Bill Thornton
a37388b2e3 Prevent blank playlist names 2024-10-13 12:36:08 -04:00
Bill Thornton
363171b56d Add playlist editing 2024-10-13 12:36:08 -04:00
Bill Thornton
9a192c7e5c Merge pull request #6191 from jellyfin/ci-fix 2024-10-13 12:34:52 -04:00
Fernando Fernández
7f59551d51 Fix incorrect commit input 2024-10-13 18:22:22 +02:00
renovate[bot]
faddb0d3ff Update CI dependencies 2024-10-13 16:04:51 +00:00
Bill Thornton
fbe04ea0a5 Merge pull request #6063 from ferferga/ci-rework
Securize CI, reusable workflows, simplifications
2024-10-13 12:04:13 -04:00
Nyanmisaka
164986dbcf Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-13 09:41:36 -04:00
Kityn
05a78ef92b Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-13 05:41:36 -04:00
Bas
5713b38b98 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-13 05:41:36 -04:00
Martin
7e4921f1dc Fix blurry pdf player rendering for all viewport sizes (#6182) 2024-10-13 04:24:08 -04:00
Bill Thornton
a0b944b299 Merge pull request #6004 from evanjarrett/qsv-renderdevice 2024-10-13 04:16:47 -04:00
Bill Thornton
aef9482824 Prevent skipping when seeking back to segment 2024-10-13 03:42:45 -04:00
renovate[bot]
9e431c57c1 Update dependency @jellyfin/sdk to v0.0.0-unstable.202410130501 2024-10-13 07:12:36 +00:00
Bill Thornton
9942fb7856 Apply suggestions from code review
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-10-13 01:29:36 -04:00
Andrew Siegman
a118fa0f63 Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
2024-10-12 21:41:36 -04:00
Andrew Siegman
f6585414b2 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-12 20:01:17 -04:00
Justin
b6b398282c Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-10-12 20:01:17 -04:00
hoanghuy309
5fb4944912 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-10-12 11:41:36 -04:00
BryanHuas
ce0c8da0e6 Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_MX/
2024-10-12 11:41:36 -04:00
r00tl34k
59505fa305 Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-10-11 23:41:36 -04:00
Roi Gabay
cc09a88a2a Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-11 14:41:36 -04:00
Roi Gabay
125e27563d Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-11 12:41:36 -04:00
Andi Chandler
603296ef7b Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-10-11 12:41:36 -04:00
millallo
a26cdbba7a Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-10-11 09:41:36 -04:00
nextlooper42
c698153a65 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-10-11 05:41:36 -04:00
l00d3r
8def27a0f0 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-10-11 03:53:51 -04:00
Lukáš Kucharczyk
3ff6283c09 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-10-11 02:41:36 -04:00
Nyanmisaka
c190b1a1df Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-10 22:41:36 -04:00
Bas
1f4cd65763 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-10 22:41:36 -04:00
Kityn
3f8738990d Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-10 18:41:36 -04:00
trawzified
f7f44acee5 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-10 18:41:36 -04:00
Evan Jarrett
a452d6302d update with a more detailed help message 2024-10-10 17:15:42 -05:00
Evan Jarrett
a6d95020d9 add ability to select QSV device in the UI 2024-10-10 17:15:39 -05:00
Scott McKenzie
9536a37213 Add examples to LabelPublishedServerUriHelp string (#6163) 2024-10-10 20:42:51 +00:00
Manuel Weber
67283befbe Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-10-10 16:41:36 -04:00
viown
230925e159 Only connect to ServerConnections once (#6150)
* Only connect to ServerConnections once

* Fix initial login after wizard completion

* Fix login when refreshing login or select server page
2024-10-10 16:36:32 -04:00
Andi Chandler
176ebec6e2 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-10-10 13:33:57 -04:00
Bill Thornton
24fee38903 Merge pull request #6183 from thornbill/metadata-manager-menu 2024-10-10 13:33:53 -04:00
Bill Thornton
f81e404c7b Merge pull request #6187 from thornbill/metadata-manager-padding 2024-10-10 13:32:44 -04:00
Bill Thornton
2235d162e7 Fix padding issues in the metadata manager 2024-10-10 10:59:00 -04:00
ilias-la
a5fb893fd8 Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/el/
2024-10-10 10:41:36 -04:00
Bill Thornton
5ffc9c7618 Update drawer label for metadata manager 2024-10-10 10:26:23 -04:00
BromTeque
4740cd156f Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-10-10 07:41:36 -04:00
nextlooper42
1e1bf3a1bf Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-10-10 04:41:36 -04:00
Lukáš Kucharczyk
6caa21fe30 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-10-10 04:41:36 -04:00
Bill Thornton
a67acc475a Merge pull request #6179 from jellyfin/renovate/linters 2024-10-09 19:23:37 -04:00
Kityn
dc89c2de6b Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-09 18:41:36 -04:00
Matheo
3827fe177f Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-09 18:41:35 -04:00
Fernando Fernández
7820a52609 Update with upstream changes 2024-10-09 22:16:59 +00:00
Fernando Fernández
d1f8742ce7 Remove unnecessary whitespace
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-10-09 22:16:59 +00:00
Fernando Fernández
e673037a54 Securize CI, reusable workflows, simplifications 2024-10-09 22:16:59 +00:00
Bill Thornton
7c4962de80 Skip skipping if skip is short 2024-10-09 17:07:33 -04:00
Bill Thornton
9aeb64e347 Add tests for segment utils 2024-10-09 17:07:33 -04:00
Bill Thornton
b93450098a Add media segment manager 2024-10-09 17:07:33 -04:00
Bill Thornton
809dba510a Add media segment action settings 2024-10-09 17:06:10 -04:00
Nyanmisaka
c6b4d41535 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-09 15:41:36 -04:00
Bas
03ad81744f Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-09 15:41:36 -04:00
Bas
0d449a23ee Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-09 14:31:04 -04:00
Bill Thornton
52d4919df4 Merge pull request #5906 from gnattu/burn-subtitle-transcoding 2024-10-09 14:15:18 -04:00
Bill Thornton
b9a72a32c3 Merge pull request #6178 from jellyfin/renovate/vitest 2024-10-09 14:11:13 -04:00
Bill Thornton
38d095b3f3 Merge pull request #6168 from viown/fix-ui-freeze 2024-10-09 14:08:43 -04:00
renovate[bot]
2eae71ca63 Update dependency eslint-plugin-react to v7.37.1 2024-10-09 17:20:50 +00:00
renovate[bot]
aa13049355 Update Vitest to v2.1.2 2024-10-09 17:20:07 +00:00
Bill Thornton
4c24d6d37a Merge pull request #6177 from jellyfin/renovate/babel
Update Babel to v7.25.7
2024-10-09 13:18:36 -04:00
viown
fb2d4487f3 Fix UI freeze when opening same path 2024-10-09 20:15:00 +03:00
Kityn
c23d576c28 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-09 12:41:36 -04:00
Bas
880fb3c201 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-09 12:41:36 -04:00
Bill Thornton
f00cc176e8 Merge pull request #6146 from jellyfin/renovate/react
Update dependency @types/react to v18.3.11
2024-10-09 12:40:29 -04:00
Bill Thornton
0790f97650 Merge pull request #6176 from jellyfin/renovate/sass
Update Sass to v1.79.4
2024-10-09 12:38:09 -04:00
renovate[bot]
6c386793ca Update Babel to v7.25.7 2024-10-09 16:37:40 +00:00
Bill Thornton
23c0566068 Merge pull request #6175 from jellyfin/renovate/jellyfin-sdk-0.x
Update dependency @jellyfin/sdk to v0.0.0-unstable.202410090502
2024-10-09 12:36:41 -04:00
Bill Thornton
67ebfb72bb Merge pull request #6138 from jellyfin/renovate/postcss
Update dependency postcss-preset-env to v10.0.5
2024-10-09 12:35:36 -04:00
Bill Thornton
b1472a0c7c Merge pull request #6136 from jellyfin/renovate/jsdom-25.x
Update dependency jsdom to v25.0.1
2024-10-09 12:32:59 -04:00
renovate[bot]
6c3ea5a4b7 Update dependency @types/react to v18.3.11 2024-10-09 16:30:53 +00:00
renovate[bot]
a7672eb338 Update Sass to v1.79.4 2024-10-09 16:30:28 +00:00
viown
c131ff9c3e Fix creating & deleting access schedules (#6133)
* Fix deleting & creating access schedules

* Remove unnecessary splice

* Add missing semicolon

* Correct check

* Add userId to dependency

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-09 11:07:35 -04:00
Ethan Messinger-Arns
0cc2b0698a Add option to control how long the screensaver takes to start (#6165)
* Added option to control how long the screensaver takes to start

* ESLint fixes

* Requested pull request fixes

* Alphabetized the translation string placement

* Simplified getter
2024-10-09 10:45:19 -04:00
renovate[bot]
cd5aff50cc Update dependency @jellyfin/sdk to v0.0.0-unstable.202410090502 2024-10-09 14:44:57 +00:00
Matías Eduardo Allende Pino
40d9f43049 Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-10-09 09:41:35 -04:00
Bill Thornton
6f5c8c8cfc Merge pull request #6172 from thornbill/fix-playback-subscriber-bind 2024-10-09 08:49:30 -04:00
Roi Gabay
1cfaf1e7b7 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-08 19:41:36 -04:00
gnattu
da4265eb46 Merge branch 'master' into burn-subtitle-transcoding 2024-10-09 06:53:18 +08:00
Bill Thornton
2545f30fbc Merge pull request #6173 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-08 18:45:25 -04:00
renovate[bot]
2ca5a60e90 Update dependency @jellyfin/sdk to v0.0.0-unstable.202410080502 2024-10-08 21:46:31 +00:00
Bill Thornton
3a6aaf2c8b Merge pull request #6148 from nielsvanvelzen/fix-no-device-options
Fix editing device info when there are no options yet
2024-10-08 17:13:07 -04:00
Bill Thornton
0344889641 Merge pull request #6134 from viown/fix-error-on-profile-page-refresh
Fix crash on several pages
2024-10-08 17:10:20 -04:00
Bill Thornton
a5427e8585 Merge pull request #6166 from viown/fix-livetv-playback
Fix LiveTV Playback
2024-10-08 12:52:44 -04:00
Bill Thornton
49433cd640 Fix playback subscriber callback binding 2024-10-08 12:49:42 -04:00
viown
07316cf870 Update playbackmanager.js
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-10-08 19:19:38 +03:00
viown
c2c5228c06 Update playbackmanager.js
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-10-08 16:27:46 +03:00
Balázs Meskó
a3df9bd637 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
2024-10-08 08:41:36 -04:00
Anders
213047dc29 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-10-08 06:41:36 -04:00
viown
ca4763512f Explicitly check for Live TV 2024-10-08 10:58:02 +03:00
rushmash
60c2f7366f Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-10-06 16:41:35 -04:00
hoanghuy309
708226763a Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-10-06 12:41:35 -04:00
stanol
81cf8df5c9 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-10-06 10:41:35 -04:00
Nico
24c8a2220f Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-05 14:41:35 -04:00
nextlooper42
c1df20f6ec Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-10-05 07:41:35 -04:00
viown
95e23875f4 Only specify mediaSourceId if index changed 2024-10-05 10:28:02 +03:00
viown
c54db604d9 Fix LiveTV Playback 2024-10-05 08:47:03 +03:00
Roi Gabay
3a33ed9ffc Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-10-04 18:41:35 -04:00
Mylan1173
f1a6bfe111 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
2024-10-04 06:41:35 -04:00
Lukáš Kucharczyk
7504daba70 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-10-04 04:41:35 -04:00
Andi Chandler
077e9181d3 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-10-03 21:41:35 -04:00
Daniel
9875194da6 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-10-03 15:41:35 -04:00
Kityn
1fc1dc1e65 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-10-03 02:41:35 -04:00
皇甫朝云
d2e9a8b6b3 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-02 21:41:35 -04:00
Bill Thornton
d5f2977216 Merge pull request #6156 from jellyfin/renovate/jellyfin-sdk-0.x 2024-10-02 10:23:00 -04:00
renovate[bot]
d301f323ac Update dependency @jellyfin/sdk to v0.0.0-unstable.202410020501 2024-10-02 14:16:23 +00:00
皇甫朝云
e3cec31682 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-10-02 09:41:36 -04:00
Bas
00844cee03 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-10-02 09:41:35 -04:00
Bill Thornton
5d23cdaffa Merge pull request #6155 from thornbill/fix-renovate-minimum-age 2024-10-02 08:57:57 -04:00
Bill Thornton
ef7642a369 Merge pull request #6142 from gnattu/only-add-node-when-enabled-normalization 2024-10-02 08:06:51 -04:00
Bill Thornton
f1e5b409e7 Fix minimum release age type in renovate config 2024-10-02 07:57:58 -04:00
BromTeque
b7a32c6aee Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-10-02 07:41:35 -04:00
Bill Thornton
93a38b0497 Merge pull request #6152 from thornbill/renovate-sdk 2024-10-02 07:20:03 -04:00
Bill Thornton
443b5cf895 Use renovate for unstable sdk updates 2024-10-02 02:07:24 -04:00
Bill Thornton
ed54e318c9 Merge pull request #6149 from thornbill/playback-subscriber
Add playback subscriber abstraction
2024-10-01 16:07:25 -04:00
Bill Thornton
6a6766f998 Change NOTE to TODO 2024-10-01 16:00:48 -04:00
stanol
f4687e1157 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-10-01 15:41:35 -04:00
Bill Thornton
8acf8fb550 Mark event handler maps as readonly 2024-10-01 14:01:54 -04:00
Bill Thornton
26f7f281cd Add playback subscriber abstraction 2024-10-01 13:41:40 -04:00
hoanghuy309
5888962e3f Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-10-01 13:41:35 -04:00
Niels van Velzen
7fe4c5c63f Fix editing device info when there are no options yet 2024-10-01 18:50:44 +02:00
Andi Chandler
2442dc6b52 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-10-01 07:41:35 -04:00
gnattu
24c30dc96d Handle addGainElement failure
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-10-01 18:25:09 +08:00
gnattu
75d21a8140 Fix lint
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-01 17:18:26 +08:00
gnattu
6b52358b57 Remove commented code 2024-10-01 17:13:52 +08:00
gnattu
0dbde71241 Only add gain node when normalization enabled 2024-10-01 17:03:45 +08:00
Léon
aac5fe2f49 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-10-01 00:41:35 -04:00
Théo Guerre
5e58df6fe2 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-09-30 13:41:35 -04:00
nextlooper42
171dc09373 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-09-30 11:41:35 -04:00
Théo Guerre
c7f494d7b9 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-09-30 11:41:35 -04:00
Bill Thornton
84363a850a Merge pull request #6140 from nyanmisaka/fix-LoginAttemptsBeforeLockout 2024-09-30 10:13:26 -04:00
nyanmisaka
f341b11c96 Fix the broken LoginAttemptsBeforeLockout
fixes a typo made in be891c3

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-30 22:02:54 +08:00
nextlooper42
b291b4ff73 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-09-30 09:41:36 -04:00
Balázs Meskó
2aaf520378 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
2024-09-30 09:41:35 -04:00
Théo Guerre
43f8a3f50c Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-09-30 09:41:35 -04:00
nextlooper42
0728bad222 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-09-30 07:41:35 -04:00
l00d3r
acd6780769 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-30 05:41:35 -04:00
millallo
ff256abb27 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-09-30 05:41:35 -04:00
Lukáš Kucharczyk
8f952c4bf5 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-09-30 03:41:35 -04:00
felix920506
87e37557dd Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-09-29 22:41:35 -04:00
Nyanmisaka
f88a7ccfde Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-29 15:41:35 -04:00
felix920506
c05550daf8 Translated using Weblate (Chinese (Traditional Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-09-29 13:41:35 -04:00
renovate[bot]
f8f729ceef Update dependency postcss-preset-env to v10.0.5 2024-09-29 16:39:02 +00:00
Kityn
055baa4efa Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-29 07:41:35 -04:00
Bas
1114b19b00 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-29 03:41:35 -04:00
renovate[bot]
563126dc1d Update dependency jsdom to v25.0.1 2024-09-29 06:27:06 +00:00
Bill Thornton
24b413c849 Merge pull request #5991 from lostb1t/feature/displayordercollection 2024-09-29 02:25:54 -04:00
Fahim Murshed
7a0e3b7df7 Translated using Weblate (Bengali (Bangladesh))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/bn_BD/
2024-09-28 19:41:35 -04:00
lostb1t
f7c2a273e3 Add translations string for DateMosified 2024-09-28 18:26:22 +02:00
lostb1t
6afd7a3d98 Use DateModifed for label 2024-09-28 16:36:01 +02:00
viown
c4e8764900 Remove LibraryMenu import 2024-09-28 15:00:55 +03:00
viown
1752d0bf1a Fix additional pages 2024-09-28 14:57:45 +03:00
viown
52477f04e1 Fix refresh on profle page 2024-09-28 14:44:13 +03:00
Andreas Lundin
bddb631b08 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-09-28 06:41:35 -04:00
Nyanmisaka
a5035baaf7 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-28 04:41:35 -04:00
Bas
290207bdb7 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-28 04:41:35 -04:00
Kityn
46f0307d6e Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-28 02:41:35 -04:00
Bill Thornton
2ca1eae7f6 Merge pull request #6130 from jellyfin/renovate/sass-1.x 2024-09-27 23:53:15 -04:00
Bill Thornton
42b3de4cdb Merge pull request #6131 from jellyfin/renovate/sass-embedded-1.x 2024-09-27 23:52:23 -04:00
renovate[bot]
fd465f1688 Update dependency sass to v1.79.3 2024-09-28 03:49:34 +00:00
Bill Thornton
20c44c24ff Merge pull request #6129 from jellyfin/renovate/webpack 2024-09-27 23:48:48 -04:00
Bill Thornton
f405602bd0 Merge pull request #6039 from grafixeyehero/Add-details-react-view
Add detail view buttons
2024-09-27 23:47:14 -04:00
renovate[bot]
0945097208 Update dependency sass-embedded to v1.79.3 2024-09-28 00:56:50 +00:00
Max Bruch
0780bc360b Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-27 15:41:35 -04:00
renovate[bot]
0c1616fd4e Update dependency sass-loader to v16.0.2 2024-09-27 17:03:55 +00:00
Bill Thornton
e83edd3766 Merge pull request #6128 from jellyfin/renovate/material-ui-monorepo 2024-09-27 08:09:28 -04:00
Bill Thornton
8249f93eea Merge pull request #6123 from jellyfin/renovate/postcss 2024-09-27 08:06:29 -04:00
Bill Thornton
928d3302ff Merge pull request #6125 from jellyfin/renovate/sass-embedded-1.x 2024-09-27 08:05:30 -04:00
renovate[bot]
3fcf53d655 Update dependency @mui/x-date-pickers to v7.18.0 2024-09-27 12:04:44 +00:00
Bill Thornton
f1a0f34151 Merge pull request #6124 from jellyfin/renovate/sass-1.x 2024-09-27 08:03:55 -04:00
Bill Thornton
6f2ebda25e Merge pull request #6112 from viown/fix-incorrect-index-on-next-track 2024-09-27 07:56:56 -04:00
viown
4c31742cc5 Fix incorrect audio & subtitle index on next track 2024-09-27 13:49:43 +03:00
Janes Resnik
d4cc33f0ee Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-27 06:41:35 -04:00
Janes Resnik
83e59ec229 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-27 03:41:35 -04:00
Bill Thornton
c5bebf7c59 Merge pull request #6111 from davidmurdoch/fix-movies-shuffle 2024-09-27 01:40:52 -04:00
renovate[bot]
f4e2402fbc Update dependency sass-embedded to v1.79.2 2024-09-27 04:33:27 +00:00
Bill Thornton
de4c2c007f Merge pull request #6122 from jellyfin/renovate/react 2024-09-27 00:32:40 -04:00
renovate[bot]
15fc00cf43 Update dependency sass to v1.79.2 2024-09-27 00:35:17 +00:00
BromTeque
f2b9f8e9f7 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-26 17:41:35 -04:00
David Murdoch
ce4aded654 Update src/controllers/movies/movies.js
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-26 16:15:18 -04:00
renovate[bot]
b32290c92d Update dependency postcss to v8.4.47 2024-09-26 19:49:45 +00:00
renovate[bot]
6b14f2531b Update dependency @types/react to v18.3.8 2024-09-26 19:49:34 +00:00
Bill Thornton
4b6a8d2eb9 Merge pull request #6120 from jellyfin/update-jf-sdk 2024-09-26 08:18:39 -04:00
jellyfin-bot
5eeb29ae97 Update @jellyfin/sdk to 0.0.0-unstable.202409260501 2024-09-26 07:05:37 +00:00
Bill Thornton
97d4f94d6f Merge pull request #6115 from jellyfin/renovate/sass-embedded-1.x 2024-09-25 18:15:07 -04:00
David Murdoch
bb78451102 Update src/controllers/movies/movies.js
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-25 13:49:41 -04:00
David Murdoch
f52ac7a96d Limit number of results returned since we only use 1 2024-09-25 13:48:34 -04:00
David Murdoch
74c735dbd0 Fix movies Shuffle button 2024-09-25 13:48:34 -04:00
Blackspirits
ec75d31a64 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-09-25 12:55:32 -04:00
Blackspirits
6272091fdd Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-09-25 12:55:32 -04:00
renovate[bot]
68596089e6 Update dependency sass-embedded to v1.79.1 2024-09-25 16:30:04 +00:00
Bill Thornton
902e0d2d1f Merge pull request #6114 from jellyfin/renovate/sass-1.x 2024-09-25 12:28:16 -04:00
Bill Thornton
719188a9fa Merge pull request #6118 from jellyfin/renovate/npm-postcss-vulnerability 2024-09-25 12:27:04 -04:00
renovate[bot]
318166b40c Update dependency postcss to v8.4.42 [SECURITY] 2024-09-25 14:55:41 +00:00
Bill Thornton
9e1c78fe7b Merge pull request #6117 from jellyfin/renovate/npm-postcss-vulnerability 2024-09-25 10:54:54 -04:00
Bill Thornton
bf20f3cc51 Merge pull request #6116 from jellyfin/update-jf-sdk 2024-09-25 10:36:16 -04:00
renovate[bot]
20d903906b Update dependency postcss to v8.4.41 [SECURITY] 2024-09-25 14:28:14 +00:00
jellyfin-bot
47e2730bc4 Update @jellyfin/sdk to 0.0.0-unstable.202409250605 2024-09-25 07:13:15 +00:00
renovate[bot]
6b2441ac85 Update dependency sass to v1.79.1 2024-09-25 01:29:13 +00:00
Andi Chandler
f6d62f0dec Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-09-24 17:56:16 -04:00
Bill Thornton
dd2cf5572e Merge pull request #6109 from jellyfin/update-jf-sdk
Update @jellyfin/sdk to 0.0.0-unstable.202409240640
2024-09-24 12:05:48 -04:00
Bill Thornton
3a2f8816f0 Merge pull request #6110 from jellyfin/renovate/react
Update dependency @types/react to v18.3.7
2024-09-24 11:59:50 -04:00
Bill Thornton
e0f313ed89 Merge pull request #6108 from jellyfin/dependabot/npm_and_yarn/rollup-4.22.4
Bump rollup from 4.21.3 to 4.22.4
2024-09-24 11:59:08 -04:00
Bill Thornton
29642e0aa9 Fix DeviceInfo to DeviceInfoDto type change 2024-09-24 11:57:53 -04:00
stanol
157c90090d Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-24 09:14:52 -04:00
stanol
d7a85e7e2a Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-24 08:54:48 -04:00
renovate[bot]
28d13a5177 Update dependency @types/react to v18.3.7 2024-09-24 10:30:42 +00:00
朱涛
6543606b16 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-24 04:44:11 -04:00
朱涛
697c083176 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-24 04:22:56 -04:00
jellyfin-bot
9474a483ce Update @jellyfin/sdk to 0.0.0-unstable.202409240640 2024-09-24 07:05:31 +00:00
Kityn
e25e7fc8e5 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-24 01:42:34 -04:00
dependabot[bot]
8d710e08ea Bump rollup from 4.21.3 to 4.22.4
Bumps [rollup](https://github.com/rollup/rollup) from 4.21.3 to 4.22.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.3...v4.22.4)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-24 05:02:14 +00:00
hoanghuy309
abd38b7795 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-09-23 22:42:34 -04:00
grafixeyehero
c5bbd5bca9 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-09-24 04:15:12 +03:00
Jonas Anderberg
27173e90ae Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-09-23 17:41:35 -04:00
Thomas Schwery
2a63186fcb Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-09-23 17:41:35 -04:00
Bill Thornton
659f2876fc Merge pull request #6107 from jellyfin/renovate/jellyfin-libass-wasm-4.x 2024-09-23 17:15:39 -04:00
Jonas Anderberg
6487a00b70 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-09-23 15:31:57 -04:00
renovate[bot]
e5c7aa8802 Update dependency @jellyfin/libass-wasm to v4.2.3 2024-09-23 18:29:06 +00:00
Bill Thornton
bbac44ba7b Merge pull request #6106 from jellyfin/renovate/linters
Update dependency eslint to v8.57.1
2024-09-23 14:25:12 -04:00
Bill Thornton
3ec8b87ff8 Merge pull request #6105 from jellyfin/renovate/webpack
Update dependency babel-loader to v9.2.1
2024-09-23 14:24:00 -04:00
Bill Thornton
00c01a2d37 Merge pull request #6104 from jellyfin/renovate/react
Update dependency @types/react to v18.3.6
2024-09-23 14:23:11 -04:00
Bill Thornton
823e18499e Merge pull request #6028 from thornbill/expand-drawer-section
Update behavior of expanding drawer sections
2024-09-23 13:39:45 -04:00
Bas
af1ec35c9e Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-23 13:21:36 -04:00
Bill Thornton
e3383946b9 Update behavior of expanding drawer sections 2024-09-23 13:12:12 -04:00
Bill Thornton
a2676c25ce Merge pull request #5869 from gnattu/custom-audio-tag
Add non-standard multi-value audio tag support
2024-09-23 12:31:01 -04:00
renovate[bot]
b122fc92a2 Update dependency babel-loader to v9.2.1 2024-09-23 16:29:13 +00:00
renovate[bot]
4cdda6048c Update dependency eslint to v8.57.1 2024-09-23 16:28:57 +00:00
Bill Thornton
3a414a2da3 Merge pull request #5226 from terite/terite-emby-linkbutton
use LinkButton instead of dangerouslySetInnerHTML
2024-09-23 12:27:37 -04:00
Bill Thornton
76bde38e22 Remove unused imports 2024-09-23 12:09:25 -04:00
Bill Thornton
fbbc8a85f3 Revert search suggestion layout change 2024-09-23 12:01:38 -04:00
Bill Thornton
e3fd25cfbd Fix broken import 2024-09-23 12:00:22 -04:00
David Stensland
30bce48c23 use LinkButton in SectionTitleContainer 2024-09-23 11:57:41 -04:00
David Stensland
7011d09b4b use LinkButton in SearchSuggestions 2024-09-23 11:57:15 -04:00
David Stensland
10419dcd48 remove unnecessary escapeHTML in UserCardBox 2024-09-23 11:47:14 -04:00
David Stensland
6eb6d75797 use LinkButton in UserCardBox 2024-09-23 11:47:14 -04:00
David Stensland
b27b559d21 replace LinkEditUserPreferences with LinkButton 2024-09-23 11:47:14 -04:00
Bromteque
68a515c54e Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-23 09:33:45 -04:00
Bromteque
ca2d4592b1 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-23 08:36:54 -04:00
Bromteque
0244f200fd Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-23 08:34:46 -04:00
Bromteque
f4a13efed7 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-23 07:56:12 -04:00
renovate[bot]
f85c14e13d Update dependency @types/react to v18.3.6 2024-09-23 10:17:50 +00:00
l00d3r
b05b444b38 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-23 02:40:51 -04:00
Nyanmisaka
ef936ccfb3 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-22 16:24:32 -04:00
firebird76
15fa3cd03c Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-22 16:24:32 -04:00
hoanghuy309
8db562bf5a Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-09-22 15:06:50 -04:00
hoanghuy309
161b11cb79 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-09-22 14:11:10 -04:00
Andi Chandler
6ad7de3211 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-09-22 06:55:42 -04:00
l00d3r
4278046e77 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-22 03:38:11 -04:00
millallo
9dc397c4ce Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-09-22 03:38:11 -04:00
l00d3r
9b65a5e33d Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-22 03:08:20 -04:00
l00d3r
8d8e54cfb9 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-22 03:05:06 -04:00
l00d3r
19704d9b17 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-22 02:46:38 -04:00
Nyanmisaka
9cfaa19433 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-22 02:46:38 -04:00
Bill Thornton
f381255035 Merge pull request #6095 from nyanmisaka/patch-1 2024-09-22 01:21:19 -04:00
gnattu
f05b90ce1a Fix unnecessary optional chaining
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-22 13:16:52 +08:00
Kityn
c64bfcaa27 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-22 01:16:23 -04:00
gnattu
fb1b9b15bb fix lint
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-22 05:50:10 +08:00
gnattu
43e4c2a517 Better comment 2024-09-22 05:47:50 +08:00
gnattu
1216305992 Refactor sessionPromise 2024-09-22 05:46:54 +08:00
gnattu
fc9485c49d Remove more Promise.Resolve 2024-09-22 05:04:19 +08:00
Bill Thornton
23ee5e62a7 Merge pull request #6082 from thornbill/mixed-icon 2024-09-21 13:58:04 -04:00
gnattu
e4c20df5ae Remove redundant Promise.resolve 2024-09-22 00:41:33 +08:00
gnattu
040b2d4901 Fix Lint
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-22 00:39:24 +08:00
gnattu
2d12aec9b4 Only load subtitle when direct play/remux 2024-09-22 00:36:29 +08:00
Bill Thornton
570f26579f Merge pull request #6099 from nielsvanvelzen/more-sections 2024-09-21 10:44:13 -04:00
l00d3r
6fe3e1814f Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 10:14:06 -04:00
l00d3r
a7032e9eae Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 09:44:49 -04:00
Niels van Velzen
a269dcbc10 Increase amount of home sections from 7 to 10 2024-09-21 15:32:13 +02:00
l00d3r
2d5b0eacff Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 09:09:08 -04:00
l00d3r
a8f160f195 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 09:06:37 -04:00
l00d3r
2725b924b7 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 09:02:20 -04:00
l00d3r
3872f6b2a7 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 08:56:31 -04:00
l00d3r
823b8d3e34 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 08:30:26 -04:00
l00d3r
15d0530266 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-09-21 08:15:15 -04:00
Ignacio Diaz
2ca2b921c1 Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-09-21 07:08:13 -04:00
Nyanmisaka
8d11c09846 Translated using Weblate (Chinese (Simplified Han script))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-21 03:20:29 -04:00
Bas
e2737f5b15 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-21 03:20:29 -04:00
David Stensland
0d90ac39f1 use LinkButton in dashboard/users/SectionTabs 2024-09-21 03:03:01 -04:00
David Stensland
32f835c865 fix LinkButton to prevent default 2024-09-21 02:53:25 -04:00
Bill Thornton
07fe5adc1c Merge pull request #6094 from jellyfin/renovate/typescript
Update dependency typescript to v5.6.2
2024-09-21 02:41:58 -04:00
Bill Thornton
6eeee4f295 Merge pull request #6097 from jellyfin/renovate/tanstack-query-monorepo
Update tanstack-query monorepo to v5.56.2
2024-09-21 02:40:37 -04:00
Bill Thornton
b2b26b9b6f Merge pull request #6092 from jellyfin/renovate/material-ui-monorepo
Update dependency @mui/x-date-pickers to v7.17.0
2024-09-21 02:38:45 -04:00
Bill Thornton
60e3ee2c44 Merge pull request #6091 from jellyfin/renovate/swiper-11.x
Update dependency swiper to v11.1.14
2024-09-21 02:37:06 -04:00
Bill Thornton
6181713817 Merge pull request #6044 from nyanmisaka/update-rkmpp-trickplay
Update string for RKMPP support in Trickplay
2024-09-21 02:35:42 -04:00
renovate[bot]
ccf11ac6ea Update dependency typescript to v5.6.2 2024-09-21 06:35:18 +00:00
Bill Thornton
8ea687ee03 Merge pull request #6089 from jellyfin/renovate/vitest
Update Vitest to v2.1.1
2024-09-21 02:34:02 -04:00
renovate[bot]
0b30df2a26 Update tanstack-query monorepo to v5.56.2 2024-09-21 06:29:34 +00:00
Bill Thornton
c186a0a70d Merge pull request #6088 from jellyfin/renovate/fonts
Update Fonts to v5.1.0
2024-09-21 02:28:48 -04:00
Bill Thornton
0c729d347b Merge pull request #6090 from dmitrylyzo/tizen-dovi
Allow Dolby Vision fallback layer on Tizen 3+
2024-09-21 02:22:46 -04:00
Bill Thornton
46c6fd4b85 Always use default item icon 2024-09-21 02:14:07 -04:00
nyanmisaka
663e48a7a9 Fix more default values
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-21 14:07:13 +08:00
Bill Thornton
56eeda2ced Merge pull request #6096 from theguymadmax/add-year-to-collection 2024-09-21 01:12:10 -04:00
Kityn
9924f6c82c Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-21 01:08:45 -04:00
Bas
791581bfc2 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-20 18:41:35 -04:00
Dmitry Lyzo
aa4004a1be Allow Dolby Vision fallback layer on Tizen 3+ 2024-09-21 01:35:39 +03:00
Bill Thornton
c2aca253f5 Merge pull request #5955 from mprasil/master 2024-09-20 18:29:37 -04:00
Bill Thornton
576dcd85a1 Merge pull request #5990 from scampower3/allow-season-episode-original-title-edit 2024-09-20 17:36:28 -04:00
Bill Thornton
04dbfd30e5 Merge pull request #6027 from viown/fix-double-select
Fix double click to uncheck in multi-select menu
2024-09-20 17:26:41 -04:00
Bas
fb5a7f359c Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-20 16:53:37 -04:00
viown
b5a252e104 missing newline 2024-09-20 16:24:26 -04:00
viown
fb0d1f8a8c Fix double click to de-select 2024-09-20 16:24:26 -04:00
Bill Thornton
f0b50db2ad Merge pull request #6018 from viown/fix-device-name
Prefer custom device name in device access list
2024-09-20 16:14:17 -04:00
gnattu
0dbd659bc4 Fix localization 2024-09-21 04:10:47 +08:00
gnattu
e48321a2c4 Add option to always burn in subtitles if transcoding is triggered 2024-09-21 04:10:46 +08:00
viown
9716578f05 fix merge conflict 2024-09-20 16:09:25 -04:00
Bill Thornton
ef6d9c7241 Merge pull request #5976 from GodTamIt/ff-hdr
Support HDR in Firefox for macOS
2024-09-20 16:04:48 -04:00
Nyanmisaka
f57bda5e02 Fix the hidden software tonemap options
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-21 04:01:09 +08:00
Bill Thornton
6d0f0e85a6 Merge pull request #5688 from Arcus92/native-pgs
Add support for native PGS subtitle rendering without transcoding
2024-09-20 15:55:30 -04:00
theguymadmax
3afa85c218 Show year for movies in collection 2024-09-20 15:53:44 -04:00
Bill Thornton
2617ad783f Merge pull request #6065 from viown/fix-special-episodes-not-played
Fix season play button not including specials
2024-09-20 15:51:23 -04:00
viown
07cb21f13f Fix season play button not playing specials 2024-09-20 15:08:58 -04:00
Bill Thornton
9d8f19f76a Merge pull request #6036 from viown/fix-autocast-hopefully
Fix autocast listener
2024-09-20 15:07:24 -04:00
viown
7b1535073b add log message 2024-09-20 15:01:34 -04:00
viown
5396e3c95c fix merge conflict 2024-09-20 15:01:34 -04:00
Bill Thornton
c33ee1b381 Merge pull request #6081 from nyanmisaka/hevc-rext-hwdec-options
Add HEVC RExt HW decoding options
2024-09-20 14:57:35 -04:00
Bill Thornton
5e17cbe505 Merge pull request #6071 from gnattu/bitrate-control
Separate bitrate control from resolution
2024-09-20 14:55:51 -04:00
Bill Thornton
37c8370d57 Merge pull request #6070 from dmitrylyzo/fix-hotkeys
Make hotkeys strict and prevent default actions for handled ones
2024-09-20 14:47:33 -04:00
Bill Thornton
67b569cc26 Merge pull request #6073 from gnattu/allow-vp9-remux-chrome-firefox
Allow VP9 remuxing for Chrome and Firefox
2024-09-20 14:41:56 -04:00
Bill Thornton
610cbdcee9 Merge pull request #6080 from dmitrylyzo/discard-chrome-safari
Discard `chrome` and `safari` on Tizen and webOS
2024-09-20 14:40:58 -04:00
Bill Thornton
9f1bccb0f2 Merge pull request #6046 from dmitrylyzo/fix-focus
Fix focus indication on tags, artist and album
2024-09-20 14:38:09 -04:00
Bas
02a89369ff Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-20 14:09:49 -04:00
LJQ
f624fa1065 Use full path for imports 2024-09-21 02:00:16 +08:00
Bill Thornton
0e94a5aa3f Merge pull request #5881 from jellyfin/lyrics-library-options
Add lyric fetcher settings to library options
2024-09-20 13:55:12 -04:00
Bill Thornton
dafaf4a967 Merge pull request #6029 from nyanmisaka/dovi-profile10
Add support for DoVi Profile 10
2024-09-20 13:45:52 -04:00
renovate[bot]
f67b34b117 Update Vitest to v2.1.1 2024-09-20 17:07:23 +00:00
renovate[bot]
0aab2e0f3f Update dependency @mui/x-date-pickers to v7.17.0 2024-09-20 14:05:19 +00:00
Lukáš Kucharczyk
e8286bc9d9 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-09-20 04:14:52 -04:00
renovate[bot]
3bd6d4bbd4 Update dependency swiper to v11.1.14 2024-09-20 00:28:38 +00:00
Christopher Tam
362e4c160b Make boolean logic more readable 2024-09-19 19:00:46 -04:00
Christopher Tam
e4fc8e811a Support HDR in Firefox for macOS
Firefox 100 introduced HDR playback:
  * https://www.mozilla.org/en-US/firefox/100.0/releasenotes/

This patches the issue where HDR detection is broken for HDR videos in
VP9 (video codec) in an MP4 container:
  * https://bugzilla.mozilla.org/show_bug.cgi?id=1915265
2024-09-19 19:00:46 -04:00
renovate[bot]
0964ef0d02 Update Fonts to v5.1.0 2024-09-19 21:32:42 +00:00
Bill Thornton
bbbbd0c4f5 Merge pull request #6085 from jellyfin/renovate/jstree-3.x
Update dependency jstree to v3.3.17
2024-09-19 16:31:20 -04:00
Bill Thornton
981c5ef221 Merge pull request #6087 from jellyfin/renovate/react
Update dependency react-router-dom to v6.26.2
2024-09-19 16:29:13 -04:00
Bill Thornton
986338d8af Merge pull request #6086 from jellyfin/renovate/postcss
Update dependency postcss-preset-env to v10.0.3
2024-09-19 16:24:02 -04:00
Bill Thornton
d355ba9aad Merge pull request #6083 from jellyfin/dependabot/npm_and_yarn/vite-5.4.6
Bump vite from 5.3.5 to 5.4.6
2024-09-19 16:20:59 -04:00
Bill Thornton
9b8386d051 Merge pull request #6064 from jellyfin/renovate/material-react-table-2.x
Update dependency material-react-table to v2.13.3
2024-09-19 16:19:02 -04:00
Bill Thornton
3510130608 Merge pull request #6062 from jellyfin/renovate/cssnano-7.x
Update dependency cssnano to v7.0.6
2024-09-19 16:17:33 -04:00
renovate[bot]
aaf92a53dd Update dependency react-router-dom to v6.26.2 2024-09-19 20:15:29 +00:00
Bill Thornton
f0829ed3e6 Merge pull request #6053 from jellyfin/renovate/sass-embedded-1.x
Update dependency sass-embedded to v1.78.0
2024-09-19 16:14:07 -04:00
renovate[bot]
00734e3d5c Update dependency postcss-preset-env to v10.0.3 2024-09-19 20:13:30 +00:00
Bill Thornton
9d34d5948f Merge pull request #6052 from jellyfin/renovate/sass-1.x
Update dependency sass to v1.78.0
2024-09-19 16:12:14 -04:00
Bas
49ec33b325 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-19 10:41:35 -04:00
renovate[bot]
56aa4f02a9 Update dependency jstree to v3.3.17 2024-09-19 14:32:04 +00:00
Bill Thornton
78b08d9cb1 Merge pull request #6051 from jellyfin/renovate/webpack
Update dependency webpack-dev-server to v5.1.0
2024-09-19 10:30:52 -04:00
Bill Thornton
d62089e908 Merge pull request #6047 from jellyfin/renovate/linters
Update Linters
2024-09-19 10:26:59 -04:00
Bill Thornton
15087bf5db Update eslint react 2024-09-19 10:08:39 -04:00
Bill Thornton
7b9e97ce6c Fix eslint comment dependency 2024-09-19 09:58:41 -04:00
stanol
42dba13cb4 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-19 09:32:12 -04:00
Chris Lee
a63128409c Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-19 09:32:12 -04:00
stanol
60f1b711c3 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-19 09:13:51 -04:00
renovate[bot]
848e49eb48 Update Linters 2024-09-19 09:11:27 +00:00
Andi Chandler
db31bac43c Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-09-18 20:41:35 -04:00
無情天
1edb3ab1ca Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-18 16:41:35 -04:00
Bill Thornton
2426342511 Merge pull request #6037 from jellyfin/renovate/tanstack-query-monorepo
Update tanstack-query monorepo to v5.55.4
2024-09-18 15:40:42 -04:00
Bill Thornton
2abc648dcf Fix default icon handling and add tests 2024-09-18 15:31:15 -04:00
David Schulte
e560d37f99 Added PGS support for browsers legacy browsers without OffscreenCanvas or Worker support like webOS 1.2 by updating libpgs. 2024-09-18 19:18:12 +02:00
David Schulte
da0a255bcc Apply suggestions from code review
Removed extra line breaks and using `classList.toggle` instead of `add` and `remove` to simplify code.

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-09-18 19:18:12 +02:00
David Schulte
8753f84335 Added client setting to enable experimental Pgs subtitle renderer. 2024-09-18 19:18:12 +02:00
Balázs Meskó
bed6db28ef Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
2024-09-18 12:41:34 -04:00
Ignacio Diaz
ed5a31b0fb Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-09-18 09:41:34 -04:00
Bas
7ee6f9a2c0 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-18 05:41:35 -04:00
nyanmisaka
ee7879cf76 Hide RExt and 10bit check for VideoToolbox
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-18 16:04:21 +08:00
nyanmisaka
c775769dce Enable 12bit for VideoToolbox
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-18 14:51:44 +08:00
Kityn
52c482ed98 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-18 02:41:35 -04:00
Bas
3e348f94e6 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-18 02:41:35 -04:00
Bill Thornton
e08db55a52 Merge pull request #5950 from gnattu/localization-VideoCodecTagNotSupported 2024-09-17 22:29:26 -04:00
Bill Thornton
cd14a6bcff Use consistent icon names
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-17 17:33:44 -04:00
Bill Thornton
414ae94312 Normalize item icons 2024-09-17 16:40:19 -04:00
dependabot[bot]
8dcb78141d Bump vite from 5.3.5 to 5.4.6
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.5 to 5.4.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-17 19:59:41 +00:00
Bill Thornton
3e494a14d9 Update mixed and collection libraries 2024-09-17 12:39:40 -04:00
Chris Lee
1564c93fbc Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-17 11:41:35 -04:00
grafixeyehero
44ee208768 Backport pull request #6041 from jellyfin-web/release-10.9.z
Fix list view item undefined

Original-merge: 6cae5c2646

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-09-17 10:40:40 -04:00
nyanmisaka
0a10676649 Add HEVC RExt HW decoding options
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-17 19:48:46 +08:00
Dmitry Lyzo
393db341a6 Discard chrome and safari on Tizen and webOS 2024-09-17 13:08:44 +03:00
Chris Lee
0ae080a150 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-17 05:41:35 -04:00
gnattu
d9d2f8d0be Cleanup removed function 2024-09-17 17:05:18 +08:00
gnattu
020dad8867 Increase reference bitrate for high efficiency codecs 2024-09-17 17:01:42 +08:00
gnattu
33a5533b11 Remove unused functions 2024-09-17 12:25:06 +08:00
Chris Lee
e5df4dd56b Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-09-16 09:41:35 -04:00
renovate[bot]
f5343add06 Update tanstack-query monorepo to v5.55.4 2024-09-16 07:37:01 +00:00
Bill Thornton
818f90d05c Merge pull request #6043 from gnattu/fix-enum-transcode
Change encoding preset and play stats for server change
2024-09-16 00:24:16 -04:00
Filipe Motta
1bd6e96e27 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-09-15 20:41:34 -04:00
stanol
fb7889e05e Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-15 16:41:34 -04:00
Nyanmisaka
19a91de079 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-15 13:41:35 -04:00
millallo
d761c946f0 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-09-15 13:41:34 -04:00
Bas
1743356420 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-15 11:41:34 -04:00
Kityn
156e4ba5c3 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-15 09:41:34 -04:00
sand14
76fd9da5e8 Translated using Weblate (Romanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
2024-09-14 21:41:34 -04:00
Bas
685e4efc34 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-14 19:41:34 -04:00
Bill Thornton
e388dbe339 Merge pull request #6068 from thornbill/no-more-redirects 2024-09-14 16:52:12 -04:00
Bill Thornton
6984d1a26d Merge pull request #5978 from gnattu/add-more-livetv-tuner-options 2024-09-14 16:51:53 -04:00
Bill Thornton
51738621f6 Merge pull request #5635 from Shadowghost/enhance-trickplay 2024-09-14 16:51:18 -04:00
gnattu
b2dc11b231 Allow VP9 remuxing for chrome and firefox
Have tested with HLS.js on those clients and works well in fMP4 container
2024-09-14 18:03:19 +08:00
gnattu
2f297971d7 Merge branch 'fork/bitrate-control' 2024-09-14 17:55:26 +08:00
gnattu
28552b2d1a Use pop instead of minBy 2024-09-14 17:55:13 +08:00
gnattu
994118b899 Apply suggestions from code review
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-14 17:42:41 +08:00
gnattu
2bb60e2241 Fix lint 2024-09-14 17:09:03 +08:00
gnattu
16a1416521 Code cleanup 2024-09-14 17:06:37 +08:00
gnattu
4c3095412b Separate bitrate control from resolution 2024-09-14 16:46:02 +08:00
Facu
48e45cf52c Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-09-14 01:41:34 -04:00
Sebastião josé
5def65a118 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-09-13 20:41:34 -04:00
Dmitry Lyzo
edfae1f1b8 Fix focus indication on artist and album
`emby-button` class is used as a flag for `EmbyButton.createdCallback`.
2024-09-14 02:53:14 +03:00
Dmitry Lyzo
61c58d8cb0 Fix focus indication on tags
`emby-button` class is used as a flag for `EmbyButton.createdCallback`.
2024-09-14 02:53:14 +03:00
Dmitry Lyzo
3025e9bf48 Ignore modified hotkeys 2024-09-14 02:03:38 +03:00
Dmitry Lyzo
b2676c1633 Prevent more default actions for hotkeys 2024-09-14 02:01:10 +03:00
Dmitry Lyzo
4c68f500d9 Use keydown event to get actual modifiers 2024-09-14 02:01:09 +03:00
Dmitry Lyzo
d20c617d30 Quit immediately if not ready 2024-09-14 02:00:55 +03:00
Hunter Austin
de71d1ef46 Prevent default actions for hotkeys 2024-09-14 01:37:01 +03:00
David Schulte
c5d3b081cf Updated libpgs to add web-worker support for PGS rendering. 2024-09-13 22:45:13 +02:00
David Schulte
a6732739c5 Respecting local burn-in subtitle setting when checking for PGS support. 2024-09-13 22:45:03 +02:00
David Schulte
febc67f04d Added time offset support for PGS subtitles. 2024-09-13 22:45:01 +02:00
David Schulte
e9aedc3305 Added native PGS (graphical subtitle) rendering for external streams. 2024-09-13 22:44:47 +02:00
xwr
9184f06d79 Translated using Weblate (Galician)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gl/
2024-09-13 14:41:34 -04:00
Bill Thornton
e9464b2c6b Remove broken redirects 2024-09-13 10:17:29 -04:00
gnattu
ee2b5b9035 Don't allow 0 as bitrate
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-13 12:15:54 +08:00
annorberg98
47363822a3 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-09-12 16:41:34 -04:00
longan
9438dcbb4c Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-12 02:41:34 -04:00
renovate[bot]
a493ac8546 Update dependency material-react-table to v2.13.3 2024-09-12 03:50:44 +00:00
gnattu
2a522f795f Fix none hwaccel 2024-09-12 10:52:46 +08:00
Mirito
7eb70445e0 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-09-11 16:41:34 -04:00
Terrorwolf
1fe90b51ef Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-11 16:41:34 -04:00
renovate[bot]
fc0d62f4e7 Update dependency cssnano to v7.0.6 2024-09-11 17:51:40 +00:00
Bill Thornton
335870aa26 Merge pull request #6060 from thornbill/cb7-support
Add support for cbt and cb7 books
2024-09-11 13:51:05 -04:00
Bill Thornton
da6e3d1dda Add support for cbt and cb7 books 2024-09-11 12:54:52 -04:00
Bill Thornton
462d5ac245 Merge pull request #6061 from thornbill/fix-dl-artifact-action
Use correct artifact download action
2024-09-11 12:54:09 -04:00
Bill Thornton
407d470594 Use correct artifact download action 2024-09-11 12:48:46 -04:00
Bill Thornton
cdf0fced8d Merge pull request #6059 from thornbill/babel-cleanup
Cleanup babel plugins
2024-09-11 11:50:12 -04:00
Bill Thornton
d53a41abb6 Cleanup babel plugins 2024-09-11 10:29:30 -04:00
Bill Thornton
ff6cda47e1 Merge pull request #6038 from jellyfin/renovate/libarchive.js-2.x
Update dependency libarchive.js to v2
2024-09-11 10:23:56 -04:00
Bill Thornton
bec74d2949 Fix libarchive bundling 2024-09-11 10:20:11 -04:00
renovate[bot]
304b649d51 Update dependency sass-embedded to v1.78.0 2024-09-11 01:54:07 +00:00
renovate[bot]
18c8a30109 Update dependency sass to v1.78.0 2024-09-11 01:53:51 +00:00
felix920506
5daaf89f74 Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-09-10 19:41:34 -04:00
queeup
15dbf563de Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-09-10 17:41:35 -04:00
Andi Chandler
9d1160b745 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-09-10 17:41:34 -04:00
renovate[bot]
7f334b09db Update dependency webpack-dev-server to v5.1.0 2024-09-10 20:21:53 +00:00
queeup
adeb2dcfbe Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-09-10 15:41:34 -04:00
Bas
96d49946c9 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-10 15:41:34 -04:00
stanol
a77731789d Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-10 12:41:34 -04:00
Nyanmisaka
0bcdc985ed Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-10 10:41:34 -04:00
mario
1fb2d77629 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-10 10:41:34 -04:00
Lukáš Kucharczyk
87e197b465 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-09-10 06:41:34 -04:00
Kityn
23e624bd8e Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-10 04:41:34 -04:00
gnattu
10a8dead0c Fix i18n after rebasing 2024-09-10 10:44:26 +08:00
grafixeyehero
1c18fa8fb2 apply suggestion
Co-authored-by: dmitrylyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-10 04:46:48 +03:00
Shadowghost
848d2dbc36 Fixup 2024-09-09 21:02:50 +02:00
Bas
94491fcdfa Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-09 14:41:34 -04:00
gnattu
cd3ef93a6c Use classList.toggle 2024-09-10 02:38:06 +08:00
gnattu
20360b5786 Make Live TV compatibility profiles customizable 2024-09-10 02:38:05 +08:00
Bill Thornton
a014f2775e Fix wasm paths 2024-09-09 14:03:17 -04:00
Bill Thornton
143fac6ac6 Merge pull request #6042 from jellyfin/renovate/sortablejs-1.x
Update dependency sortablejs to v1.15.3
2024-09-09 13:56:28 -04:00
Cody Robibero
6c39c5d9b8 Apply suggestions from code review
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-09-09 11:53:52 -06:00
Shadowghost
cec6dd14ff Apply review suggestions 2024-09-09 19:08:43 +02:00
Shadowghost
83f9307a2c Enhance trickplay 2024-09-09 19:05:55 +02:00
Bill Thornton
8720589ac8 Merge pull request #5986 from gnattu/add-audio-compatability-options
Add audio options to workaround compatability problems
2024-09-09 12:54:43 -04:00
nyanmisaka
944df7b433 Update string for RKMPP support in Trickplay
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-09 21:09:34 +08:00
Lea3D
c498259bec Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-09 08:41:34 -04:00
gnattu
db972f84dc Hide hardware acceleration type in playstats 2024-09-09 16:41:02 +08:00
gnattu
49ae4c3f40 FIx auto preset in enum 2024-09-09 16:40:48 +08:00
Tokogc
6deffc3503 Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
2024-09-08 20:41:34 -04:00
Federico Abella
0239a6faa3 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-09-08 20:41:34 -04:00
grafixeyehero
49b0ba3071 apply suggestion
Co-authored-by: dmitrylyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-09 02:30:21 +03:00
renovate[bot]
6a65a08480 Update dependency sortablejs to v1.15.3 2024-09-08 23:10:58 +00:00
Nyanmisaka
a207a305a2 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-08 17:41:34 -04:00
Jolter
a203857a4c Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-09-08 17:41:34 -04:00
Nyanmisaka
10d615c4d0 Apply suggestions from code review
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-09 04:33:39 +08:00
grafixeyehero
690b1fbed5 Add detail view buttons 2024-09-08 20:15:20 +03:00
grafixeyehero
f7fcf44f94 Add global Api hooks 2024-09-08 20:12:37 +03:00
renovate[bot]
23f2861c89 Update dependency libarchive.js to v2 2024-09-08 14:59:32 +00:00
Bill Thornton
2b51931a5f Merge pull request #5999 from jellyfin/renovate/babel 2024-09-08 10:52:26 -04:00
renovate[bot]
d8c37a5230 Update Babel to v7.25.4 2024-09-08 14:43:27 +00:00
Bill Thornton
a09d8e23b9 Merge pull request #5973 from jellyfin/renovate/core-js-3.x 2024-09-08 10:41:48 -04:00
Bill Thornton
d2f65ef423 Merge pull request #5979 from jellyfin/renovate/emotion-monorepo 2024-09-08 10:37:42 -04:00
Bill Thornton
21f2b1023b Merge pull request #5980 from jellyfin/renovate/swiper-11.x 2024-09-08 10:28:20 -04:00
Bill Thornton
741cf30a97 Merge pull request #6014 from jellyfin/renovate/jsdom-25.x 2024-09-08 10:25:11 -04:00
renovate[bot]
cf6e64fa1a Update dependency swiper to v11.1.12 2024-09-08 14:22:47 +00:00
Bill Thornton
d344d0e23f Merge pull request #6030 from jellyfin/renovate/react 2024-09-08 10:22:11 -04:00
gnattu
f6efaaf379 Move Normalization to AudioAdvanced Section 2024-09-08 22:14:20 +08:00
gnattu
e810ec3cd9 Add audio options to workaround compatability problems 2024-09-08 22:14:19 +08:00
Bill Thornton
62afe95038 Merge pull request #6033 from jellyfin/renovate/material-ui-monorepo 2024-09-08 10:10:52 -04:00
Lukáš Kucharczyk
d4467424a0 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-09-08 06:41:34 -04:00
Nguyễn Hữu Duy
e647562dd1 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-09-08 04:41:34 -04:00
Bill Thornton
e006d546bf Merge pull request #6035 from jellyfin/renovate/peter-evans-create-pull-request-7.x 2024-09-08 03:45:23 -04:00
Bill Thornton
b6aba44c57 Merge pull request #6032 from jellyfin/renovate/linters 2024-09-08 03:42:44 -04:00
Bill Thornton
4cf21e36bb Merge pull request #6031 from jellyfin/renovate/material-react-table-2.x 2024-09-08 03:39:29 -04:00
renovate[bot]
249d99e991 Update dependency jsdom to v25 2024-09-08 07:37:03 +00:00
renovate[bot]
f797aa3457 Update peter-evans/create-pull-request action to v7 2024-09-08 07:35:31 +00:00
renovate[bot]
ecb0502d67 Update dependency @mui/x-date-pickers to v7.15.0 2024-09-08 07:34:16 +00:00
renovate[bot]
35dd0ce82e Update Linters 2024-09-08 07:33:59 +00:00
Bill Thornton
9b98cb0147 Merge pull request #5967 from jellyfin/renovate/webpack 2024-09-08 03:33:48 -04:00
renovate[bot]
a94b6b8c66 Update dependency material-react-table to v2.13.2 2024-09-08 07:33:08 +00:00
Bill Thornton
e06a2ce78d Merge pull request #5974 from jellyfin/renovate/tanstack-query-monorepo 2024-09-08 03:32:59 -04:00
renovate[bot]
1da4d73449 Update dependency core-js to v3.38.1 2024-09-08 07:32:36 +00:00
renovate[bot]
06703fe338 Update dependency @types/react to v18.3.5 2024-09-08 07:32:20 +00:00
renovate[bot]
23d37a2c5b Update dependency @emotion/react to v11.13.3 2024-09-08 07:32:07 +00:00
renovate[bot]
209d1a2529 Update Webpack 2024-09-08 07:30:09 +00:00
Bill Thornton
8d958298df Merge pull request #5981 from jellyfin/renovate/npm-webpack-vulnerability 2024-09-08 03:27:22 -04:00
Bill Thornton
3e26d4100f Merge pull request #6017 from jellyfin/update-jf-sdk 2024-09-08 03:25:36 -04:00
jellyfin-bot
ebc53f06eb Update @jellyfin/sdk to 0.0.0-unstable.202409080303 2024-09-08 07:05:24 +00:00
Kityn
5e2d6b7475 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-08 02:41:34 -04:00
yuygfgg
e5c3d553d5 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-07 23:41:34 -04:00
Bas
6fc7df46c2 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-07 23:41:34 -04:00
Bill Thornton
b37766e273 Merge pull request #6024 from thornbill/no-app-router 2024-09-07 21:57:55 -04:00
Bill Thornton
ee29a98aef Merge pull request #6020 from thornbill/tag-list-view 2024-09-07 21:57:22 -04:00
Bill Thornton
c80e0fde0c Merge pull request #5901 from gnattu/safari-hi10p 2024-09-07 21:53:01 -04:00
tcely
2aabb13640 Backport pull request #6016 from jellyfin-web/release-10.9.z
Show slideshow controls when touched

Original-merge: 2682098f61

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:37 -04:00
thornbill
3709b99d33 Backport pull request #6015 from jellyfin-web/release-10.9.z
Fix touch events in experimental video player

Original-merge: 6b1352a855

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:36 -04:00
thornbill
67201033c6 Backport pull request #6013 from jellyfin-web/release-10.9.z
Fix autocast when already connected

Original-merge: a1721ddd17

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:35 -04:00
thornbill
5b1ab478c1 Backport pull request #6012 from jellyfin-web/release-10.9.z
Hide studios for collections and playlists

Original-merge: 7d30057c37

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:33 -04:00
thornbill
819537da0f Backport pull request #6011 from jellyfin-web/release-10.9.z
Fix network mode for localhost server

Original-merge: b9925ebf73

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:32 -04:00
nyanmisaka
5eb91ea398 Backport pull request #5983 from jellyfin-web/release-10.9.z
Fix overly strict dovi level testing

Original-merge: 2ebf0c9fe4

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:31 -04:00
dmitrylyzo
5e33b983a5 Backport pull request #5972 from jellyfin-web/release-10.9.z
Apply Maximum Allowed Audio Channels to DirectPlay

Original-merge: 20ea6041a7

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:30 -04:00
viown
cf9af1f392 Backport pull request #5949 from jellyfin-web/release-10.9.z
Fix play all & shuffle not working on genres

Original-merge: ef00d439b1

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:07:29 -04:00
fabriciodeuner
d0a749b76c Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-09-07 13:41:35 -04:00
fabriciodeuner
091307bc5e Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-09-07 13:41:34 -04:00
Lukáš Kucharczyk
49c2a0f08c Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-09-07 13:41:34 -04:00
bene toffix
c7f8af39f7 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-09-07 11:41:34 -04:00
nyanmisaka
6660f57d98 Add support for DoVi Profile 10
Profile 10 spec covers DoVi video with and without the fallback layer.

For now, once a device reports support for dav1.10, it is assumed that
the device supports them all.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-07 22:21:39 +08:00
Jolter
708b1654d2 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-09-07 08:41:34 -04:00
Bas
b7e56578ed Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-07 05:41:34 -04:00
Bill Thornton
ce182d286b Remove unused context variable 2024-09-07 01:54:55 -04:00
Bill Thornton
4bcbf65d1f Merge pull request #5997 from dmitrylyzo/fix-legacy-devtools
Fix @tanstack/query-devtools on legacy browsers
2024-09-06 12:22:38 -04:00
Bill Thornton
99b2bd4f6e Remove app router routing 2024-09-06 11:41:58 -04:00
stanol
d532b9419c Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-06 08:41:34 -04:00
renovate[bot]
eec2db6abd Update tanstack-query monorepo to v5.53.1 2024-09-06 10:52:38 +00:00
Bas
a805e0b042 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-09-06 04:41:34 -04:00
Nyanmisaka
b3b6b01619 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-05 19:41:34 -04:00
Jesus Lopez Reynosa
8d662ddb87 Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_MX/
2024-09-05 19:41:34 -04:00
Kityn
c85fb80618 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-05 14:41:34 -04:00
Andreas Hantschel
b3e92b606f Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-05 14:41:34 -04:00
Dmitry Lyzo
0fbfda882d Don't use devtools on the TV as the navigation is weird 2024-09-05 21:21:59 +03:00
Dmitry Lyzo
ea27750d7d Fix @tanstack/query-devtools on legacy browsers 2024-09-05 21:21:59 +03:00
Bill Thornton
c1cfe7c2e9 Merge pull request #6023 from gnattu/update-sw-tonemap-i18n
Update software tonemap help text to mention dovi
2024-09-05 12:23:46 -04:00
MattiaPell
a709c624b2 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-09-05 06:41:34 -04:00
Bill Thornton
f4a872d780 Merge pull request #6001 from thornbill/table-filters 2024-09-05 00:03:34 -04:00
gnattu
b1c853c06a Update software tonemap help text to mention dovi 2024-09-05 08:59:17 +08:00
Victor Sueiro
0580e13dc8 Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-09-04 19:41:34 -04:00
RobotFK
9d6e266cf8 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-04 14:41:34 -04:00
Cody Robibero
96e49dadd4 set default values for getting the list of ordered plugins 2024-09-04 11:28:58 -06:00
Bill Thornton
a1f5788c9a Merge pull request #6003 from grafixeyehero/Fix-library-tabs-translate
Fix library tabs translate on experimental layout
2024-09-04 13:07:19 -04:00
LJQ
c02b1e651f Apply suggestion 2024-09-05 01:06:26 +08:00
Bill Thornton
e528847b7c Merge pull request #5938 from grafixeyehero/Add-SecondaryMediaInfo&Stats
Add Secondary Media Info & Media Info Stats
2024-09-04 12:25:52 -04:00
Bill Thornton
b11f4fa4b1 Add tag type for list view 2024-09-04 11:55:18 -04:00
無情天
f9617f6409 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-09-04 09:41:34 -04:00
Andi Chandler
ef7018c3e5 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-09-04 09:41:33 -04:00
Bill Thornton
d01cfa498b Add tag support to list view 2024-09-04 08:39:10 -04:00
stanol
f591296bfe Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-04 06:41:33 -04:00
Kityn
ed4a70494c Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-09-04 02:41:34 -04:00
Lukáš Kucharczyk
d4d6119a9d Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-09-04 02:41:34 -04:00
Bill Thornton
c8db463868 Merge pull request #5987 from gnattu/limit-opus-to-safari17
Limit opus support to Safari 17
2024-09-03 16:45:51 -04:00
Bill Thornton
d4784bd089 Merge pull request #5985 from gnattu/new-tonemap-modes
Add new tonemap mode options
2024-09-03 16:42:42 -04:00
renovate[bot]
eaba08c229 Update dependency webpack to v5.94.0 [SECURITY] 2024-09-03 20:06:55 +00:00
Bill Thornton
4077ee3009 Merge pull request #5996 from jellyfin/update-jf-sdk 2024-09-03 16:06:08 -04:00
Cody Robibero
00e002faeb Add lyric fetcher settings to library options 2024-09-03 15:59:15 -04:00
Bill Thornton
722010a960 Merge pull request #5966 from p0358/patch-hidden-tasks-error
Fix hidden scheduled task progress updates causing errors
2024-09-03 15:56:53 -04:00
Bill Thornton
411fff219c Merge pull request #5893 from Narfinger/master
Show error when library ids are invalid
2024-09-03 15:51:17 -04:00
venkata nadha reddy
6bee8694a2 Include The Name Of The TV Show while displaying Episodes In Playlists. (#5778)
* Include The Name Of The TV Show while displaying Episodes In Playlists.

* Include The Name Of The TV Show while displaying Episodes In Collections.

* Undoing Carbuilder changes.

* Undoing itemHelper changes

* change in playlistViewer using showParentTitle
2024-09-03 15:47:30 -04:00
stanol
78fba289f2 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-09-03 14:41:33 -04:00
Skycro
3ecfda5292 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-09-03 11:41:34 -04:00
Jonas Jensen
e13cd21924 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-09-03 11:41:33 -04:00
Bill Thornton
24129e0e98 Merge pull request #5995 from jwaresoft/5968-create-library-modal-disappears-no-library
Fix create library crashing when no path specified
2024-09-03 09:42:26 -04:00
Facu
d5a50e6eb0 Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
2024-09-03 04:41:33 -04:00
jellyfin-bot
736da16ecd Update @jellyfin/sdk to 0.0.0-unstable.202409030501 2024-09-03 07:05:34 +00:00
Vilhelm Prytz
54c1f05a41 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-09-03 02:41:33 -04:00
Nikhit Kumar
34b535a83d Translated using Weblate (Malayalam)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ml/
2024-09-02 13:41:33 -04:00
Bill Thornton
1b1a9c93db Merge pull request #5994 from jellyfin/renovate/ci-deps 2024-09-02 01:51:43 -04:00
renovate[bot]
ea42a6c58f Update CI dependencies 2024-09-02 01:07:48 +00:00
Pierre Bidet
f259c6911d Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-09-01 09:41:34 -04:00
uxdesignerhector
ec04ae9be2 Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-09-01 09:41:33 -04:00
Josh Hood
718faac423 Translated using Weblate (Cornish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/kw/
2024-08-31 02:41:33 -04:00
Tushar Joshi
0997ef3f4e Translated using Weblate (Gujarati)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gu/
2024-08-31 02:41:33 -04:00
Josh Hood
770d7dfe98 Translated using Weblate (Cornish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/kw/
2024-08-30 17:41:33 -04:00
Martin Clüwer Slåtsve
03590e0f8f Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nb_NO/
2024-08-30 17:41:33 -04:00
grafixeyehero
395a51cfa0 Fix tabs translate on experimental layout 2024-08-30 23:05:22 +03:00
Josh Hood
76ccfb0df9 Translated using Weblate (Cornish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/kw/
2024-08-30 14:41:33 -04:00
Josh Hood
957c1d09d0 Added translation using Weblate (Cornish) 2024-08-30 13:35:56 -04:00
Bill Thornton
1a939fe473 Add level and user filters 2024-08-30 12:04:40 -04:00
Bill Thornton
07bb315bb3 Add date filter to activity table 2024-08-30 10:13:19 -04:00
Bill Thornton
aaa116d218 Merge pull request #5763 from jellyfin/renovate/material-ui-monorepo 2024-08-30 09:02:05 -04:00
renovate[bot]
0558c77fc3 Update material-ui monorepo to v5.16.7 2024-08-30 12:41:58 +00:00
Bill Thornton
7c3270725e Merge pull request #5970 from thornbill/material-react-table 2024-08-30 08:40:54 -04:00
Lukáš Kucharczyk
e5bb45d7be Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-08-30 06:41:33 -04:00
Andi Chandler
e0641ee97f Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-08-29 18:41:33 -04:00
jwaresoft
1669b0aee8 5968: move prevent default to top to prevent modal from crashing with promise 2024-08-29 12:23:47 -07:00
Nyanmisaka
2a7edf12fb Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-29 14:41:33 -04:00
Louis Engell
c0e0f98cce Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-08-29 14:41:33 -04:00
hoanghuy309
85988fcd50 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-08-29 12:41:33 -04:00
Humam
4880efe824 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
2024-08-29 12:41:33 -04:00
Bill Thornton
ff18bedca7 Fix column visibility toggles 2024-08-29 11:20:44 -04:00
Kityn
968696b2a0 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-08-29 09:41:33 -04:00
Bas
6d092ce204 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-29 09:41:33 -04:00
Bill Thornton
31e54c05ad Merge pull request #5988 from jellyfin/renovate/hls.js-1.x 2024-08-29 09:04:18 -04:00
Bill Thornton
2fa1a3b355 Merge pull request #5989 from jellyfin/update-jf-sdk 2024-08-29 08:05:09 -04:00
Bill Thornton
bfc37b4171 Refactor LogLevelCell 2024-08-29 07:59:01 -04:00
Bill Thornton
10662fc013 Merge pull request #5992 from nyanmisaka/show-rotation-mediainfo 2024-08-29 07:41:53 -04:00
millallo
5cd3c528eb Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-08-29 07:41:33 -04:00
nyanmisaka
00876950d1 Adjust the order of transcoding fps and speed ratio
This item corresponds to `TranscodingInfo.Framerate`, so put speed ratio at the end.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-08-29 16:08:34 +08:00
nyanmisaka
0127a3c660 Show video rotation in mediainfo
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-08-29 16:03:36 +08:00
lostbit
a077fd21cc Add default choice to collection display order 2024-08-29 09:54:12 +02:00
LJQ
e34c10644e Rm Trailing spaces 2024-08-29 15:19:48 +08:00
LJQ
8d8362158c restore newline 2024-08-29 15:15:44 +08:00
LJQ
872d71df3d Allow editing of original title for Season and Episode items 2024-08-29 15:14:57 +08:00
jellyfin-bot
25eceaecd9 Update @jellyfin/sdk to 0.0.0-unstable.202408290501 2024-08-29 07:06:13 +00:00
Tushar Joshi
91d3a9b161 Translated using Weblate (Gujarati)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gu/
2024-08-29 02:41:33 -04:00
Nguyen Thanh
0cc6f9e71d Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-08-29 02:41:33 -04:00
renovate[bot]
ab72232968 Update dependency hls.js to v1.5.15 2024-08-29 05:07:20 +00:00
gnattu
79bea95557 Limit opus support to Safari 17 2024-08-29 10:24:11 +08:00
gnattu
15174b90e5 Add new tonemap mode options 2024-08-29 08:21:09 +08:00
無情天
86acd74617 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-28 19:41:33 -04:00
Bill Thornton
2cb2c97fe9 Merge pull request #5984 from thornbill/refactor-settings-hook
Add user settings context
2024-08-28 17:36:27 -04:00
Bill Thornton
aef4a42f8e Add user settings hook 2024-08-28 16:30:02 -04:00
PaneradFisk
4905ec09ae Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-08-28 14:41:33 -04:00
Fedor M
b92059a5be Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-08-28 12:41:33 -04:00
Bill Thornton
af834e4071 Merge pull request #5975 from jellyfin/renovate/react
Update dependency @types/react to v18.3.4
2024-08-28 11:00:22 -04:00
Bill Thornton
fa0f420250 Merge pull request #5977 from jellyfin/update-jf-sdk
Update @jellyfin/sdk to 0.0.0-unstable.202408280502
2024-08-28 10:59:29 -04:00
jalmartonsau
9189b2d144 Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-08-28 08:41:33 -04:00
stanol
29bbd5d772 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-08-28 08:41:33 -04:00
jellyfin-bot
f5bf795f1f Update @jellyfin/sdk to 0.0.0-unstable.202408280502 2024-08-28 07:05:13 +00:00
Tushar Joshi
a4721b1203 Translated using Weblate (Gujarati)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gu/
2024-08-28 02:41:35 -04:00
Kityn
df2af17a90 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-08-28 02:41:34 -04:00
Bas
683c6a7c98 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-28 02:41:34 -04:00
Lukáš Kucharczyk
82d41b0836 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-08-28 02:41:33 -04:00
Tushar Joshi
e9d15a6f4b Added translation using Weblate (Gujarati) 2024-08-28 01:13:42 -04:00
felix920506
5644b9d6ca Change "Last Seen" to "Last Logged In" to reduce confusion when translating (#5953) 2024-08-27 22:40:17 -04:00
Fedor M
8f0c6275c5 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-08-27 21:41:33 -04:00
Bas
5d51048ed4 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-27 18:41:33 -04:00
p0358
edbf5962f8 Fix hidden scheduled task progress updates causing errors 2024-08-27 23:42:44 +02:00
Bill Thornton
9c2b6d5e69 Merge pull request #5604 from scampower3/reset-metadata
Add button to reset metadata in metadata editor
2024-08-27 16:54:08 -04:00
renovate[bot]
287bd48923 Update dependency @types/react to v18.3.4 2024-08-27 20:40:11 +00:00
Bill Thornton
9b436be72f Fix hook file extensions 2024-08-27 12:41:47 -04:00
Bill Thornton
ef20060e81 Remove @mui/x-data-grid dependency 2024-08-27 12:41:47 -04:00
Bill Thornton
cb906678e6 Refactor cell components 2024-08-27 12:41:47 -04:00
Bill Thornton
c7ed7ed48f Fix activity log hooks 2024-08-27 12:41:47 -04:00
Bill Thornton
694ba9718d Migrate to material react table 2024-08-27 12:41:47 -04:00
Bill Thornton
6b4ad3717f Merge pull request #5727 from bu3alwa/refactor-activity-dashboard
Refactor activity page to use react query requests
2024-08-27 09:07:27 -04:00
Bill Thornton
9960826c9c Merge pull request #5971 from jellyfin/update-jf-sdk 2024-08-27 08:53:58 -04:00
jellyfin-bot
0b0696cdfc Update @jellyfin/sdk to 0.0.0-unstable.202408270502 2024-08-27 07:05:01 +00:00
Narfinger
fb82c25358 Update src/strings/en-us.json
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-27 10:35:47 +09:00
Bill Thornton
d32a431cab Merge pull request #5964 from jellyfin/renovate/tanstack-query-monorepo 2024-08-26 08:48:48 -04:00
LJQ
3b7d159749 Add suggestions 2024-08-26 19:50:04 +08:00
renovate[bot]
92a25b2364 Update tanstack-query monorepo to v5.51.24 2024-08-26 11:18:05 +00:00
Bill Thornton
8b463b71ea Merge pull request #5962 from jellyfin/update-jf-sdk 2024-08-26 07:16:36 -04:00
Nyanmisaka
698eb9f08f Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-26 06:41:33 -04:00
jellyfin-bot
44989be588 Update @jellyfin/sdk to 0.0.0-unstable.202408260501 2024-08-26 07:05:45 +00:00
toryacode
9a24c2fbd1 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-08-25 15:41:33 -04:00
Bill Thornton
3256c179c0 Merge pull request #5954 from jellyfin/update-jf-sdk 2024-08-25 14:50:07 -04:00
Bill Thornton
59c5a5a41c Merge pull request #5957 from jellyfin/renovate/postcss 2024-08-25 14:49:39 -04:00
renovate[bot]
6733d606eb Update dependency postcss-preset-env to v10.0.2 2024-08-25 18:33:42 +00:00
gnattu
03eb42a8cf Reorder safari hi10p profile before normal profile 2024-08-26 00:12:37 +08:00
Miroslav Prasil
fd18c3e600 Support for Home and Search media keys in TV mode
The remote I have has some extra "media" buttons besides the already
supported playback controls.

This adds support for "Find" button to navigate to search page and
"BrowserHome" button to navigate back to main screen.

Adding these to the `NavigationKeys` only enables functionality for TV
mode which I think is pretty reasonable constraint - on actual desktop
people might prefer to use these keys to control the browser rather than
Jellyfin interface.
2024-08-25 10:46:43 +00:00
Wen
14fd036f93 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-08-25 06:41:33 -04:00
Justin
27c7324692 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-08-25 06:41:33 -04:00
aky
f1aae0e9ae Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-08-25 04:41:33 -04:00
jellyfin-bot
3e79184255 Update @jellyfin/sdk to 0.0.0-unstable.202408250502 2024-08-25 07:05:00 +00:00
gnattu
286f9ab4e0 Backport pull request #5923 from jellyfin-web/release-10.9.z
Fix safari volume being reset when track changed

Original-merge: 6a8f21e462

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-08-25 02:47:28 -04:00
gnattu
cceb1a5935 Backport pull request #5920 from jellyfin-web/release-10.9.z
Fix Safari volume control

Original-merge: 90236c25ee

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-08-25 02:47:25 -04:00
viown
9a3cba06d1 Backport pull request #5915 from jellyfin-web/release-10.9.z
Fix incorrect initial play icon in remote control section

Original-merge: 8bc954468a

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-08-25 02:47:23 -04:00
viown
dc8f9586c4 Backport pull request #5817 from jellyfin-web/release-10.9.z
Fix undefined serverId in Person card

Original-merge: d47023855e

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-08-25 02:47:21 -04:00
felix920506
51d2cc19b8 Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-08-24 16:41:33 -04:00
Daniel
50d84f665c Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-08-24 16:41:32 -04:00
stanol
258404f5a5 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-08-24 11:41:33 -04:00
Fedor M
25e7e700db Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-08-24 11:41:33 -04:00
Bill Thornton
50cb39ae68 Merge pull request #5952 from jellyfin/update-jf-sdk 2024-08-24 10:30:35 -04:00
S. Blind
6a566889cf Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-08-24 06:41:33 -04:00
Lukáš Kucharczyk
831a0c751e Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-08-24 06:41:33 -04:00
jellyfin-bot
dc752a0b52 Update @jellyfin/sdk to 0.0.0-unstable.202408240501 2024-08-24 07:05:17 +00:00
Bill Thornton
808ef42aff Merge pull request #5951 from jellyfin/renovate/ci-deps 2024-08-24 00:46:45 -04:00
renovate[bot]
e340336c18 Update github/codeql-action action to v3.26.5 2024-08-24 02:44:21 +00:00
grafixeyehero
b681e5a1c8 Removed unused prop 2024-08-24 04:31:25 +03:00
gnattu
e498c77e51 Add localization entry for VideoCodecTagNotSupported 2024-08-24 07:46:56 +08:00
Kityn
d595456f3d Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-08-23 19:41:33 -04:00
Andi Chandler
cc29ab15cb Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-08-23 19:41:33 -04:00
Bas
94e1f5e01f Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-23 16:41:32 -04:00
Bill Thornton
e20b2595bb Merge pull request #5948 from thornbill/refactor-display-prefs 2024-08-23 14:55:28 -04:00
Bas
3a54cb2f94 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-23 14:30:32 -04:00
gnattu
4f630eeb26 Enable software tonemapping options (#5784)
* Enable software tonemappin options

* Remove debugging log

* Apply suggestions from code review

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>

* use "camelCase" for CSS classes

* use toggle for switching

* no comments

---------

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-23 14:30:28 -04:00
DrWarpMan
5bd61d82a3 Fix redirect after deleting item (#5930)
* Fix redirect after deleting item

Redirects to the parent of an item instead of homepage after deleting the item

* Revert "Fix redirect after deleting item"

This reverts commit 6e36915f5e510ca3dc67a0a713322baec2ec159e.

* Fix redirect after deleting item

Redirects to the parent of an item instead of homepage
after deleting the item
2024-08-23 14:17:59 -04:00
Bill Thornton
18ddf4956a Merge pull request #5944 from jellyfin/renovate/major-postcss
Update dependency postcss-preset-env to v10
2024-08-23 13:28:56 -04:00
Bill Thornton
a649b1233e Merge pull request #5151 from kevgrig/movetotopbottom
Add move to top and bottom context menu options
2024-08-23 13:24:13 -04:00
Bill Thornton
dd8b9e4bc1 Merge pull request #5800 from gnattu/trickplay-KeyFrameOnlyExtraction
Add trickplay key frame only extraction option
2024-08-23 13:19:48 -04:00
Bill Thornton
9f1bd7759d Refactor experimental display preferences structure 2024-08-23 13:03:30 -04:00
Bill Thornton
cba03b0356 Merge pull request #5947 from jellyfin/update-jf-sdk 2024-08-23 08:02:12 -04:00
Ovidiu Popa
43f994a813 Translated using Weblate (Romanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
2024-08-23 07:41:32 -04:00
jellyfin-bot
2ef2e382fb Update @jellyfin/sdk to 0.0.0-unstable.202408230502 2024-08-23 07:06:14 +00:00
psparro
cdec8246b2 Translated using Weblate (Hindi)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hi/
2024-08-23 00:41:32 -04:00
Kevin G
40074c6433 Fix playlist item count variable name
Signed-off-by: Kevin G <kevin@myplaceonline.com>
2024-08-22 16:56:38 -04:00
Kevin G
f3ca76e418 Add move to top and bottom context menu options
After adding an item to a playlist, I often want to move it to
the top and it's tedious to drag and drop if the playlist is large.
This adds 'Move to Top' and 'Move to Bottom' options to a playlist
item context menu.
2024-08-22 16:56:38 -04:00
Bill Thornton
a872bce1cf Merge pull request #5946 from jellyfin/renovate/react 2024-08-22 16:31:58 -04:00
stanol
98d3b97404 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-08-22 14:41:32 -04:00
renovate[bot]
fc6499ea4b Update dependency react-router-dom to v6.26.1 2024-08-22 16:58:11 +00:00
Martin Just
7acb8d2c14 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-08-22 10:41:32 -04:00
Bill Thornton
dfdfb5d6ae Merge pull request #5945 from jellyfin/update-jf-sdk 2024-08-22 09:29:55 -04:00
jellyfin-bot
d7e566d0ae Update @jellyfin/sdk to 0.0.0-unstable.202408220501 2024-08-22 07:06:24 +00:00
hoanghuy309
31ca7c48a5 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-08-22 02:41:33 -04:00
Kityn
7a0cdeb377 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-08-22 02:41:33 -04:00
Lukáš Kucharczyk
c4eebbe796 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-08-22 02:41:32 -04:00
Bill Thornton
1e432c4fba Merge pull request #5943 from jellyfin/renovate/core-js-3.x 2024-08-22 00:25:14 -04:00
renovate[bot]
39d867ae59 Update dependency postcss-preset-env to v10 2024-08-22 04:05:52 +00:00
renovate[bot]
48bbd83ba7 Update dependency core-js to v3.38.0 2024-08-22 04:05:30 +00:00
Bill Thornton
5fe6ffb9f6 Merge pull request #5866 from jellyfin/renovate/babel 2024-08-22 00:04:16 -04:00
Bill Thornton
68f8ea4813 Merge pull request #5867 from jellyfin/renovate/major-webpack 2024-08-21 23:45:15 -04:00
Bill Thornton
a89b550933 Merge pull request #5864 from jellyfin/renovate/swiper-11.x 2024-08-21 23:43:34 -04:00
Adam
82702d61a5 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-08-21 23:41:32 -04:00
renovate[bot]
192272064a Update dependency sass-loader to v16 2024-08-22 03:31:52 +00:00
renovate[bot]
bb5f182879 Update Babel 2024-08-22 03:31:36 +00:00
renovate[bot]
4a7f3998b7 Update dependency swiper to v11.1.9 2024-08-22 03:31:18 +00:00
Bill Thornton
4528fead30 Merge pull request #5902 from jellyfin/renovate/autoprefixer-10.x 2024-08-21 23:28:45 -04:00
Bill Thornton
81c44d0d3e Merge pull request #5941 from jellyfin/renovate/hls.js-1.x 2024-08-21 23:27:25 -04:00
Bill Thornton
03d92be22c Merge pull request #5942 from jellyfin/renovate/ci-deps 2024-08-21 23:25:07 -04:00
renovate[bot]
fc20c645e0 Update github/codeql-action action to v3.26.4 2024-08-22 03:03:24 +00:00
renovate[bot]
aab11ff52b Update dependency hls.js to v1.5.14 2024-08-22 03:03:16 +00:00
renovate[bot]
f2cdfded74 Update dependency autoprefixer to v10.4.20 2024-08-22 03:03:00 +00:00
Bill Thornton
6ba8e1410c Merge pull request #5940 from jellyfin/renovate/cssnano-7.x 2024-08-21 23:01:36 -04:00
Bill Thornton
4c7a2b0104 Merge pull request #5939 from jellyfin/renovate/fonts 2024-08-21 22:57:47 -04:00
Bill Thornton
c1570bf3d2 Merge pull request #5887 from jellyfin/renovate/react-hook-resize-observer-2.x 2024-08-21 22:53:27 -04:00
renovate[bot]
ac1081ed8f Update dependency cssnano to v7.0.5 2024-08-22 02:46:24 +00:00
Bill Thornton
6f3603982a Merge pull request #5903 from jellyfin/renovate/react 2024-08-21 22:45:01 -04:00
renovate[bot]
3470cd70aa Update dependency @react-hook/resize-observer to v2.0.2 2024-08-22 02:44:36 +00:00
renovate[bot]
bfa0c5d648 Update dependency @fontsource/noto-sans-jp to v5.0.20 2024-08-22 02:44:18 +00:00
Bill Thornton
23b7e725f1 Merge pull request #5863 from jellyfin/renovate/tanstack-query-monorepo 2024-08-21 22:43:08 -04:00
renovate[bot]
5725634482 Update dependency react-router-dom to v6.26.0 2024-08-22 02:33:59 +00:00
renovate[bot]
90942fbc6c Update tanstack-query monorepo to v5.51.23 2024-08-22 02:33:39 +00:00
bu3alwa
710fe641e2 refactor activity page to use react query requests
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-21 19:24:20 -04:00
grafixeyehero
106392b9cb Add Media Info Stats 2024-08-22 01:04:18 +03:00
grafixeyehero
82d70763bb Add Secondary Media Info 2024-08-22 01:01:59 +03:00
grafixeyehero
fabfb9b173 Add more options for PrimaryMediaInfo 2024-08-22 00:50:43 +03:00
無情天
8940456509 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-21 17:41:32 -04:00
Bill Thornton
634b10d3c3 Merge pull request #5922 from jellyfin/dependabot/npm_and_yarn/axios-1.7.4 2024-08-21 17:34:27 -04:00
Bas
c5b5b5b479 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-21 14:41:32 -04:00
grafixeyehero
a3eff3c0ae Update PrimaryMediaInfo option naming 2024-08-21 21:37:06 +03:00
dependabot[bot]
819892220e Bump axios from 1.6.1 to 1.7.4
Bumps [axios](https://github.com/axios/axios) from 1.6.1 to 1.7.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.1...v1.7.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-21 17:33:59 +00:00
Bill Thornton
b3bda59ee9 Merge pull request #5926 from jellyfin/update-jf-sdk 2024-08-21 13:32:12 -04:00
Bill Thornton
125fc00e26 Merge pull request #5937 from thornbill/activity-table-size
Limit activity table to screen size
2024-08-21 13:13:31 -04:00
grafixeyehero
979c4b49e4 Fix action for live tv schedule in experimental layout (#5934)
* Fix action for live tv schedule

* Fix indentation

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-21 13:08:43 -04:00
Bill Thornton
302ea0b6b0 Merge pull request #5904 from GabrielGavrilov/master
Add empty password save error message
2024-08-21 13:01:42 -04:00
Bill Thornton
222527e9b7 Limit activity table to screen size 2024-08-21 12:52:45 -04:00
Bill Thornton
d232494a89 Merge pull request #5932 from grafixeyehero/Add-ItemDtoQueryResult-ItemStatus
Add shared ItemStatus and ItemDtoQueryResult Type
2024-08-21 11:41:48 -04:00
Bill Thornton
a52e63c7d2 Merge pull request #5933 from jwaresoft/5862-add-optional-dep-sass-loader
Add optional dependency for sass-embedded
2024-08-21 11:18:40 -04:00
Bill Thornton
afd28016e1 Merge pull request #5935 from thornbill/eslint-stylistic
Migrate to stylistic eslint rules
2024-08-21 10:59:54 -04:00
Lukáš Kucharczyk
c467e86f9b Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-08-21 06:41:32 -04:00
jellyfin-bot
07372de734 Update @jellyfin/sdk to 0.0.0-unstable.202408210501 2024-08-21 07:05:08 +00:00
Bill Thornton
8a6f33fff8 Fix eslint errors 2024-08-21 02:54:09 -04:00
Bill Thornton
018d8d3f83 Migrate to stylistic eslint plugin 2024-08-21 02:52:39 -04:00
jwaresoft
7a5c9dabdb add optional dependency for sass-loader, build package-lock 2024-08-20 18:36:39 -07:00
grafixeyehero
5fbc417e3b Add shared ItemStatus and ItemDtoQueryResult Type 2024-08-21 03:31:21 +03:00
queeup
656799cce7 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-08-20 19:41:33 -04:00
Kityn
03389923d3 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-08-20 19:41:32 -04:00
Bill Thornton
c9105dcad4 Merge pull request #5871 from gnattu/better-safari-profile
Better codec profile for Safari  with 10.10 features
2024-08-20 17:19:28 -04:00
gnattu
6195e11922 Use else if just in case safari changed behavior in future 2024-08-21 04:50:18 +08:00
Bill Thornton
31fbc08269 Merge pull request #5717 from grafixeyehero/Add-filter-status-Indicator-legacy
Add filter status indicator
2024-08-20 16:45:52 -04:00
grafixeyehero
f323203012 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-20 23:36:42 +03:00
Bill Thornton
3e8592e29e Merge pull request #5850 from grafixeyehero/move-reusable-component
Move reusable Text Lines component to common file
2024-08-20 16:31:17 -04:00
grafixeyehero
d2aa788579 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-20 23:20:23 +03:00
Bas
0bc9dc005d Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-20 15:12:03 -04:00
Gabriel Gavrilov
a25e29161b Move import to top 2024-08-20 13:07:17 -06:00
Gabriel Gavrilov
e7230ab9c6 Add suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-20 13:05:45 -06:00
Bill Thornton
86a23009de Merge pull request #5405 from scampower3/edit-lyrics
Add Lyrics Editor for Admin users only
2024-08-20 14:53:18 -04:00
JQ
8d728ca9d4 Update src/components/lyricsuploader/lyricsuploader.js
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-20 14:46:26 -04:00
JQ
64c59e2f2a Update src/components/lyricseditor/lyricseditor.js
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-20 14:46:26 -04:00
JQ
0a80cbc891 Update src/components/lyricseditor/lyricseditor.js
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-20 14:46:26 -04:00
LJQ
5d8d6fdb28 Add suggested changes 2024-08-20 14:46:26 -04:00
LJQ
ab0df4dcf0 Update to use getLyricsApi 2024-08-20 14:46:26 -04:00
LJQ
f6b9104cc2 fix for when lyric.Start is 0 2024-08-20 14:46:26 -04:00
LJQ
8a61ff890f If possible display lyrics in lrc format 2024-08-20 14:46:26 -04:00
LJQ
648e8ff2a6 Preliminary Lyrics Editor 2024-08-20 14:46:26 -04:00
Drew Daniels
12ba71781e Add .nvmrc (#5842)
* add .nvmrc file

* update node version

* Revert "update node version"

This reverts commit 6044676f46160f8abba1010034e94c44496feb82.
2024-08-20 12:24:17 -04:00
dredstone1
fd6104c858 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-08-20 06:41:32 -04:00
Yuchen
52bac129e5 Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-08-20 03:41:32 -04:00
Narfinger
d5778538a0 Incorporate suggestion in mediaLibraryEditor.js
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-19 15:35:45 +09:00
x3kim
111e2aea71 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-08-19 01:41:32 -04:00
queeup
7488d766fa Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-08-18 18:41:32 -04:00
ZebastianBjorkqvist
6594db22a9 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-08-18 18:41:32 -04:00
a0193143
8296d5ac10 Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-08-18 12:41:32 -04:00
ja49619
d4419f2dc2 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-08-18 12:41:32 -04:00
Bill Thornton
8f0fd26582 Merge pull request #5925 from thornbill/home-resume-error 2024-08-18 10:56:54 -04:00
ja49619
8c7ed0fd36 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-08-18 10:41:32 -04:00
ja49619
3e5b346b32 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-08-18 06:41:32 -04:00
Lukáš Kucharczyk
55bb02ef03 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-08-18 03:41:32 -04:00
Bill Thornton
3173a43afe Merge pull request #5924 from thornbill/sass-warnings
Fix sass rule order warning
2024-08-18 03:06:25 -04:00
Bill Thornton
942c1e01dc Fix home section resume error 2024-08-18 01:29:49 -04:00
Bill Thornton
407c880b02 Fix sass rule order warning 2024-08-18 00:27:57 -04:00
gnattu
6e0ad2ed1b Override mp3 remux container (#5914)
* Override mp3 remux container

The server generally filters out invalid containers for HLS in most cases. However, MP3 is a special case because, while it is technically possible and allowed as a codec for fMP4 on the server side, most browsers do not support it. Override the remux container to force MPEG-TS for MP3. The server will still direct play MP3 in an MP3 container. This is useful for supporting universal containers like MKA.

* Fix lint

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-17 19:20:08 -04:00
Bill Thornton
45d72f16cc Merge pull request #5921 from jellyfin/update-jf-sdk 2024-08-17 06:53:28 -04:00
jellyfin-bot
2bb7232daa Update @jellyfin/sdk to 0.0.0-unstable.202408170501 2024-08-17 07:05:07 +00:00
Peter Santos
1da9b548ac Replace existence check with optional chaining (#5742) 2024-08-17 02:58:01 -04:00
無情天
cc22fbc042 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-16 23:41:32 -04:00
grafixeyehero
5d2b614865 Add btnFilter-wrapper to fix hover styling
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-17 01:55:30 +03:00
grafixeyehero
f6a29d868a use toggle class 2024-08-17 01:14:32 +03:00
grafixeyehero
7074d41a56 Fix save library filter state 2024-08-17 01:14:30 +03:00
grafixeyehero
c779035a75 Add Filter Status Indicator 2024-08-17 01:14:28 +03:00
bene toffix
d3f72ff0cb Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-08-16 17:41:32 -04:00
Andi Chandler
79236796df Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-08-16 13:41:32 -04:00
Bill Thornton
a00c68d49a Merge pull request #5193 from carlo-colombo/subtitle-offset-keybinding 2024-08-16 11:52:12 -04:00
Bill Thornton
f2aeb2a23f Merge pull request #5918 from dmitrylyzo/boolean-defines
Convert defines to boolean
2024-08-16 11:09:30 -04:00
Bill Thornton
92e5d692ea Add uppercase variants
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-08-16 11:06:26 -04:00
Bill Thornton
94ffad42cd Merge pull request #5913 from thornbill/index-refactor
Refactor app startup code
2024-08-16 11:05:32 -04:00
stanol
ac0979fd51 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-08-16 07:41:32 -04:00
Dmitry Lyzo
2d8d23d646 Convert defines to boolean
Fixes disabling features as `USE_SYSTEM_FONTS=0`.
2024-08-16 11:13:34 +03:00
Kityn
aff5d941ef Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-08-16 03:41:32 -04:00
Mjöllnir
82323e9c1d Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-08-15 20:41:32 -04:00
venkata nadha reddy
f8e428789b Use production year for movies in video player (#5765)
* In video player, changes to display production year rather than release year for movies.

* making it consistent
2024-08-15 15:59:56 -04:00
Bas
05643b160b Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-08-15 15:41:32 -04:00
Francisco Zorat
e4a6a2d6bc Add 'how many times' is the speed of transcoding in Playback Info (#5753)
* feat: new display value for transcoding fps

* fix: undefined safety + || instead of ??

* forgot to add to contributors

* fix: apply suggestions

* chore: remove from contrib to rebase

* chore: add to contrib again

---------

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-08-15 14:28:57 -04:00
alfred-delacosta
1172d9a2b9 Added artist list concatenation for albums that have over 10 artists (#4830)
* Added condition to display concatenated text if artist count is over 10. Fixed #4228

* Added string to strings.json. Used globalize.translate()

* Moved code to getArtistLinksHtml function

* Update src/controllers/itemDetails/index.js

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>

* Simplify appending other artists string

* Update src/controllers/itemDetails/index.js

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>

* Update src/controllers/itemDetails/index.js

Co-authored-by: felix920506 <felix920506@gmail.com>

* Update src/strings/en-us.json

Co-authored-by: felix920506 <felix920506@gmail.com>

---------

Co-authored-by: AJ <ajdlc@protonmail.com>
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
Co-authored-by: felix920506 <felix920506@gmail.com>
2024-08-15 14:06:43 -04:00
LJQ
4c7a77ce7b Add reset to en-us.json 2024-08-15 15:10:12 +00:00
LJQ
7ae1d560f3 Add button to reset metadata in metadata editor 2024-08-15 15:10:12 +00:00
Bill Thornton
5010367163 Use consistent import style
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-08-15 10:15:58 -04:00
Bill Thornton
422adde900 Use consistent import style 2024-08-15 02:33:50 -04:00
Bill Thornton
3e6fdc8f04 Update source tree in README 2024-08-14 16:52:56 -04:00
Bill Thornton
0a03b9a744 Move scroller lib to directory 2024-08-14 16:52:29 -04:00
gio-giorgio
32354b3a37 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-08-14 16:41:32 -04:00
Bill Thornton
4af7fc6e3e Move class change handlers to init 2024-08-14 16:33:25 -04:00
Bill Thornton
4f2edf416a Remove unused package manager 2024-08-14 16:24:56 -04:00
Bill Thornton
ab0fa6cfe6 Use async for loadPlugins 2024-08-14 16:22:40 -04:00
Bill Thornton
741c612920 Refactor init functions 2024-08-14 16:00:16 -04:00
Bill Thornton
d44804bf60 Organize index imports 2024-08-14 15:20:54 -04:00
Bill Thornton
056d802c56 Move globalize to lib 2024-08-14 14:00:09 -04:00
Bill Thornton
0ea5349422 Move libraries to lib 2024-08-14 13:57:38 -04:00
Bill Thornton
385a01d5ad Move polyfill loading 2024-08-14 13:57:38 -04:00
Andrei-Alexandru Bleorțu
7c651d0a5d Translated using Weblate (Romanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
2024-08-13 20:41:32 -04:00
GrantZ9001
803f2692ac Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-08-13 15:41:32 -04:00
Gabriel Gavrilov
7810ff464b Merge branch 'master' into master 2024-08-13 12:11:39 -06:00
jchuong
6d350b8aa4 Backport pull request #5910 from jellyfin-web/release-10.9.z
Fix "Download All" for Safari

Original-merge: 4071c44437

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-13 11:53:24 -04:00
thornbill
37fbfb3772 Backport pull request #5898 from jellyfin-web/release-10.9.z
Fix autoCast race condition

Original-merge: 7f575d724e

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-13 11:53:23 -04:00
viown
75d78a96b8 Backport pull request #5843 from jellyfin-web/release-10.9.z
Fix swipe gestures on android for book reader

Original-merge: 44afbc2357

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-13 11:53:21 -04:00
ilteoood
371994642d Backport pull request #5823 from jellyfin-web/release-10.9.z
Use navigate instead of resolver

Original-merge: 2e4e4050cd

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-13 11:53:20 -04:00
Doxterpepper
614c9e4481 Backport pull request #5730 from jellyfin-web/release-10.9.z
Add no-cache attribute for fetch requests to /system/info/public to prevent stale server info

Original-merge: a0e6da790c

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-13 11:53:19 -04:00
Gabriel Gavrilov
51ef450be9 Merge branch 'master' into master 2024-08-13 07:42:37 -06:00
LudovicJ
b2d5a67f26 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-08-13 05:40:22 -04:00
Andrejs
d9fbac83a3 Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2024-08-12 04:53:23 -04:00
VOLO Digital Agency
01702ab252 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-08-12 01:24:06 -04:00
Gabriel Gavrilov
9c6f45824a Merge branch 'master' into master 2024-08-11 13:14:47 -06:00
Filippo Pesavento
9fe9666937 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-08-11 11:41:32 -04:00
HanaO00
34b3cad72b Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-08-11 11:41:32 -04:00
Gabriel Gavrilov
9c7148e07f Fix ESLint issues 2024-08-10 23:15:37 -06:00
Gabriel Gavrilov
f4d3ccfcaf Add empty password save error message 2024-08-10 22:49:58 -06:00
Bill Thornton
ab9f3054d1 Merge pull request #5899 from jellyfin/renovate/fonts 2024-08-10 14:31:43 -04:00
Bill Thornton
1b105df025 Merge pull request #5900 from jellyfin/renovate/vitest 2024-08-10 14:30:53 -04:00
gnattu
dec593d37e use fldEnableHi10p 2024-08-10 21:52:16 +08:00
gnattu
fbc9719120 Merge branch 'fork/safari-hi10p' 2024-08-10 21:01:54 +08:00
gnattu
0ed16a04b2 Add user-configurable switch for hi10p on safari 2024-08-10 21:00:48 +08:00
Narfinger
71afc176b0 Use alert for error message of invalid ItemId 2024-08-10 19:25:53 +09:00
gnattu
66e5ce330f Fix lint
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-10 17:51:44 +08:00
gnattu
62b44d218c Add support for H264 High 10 Profile on Safari 2024-08-10 17:33:59 +08:00
renovate[bot]
5dc2abb3e4 Update Vitest to v2.0.5 2024-08-10 08:20:40 +00:00
renovate[bot]
563be7e26a Update Fonts to v5.0.20 2024-08-10 08:20:21 +00:00
Bill Thornton
6dade2eb56 Merge pull request #5872 from gnattu/fix-audio-remux-check
Fix remux detection for pure audio session
2024-08-08 16:33:30 -04:00
Bill Thornton
df58d35e4d Merge pull request #5870 from gnattu/new-downmix-mode
Add AC-4 and RFC7845 downmix
2024-08-08 16:31:48 -04:00
Bill Thornton
35cb1010ed Merge pull request #5896 from thornbill/fix-cf-pages
Fix Cloudflare Pages CI issues
2024-08-08 16:18:35 -04:00
Bill Thornton
c3f8bf9dc5 Fix branch name passed to CF Pages for non-PR runs 2024-08-08 15:47:10 -04:00
Aldrin Papa
e96c140cb9 Translated using Weblate (Filipino)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fil/
2024-08-08 12:41:31 -04:00
Bill Thornton
866ac5010b Merge pull request #5894 from thornbill/migrate-cf-pages-action 2024-08-08 08:33:53 -04:00
無情天
9369c610d4 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-08 04:49:28 -04:00
Bill Thornton
ffbc6437dc Migrate to CF wrangler action 2024-08-08 02:43:02 -04:00
Narfinger
8bdae2381c Show error message when ItemIds are invalid instead of infinitely spinning 2024-08-08 14:12:25 +09:00
grafixeyehero
b9b963cca8 Move reusable TextLines component to common file 2024-08-08 04:25:05 +03:00
Bill Thornton
1a9f51c9b0 Merge pull request #5892 from thornbill/fix-cf-pages-branch-2 2024-08-07 17:26:41 -04:00
Bill Thornton
40b7aeddc2 Fix branch name passed to CF Pages for forks 2024-08-07 14:30:36 -04:00
Bill Thornton
236870e12e Merge pull request #5891 from thornbill/update-publish-ci
Refactor publish workflow
2024-08-07 13:33:27 -04:00
Bill Thornton
71edaab444 Refactor publish workflow 2024-08-07 12:37:12 -04:00
Bill Thornton
5f8039882e Merge pull request #5888 from thornbill/plugin-drawer-section 2024-08-07 03:10:45 -04:00
Bill Thornton
23657c858e Update plugin drawer section 2024-08-06 23:28:49 -04:00
oxixes
403e3ac33d Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-08-06 21:13:32 -04:00
Bill Thornton
1671cd5557 Merge pull request #5883 from jellyfin/renovate/ci-deps 2024-08-06 20:01:59 -04:00
queeup
2662522f29 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-08-06 13:53:12 -04:00
renovate[bot]
2e18df729c Update CI dependencies 2024-08-06 17:30:27 +00:00
Matyáš Levíček
c225668b74 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-08-06 04:32:23 -04:00
Guanghui Qin
0707a28e96 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-06 03:12:18 -04:00
Guanghui Qin
ae4db7a8cc Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-08-06 03:06:16 -04:00
queeup
6b5a9efbd0 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-08-05 19:06:38 -04:00
queeup
a963d48abf Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-08-05 18:21:12 -04:00
queeup
7d55fea4d5 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-08-05 18:20:58 -04:00
Bill Thornton
a771246378 Merge pull request #5879 from thornbill/publish-ci-pr-number
Add PR number to environment for debugging workflow
2024-08-05 14:56:07 -04:00
Bill Thornton
b2c7ab8bbc Add event type to environment for debugging workflow 2024-08-05 14:48:39 -04:00
Bill Thornton
debdf2d17e Add PR number to environment for debugging workflow 2024-08-05 14:16:45 -04:00
polyzen
da2d825625 Backport pull request #5829 from jellyfin-web/release-10.9.z
Display mute keyboard shortcut in uppercase

Original-merge: 7991d15177

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-05 11:14:41 -04:00
thornbill
031ed45c87 Backport pull request #5826 from jellyfin-web/release-10.9.z
Fix overly aggressive view caching

Original-merge: 4598d66688

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-05 11:14:39 -04:00
RaafatAkkad
fa3be557c5 Backport pull request #5669 from jellyfin-web/release-10.9.z
Force DoVi on browser.xboxOne as edgeUWP says it can't play it

Original-merge: 665678d5d7

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: thornbill <thornbill@users.noreply.github.com>
2024-08-05 11:14:38 -04:00
Bill Thornton
d99491180d Merge pull request #5877 from jellyfin/update-jf-sdk 2024-08-05 08:17:51 -04:00
jellyfin-bot
8cd77fe558 Update @jellyfin/sdk to 0.0.0-unstable.202408050429 2024-08-05 07:05:24 +00:00
Germain Carré
8b06969226 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-08-04 13:41:31 -04:00
Germain Carré
724e42a40c Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-08-04 09:41:31 -04:00
gnattu
8513f60f49 Simplify check 2024-08-04 19:26:16 +08:00
gnattu
9fb0c4473c PascalCase in string key for uniformity
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-08-04 19:07:03 +08:00
gnattu
31b6a43a85 Fix filtering for setter and getter 2024-08-04 15:31:52 +08:00
gnattu
f6c8af1095 Make labels translatable 2024-08-04 15:31:43 +08:00
gnattu
ae02d972c4 Fix remux detection for pure audio session 2024-08-04 14:40:15 +08:00
gnattu
0e985c2ffe fix lint 2024-08-04 14:18:42 +08:00
gnattu
a386512def Better codec profile for Safari with 10.10 features
This uses the new VP9 remuxing and audio remuxing features to reduce transcoding on Safari, also removed some problematic direct play profiles.

- Add opus profile for Safari
- Add VP9 remuxing profile for Safari
- Remove Vorbis profile on non-webm container for Safari
- Remove direct VP9 playback in mp4 container for iOS Safari
2024-08-04 13:55:05 +08:00
gnattu
508facafbe Adds AC-4 and RFC7845 downmix 2024-08-04 12:57:21 +08:00
gnattu
524ede412b Add non-standard multi-value audio tag support 2024-08-04 12:54:39 +08:00
Franco Castillo
d770e40130 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/
2024-08-03 21:41:31 -04:00
Kankawee
69e792c7b9 Translated using Weblate (Thai)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/th/
2024-08-03 01:41:31 -04:00
Bill Thornton
abd3ebcb24 Merge pull request #5865 from jellyfin/renovate/ci-deps 2024-08-02 16:52:52 -04:00
Xavier Bestel
ef8afca49d Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-08-02 11:41:31 -04:00
renovate[bot]
8234237a0e Update actions/upload-artifact action to v4.3.5 2024-08-02 15:27:15 +00:00
Bill Thornton
04685d6dc0 Merge pull request #5860 from jellyfin/update-jf-sdk 2024-08-02 08:49:26 -04:00
Andrejs
86c9a63a0a Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2024-08-02 04:41:31 -04:00
jellyfin-bot
4b9533305f Update @jellyfin/sdk to 0.0.0-unstable.202408020501 2024-08-02 07:06:10 +00:00
Bill Thornton
8ceb8e14dd Merge pull request #5827 from thornbill/router-v13-unstable 2024-08-01 14:46:42 -04:00
Bill Thornton
9e0b2ffb9a Merge pull request #5854 from jellyfin/renovate/major-webpack
Update Webpack (major)
2024-08-01 13:56:44 -04:00
Bill Thornton
6a086e34de Merge pull request #5861 from jellyfin/renovate/webpack
Update dependency html-loader to v5.1.0
2024-08-01 13:50:36 -04:00
Bill Thornton
87151979f4 Merge pull request #5839 from jellyfin/renovate/tanstack-query-monorepo
Update tanstack-query monorepo to v5.51.11
2024-08-01 13:49:17 -04:00
Bill Thornton
f1868eca04 Merge pull request #5840 from jellyfin/renovate/emotion-monorepo
Update emotion monorepo to v11.13.0
2024-08-01 13:46:42 -04:00
Bill Thornton
740d2fb667 Merge pull request #5844 from jellyfin/renovate/jsdom-24.x
Update dependency jsdom to v24.1.1
2024-08-01 13:43:25 -04:00
renovate[bot]
ba043c6c41 Update emotion monorepo to v11.13.0 2024-08-01 17:43:11 +00:00
renovate[bot]
1820c77eec Update dependency html-loader to v5.1.0 2024-08-01 17:42:07 +00:00
renovate[bot]
22e48a5e23 Update tanstack-query monorepo to v5.51.11 2024-08-01 17:41:52 +00:00
Bill Thornton
693feca7fa Merge pull request #5838 from jellyfin/renovate/linters
Update dependency eslint-plugin-react to v7.35.0
2024-08-01 13:38:37 -04:00
enter-a-random-username
1f1e9d5dad Add chapter titles to trickplay popup (#5832) 2024-08-01 12:57:35 -04:00
Bill Thornton
9bceeff812 Merge pull request #5858 from jellyfin/renovate/postcss 2024-08-01 01:27:31 -04:00
Bill Thornton
376f5ba325 Merge pull request #5859 from jellyfin/renovate/markdown-it-14.x 2024-08-01 01:24:55 -04:00
Bill Thornton
ba8fb5eb81 Add legacy bang url redirects 2024-08-01 01:21:17 -04:00
Bill Thornton
dce7a36fcf Add RouterHistory to replace syncing for compatibility 2024-08-01 01:21:17 -04:00
renovate[bot]
fe8ed72d3a Update dependency postcss to v8.4.40 2024-08-01 05:21:06 +00:00
Bill Thornton
3315ce1e89 Merge pull request #5857 from jellyfin/fix-auotmation-trigger 2024-08-01 01:20:47 -04:00
renovate[bot]
30917b5afa Update dependency @types/markdown-it to v14.1.2 2024-08-01 05:20:11 +00:00
Bill Thornton
6e2c11faf9 Merge pull request #5853 from jellyfin/renovate/swiper-11.x 2024-08-01 01:19:17 -04:00
Bill Thornton
bdbcd9c651 Merge pull request #5822 from Aakash788/issue5794 2024-08-01 01:09:30 -04:00
renovate[bot]
356fe02e05 Update dependency swiper to v11.1.7 2024-08-01 05:07:01 +00:00
Bill Thornton
f3e616c7b5 Merge pull request #5849 from jellyfin/renovate/typescript 2024-08-01 01:06:10 -04:00
Bill Thornton
1137103706 Fix automation workflow trigger 2024-08-01 00:55:16 -04:00
Bill Thornton
d02b5361ff Merge pull request #5855 from jellyfin/update-jf-sdk 2024-08-01 00:17:36 -04:00
Bill Thornton
878af1bb0f Merge pull request #5856 from jellyfin/fix-publish-comment
Fix publish comment action on fork PRs
2024-07-31 23:58:44 -04:00
Bill Thornton
f7704cf8a6 Fix publish comment action on fork PRs 2024-07-31 23:48:20 -04:00
Aureo
3ee1714a6b Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-07-31 19:41:31 -04:00
jellyfin-bot
2426ee2526 Update @jellyfin/sdk to 0.0.0-unstable.202407310501 2024-07-31 07:04:52 +00:00
Micka149
3b6503cb63 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-07-30 14:41:31 -04:00
renovate[bot]
79c5268c4e Update Webpack 2024-07-30 18:26:49 +00:00
Bill Thornton
f2b0b17362 Merge pull request #5852 from jellyfin/renovate/jellyfin-libass-wasm-4.x 2024-07-30 11:31:11 -04:00
renovate[bot]
6982512f9d Update dependency @jellyfin/libass-wasm to v4.2.2 2024-07-30 15:19:27 +00:00
Bill Thornton
d3fdf7315e Merge pull request #5851 from jellyfin/update-jf-sdk 2024-07-30 11:18:51 -04:00
millallo
66796da115 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-07-30 04:41:31 -04:00
jellyfin-bot
8c4bf474ef Update @jellyfin/sdk to 0.0.0-unstable.202407292104 2024-07-30 07:05:25 +00:00
renovate[bot]
0755db3c5f Update dependency typescript to v5.5.4 2024-07-30 01:30:52 +00:00
Bill Thornton
62646b3165 Merge pull request #5848 from jellyfin/renovate/tests 2024-07-29 17:28:10 -04:00
vyrmin
c1abea971f Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-07-29 11:41:31 -04:00
Bill Thornton
d8b2e054a2 Merge pull request #5847 from jellyfin/update-jf-sdk 2024-07-29 11:10:21 -04:00
Aakash788
fa9cadbd29 Replaced deprecated babel dependencies 2024-07-29 19:19:35 +05:30
renovate[bot]
a9b1523bc8 Update Tests to v2.0.4 2024-07-29 10:01:10 +00:00
Pierre Briois
aae6f9d8a0 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-07-29 04:41:31 -04:00
jellyfin-bot
1b18f65684 Update @jellyfin/sdk to 0.0.0-unstable.202407290501 2024-07-29 07:06:06 +00:00
rushmash
47a2712d73 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-28 11:41:31 -04:00
stanol
3c389ea6a8 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-07-28 08:41:31 -04:00
aky
937a10edd9 Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-07-28 03:41:31 -04:00
renovate[bot]
914b6fd34d Update dependency jsdom to v24.1.1 2024-07-28 06:04:01 +00:00
Lukáš Kucharczyk
1152dbae4e Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-07-27 19:41:31 -04:00
Andi Chandler
eebcd6dc81 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-07-27 17:41:31 -04:00
stanol
7490f9f89d Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-07-27 10:41:31 -04:00
hoanghuy309
89a6efd277 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-07-27 08:41:31 -04:00
Bas
bb3e0bd6b9 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-07-27 03:41:31 -04:00
renovate[bot]
8dd841ce57 Update dependency eslint-plugin-react to v7.35.0 2024-07-27 07:07:09 +00:00
Bill Thornton
cfa0ec6b53 Merge pull request #5760 from venkat-karasani/collection-header-names 2024-07-26 23:41:33 -04:00
venkata nadha reddy
b5708945b7 translate key change
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-27 01:45:20 +00:00
Bill Thornton
aaaf21a7b0 Merge pull request #5836 from jellyfin/renovate/emotion-monorepo
Update emotion monorepo to v11.12.0
2024-07-26 20:24:49 -04:00
Bill Thornton
bc859b0ac7 Merge pull request #5835 from jellyfin/renovate/react
Update dependency react-router-dom to v6.25.1
2024-07-26 20:22:46 -04:00
Bill Thornton
6660e0b80c Merge pull request #5833 from jellyfin/renovate/swiper-11.x
Update dependency swiper to v11.1.5
2024-07-26 20:20:31 -04:00
Bill Thornton
613313e8e6 Merge pull request #5837 from jellyfin/dependabot/npm_and_yarn/vite-5.3.5
Bump vite from 5.0.12 to 5.3.5
2024-07-26 20:18:29 -04:00
Bill Thornton
6ff494958a Merge pull request #5720 from jellyfin/dependabot/npm_and_yarn/ws-7.5.10
Bump ws from 7.5.9 to 7.5.10
2024-07-26 20:17:28 -04:00
Bill Thornton
90a3ea41dd Merge pull request #5383 from jellyfin/dependabot/npm_and_yarn/tar-6.2.1
Bump tar from 6.1.13 to 6.2.1
2024-07-26 20:16:33 -04:00
Bill Thornton
65959744d7 Merge pull request #5328 from jellyfin/dependabot/npm_and_yarn/express-4.19.2
Bump express from 4.18.1 to 4.19.2
2024-07-26 20:15:22 -04:00
Bill Thornton
26f97c8193 Merge pull request #5281 from jellyfin/dependabot/npm_and_yarn/follow-redirects-1.15.6
Bump follow-redirects from 1.15.4 to 1.15.6
2024-07-26 20:13:42 -04:00
dependabot[bot]
f7022297b7 Bump ws from 7.5.9 to 7.5.10
Bumps [ws](https://github.com/websockets/ws) from 7.5.9 to 7.5.10.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.9...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-27 00:11:37 +00:00
dependabot[bot]
df08648633 Bump tar from 6.1.13 to 6.2.1
Bumps [tar](https://github.com/isaacs/node-tar) from 6.1.13 to 6.2.1.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.1.13...v6.2.1)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-27 00:11:11 +00:00
dependabot[bot]
d08602f14e Bump vite from 5.0.12 to 5.3.5
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.12 to 5.3.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-27 00:11:06 +00:00
dependabot[bot]
4d27994b76 Bump express from 4.18.1 to 4.19.2
Bumps [express](https://github.com/expressjs/express) from 4.18.1 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.1...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-27 00:10:25 +00:00
dependabot[bot]
501b18f432 Bump follow-redirects from 1.15.4 to 1.15.6
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-27 00:09:38 +00:00
Bill Thornton
ee87aea069 Merge pull request #5807 from jellyfin/renovate/babel
Update Babel
2024-07-26 20:07:25 -04:00
renovate[bot]
cefe0c429b Update emotion monorepo to v11.12.0 2024-07-27 00:04:48 +00:00
renovate[bot]
b086047dc8 Update dependency react-router-dom to v6.25.1 2024-07-27 00:04:31 +00:00
renovate[bot]
333bc9267d Update Babel 2024-07-26 23:59:18 +00:00
Bill Thornton
640cd7fc3c Merge pull request #5795 from jellyfin/renovate/tanstack-query-monorepo
Update tanstack-query monorepo to v5.51.9
2024-07-26 19:57:43 -04:00
Bill Thornton
e264a61d8b Merge pull request #5813 from jellyfin/renovate/linters
Update dependency eslint-plugin-react to v7.34.4
2024-07-26 19:55:20 -04:00
Bill Thornton
5ed5b0a9e5 Merge pull request #5834 from jellyfin/renovate/ci-deps
Update github/codeql-action action to v3.25.15
2024-07-26 19:52:33 -04:00
Bill Thornton
1bc7b23efc Merge pull request #5809 from jellyfin/renovate/webpack
Update dependency webpack to v5.93.0
2024-07-26 19:51:44 -04:00
Kityn
512f368bd7 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-07-26 19:49:30 -04:00
renovate[bot]
fdd2c6bd34 Update github/codeql-action action to v3.25.15 2024-07-26 23:47:08 +00:00
Bill Thornton
35dd3aaddc Merge pull request #5808 from jellyfin/renovate/sass-1.x
Update dependency sass to v1.77.8
2024-07-26 19:46:43 -04:00
renovate[bot]
741585ead7 Update dependency webpack to v5.93.0 2024-07-26 23:45:49 +00:00
renovate[bot]
5e32e03010 Update dependency swiper to v11.1.5 2024-07-26 23:44:46 +00:00
Bill Thornton
2099c10090 Merge pull request #5819 from jellyfin/renovate/tests
Update Tests to v2.0.3
2024-07-26 19:44:12 -04:00
Bill Thornton
03f4251afb Merge pull request #5773 from thornbill/add-plugin-redesign 2024-07-26 19:34:59 -04:00
Bill Thornton
f4b31f5897 Merge pull request #5831 from jellyfin/update-jf-sdk 2024-07-26 18:43:43 -04:00
Bill Thornton
c3a00e277c Merge pull request #5781 from venkat-karasani/prevent-modal-close 2024-07-26 16:07:07 -04:00
venkat_karasani
2ed3aced2f Prevent modal clos on mouse press up if outside the dialog 2024-07-26 14:38:04 -04:00
Bill Thornton
b9dea3a788 Merge pull request #5734 from prsantos-com/sonarcloud-promise-rejection
Use Error instead of literal for promise rejection
2024-07-26 11:37:26 -04:00
Bill Thornton
08bbcb0681 Merge pull request #5620 from vdubuisson/fix/tv-detailLogo
Allow to display detailLogo on TV with CSS customization
2024-07-26 11:28:48 -04:00
Bill Thornton
40135836e4 Merge pull request #5218 from btopherjohnson/RemoveResetPassword
Remove reset password option for admin users
2024-07-26 11:27:29 -04:00
Valentin Dubuisson
10f599a574 Possible detailLogo on tv 2024-07-26 10:58:08 -04:00
nextlooper42
ed71680cf1 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-07-26 07:41:31 -04:00
Kityn
4235ec9eaa Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-07-26 07:41:31 -04:00
jellyfin-bot
5ea2180409 Update @jellyfin/sdk to 0.0.0-unstable.202407260528 2024-07-26 07:05:14 +00:00
Bas
01036a4f0c Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-07-26 02:41:31 -04:00
Metod
a8398fe204 Translated using Weblate (Slovenian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sl/
2024-07-26 01:21:46 -04:00
Bill Thornton
e92b9f0adc Merge pull request #5666 from ConnorS1110/update-up-next-dialog-text
Update up-next text when auto play next episode is disabled
2024-07-26 01:21:43 -04:00
renovate[bot]
903b95917e Update tanstack-query monorepo to v5.51.9 2024-07-25 09:08:25 +00:00
Samuele Esposito
8fb15c6fde Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-07-23 17:41:30 -04:00
gnattu
1ba945c905 Update help text to reflect new server behavior 2024-07-23 11:35:40 +08:00
renovate[bot]
6814e85c10 Update Tests to v2.0.3 2024-07-22 17:15:13 +00:00
Bill Thornton
39ef1d2ca2 Merge pull request #5815 from jellyfin/renovate/ci-deps
Update CatChen/eslint-suggestion-action action to v4.1.5
2024-07-22 13:14:21 -04:00
BlueDragon
37eaba2e5d Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-07-22 04:41:31 -04:00
BlueDragon
d5d04e043f Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-07-22 04:41:31 -04:00
BlueDragon
c543794f71 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-07-22 04:41:31 -04:00
BlueDragon
fb166a5c2c Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-07-22 04:41:30 -04:00
renovate[bot]
d452c1b32c Update CatChen/eslint-suggestion-action action to v4.1.5 2024-07-22 07:01:17 +00:00
Niels van Velzen
422bb3423e Merge pull request #5747 from jellyfin/update-jf-sdk
Update @jellyfin/sdk to 0.0.0-unstable.202407210501
2024-07-22 09:00:27 +02:00
jellyfin-bot
2dbccdc2d5 Update @jellyfin/sdk to 0.0.0-unstable.202407210501 2024-07-21 07:05:07 +00:00
thornbill
0090ccd893 Backport pull request #5810 from jellyfin-web/release-10.9.z
Fix chapter type options not showing for mixed libraries

Original-merge: c98822a7c6

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:53:36 -04:00
thornbill
0084cc856e Backport pull request #5806 from jellyfin-web/release-10.9.z
Fix dashboard body class sometimes missing

Original-merge: f3bb9f2eef

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:53:35 -04:00
thornbill
e5d2f8fddb Backport pull request #5776 from jellyfin-web/release-10.9.z
Fix invisible headings

Original-merge: 9e7ad28eaf

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:53:34 -04:00
polyzen
f3d2372d52 Backport pull request #5759 from jellyfin-web/release-10.9.z
Display previous/next keyboard shortcuts

Original-merge: 2d68f94ec6

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:53:32 -04:00
thornbill
6bf6e7fd18 Backport pull request #5741 from jellyfin-web/release-10.9.z
Disallow scripted content in epubs

Original-merge: e669a9be02

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:53:31 -04:00
dmitrylyzo
59db69227b Backport pull request #5740 from jellyfin-web/release-10.9.z
Don't change volume if it is physically controlled

Original-merge: e0a0c92b43

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:53:29 -04:00
thornbill
c5b338dc64 Backport pull request #5732 from jellyfin-web/release-10.9.z
Fix dashboard user page crash

Original-merge: 2d2d5bef94

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:53:28 -04:00
dmitrylyzo
fa9621e31a Backport pull request #5719 from jellyfin-web/release-10.9.z
Fix Trickplay thumbnail in older web engines

Original-merge: 9501c5097b

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:43:54 -04:00
GeorgeH005
a3c0fb05c3 Backport pull request #5553 from jellyfin-web/release-10.9.z
Fix Dolby Vision playback on webOS

Original-merge: 86ff77924e

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:43:53 -04:00
ConnorS1110
cf6eaa6b92 Backport pull request #5377 from jellyfin-web/release-10.9.z
Fix changing filters not resetting multiselected media cards

Original-merge: 798b408bd7

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-21 01:43:51 -04:00
renovate[bot]
a90130b42c Update dependency eslint-plugin-react to v7.34.4 2024-07-20 21:55:01 +00:00
Bill Thornton
be31bf188a Merge pull request #5811 from jellyfin/renovate/ci-deps 2024-07-20 02:08:48 -04:00
renovate[bot]
97333cbb77 Update github/codeql-action action to v3.25.13 2024-07-19 16:54:22 +00:00
venkata nadha reddy
3d9a119d38 Fix stuck page titles on admin dashboard (#5735)
* Fixed stuck page titles on admin dashboard.

* Updating contributors
2024-07-19 12:53:44 -04:00
Bill Thornton
5f61a431de Fix console errors 2024-07-19 11:30:57 -04:00
無情天
3c1e515172 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-07-18 16:41:30 -04:00
renovate[bot]
9740654974 Update dependency sass to v1.77.8 2024-07-18 20:18:02 +00:00
gnattu
0850a1555b Merge branch 'origin/master' 2024-07-18 11:29:27 +08:00
Bill Thornton
19725153af Merge pull request #5805 from jellyfin/renovate/tests
Update Tests to v2.0.2
2024-07-17 16:37:19 -04:00
Bill Thornton
bfced99e7c Merge pull request #5798 from grafixeyehero/Fix-mediaSourceIndicator
Fix invisible media source indicator in experimental
2024-07-17 16:32:27 -04:00
Andi Chandler
f15943e306 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-07-17 15:41:30 -04:00
Justin
d79e35b0e0 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-07-17 15:41:30 -04:00
Bill Thornton
8061ae63ef Merge pull request #5797 from grafixeyehero/Fix-Progressbar-position
Fix progress bar position indicator in experimental
2024-07-17 15:18:22 -04:00
Bill Thornton
51f1dac1cb Merge pull request #5803 from jellyfin/renovate/sass-1.x
Update dependency sass to v1.77.7
2024-07-17 15:12:44 -04:00
renovate[bot]
3d07a2de66 Update Tests to v2.0.2 2024-07-17 19:12:41 +00:00
Bill Thornton
277bb1638f Merge pull request #5802 from thornbill/router-cleanup
Use lazy routes everywhere
2024-07-17 15:11:21 -04:00
rushmash
d7b5e0382f Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 08:12:03 -04:00
Troja
9d2b89df94 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 08:12:03 -04:00
rushmash
178ec00716 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:20:35 -04:00
Troja
9b22a40a77 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:20:35 -04:00
Troja
2c809f7a81 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:15:32 -04:00
Troja
105e3f2841 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:15:21 -04:00
Troja
e741c5ec3c Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:14:58 -04:00
Troja
0b888e364d Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:14:12 -04:00
rushmash
0de462adcb Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:14:12 -04:00
Troja
d24c1c8f71 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:12:52 -04:00
rushmash
73d1bc3b43 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:11:40 -04:00
Troja
9518a0d367 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:09:03 -04:00
rushmash
8fc0ef8081 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:09:03 -04:00
rushmash
fbb0518b24 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:08:17 -04:00
Troja
00574dbc00 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 07:08:17 -04:00
Troja
d64b0041e4 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 06:41:30 -04:00
Troja
eb6e09fd6a Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 04:41:30 -04:00
Troja
eaee9a975a Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-17 02:41:30 -04:00
renovate[bot]
d8ff541fa1 Update dependency sass to v1.77.7 2024-07-16 23:08:11 +00:00
Troja
5f8ccfae22 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-16 17:41:30 -04:00
Bill Thornton
255d982687 Fix home page loading with lazy 2024-07-16 17:05:32 -04:00
Bill Thornton
175b2d6c85 Unify routers and use lazy for app layouts 2024-07-16 16:30:29 -04:00
Bill Thornton
735f8b06ce Merge pull request #5801 from thornbill/no-lazy-home 2024-07-16 16:23:02 -04:00
Bill Thornton
9f61863b7d Fix home page crashing when using react-router lazy import 2024-07-16 14:48:56 -04:00
Troja
cfe6828042 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-16 11:41:30 -04:00
gnattu
9c18cd13b4 Add KeyFrameOnlyExtraction option to trckplay panel 2024-07-16 23:36:42 +08:00
gnattu
2ba0ebf171 Add VideoToolbox in LabelTrickplayAccelEncodingHelp 2024-07-16 23:02:04 +08:00
Troja
07851124c2 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-16 10:36:19 -04:00
Troja
c3505df833 Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-16 09:41:30 -04:00
stanol
88231fa380 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-07-16 07:41:31 -04:00
andrianfajar
ae7347dbe3 Translated using Weblate (Indonesian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
2024-07-16 07:41:30 -04:00
Troja
ece901a48c Translated using Weblate (Belarusian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/be/
2024-07-16 07:41:30 -04:00
nextlooper42
3c6f5c4e15 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-07-16 05:41:31 -04:00
Vlad
72414e91a4 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/
2024-07-16 05:41:30 -04:00
andrianfajar
d3da80a2ed Translated using Weblate (Indonesian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
2024-07-16 05:41:30 -04:00
andrianfajar
59cf88c7db Translated using Weblate (Indonesian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
2024-07-16 02:41:31 -04:00
Lukáš Kucharczyk
78e5ee82c0 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-07-16 02:41:30 -04:00
Kityn
8ce14c8100 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-07-15 20:41:30 -04:00
grafixeyehero
20f53388ae Fix progress bar position 2024-07-16 02:36:07 +03:00
grafixeyehero
60e11181af Fix invisible media source indicator 2024-07-16 02:33:02 +03:00
Bill Thornton
c631c96577 Merge pull request #5796 from jellyfin/renovate/major-tests 2024-07-15 18:30:53 -04:00
renovate[bot]
8445633cb8 Update Tests to v2 2024-07-15 22:13:10 +00:00
Bill Thornton
3eaabdbdc2 Merge pull request #5731 from thornbill/coverage 2024-07-15 18:12:07 -04:00
Bill Thornton
112f8627b5 Apply suggestions for reducing renders
Co-authored-by: grafixeyehero <32230989+grafixeyehero@users.noreply.github.com>
2024-07-15 17:24:07 -04:00
Bill Thornton
864b1a237a Add mutation resets 2024-07-15 17:24:07 -04:00
Bill Thornton
c143082f63 Fix configuration page link 2024-07-15 17:24:07 -04:00
Bill Thornton
e928a2ff95 Redesign add plugins page 2024-07-15 17:24:07 -04:00
Bill Thornton
5936ed10ca Merge pull request #5791 from nielsvanvelzen/no-format-string
Remove "open in browser" button for external id from metadata editor
2024-07-15 17:19:58 -04:00
Bill Thornton
7956967c17 Merge pull request #5678 from jellyfin/renovate/babel
Update Babel to v7.24.7
2024-07-15 17:11:58 -04:00
Bill Thornton
885f344eb8 Merge pull request #5743 from jellyfin/renovate/sass-1.x
Update dependency sass to v1.77.6
2024-07-15 17:10:22 -04:00
Bill Thornton
9f598f242a Merge pull request #5793 from jellyfin/renovate/postcss
Update dependency postcss-preset-env to v9.6.0
2024-07-15 17:09:39 -04:00
Bill Thornton
94adb279c0 Merge pull request #5627 from jellyfin/renovate/webpack
Update Webpack
2024-07-15 16:58:01 -04:00
renovate[bot]
baf54a3435 Update dependency sass to v1.77.6 2024-07-15 20:57:57 +00:00
renovate[bot]
6cafc1d5d7 Update dependency postcss-preset-env to v9.6.0 2024-07-15 20:57:03 +00:00
renovate[bot]
0f8683425e Update Babel to v7.24.7 2024-07-15 20:56:49 +00:00
Bill Thornton
185cce1718 Merge pull request #5792 from jellyfin/renovate/ci-deps
Update github/codeql-action action to v3.25.12
2024-07-15 16:55:24 -04:00
Bill Thornton
20476053fe Merge pull request #5702 from jellyfin/renovate/jsdom-24.x
Update dependency jsdom to v24.1.0
2024-07-15 16:53:17 -04:00
Bill Thornton
d8ba3f256c Merge pull request #5580 from jellyfin/renovate/core-js-3.x
Update dependency core-js to v3.37.1
2024-07-15 16:52:19 -04:00
renovate[bot]
d885954189 Update github/codeql-action action to v3.25.12 2024-07-15 20:50:15 +00:00
renovate[bot]
ed5d8c8033 Update Webpack 2024-07-15 20:50:02 +00:00
Bill Thornton
88ce014372 Merge pull request #5777 from jellyfin/renovate/cssnano-7.x
Update dependency cssnano to v7.0.4
2024-07-15 16:49:11 -04:00
Bill Thornton
845d237200 Merge pull request #5789 from thornbill/update-plugin-headings
Add headings and links to plugin pages
2024-07-15 16:46:18 -04:00
Bill Thornton
58219f688b Merge pull request #5790 from thornbill/lazy-routes
Use react-router lazy for dynamic route import
2024-07-15 16:45:13 -04:00
Bas
539587778b Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-07-15 16:22:42 -04:00
Bill Thornton
e0be16b272 Merge pull request #5625 from FintasticMan/add_prefer_transcode_video
Add setting for preferred video codec
2024-07-15 16:14:51 -04:00
Niels van Velzen
fb66b8e539 Remove "open in browser" button for external id from metadata editor 2024-07-15 21:59:38 +02:00
Bill Thornton
0dfc09529a Merge pull request #5607 from grafixeyehero/Refactor-Search--Page
Refactor search  page
2024-07-15 15:44:42 -04:00
Bill Thornton
ddb9f66609 Merge pull request #5787 from grafixeyehero/Fix-ParentThumbImage
Fix parent thumb image for next up and continue watching in experimental layout
2024-07-15 15:43:23 -04:00
grafixeyehero
fe31539d69 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-15 22:15:52 +03:00
grafixeyehero
13d5cb2c84 revert translation key changes
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-15 22:13:35 +03:00
Bill Thornton
6aab016634 Merge pull request #5724 from grafixeyehero/Fix-RefreshIndicator
Fix Refresh Indicator in experimental layout
2024-07-15 14:20:45 -04:00
Bill Thornton
b70f42bd5f Merge pull request #5571 from grafixeyehero/Fix--Search-for-tab-library
Fix search for tab library in experimental layout
2024-07-15 14:19:27 -04:00
grafixeyehero
3adf4e8651 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-15 20:39:57 +03:00
Bill Thornton
085e6e7f3d Merge pull request #5622 from grafixeyehero/Add-homevideos-view
Add Home videos and Photos View
2024-07-15 13:17:14 -04:00
grafixeyehero
f8cb8721d1 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-15 20:16:19 +03:00
grafixeyehero
69afc01d44 Fix: Search for tab library 2024-07-15 20:09:17 +03:00
Bill Thornton
4a97b27218 Use react-router lazy for dynamic route import 2024-07-15 11:04:56 -04:00
Bill Thornton
f0626465b0 Add headings and links to plugin pages 2024-07-15 10:25:56 -04:00
Nyanmisaka
f071ea2a1f Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-07-15 03:41:30 -04:00
grafixeyehero
00de25eccf Fix Parent Thumb Image for NextUp And Resume 2024-07-14 23:53:12 +03:00
bartfaik04
f57b3a6355 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hu/
2024-07-14 06:41:30 -04:00
Connor Smith
076f6e56aa Update up-next text when auto play next episode is disabled 2024-07-13 12:30:26 -04:00
Filan Fisteku
1a221956e6 Translated using Weblate (Albanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sq/
2024-07-13 07:41:29 -04:00
renovate[bot]
c0e0d83d30 Update dependency cssnano to v7.0.4 2024-07-13 00:26:46 +00:00
Obserty
ad18bbe54f Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-07-12 14:41:30 -04:00
Bill Thornton
a22370e337 Merge pull request #5761 from venkat-karasani/remove-notifications-page 2024-07-12 11:09:50 -04:00
HeavenlyGyoza
b9448cf334 Translated using Weblate (Galician)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gl/
2024-07-11 19:41:29 -04:00
HeavenlyGyoza
7d13ff006e Translated using Weblate (Galician)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gl/
2024-07-11 13:41:29 -04:00
venkat_karasani
63556e5103 removed the unused translations from en-us.json 2024-07-11 12:05:57 -05:00
venkat_karasani
50d7ce860c cleanup: Remove the intermediate notifications dashboard page. 2024-07-11 12:04:22 -05:00
HeavenlyGyoza
a2e2c68f66 Translated using Weblate (Galician)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gl/
2024-07-11 08:41:30 -04:00
Unn Krigul
476e137f8d Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-07-11 02:41:29 -04:00
Bill Thornton
3002a135ad Merge pull request #5531 from thornbill/add-commit-sha 2024-07-11 02:29:49 -04:00
Bill Thornton
423a934dfa Merge pull request #5770 from jellyfin/renovate/hls.js-1.x 2024-07-10 22:44:47 -04:00
renovate[bot]
9c314e36f9 Update dependency hls.js to v1.5.13 2024-07-11 00:05:47 +00:00
Bill Thornton
87d911c786 Merge pull request #5769 from jellyfin/renovate/tanstack-query-monorepo 2024-07-10 20:04:31 -04:00
renovate[bot]
6d874c649f Update tanstack-query monorepo to v5.49.2 2024-07-10 18:43:16 +00:00
Bill Thornton
ebc2ff22a7 Merge pull request #5767 from jellyfin/renovate/react 2024-07-10 14:42:22 -04:00
renovate[bot]
fb4f2db7ac Update dependency react-router-dom to v6.24.1 2024-07-10 12:50:25 +00:00
Bill Thornton
f3c532ffa3 Merge pull request #5766 from jellyfin/renovate/ci-deps 2024-07-10 03:51:51 -04:00
Bill Thornton
cad481e302 Merge pull request #5768 from jellyfin/renovate/typescript 2024-07-10 03:51:30 -04:00
renovate[bot]
1e9a81d949 Update dependency typescript to v5.5.3 2024-07-10 07:37:09 +00:00
renovate[bot]
54bcb64ee6 Update actions/setup-node action to v4.0.3 2024-07-10 07:34:42 +00:00
Bill Thornton
89ed0a2404 Merge pull request #5764 from jellyfin/renovate/linters 2024-07-10 03:34:10 -04:00
Davoud-Ghargozlou
f353a4c827 Fix return type in supports fullscreen (#4903)
* refactor: supportsFullScreen to return the same type

* Fix parentheses

Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>

---------

Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-07-10 01:17:21 -04:00
Bill Thornton
3236fb8819 Merge pull request #5733 from thornbill/error-boundary
Add error boundary for page crashes
2024-07-10 00:55:22 -04:00
Bill Thornton
0d9a8680fb Add error boundary for page crashes 2024-07-10 00:04:52 -04:00
Bill Thornton
9186c0af41 Merge pull request #5687 from shoffing/slider-play-pause
play/pause when Enter is pressed on non-dragging position slider
2024-07-10 00:04:20 -04:00
Steve Hoffing
5ef0428bba use a 'keydown' listener in video/index.js instead 2024-07-09 23:51:51 -04:00
Steve Hoffing
e28b55721d play/pause when Enter is pressed on non-dragging position slider 2024-07-09 23:51:51 -04:00
venkat_karasani
1ac161c82c fixed linting errors. 2024-07-08 22:01:51 -05:00
renovate[bot]
87cb0b81ba Update Linters 2024-07-09 01:05:36 +00:00
Bill Thornton
9a00a6c379 Merge pull request #5762 from jellyfin/renovate/ci-deps 2024-07-08 18:36:14 -04:00
Bill Thornton
8b5cae6e90 Merge pull request #5637 from jellyfin/renovate/postcss 2024-07-08 18:34:37 -04:00
renovate[bot]
feceba43c9 Update CI dependencies 2024-07-08 22:24:18 +00:00
Bill Thornton
488f593faa Merge pull request #5698 from jellyfin/renovate/hls.js-1.x 2024-07-08 18:23:28 -04:00
venkat_karasani
f1bc4b2009 If a collection only contains movies, Jellyfin will display it as 'Movies' instead of 'Videos' 2024-07-08 16:50:24 -05:00
renovate[bot]
e27a049696 Update dependency hls.js to v1.5.12 2024-07-08 18:45:01 +00:00
mjohl
d60ddeb9ed Translated using Weblate (Afrikaans)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/af/
2024-07-06 21:41:29 -04:00
renovate[bot]
765e4aee3e Update PostCSS 2024-07-07 00:22:38 +00:00
Blackspirits
ad025e6d39 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-07-05 04:41:29 -04:00
Blackspirits
565c4dc4a2 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-07-05 04:41:29 -04:00
Hilmar Gústafsson
3ee83bf4df Translated using Weblate (Icelandic)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/is/
2024-07-04 11:41:29 -04:00
Bill Thornton
be36fe69b2 Merge pull request #5576 from jellyfin/update-jf-sdk
Update @jellyfin/sdk to 0.0.0-unstable.202407020501
2024-07-02 10:52:04 -04:00
jellyfin-bot
32d63b16b2 Update @jellyfin/sdk to 0.0.0-unstable.202407020501 2024-07-02 10:46:35 -04:00
Bill Thornton
c4496e20ed Merge pull request #5746 from thornbill/remove-deprecated-sdk-function
Remove usage of deprecated getItemImageUrl
2024-07-02 10:46:14 -04:00
Bill Thornton
94f65820a6 Remove usage of deprecated getItemImageUrl 2024-07-02 10:18:03 -04:00
Marc
a8069127ab Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-06-30 10:41:28 -04:00
Feraldragon
c40bf002df Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-06-29 16:41:28 -04:00
Bill Thornton
305de0640c Merge pull request #5739 from jellyfin/renovate/react 2024-06-28 23:59:42 -04:00
Leonardo de Macedo Sartorello
71946b722c Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-06-28 23:41:28 -04:00
Tio
e192cd94ac Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-06-28 15:41:29 -04:00
renovate[bot]
322ecea5ba Update dependency react-lazy-load-image-component to v1.6.2 2024-06-27 06:30:24 +00:00
Bill Thornton
568b8137b8 Merge pull request #5738 from jellyfin/renovate/ci-deps 2024-06-27 02:29:03 -04:00
lucas philippe
d8137838d0 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_BR/
2024-06-26 22:41:28 -04:00
renovate[bot]
802c5d3ee9 Update CI dependencies 2024-06-27 01:47:14 +00:00
Bill Thornton
bac77cb9d8 Merge pull request #5703 from jellyfin/renovate/cssnano-7.x 2024-06-26 21:46:26 -04:00
stanol
515ca379ad Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-06-26 16:41:28 -04:00
Carlo Colombo
0e3f6fa77b subtitles offset keybinding 2024-06-26 17:16:26 +02:00
renovate[bot]
b1fe63ff52 Update dependency cssnano to v7.0.3 2024-06-26 10:28:51 +00:00
Peter Santos
c3ad26ea55 Use Error instead of literal for promise rejection 2024-06-25 22:37:34 -04:00
Bill Thornton
cf0d2076b5 Merge pull request #5585 from scampower3/lyrics-auto-scroll 2024-06-25 15:34:43 -04:00
Bill Thornton
4c24d40d76 Add test coverage support 2024-06-25 10:34:49 -04:00
dmitrylyzo
f30343cfca Backport pull request #5718 from jellyfin-web/release-10.9.z
HtmlVideoPlayer fix and cleanup

Original-merge: 18061ce247

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-24 20:30:57 -04:00
thornbill
2cbc9e4abf Backport pull request #5694 from jellyfin-web/release-10.9.z
Disable eval support in pdfjs

Original-merge: 4bb0c67340

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:42:26 -04:00
dmitrylyzo
85b0697a19 Backport pull request #5681 from jellyfin-web/release-10.9.z
Fix loading hides too early

Original-merge: 674b0b118f

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:42:25 -04:00
Chaitanya-Shahare
00e02888d2 Backport pull request #5680 from jellyfin-web/release-10.9.z
Fix episode overview markdown render

Original-merge: aed4ffa2cd

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:42:23 -04:00
grafixeyehero
4562f34995 Fix Refresh Indicator 2024-06-22 19:04:49 +03:00
Larvitar
6e3d93836b Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-06-21 15:41:28 -04:00
Tobias Karlsson
a8c1ba341f Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-06-20 03:23:19 -04:00
bene toffix
2eb4dfe513 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-06-19 12:41:28 -04:00
Luca Sonntag
72f5d1c73b Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-06-18 17:41:28 -04:00
Blackspirits
084d519dce Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-06-18 03:41:28 -04:00
Blackspirits
de06a0bc36 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-06-18 03:41:28 -04:00
Blackspirits
1dc54ba122 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-06-17 18:41:28 -04:00
Blackspirits
8f53b51f0c Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-06-17 18:41:28 -04:00
Blackspirits
20503930b2 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-06-17 16:41:28 -04:00
Blackspirits
a1e7b11595 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-06-17 16:41:28 -04:00
Daniel ひっかもりい
238c24d147 Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2024-06-17 12:41:28 -04:00
Daniel ひっかもりい
c538fd136c Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2024-06-17 10:41:28 -04:00
Nir Israel Hen
adc452497c Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-06-17 10:41:28 -04:00
ɴᴇᴋᴏ
7419e9b75f Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/
2024-06-17 01:41:28 -04:00
Taylor Lottner
d6bf192f46 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-06-17 01:41:28 -04:00
Daniel ひっかもりい
0489bb7549 Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/lv/
2024-06-16 21:41:28 -04:00
AfmanS
c91d9eb775 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-06-16 14:41:28 -04:00
Bas
fa6074757b Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-06-16 14:41:28 -04:00
Bas
ac6cc6ceee Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-06-16 14:41:28 -04:00
AfmanS
e5e68062f5 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-06-16 03:17:53 -04:00
AfmanS
80c64380bc Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-06-16 03:17:53 -04:00
Mirco Cau
fa0093b1bd Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-06-15 19:41:28 -04:00
AfmanS
c4e0f88b89 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-06-15 13:41:28 -04:00
Joseph Price
1a17ac76c9 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-06-14 19:41:28 -04:00
Bill Thornton
827f652d25 Merge pull request #5707 from jellyfin/renovate/ci-deps 2024-06-14 00:25:43 -04:00
renovate[bot]
c5363123da Update CI dependencies 2024-06-14 03:26:01 +00:00
Kevin O'Connell
1675e46e33 Translated using Weblate (Irish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ga/
2024-06-13 08:41:28 -04:00
Bas
139f31b5fa Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-06-13 08:41:27 -04:00
Bill Thornton
a01f803237 Merge pull request #5588 from jellyfin/renovate/material-ui-monorepo 2024-06-12 12:36:04 -04:00
renovate[bot]
61e69e6eaa Update material-ui monorepo 2024-06-12 16:32:11 +00:00
LittleBigOwl
be386fb3c1 Migrate to x-data-grid v7 (#5597) 2024-06-12 12:30:43 -04:00
queeup
85f07ecc9e Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-06-12 09:41:28 -04:00
Bas
a28f7dce2f Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-06-12 06:41:27 -04:00
Justin
3ba2d13916 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-06-11 15:30:17 -04:00
無情天
b1f2f047a8 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-06-11 12:11:04 -04:00
renovate[bot]
d9d14ecd48 Update dependency jsdom to v24.1.0 2024-06-11 04:51:29 +00:00
liolio6
b9c79dfb23 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-06-10 18:41:27 -04:00
grafixeyehero
01bad67226 Remove unused component 2024-06-11 00:24:31 +03:00
grafixeyehero
9352ec12dc Refactor Search Page 2024-06-11 00:23:57 +03:00
renovate[bot]
5d18bdf191 Update dependency es-check to v7.2.1 (#5699)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-10 14:56:10 -04:00
enter-a-random-username
ff2ed9aeab Use % for playback slider marker postions (#5394)
* Use % for slider postions

* Use calc to get the middle of the marker

* Update src/elements/emby-slider/emby-slider.js

Co-authored-by: Grady Hallenbeck <grhallenbeck@users.noreply.github.com>

---------

Co-authored-by: Grady Hallenbeck <grhallenbeck@users.noreply.github.com>
2024-06-10 14:53:30 -04:00
stanol
aab373264f Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-06-10 14:41:27 -04:00
Bill Thornton
c3d981a3b6 Merge pull request #5697 from jellyfin/renovate/ci-deps
Update github/codeql-action action to v3.25.8
2024-06-10 13:41:21 -04:00
Bill Thornton
da19e50a7e Merge pull request #5696 from jellyfin/renovate/swiper-11.x
Update dependency swiper to v11.1.4
2024-06-10 13:26:54 -04:00
renovate[bot]
fce269c842 Update github/codeql-action action to v3.25.8 2024-06-10 17:26:12 +00:00
Bill Thornton
e5833b2f74 Merge pull request #5695 from jellyfin/renovate/hls.js-1.x
Update dependency hls.js to v1.5.9
2024-06-10 13:23:52 -04:00
renovate[bot]
bd2fc8776d Update dependency swiper to v11.1.4 2024-06-10 17:21:17 +00:00
Bill Thornton
3702b6b227 Merge pull request #5591 from jellyfin/renovate/react-hook-resize-observer-2.x
Update dependency @react-hook/resize-observer to v2
2024-06-10 13:20:47 -04:00
renovate[bot]
8b46532bd0 Update dependency hls.js to v1.5.9 2024-06-10 17:18:04 +00:00
Bill Thornton
efb7b79e3d Merge pull request #5683 from jellyfin/renovate/linters
Update dependency eslint-plugin-react to v7.34.2
2024-06-10 13:17:32 -04:00
nextlooper42
a24fa94e1c Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-06-10 05:41:27 -04:00
DJSweder
ab83d96079 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-06-10 00:41:27 -04:00
Bill Thornton
1d647bcf03 Merge pull request #5631 from prsantos-com/sonarcloud-resolve-s6644 2024-06-09 17:02:20 -04:00
celticslment
e1d17a0a6b Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-06-09 06:41:27 -04:00
Kityn
4642564c31 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-06-09 03:41:27 -04:00
renovate[bot]
887df400ab Update dependency @react-hook/resize-observer to v2 2024-06-09 07:05:55 +00:00
Bill Thornton
b7a3045066 Merge pull request #5238 from grafixeyehero/Update-to-React-18
Updates react to v18 and tanstack to v5.
2024-06-09 03:04:46 -04:00
grafixeyehero
11393ac3b2 add Legacy params interface 2024-06-09 09:01:52 +03:00
grafixeyehero
06e585e2bc apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-06-09 08:25:47 +03:00
grafixeyehero
4d37b47331 Replace UnratedItem import with full path
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-06-09 08:25:44 +03:00
grafixeyehero
8e23d50cb7 use logical OR ( || )
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-06-09 08:25:42 +03:00
grafixeyehero
ac42b3a203 Update tanstack query to v5 2024-06-09 08:25:39 +03:00
grafixeyehero
be891c3a98 Update to React 18 2024-06-09 08:25:36 +03:00
LJQ
7b765b7785 Update Enum 2024-06-09 13:03:07 +08:00
Bill Thornton
b5d6e37fb3 Merge pull request #5483 from pypp/cleanup/remove-dlna-page
Remove DLNA dashboard page
2024-06-08 20:30:30 -04:00
Bill Thornton
1b27d7dcb8 Merge pull request #5505 from scampower3/add-options-displayorder
Add display options for tvdb plugin
2024-06-08 20:29:43 -04:00
Netanel Henya
14952d2fec cleanup: removed the DLNA dashboard page 2024-06-08 20:26:37 -04:00
Bill Thornton
0a40507f3d Merge pull request #5467 from scampower3/use-VideoDoViTitle-playbackinfo
Use VideoDoViTitle when available
2024-06-08 20:00:10 -04:00
hoanghuy309
97d03f37aa Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-06-08 00:41:27 -04:00
renovate[bot]
5b0280c46c Update dependency eslint-plugin-react to v7.34.2 2024-06-07 19:09:05 +00:00
Dr Aghosh B Prasad
d04df18ec6 Translated using Weblate (Malayalam)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ml/
2024-06-07 04:41:27 -04:00
Bill Thornton
16dfaac650 Merge pull request #5596 from jellyfin/renovate/sass-1.x 2024-06-07 01:20:17 -04:00
renovate[bot]
4e063dd361 Update dependency sass to v1.77.4 2024-06-07 00:09:14 +00:00
thornbill
0b8fcb96c8 Backport pull request #5668 from jellyfin-web/release-10.9.z
Remove IMDb references

Original-merge: 7e20d3032f

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-06 14:39:55 -04:00
dmitrylyzo
b568f7845e Backport pull request #5667 from jellyfin-web/release-10.9.z
Fix uneven slider value

Original-merge: 5495ef220a

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-06 14:39:53 -04:00
thornbill
83c1b47688 Backport pull request #5664 from jellyfin-web/release-10.9.z
Fix live tv images being ignored

Original-merge: d898afdf10

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-06 14:39:52 -04:00
Dan Johansen
42f41589ff Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-06-06 07:41:27 -04:00
gnattu
bc089e6b1b Backport pull request #5662 from jellyfin-web/release-10.9.z
Mark desktop Opera as AV1 and HEVC ready in fmp4

Original-merge: 52aa8ebd49

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:03:54 -04:00
thornbill
1688829caf Backport pull request #5661 from jellyfin-web/release-10.9.z
Use display missing episodes setting in search

Original-merge: 2a110f6b5d

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:03:52 -04:00
ConnorS1110
0e07d8a19a Backport pull request #5660 from jellyfin-web/release-10.9.z
Fixed being unable to properly long press on cards to multiselect on Firefox

Original-merge: 5680c18ade

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:03:51 -04:00
thornbill
a24eb4533d Backport pull request #5658 from jellyfin-web/release-10.9.z
Update activity table column widths

Original-merge: ab781678c1

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:03:49 -04:00
thornbill
fae81839ec Backport pull request #5657 from jellyfin-web/release-10.9.z
Revert "Fix extra requests in standalone mode"

Original-merge: 574eddada8

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:03:48 -04:00
dmitrylyzo
5e8372c42d Backport pull request #5653 from jellyfin-web/release-10.9.z
Fix video OSD not fully hiding

Original-merge: 74a3bd8768

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:03:46 -04:00
mihawk90
bd6f11ea78 Backport pull request #5640 from jellyfin-web/release-10.9.z
Fix background being invisible with theme videos

Original-merge: 7854c4b20b

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:03:45 -04:00
Àlex Bravo
f950aaf784 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-06-04 16:41:27 -04:00
hoanghuy309
c0b2b04c4e Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-06-04 00:41:27 -04:00
Justin
611829978a Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-06-03 19:41:27 -04:00
Acrotos
3a20674ef5 Translated using Weblate (Romanian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ro/
2024-06-03 17:41:27 -04:00
bene toffix
cdcf5609dd Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-06-03 13:41:27 -04:00
CasperDoesCoding
d311dec1db Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-06-02 11:41:27 -04:00
Bas
cb4d4928a3 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-06-02 11:41:27 -04:00
esol693
9b6f47706f Translated using Weblate (Filipino)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fil/
2024-06-02 03:41:27 -04:00
grafixeyehero
fcffaab50e Backport pull request #5638 from jellyfin-web/release-10.9.z
Fix: Tv guide only covers half the screen in Experimental Layout

Original-merge: 60af8a68f8

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:42:07 -04:00
grafixeyehero
1fc471a0ed Backport pull request #5636 from jellyfin-web/release-10.9.z
Clear query and view cache on user logout

Original-merge: 4129676ed8

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:42:06 -04:00
grafixeyehero
7e0afdfd66 Backport pull request #5619 from jellyfin-web/release-10.9.z
Clear the cache view on user logout

Original-merge: 4959a777c9

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:42:05 -04:00
gnattu
39fa14a6f8 Backport pull request #5617 from jellyfin-web/release-10.9.z
Allow VideoStreamCopy for remote source fallback

Original-merge: 40e7dc9007

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:42:03 -04:00
scampower3
da80ba85ee Backport pull request #5612 from jellyfin-web/release-10.9.z
Fix user agent detection

Original-merge: 788ce37c43

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:42:02 -04:00
grafixeyehero
2da46ebc7a Backport pull request #5610 from jellyfin-web/release-10.9.z
Fix Search Field for Tv Mode

Original-merge: 003bc94e02

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:42:01 -04:00
Bas
406a20334e Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-06-01 18:41:27 -04:00
Albert Berg Hansen
c04b731eae Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-06-01 09:41:27 -04:00
Torpeda
d77b7e177a Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-06-01 07:41:27 -04:00
Albert Berg Hansen
926d10e941 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-06-01 07:41:27 -04:00
huasbryan14
3ab1fbb1e4 Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_419/
2024-05-31 13:41:28 -04:00
Sultan Iskandar Maulana
76b6c4794e Translated using Weblate (Indonesian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/id/
2024-05-31 13:41:28 -04:00
Marcx
5aa3f2896d Translated using Weblate (Croatian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hr/
2024-05-31 13:41:28 -04:00
huasbryan14
6f21656e13 Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_MX/
2024-05-31 13:41:27 -04:00
Marcx
2d86a59e45 Translated using Weblate (Croatian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hr/
2024-05-31 11:34:22 -04:00
Misael
f1d511f5b4 Translated using Weblate (Spanish (Dominican Republic))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_DO/
2024-05-30 21:41:27 -04:00
Bill Thornton
b6c13f3717 Merge pull request #5632 from jellyfin/renovate/ci-deps 2024-05-30 18:26:33 -04:00
dtalens
fd8c0ae64e Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ca/
2024-05-30 13:41:27 -04:00
renovate[bot]
7f696c240a Update eps1lon/actions-label-merge-conflict action to v3.0.2 2024-05-30 10:33:49 +00:00
Peter Santos
a71b1f4e33 Resolve sonarcloud javascript:S6644 code smell 2024-05-29 23:46:41 -04:00
Justin
a5bd72667a Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-29 18:41:27 -04:00
FintasticMan
e146c3d95c Remove VP9 from codec selection 2024-05-29 12:50:23 +02:00
FintasticMan
b234888485 Add setting for preferred video codec 2024-05-29 12:14:19 +02:00
grafixeyehero
fd420a457f Add Homevideos View 2024-05-29 03:32:53 +03:00
hoanghuy309
ef6bbc8212 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-05-28 02:41:26 -04:00
hoanghuy309
b08ceab5a8 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-05-27 06:41:27 -04:00
Blackspirits
0525523d20 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-05-27 06:41:26 -04:00
hoanghuy309
973961bd99 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-05-26 22:41:26 -04:00
thornbill
1929ba8eb2 Backport pull request #5589 from jellyfin-web/release-10.9.z
Add support for user themes for mui components

Original-merge: 61976b8101

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-26 18:49:25 -04:00
hoanghuy309
669784bde5 Translated using Weblate (Vietnamese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/vi/
2024-05-26 12:41:26 -04:00
Ron Nuss
a41f7ad6c7 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/he/
2024-05-26 06:41:26 -04:00
thornbill
9813c3efb9 Backport pull request #5601 from jellyfin-web/release-10.9.z
Fix chapter markers not updating

Original-merge: 167515dbf0

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:54 -04:00
thornbill
f0c43418da Backport pull request #5600 from jellyfin-web/release-10.9.z
Reset query cache on user logout

Original-merge: a88d03fe8f

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:52 -04:00
NotSaifA
d4e7ac039f Backport pull request #5599 from jellyfin-web/release-10.9.z
Show correct release date

Original-merge: 1ea598968c

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:50 -04:00
thornbill
decdb026fa Backport pull request #5593 from jellyfin-web/release-10.9.z
Fix chapter marker re-rendering

Original-merge: bd03c43716

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:49 -04:00
thornbill
711f61d93d Backport pull request #5590 from jellyfin-web/release-10.9.z
Fix positioning of the main animated page elements

Original-merge: f7f5ac99b0

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:47 -04:00
scampower3
5d606021ed Backport pull request #5587 from jellyfin-web/release-10.9.z
Fix square posters

Original-merge: 9e34ae8b42

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:46 -04:00
thornbill
d6130751e8 Backport pull request #5581 from jellyfin-web/release-10.9.z
Fix missing policy check for download all

Original-merge: bb9b4ce8bb

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:44 -04:00
thornbill
80abbb4574 Backport pull request #5573 from jellyfin-web/release-10.9.z
Fix playback interceptor rejecting

Original-merge: add01e332b

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:42 -04:00
gnattu
0a55ea2dd9 Backport pull request #5566 from jellyfin-web/release-10.9.z
Only connect to manual addresses specified by user

Original-merge: 3dcb42daac

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:40 -04:00
nielsvanvelzen
9cf57574fb Backport pull request #5563 from jellyfin-web/release-10.9.z
Fix chapter name XSS injection in progress bar

Original-merge: 7eb54e029f

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:39 -04:00
dmitrylyzo
94f34ddd13 Backport pull request #5558 from jellyfin-web/release-10.9.z
Fix `TypeError: Failed to construct 'Headers': No matching constructor signature.`

Original-merge: a806eeb3a7

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:37 -04:00
gnattu
22eb6bf3f6 Backport pull request #5526 from jellyfin-web/release-10.9.z
Don’t bind to keyevents of media keys when browser support mediaSession

Original-merge: 6da3dd7c86

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:36 -04:00
dmitrylyzo
6e32ea052d Backport pull request #5452 from jellyfin-web/release-10.9.z
Limit maximum FLAC audio channels in video to 2 on webOS

Original-merge: 9d9b69edd5

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:50:34 -04:00
DJSweder
d324461250 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-05-25 03:41:26 -04:00
millallo
00dd77857d Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-05-24 12:41:27 -04:00
Leberkassemml
7a4c153971 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-24 12:41:26 -04:00
LJQ
a75338e3d2 Group component imports together 2024-05-24 21:33:18 +08:00
LJQ
2d2ca357c1 Sync focus with current playing lyrics 2024-05-24 21:32:20 +08:00
millallo
552ae8906d Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-05-24 06:41:27 -04:00
Kamran Imami
fdc305f0b5 Translated using Weblate (Persian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fa/
2024-05-24 06:41:26 -04:00
scampower3
15e35fa45f Update src/controllers/lyrics.js
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-05-23 22:02:11 +08:00
scampower3
8c829fde46 Update src/controllers/lyrics.js
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-05-23 22:01:07 +08:00
LJQ
65550e07c3 Rename None to NoScroll 2024-05-23 21:48:13 +08:00
LJQ
cfcfbe934b Instant scroll when enter webview. Enums to determine 2024-05-23 21:40:31 +08:00
LJQ
a4c88e59eb Disable autoscroll on touchmove 2024-05-23 20:48:50 +08:00
scampower3
dd5b442b50 Merge branch 'master' into lyrics-auto-scroll 2024-05-23 00:41:52 +08:00
LJQ
fa9b0e6c87 Add lyrics auto scroll 2024-05-23 00:34:45 +08:00
queeup
2d4621104b Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-05-22 10:41:26 -04:00
Dipanker Kaul
116a0ec06b Translated using Weblate (Hindi)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/hi/
2024-05-22 10:41:26 -04:00
queeup
b71aaa05a6 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-05-21 21:41:26 -04:00
renovate[bot]
8a8cf2980c Update dependency core-js to v3.37.1 2024-05-21 20:18:13 +00:00
Bill Thornton
95afd3ff55 Merge pull request #5460 from scampower3/auto-people-editor-options 2024-05-20 23:40:46 -04:00
Bill Thornton
8961a19154 Add commit sha to version information 2024-05-20 22:31:19 -04:00
Bill Thornton
f2e6153541 Merge pull request #5478 from jellyfin/ci-no-pr-context-artifact 2024-05-20 22:29:45 -04:00
Bill Thornton
85f412d9a1 Merge pull request #5575 from jellyfin/renovate/swiper-11.x 2024-05-20 22:14:39 -04:00
Bill Thornton
f619446427 Merge pull request #5574 from jellyfin/renovate/postcss 2024-05-20 22:13:41 -04:00
Bill Thornton
28ad083a85 Merge pull request #5567 from jellyfin/renovate/ci-deps 2024-05-20 22:05:18 -04:00
renovate[bot]
705f3abaa5 Update dependency swiper to v11.1.3 2024-05-20 23:59:23 +00:00
renovate[bot]
6205762e16 Update dependency postcss-preset-env to v9.5.13 2024-05-20 23:59:07 +00:00
Thomas Schwery
ebfe6feb14 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-20 16:41:26 -04:00
Chimorin
f640844f34 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-20 16:41:26 -04:00
Blackspirits
8316736169 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-05-20 14:41:26 -04:00
Blackspirits
a746c0405d Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-05-20 14:41:26 -04:00
Blackspirits
0d2ae05285 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-05-20 12:41:26 -04:00
Blackspirits
9736da4bfb Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-05-20 12:41:26 -04:00
renovate[bot]
272a58a807 Update github/codeql-action action to v3.25.6 2024-05-20 15:58:21 +00:00
Bill Thornton
70392d69cc Merge pull request #5564 from jellyfin/renovate/swiper-11.x 2024-05-20 07:28:58 -04:00
renovate[bot]
9a7a1b0d69 Update dependency swiper to v11.1.2 2024-05-20 11:10:22 +00:00
Bill Thornton
f10328af07 Merge pull request #5562 from jellyfin/update-jf-sdk 2024-05-20 07:09:10 -04:00
Mathias Dejerud
4feb0de203 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sv/
2024-05-20 05:41:26 -04:00
jellyfin-bot
c617343687 Update @jellyfin/sdk to 0.0.0-unstable.202405200501 2024-05-20 07:05:22 +00:00
stanol
60dbc895fc Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-05-19 10:41:26 -04:00
Adam
81f46e970f Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/en_GB/
2024-05-19 08:46:04 -04:00
nextlooper42
ae4152cb22 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-05-19 07:40:45 -04:00
Bill Thornton
fc730b3681 Merge pull request #5454 from jellyfin/update-jf-sdk 2024-05-19 05:10:11 -04:00
Bas
a354017f44 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-05-19 03:38:21 -04:00
jellyfin-bot
925fbc41ee Update @jellyfin/sdk to 0.0.0-unstable.202405190501 2024-05-19 07:05:18 +00:00
Lukáš Kucharczyk
eb6d04977a Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-05-19 02:54:59 -04:00
Bill Thornton
144445a227 Merge pull request #5150 from jellyfin/renovate/major-webpack 2024-05-18 11:38:08 -04:00
renovate[bot]
3f0cd3b842 Update Webpack 2024-05-18 15:31:15 +00:00
Bill Thornton
e0ecfd1b12 Merge pull request #5546 from jellyfin/renovate/cssnano-7.x 2024-05-18 11:29:44 -04:00
Bill Thornton
5051a6bbea Merge pull request #5549 from jellyfin/renovate/postcss 2024-05-18 11:03:56 -04:00
Bill Thornton
342d54cead Merge pull request #5366 from jellyfin/renovate/react 2024-05-18 10:51:09 -04:00
renovate[bot]
f887a28369 Update dependency cssnano to v7 2024-05-18 14:47:52 +00:00
Bill Thornton
03c38598c9 Merge pull request #5542 from jellyfin/renovate/sass-1.x 2024-05-18 10:47:01 -04:00
renovate[bot]
59c3e2ce09 Update dependency postcss-preset-env to v9.5.12 2024-05-18 14:45:31 +00:00
Bill Thornton
4861eaa988 Merge pull request #5539 from jellyfin/renovate/webpack 2024-05-18 10:45:24 -04:00
renovate[bot]
53a300ab3a Update React 2024-05-18 14:44:02 +00:00
Bill Thornton
59218796c9 Merge pull request #5370 from jellyfin/renovate/swiper-11.x 2024-05-18 10:43:38 -04:00
Bill Thornton
856328620c Merge pull request #5545 from jellyfin/renovate/markdown-it-14.x 2024-05-18 10:42:46 -04:00
queeup
af6bcde3b2 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-05-18 09:41:26 -04:00
Lukas
9cc8405ce9 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-18 09:41:26 -04:00
Lukas
eb5b8118e6 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-18 08:22:48 -04:00
Lukas
2923961575 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-18 07:38:11 -04:00
Lukas
9e2c943f24 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-18 07:37:21 -04:00
Bill Thornton
6b055dc637 Merge pull request #5540 from jellyfin/renovate/core-js-3.x 2024-05-18 04:03:34 -04:00
Kityn
fcfefa8bd9 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-05-18 04:00:28 -04:00
Bill Thornton
da0d140ba1 Merge pull request #5538 from jellyfin/renovate/typescript 2024-05-18 03:56:05 -04:00
renovate[bot]
388a04a20b Update dependency typescript to v5.4.5 2024-05-18 07:49:47 +00:00
Bill Thornton
3334924466 Merge pull request #5543 from jellyfin/renovate/tests 2024-05-18 03:48:21 -04:00
Bill Thornton
47f54d940d Merge pull request #5544 from jellyfin/renovate/catchen-eslint-suggestion-action-4.x 2024-05-18 03:46:42 -04:00
Bill Thornton
4f678d01fc Merge pull request #5534 from jellyfin/renovate/loadable-component-5.x 2024-05-18 03:26:04 -04:00
renovate[bot]
0847bd69a1 Update dependency @types/markdown-it to v14 2024-05-18 07:13:34 +00:00
Bill Thornton
789361973e Merge pull request #5537 from jellyfin/renovate/hls.js-1.x 2024-05-18 03:13:04 -04:00
Bill Thornton
436ced2b0b Merge pull request #5535 from jellyfin/renovate/markdown-it-13.x 2024-05-18 03:11:30 -04:00
Bill Thornton
7c8c2ba668 Merge pull request #5536 from jellyfin/renovate/react-lazy-load-image-component-1.x 2024-05-18 03:10:39 -04:00
renovate[bot]
d2882e464a Update CatChen/eslint-suggestion-action action to v4 2024-05-18 07:04:29 +00:00
renovate[bot]
c65646e4eb Update dependency vitest to v1.6.0 2024-05-18 07:04:22 +00:00
renovate[bot]
94bd8f013f Update dependency swiper to v11.1.1 2024-05-18 07:04:05 +00:00
renovate[bot]
4634b4938d Update dependency sass to v1.77.1 2024-05-18 07:03:49 +00:00
renovate[bot]
d1f8049db7 Update dependency core-js to v3.37.0 2024-05-18 07:03:17 +00:00
renovate[bot]
7f0b48a0c8 Update Webpack 2024-05-18 07:03:00 +00:00
renovate[bot]
5ce354e067 Update dependency hls.js to v1.5.8 2024-05-18 07:02:26 +00:00
renovate[bot]
219f815f00 Update dependency @types/react-lazy-load-image-component to v1.6.4 2024-05-18 07:02:05 +00:00
renovate[bot]
c3bad4c3cb Update dependency @types/markdown-it to v13.0.8 2024-05-18 07:01:49 +00:00
renovate[bot]
86c4f45f02 Update dependency @loadable/component to v5.16.4 2024-05-18 07:01:33 +00:00
Bill Thornton
4c462b772e Merge pull request #5533 from jellyfin/renovate/emotion-monorepo 2024-05-18 02:55:37 -04:00
renovate[bot]
2463f08a5b Update dependency @emotion/styled to v11.11.5 2024-05-18 06:51:37 +00:00
Bill Thornton
ebe3f05b2d Merge pull request #5532 from jellyfin/renovate/fonts 2024-05-18 02:50:23 -04:00
Bill Thornton
186bd02efc Merge pull request #5310 from jellyfin/renovate/material-ui-monorepo 2024-05-18 02:48:10 -04:00
Bill Thornton
dc186b376b Merge pull request #5360 from jellyfin/renovate/postcss 2024-05-18 02:46:24 -04:00
Bill Thornton
ae73bd2248 Merge pull request #5387 from jellyfin/renovate/babel 2024-05-18 02:44:55 -04:00
renovate[bot]
18a7945177 Update Fonts 2024-05-18 06:42:36 +00:00
Bill Thornton
6353ff4693 Merge pull request #5369 from jellyfin/renovate/linters 2024-05-18 02:40:44 -04:00
Bill Thornton
60f5d180b0 Merge pull request #5355 from jellyfin/renovate/usehooks-ts-3.x 2024-05-18 02:39:48 -04:00
Bill Thornton
622acdeb76 Merge pull request #5354 from jellyfin/renovate/jsdom-24.x 2024-05-18 02:37:51 -04:00
無情天
86bbb909c8 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-05-18 02:23:20 -04:00
Bas
e42667f2fe Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-05-18 02:23:20 -04:00
scampower3
32fc33894d Add setting to prioritise what audio codec to transcode to (#5434)
* Add setting to prioritise what audio codec to transcode to

* Add comment

* rename selectPreferredTranscodeAudio to preferredTranscodeAudio

* Add review changes

* Add review changes

* Add reviewed fixes

* Add help text.

* Fix elint

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Change *AudioCodecInVideo  to *VideoAudioCodec  and move option to video advanced

* Update src/components/playbackSettings/playbackSettings.template.html

Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-05-18 01:19:56 -04:00
thornbill
291d3099bb Backport pull request #5530 from jellyfin-web/release-10.9.z
Fix scheduled task dialog z-index

Original-merge: 3402f1beba

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:50 -04:00
thornbill
e2f805da19 Backport pull request #5529 from jellyfin-web/release-10.9.z
Restore library menu tabs functionality

Original-merge: 7ce8c070b3

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:49 -04:00
Schoggi0815
5b1a65112a Backport pull request #5519 from jellyfin-web/release-10.9.z
Fix chapter markings not displayed properly

Original-merge: b17ca028f8

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:47 -04:00
thornbill
6da354a92e Backport pull request #5518 from jellyfin-web/release-10.9.z
Fix syncplay playback starting before listener created

Original-merge: 25b1bcab50

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:46 -04:00
thornbill
017734a0bb Backport pull request #5517 from jellyfin-web/release-10.9.z
Fix video osd not hiding in experimental layout

Original-merge: ea1d069e90

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:45 -04:00
thornbill
cb01afce02 Backport pull request #5512 from jellyfin-web/release-10.9.z
Fix invalid sort order values

Original-merge: 0fcb1ff983

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:44 -04:00
thornbill
ae26c92a38 Backport pull request #5507 from jellyfin-web/release-10.9.z
Set the minimum server version to match the sdk

Original-merge: a358d34ea9

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:42 -04:00
thornbill
fcce771cd8 Backport pull request #5500 from jellyfin-web/release-10.9.z
Fix stored credentials not updating on logout

Original-merge: ea8ceaa727

Merged-by: thornbill <thornbill@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:52:41 -04:00
Jan Ledermann
6053c2f3f8 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-17 07:59:24 -04:00
Kityn
6d08637723 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pl/
2024-05-17 02:41:26 -04:00
Jonhnny Translate
b0380c157b Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
2024-05-17 02:41:26 -04:00
Jonhnny Translate
9b5415aa8d Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
2024-05-17 00:41:26 -04:00
Jonhnny Translate
bf1ee507ee Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-16 22:41:26 -04:00
Jonhnny Translate
7686de9655 Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
2024-05-16 22:41:26 -04:00
Bill Thornton
5793dd7c01 Merge pull request #5514 from jellyfin/renovate/ci-deps 2024-05-16 17:44:21 -04:00
renovate[bot]
e92f1d2fc1 Update CI dependencies 2024-05-16 21:13:46 +00:00
Nicolas
b7063f28bd Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-05-16 14:41:06 -04:00
Nicolas
fb010d52c8 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/da/
2024-05-16 13:59:18 -04:00
Matteo
7922ad3b14 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-16 11:41:26 -04:00
Jonhnny Translate
7f1182acc4 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-15 18:41:26 -04:00
Jonhnny Translate
c2f42e9eb0 Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
2024-05-15 18:41:26 -04:00
Jonhnny Translate
b7295b9501 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-15 16:41:26 -04:00
Jonhnny Translate
2b876d2ff1 Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr_CA/
2024-05-15 16:41:26 -04:00
HanaO00
aee56294a3 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-15 13:27:44 -04:00
stanol
ba4ff83219 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-05-15 08:41:26 -04:00
millallo
1c0adcb8c1 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/it/
2024-05-15 08:41:25 -04:00
renovate[bot]
83a50853fb Update material-ui monorepo 2024-05-15 12:30:28 +00:00
LilleMarkus
c5332dc98b Translated using Weblate (Estonian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/et/
2024-05-15 06:41:25 -04:00
LJQ
b316accfba Add display options for tvdb plugin 2024-05-15 01:35:47 +08:00
kimpig
b87c569391 Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ko/
2024-05-14 12:58:40 -04:00
stanol
99f9efd86a Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/uk/
2024-05-13 15:15:14 -04:00
queeup
cc2298cf3f Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/tr/
2024-05-13 12:41:25 -04:00
無情天
fa1876c35e Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-05-13 10:59:15 -04:00
無情天
5ab041176e Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-05-13 10:18:22 -04:00
Maxime Louet
90a21502f4 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-13 08:41:25 -04:00
Maxime Louet
d04045d6f5 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-13 07:00:03 -04:00
nextlooper42
add4f029e4 Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/
2024-05-13 05:15:18 -04:00
Bas
edc70fece4 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/nl/
2024-05-13 02:32:05 -04:00
jayrom23
2aadbf2758 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/
2024-05-13 02:32:05 -04:00
Arios
83a520ef6f Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es/
2024-05-13 00:41:25 -04:00
iafjwov4
d242fcf713 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fr/
2024-05-12 21:22:27 -04:00
Mohamad-Nour-Als
166ad3149b Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/
2024-05-12 21:22:27 -04:00
無情天
09ec147319 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-05-12 19:06:28 -04:00
無情天
00fa379c5d Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-05-12 18:19:53 -04:00
Lukáš Kucharczyk
b44a831d6c Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/
2024-05-12 16:36:09 -04:00
Fernando Fernández
0f88248015 Remove the need for PR context artifacts in workflows
* Changing the branch of CF Pages to be of the following form: user/repo_name/branch

* Took the liberty to move the permissions key down below, so the name is always the first item (for consistency)

Signed-off-by: GitHub <noreply@github.com>
2024-05-12 18:49:38 +00:00
Blackspirits
a634bc798e Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-05-12 14:41:25 -04:00
Blackspirits
9e5963d4da Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-05-12 13:26:08 -04:00
Blackspirits
8b64f6df4c Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-05-12 13:26:08 -04:00
mozartbanging
cf5d876cd2 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/
2024-05-12 13:26:07 -04:00
ntark
205635434e Translated using Weblate (Georgian)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ka/
2024-05-12 11:41:26 -04:00
therealblitz00
2937f46da1 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-05-12 11:41:25 -04:00
無情天
b40cbb2b97 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-05-12 00:41:25 -04:00
Blackspirits
01473b3bf1 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt/
2024-05-11 22:41:25 -04:00
Blackspirits
65bf19f67c Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/pt_PT/
2024-05-11 22:41:25 -04:00
renovate[bot]
05ab24f904 Update dependency postcss-preset-env to v9.5.11 2024-05-11 22:13:48 +00:00
無情天
b33173938a Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin Web
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/
2024-05-11 15:24:05 -04:00
Jellyfin Release Bot
f94d395cc0 Bump version to 10.10.0 2024-05-11 14:24:07 -04:00
Jellyfin Release Bot
b6514c748d Bump version to 10.10.0 2024-05-11 14:24:04 -04:00
LJQ
12cb4a1f61 use VideoDoViTitle when available 2024-05-09 15:54:50 +08:00
LJQ
67f5eb4487 Dynamic generate selectPersonType Options 2024-05-07 18:41:26 +08:00
renovate[bot]
9844db1e18 Update Babel to v7.24.5 2024-05-06 19:43:00 +00:00
renovate[bot]
7cbb39600b Update Linters 2024-05-03 19:47:53 +00:00
renovate[bot]
84384e9f92 Update dependency usehooks-ts to v3 2024-04-11 17:03:50 +00:00
renovate[bot]
3a4c7948ad Update dependency jsdom to v24 2024-03-30 09:13:08 +00:00
Topher Johnson
7e8e6992f4 Remove reset password option for admin users
Because admin users shouldn't be able to reset their own password
without entering their password first, this commit removes the "reset
password" option for admin users.

Currently, hitting the reset password option as an admin will result in
a 400 Bad request saying "Admin user passwords must not be empty
(Parameter 'newPassword')"
2024-02-21 00:08:40 -08:00
640 changed files with 34002 additions and 14668 deletions

View File

@@ -5,7 +5,6 @@
"not": [
"./dist/libraries/pdf.worker.js",
"./dist/libraries/worker-bundle.js",
"./dist/libraries/wasm-gen/libarchive.js",
"./dist/serviceworker.js"
]
}

View File

@@ -1,4 +1,5 @@
node_modules
coverage
dist
.idea
.vscode

View File

@@ -4,10 +4,10 @@ module.exports = {
root: true,
parser: '@typescript-eslint/parser',
plugins: [
'@stylistic',
'@typescript-eslint',
'react',
'import',
'eslint-comments',
'sonarjs'
],
env: {
@@ -20,23 +20,14 @@ module.exports = {
'eslint:recommended',
'plugin:react/recommended',
'plugin:import/errors',
'plugin:eslint-comments/recommended',
'plugin:@eslint-community/eslint-comments/recommended',
'plugin:compat/recommended',
'plugin:sonarjs/recommended'
],
rules: {
'array-callback-return': ['error', { 'checkForEach': true }],
'block-spacing': ['error'],
'brace-style': ['error', '1tbs', { 'allowSingleLine': true }],
'comma-dangle': ['error', 'never'],
'comma-spacing': ['error'],
'curly': ['error', 'multi-line', 'consistent'],
'default-case-last': ['error'],
'eol-last': ['error'],
'indent': ['error', 4, { 'SwitchCase': 1 }],
'jsx-quotes': ['error', 'prefer-single'],
'keyword-spacing': ['error'],
'max-statements-per-line': ['error'],
'max-params': ['error', 7],
'new-cap': [
'error',
@@ -48,10 +39,7 @@ module.exports = {
'no-duplicate-imports': ['error'],
'no-empty-function': ['error'],
'no-extend-native': ['error'],
'no-floating-decimal': ['error'],
'no-lonely-if': ['error'],
'no-multi-spaces': ['error'],
'no-multiple-empty-lines': ['error', { 'max': 1 }],
'no-nested-ternary': ['error'],
'no-redeclare': ['off'],
'@typescript-eslint/no-redeclare': ['error', { builtinGlobals: false }],
@@ -62,7 +50,6 @@ module.exports = {
'no-shadow': ['off'],
'@typescript-eslint/no-shadow': ['error'],
'no-throw-literal': ['error'],
'no-trailing-spaces': ['error'],
'no-undef-init': ['error'],
'no-unneeded-ternary': ['error'],
'no-unused-expressions': ['off'],
@@ -74,18 +61,12 @@ module.exports = {
'no-var': ['error'],
'no-void': ['error', { 'allowAsStatement': true }],
'no-warning-comments': ['warn', { 'terms': ['fixme', 'hack', 'xxx'] }],
'object-curly-spacing': ['error', 'always'],
'one-var': ['error', 'never'],
'operator-linebreak': ['error', 'before', { overrides: { '?': 'after', ':': 'after', '=': 'after' } }],
'padded-blocks': ['error', 'never'],
'prefer-const': ['error', { 'destructuring': 'all' }],
'prefer-promise-reject-errors': ['warn', { 'allowEmptyReject': true }],
'@typescript-eslint/prefer-for-of': ['error'],
'@typescript-eslint/prefer-optional-chain': ['error'],
'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
'radix': ['error'],
'@typescript-eslint/semi': ['error'],
'space-before-blocks': ['error'],
'space-infix-ops': 'error',
'yoda': 'error',
'react/jsx-filename-extension': ['error', { 'extensions': ['.jsx', '.tsx'] }],
@@ -97,7 +78,28 @@ module.exports = {
'sonarjs/no-inverted-boolean-check': ['error'],
// TODO: Enable the following rules and fix issues
'sonarjs/cognitive-complexity': ['off'],
'sonarjs/no-duplicate-string': ['off']
'sonarjs/no-duplicate-string': ['off'],
'@stylistic/block-spacing': ['error'],
'@stylistic/brace-style': ['error', '1tbs', { 'allowSingleLine': true }],
'@stylistic/comma-dangle': ['error', 'never'],
'@stylistic/comma-spacing': ['error'],
'@stylistic/eol-last': ['error'],
'@stylistic/indent': ['error', 4, { 'SwitchCase': 1 }],
'@stylistic/jsx-quotes': ['error', 'prefer-single'],
'@stylistic/keyword-spacing': ['error'],
'@stylistic/max-statements-per-line': ['error'],
'@stylistic/no-floating-decimal': ['error'],
'@stylistic/no-multi-spaces': ['error'],
'@stylistic/no-multiple-empty-lines': ['error', { 'max': 1 }],
'@stylistic/no-trailing-spaces': ['error'],
'@stylistic/object-curly-spacing': ['error', 'always'],
'@stylistic/operator-linebreak': ['error', 'before', { overrides: { '?': 'after', ':': 'after', '=': 'after' } }],
'@stylistic/padded-blocks': ['error', 'never'],
'@stylistic/quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
'@stylistic/semi': ['error'],
'@stylistic/space-before-blocks': ['error'],
'@stylistic/space-infix-ops': ['error']
},
settings: {
react: {
@@ -263,6 +265,7 @@ module.exports = {
'UserParentalControlPage': 'writable',
'Windows': 'readonly',
// Build time definitions
__COMMIT_SHA__: 'readonly',
__JF_BUILD_VERSION__: 'readonly',
__PACKAGE_JSON_NAME__: 'readonly',
__PACKAGE_JSON_VERSION__: 'readonly',
@@ -270,6 +273,44 @@ module.exports = {
__WEBPACK_SERVE__: 'readonly'
},
rules: {
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'default',
format: [ 'camelCase', 'PascalCase' ],
leadingUnderscore: 'allow'
},
{
selector: 'variable',
format: [ 'camelCase', 'PascalCase', 'UPPER_CASE' ],
leadingUnderscore: 'allowSingleOrDouble',
trailingUnderscore: 'allowSingleOrDouble'
},
{
selector: 'typeLike',
format: [ 'PascalCase' ]
},
{
selector: 'enumMember',
format: [ 'PascalCase', 'UPPER_CASE' ]
},
{
selector: [ 'objectLiteralProperty', 'typeProperty' ],
format: [ 'camelCase', 'PascalCase' ],
leadingUnderscore: 'allowSingleOrDouble',
trailingUnderscore: 'allowSingleOrDouble'
},
// Ignore numbers, locale strings (en-us), aria/data attributes, CSS selectors,
// and api_key parameter
{
selector: [ 'objectLiteralProperty', 'typeProperty' ],
format: null,
filter: {
regex: '[ &\\-]|^([0-9]+)$|^api_key$',
match: true
}
}
],
'@typescript-eslint/prefer-string-starts-ends-with': ['error']
}
},
@@ -282,7 +323,7 @@ module.exports = {
'eslint:recommended',
'plugin:import/typescript',
'plugin:@typescript-eslint/recommended',
'plugin:eslint-comments/recommended',
'plugin:@eslint-community/eslint-comments/recommended',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'plugin:jsx-a11y/recommended'

14
.github/renovate.json vendored
View File

@@ -2,7 +2,19 @@
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>jellyfin/.github//renovate-presets/nodejs",
":semanticCommitsDisabled",
":dependencyDashboard"
],
"packageRules": [
{
"matchPackageNames": [ "@jellyfin/sdk" ],
"followTag": "unstable",
"minimumReleaseAge": null,
"schedule": [ "after 7:00 am" ]
},
{
"matchPackageNames": ["dompurify"],
"matchUpdateTypes": ["major"],
"enabled": false
}
]
}

15
.github/workflows/__automation.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: Automation 🎛️
on:
workflow_call:
jobs:
conflicts:
name: Merge conflict labeling 🏷️
runs-on: ubuntu-latest
steps:
- uses: eps1lon/actions-label-merge-conflict@1b1b1fcde06a9b3d089f3464c96417961dde1168 # v3.0.2
with:
dirtyLabel: 'merge conflict'
commentOnDirty: 'This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.'
repoToken: ${{ secrets.JF_BOT_TOKEN }}

40
.github/workflows/__codeql.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: GitHub CodeQL 🔬
on:
workflow_call:
inputs:
commit:
required: true
type: string
jobs:
analyze:
name: Analyze ${{ matrix.language }} 🔬
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language:
- javascript-typescript
steps:
- name: Checkout repository ⬇️
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ inputs.commit }}
show-progress: false
- name: Initialize CodeQL 🛠️
uses: github/codeql-action/init@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0
with:
queries: security-and-quality
languages: ${{ matrix.language }}
- name: Autobuild 📦
uses: github/codeql-action/autobuild@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0
- name: Perform CodeQL Analysis 🧪
uses: github/codeql-action/analyze@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0
with:
category: '/language:${{matrix.language}}'

59
.github/workflows/__deploy.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: Deploy 🏗️
on:
workflow_call:
inputs:
branch:
required: true
type: string
commit:
required: false
type: string
comment:
required: false
type: boolean
artifact_name:
required: false
type: string
default: frontend
jobs:
cf-pages:
name: CloudFlare Pages 📃
runs-on: ubuntu-latest
environment:
name: ${{ inputs.branch == 'master' && 'Production' || 'Preview' }}
url: ${{ steps.cf.outputs.deployment-url }}
outputs:
url: ${{ steps.cf.outputs.deployment-url }}
steps:
- name: Download workflow artifact ⬇️
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ inputs.artifact_name }}
path: dist
- name: Publish to Cloudflare Pages 📃
uses: cloudflare/wrangler-action@6d58852c35a27e6034745c5d0bc373d739014f7f # v3.13.0
id: cf
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy dist --project-name=jellyfin-web --branch=${{ inputs.branch }}
compose-comment:
name: Compose and push comment 📝
# Always run so the comment is composed for the workflow summary
if: ${{ always() }}
uses: ./.github/workflows/__job_messages.yml
secrets: inherit
needs:
- cf-pages
with:
branch: ${{ inputs.branch }}
commit: ${{ inputs.commit }}
preview_url: ${{ needs.cf-pages.outputs.url }}
in_progress: false
comment: ${{ inputs.comment }}

View File

@@ -1,4 +1,4 @@
name: Job messages
name: Job messages ⚙️
on:
workflow_call:
@@ -12,32 +12,26 @@ on:
preview_url:
required: false
type: string
build_workflow_run_id:
required: false
type: number
commenting_workflow_run_id:
required: true
type: string
in_progress:
required: true
type: boolean
outputs:
msg:
description: The composed message
value: ${{ jobs.msg.outputs.msg }}
comment:
required: false
type: boolean
marker:
description: Hidden marker to detect PR comments composed by the bot
value: "CFPages-deployment"
required: false
type: string
default: "CFPages-deployment"
jobs:
msg:
name: Deployment status
cf_pages_msg:
name: CloudFlare Pages deployment 📃🚀
runs-on: ubuntu-latest
outputs:
msg: ${{ env.msg }}
steps:
- name: Compose message
- name: Compose message 📃
if: ${{ always() }}
id: compose
env:
@@ -45,8 +39,7 @@ jobs:
PREVIEW_URL: ${{ inputs.preview_url != '' && (inputs.branch != 'master' && inputs.preview_url || format('https://jellyfin-web.pages.dev ({0})', inputs.preview_url)) || 'Not available' }}
DEPLOY_STATUS: ${{ inputs.in_progress && '🔄 Deploying...' || (inputs.preview_url != '' && '✅ Deployed!' || '❌ Failure. Check workflow logs for details') }}
DEPLOYMENT_TYPE: ${{ inputs.branch != 'master' && '🔀 Preview' || '⚙️ Production' }}
BUILD_WORKFLOW_RUN: ${{ !inputs.in_progress && format('**[View build logs](https://github.com/{0}/actions/runs/{1})**', 'jellyfin/jellyfin-web', inputs.build_workflow_run_id) || '' }}
COMMENTING_WORKFLOW_RUN: ${{ format('**[View bot logs](https://github.com/{0}/actions/runs/{1})**', 'jellyfin/jellyfin-web', inputs.commenting_workflow_run_id) }}
WORKFLOW_RUN: ${{ !inputs.in_progress && format('**[View build logs](https://github.com/{0}/actions/runs/{1})**', github.repository, github.run_id) || '' }}
# EOF is needed for multiline environment variables in a GitHub Actions context
run: |
echo "## Cloudflare Pages deployment" > $GITHUB_STEP_SUMMARY
@@ -57,9 +50,16 @@ jobs:
echo "| **Preview URL** | $PREVIEW_URL |" >> $GITHUB_STEP_SUMMARY
echo "| **Type** | $DEPLOYMENT_TYPE |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "$BUILD_WORKFLOW_RUN" >> $GITHUB_STEP_SUMMARY
echo "$COMMENTING_WORKFLOW_RUN" >> $GITHUB_STEP_SUMMARY
echo "$WORKFLOW_RUN" >> $GITHUB_STEP_SUMMARY
COMPOSED_MSG=$(cat $GITHUB_STEP_SUMMARY)
echo "msg<<EOF" >> $GITHUB_ENV
echo "$COMPOSED_MSG" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Push comment to Pull Request 🔼
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
if: ${{ inputs.comment && steps.compose.conclusion == 'success' }}
with:
github-token: ${{ secrets.JF_BOT_TOKEN }}
message: ${{ env.msg }}
comment-tag: ${{ inputs.marker }}

45
.github/workflows/__package.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Packaging 📦
on:
workflow_call:
inputs:
commit:
required: false
type: string
jobs:
run-build-prod:
name: Run production build 🏗️
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ inputs.commit || github.sha }}
- name: Setup node environment
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 20
cache: npm
check-latest: true
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run a production build
env:
JELLYFIN_VERSION: ${{ inputs.commit || github.sha }}
run: npm run build:production
- name: Update config.json for testing
run: |
jq '.multiserver=true | .servers=["https://demo.jellyfin.org/unstable"]' dist/config.json > dist/config.tmp.json
mv dist/config.tmp.json dist/config.json
- name: Upload artifact
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
with:
name: frontend
path: dist

61
.github/workflows/__quality_checks.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
name: Quality checks 👌🧪
on:
workflow_call:
inputs:
commit:
required: true
type: string
workflow_dispatch:
jobs:
dependency-review:
name: Vulnerable dependencies 🔎
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ inputs.commit }}
show-progress: false
- name: Scan
uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3675e383bb1769c019 # v4.5.0
with:
## Workaround from https://github.com/actions/dependency-review-action/issues/456
## TODO: Remove when necessary
base-ref: ${{ github.event.pull_request.base.sha || 'master' }}
head-ref: ${{ github.event.pull_request.head.sha || github.ref }}
quality:
name: Run ${{ matrix.command }} 🕵️‍♂️
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
command:
- build:es-check
- lint
- stylelint
- build:check
- test
steps:
- name: Checkout ⬇️
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ inputs.commit }}
show-progress: false
- name: Setup node environment ⚙️
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 20
cache: npm
check-latest: true
- name: Install dependencies 📦
run: npm ci --no-audit
- name: Run ${{ matrix.command }} ⚙️
run: npm run ${{ matrix.command }}

View File

@@ -1,21 +0,0 @@
name: 'Automation'
on:
push:
branches:
- master
pull_request_target:
types:
- synchronize
jobs:
triage:
name: 'Merge conflict labeling'
runs-on: ubuntu-latest
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
steps:
- uses: eps1lon/actions-label-merge-conflict@e62d7a53ff8be8b97684bffb6cfbbf3fc1115e2e # v3.0.0
with:
dirtyLabel: 'merge conflict'
commentOnDirty: 'This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.'
repoToken: ${{ secrets.JF_BOT_TOKEN }}

View File

@@ -1,75 +0,0 @@
name: Build
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
push:
branches: [ master, release* ]
pull_request:
branches: [ master, release* ]
workflow_dispatch:
jobs:
run-build-prod:
name: Run production build
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Setup node environment
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run a production build
env:
JELLYFIN_VERSION: ${{ github.event.pull_request.head.sha || github.sha }}
run: npm run build:production
- name: Update config.json for testing
run: |
jq '.multiserver=true | .servers=["https://demo.jellyfin.org/unstable"]' dist/config.json > dist/config.tmp.json
mv dist/config.tmp.json dist/config.json
- name: Upload artifact
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: jellyfin-web__prod
path: |
dist
pr_context:
name: Save PR context as artifact
if: ${{ always() && !cancelled() && github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
needs:
- run-build-prod
steps:
- name: Save PR context
env:
PR_BRANCH: ${{ github.ref_name }}
PR_NUMBER: ${{ github.event.number }}
PR_SHA: ${{ github.event.pull_request.head.sha }}
run: |
echo $PR_BRANCH > PR_branch
echo $PR_NUMBER > PR_number
echo $PR_SHA > PR_sha
- name: Upload PR number as artifact
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: PR_context
path: |
PR_branch
PR_number
PR_sha

View File

@@ -1,34 +0,0 @@
name: CodeQL
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
push:
branches: [ master, release* ]
pull_request:
branches: [ master, release* ]
schedule:
- cron: '30 7 * * 6'
jobs:
codeql:
name: Run CodeQL
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Initialize CodeQL
uses: github/codeql-action/init@ccf74c947955fd1cf117aef6a0e4e66191ef6f61 # v3.25.4
with:
languages: javascript
queries: +security-extended
- name: Autobuild
uses: github/codeql-action/autobuild@ccf74c947955fd1cf117aef6a0e4e66191ef6f61 # v3.25.4
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@ccf74c947955fd1cf117aef6a0e4e66191ef6f61 # v3.25.4

View File

@@ -1,36 +0,0 @@
name: Commands
on:
issue_comment:
types:
- created
- edited
jobs:
rebase:
name: Rebase
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '@jellyfin-bot rebase') && github.event.comment.author_association == 'MEMBER'
runs-on: ubuntu-latest
steps:
- name: Notify as seen
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.JF_BOT_TOKEN }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Checkout the latest code
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
token: ${{ secrets.JF_BOT_TOKEN }}
fetch-depth: 0
- name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
env:
GITHUB_TOKEN: ${{ secrets.JF_BOT_TOKEN }}
- name: Comment on failure
if: failure()
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.JF_BOT_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
I'm sorry @${{ github.event.comment.user.login }}, I'm afraid I can't do that.

View File

@@ -1,38 +0,0 @@
name: PR suggestions
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.id || github.run_id }}
cancel-in-progress: true
on:
pull_request_target:
branches: [ master, release* ]
types:
- synchronize
jobs:
run-eslint:
name: Run eslint suggestions
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup node environment
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run eslint
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
uses: CatChen/eslint-suggestion-action@34e2a6c4193eba18a7a20710b5ae37850fc984c3 # v3.1.5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,102 +0,0 @@
name: Publish
on:
workflow_run:
workflows:
- Build
types:
- completed
jobs:
pr-context:
name: PR context
if: ${{ github.event.workflow_run.event == 'pull_request' }}
runs-on: ubuntu-latest
outputs:
branch: ${{ env.pr_branch }}
commit: ${{ env.pr_sha }}
pr_number: ${{ env.pr_number }}
steps:
- name: Get PR context
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
id: pr_context
with:
run_id: ${{ github.event.workflow_run.id }}
name: PR_context
- name: Set PR context environment variables
if: ${{ steps.pr_context.conclusion == 'success' }}
run: |
echo "pr_branch=$(cat PR_branch)" >> $GITHUB_ENV
echo "pr_number=$(cat PR_number)" >> $GITHUB_ENV
echo "pr_sha=$(cat PR_sha)" >> $GITHUB_ENV
publish:
permissions:
contents: read
deployments: write
name: Deploy to Cloudflare Pages
if: ${{ always() }}
runs-on: ubuntu-latest
needs:
- pr-context
outputs:
url: ${{ steps.cf.outputs.url }}
steps:
- name: Download workflow artifact
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
with:
run_id: ${{ github.event.workflow_run.id }}
name: jellyfin-web__prod
path: dist
- name: Publish
id: cf
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # 1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: jellyfin-web
branch: ${{ needs.pr-context.outputs.branch || github.ref_name }}
directory: dist
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
compose-comment:
name: Compose comment
if: ${{ always() }}
uses: ./.github/workflows/job-messages.yml
needs:
- publish
- pr-context
with:
branch: ${{ needs.pr-context.outputs.branch || github.ref_name }}
commit: ${{ needs.pr-context.outputs.commit != '' && needs.pr-context.outputs.commit || github.event.workflow_run.head_sha }}
preview_url: ${{ needs.publish.outputs.url }}
build_workflow_run_id: ${{ github.event.workflow_run.id }}
commenting_workflow_run_id: ${{ github.run_id }}
in_progress: false
comment-status:
name: Create comment status
if: |
always() &&
github.event.workflow_run.event == 'pull_request' &&
needs.pr-context.outputs.pr_number != ''
runs-on: ubuntu-latest
needs:
- compose-comment
- pr-context
steps:
- name: Update job summary in PR comment
uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 # v2.5.0
with:
GITHUB_TOKEN: ${{ secrets.JF_BOT_TOKEN }}
message: ${{ needs.compose-comment.outputs.msg }}
pr_number: ${{ needs.pr-context.outputs.pr_number }}
comment_tag: ${{ needs.compose-comment.outputs.marker }}
mode: recreate

100
.github/workflows/pull_request.yml vendored Normal file
View File

@@ -0,0 +1,100 @@
name: Pull Request 📥
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
on:
pull_request_target:
branches:
- master
- release*
paths-ignore:
- '**/*.md'
merge_group:
jobs:
push-comment:
name: Create comments ✍️
if: ${{ always() && !cancelled() && github.repository == 'jellyfin/jellyfin-web' }}
uses: ./.github/workflows/__job_messages.yml
secrets: inherit
with:
commit: ${{ github.event.pull_request.head.sha }}
in_progress: true
comment: true
build:
name: Build 🏗️
if: ${{ always() && !cancelled() }}
uses: ./.github/workflows/__package.yml
with:
commit: ${{ github.event.pull_request.head.sha }}
automation:
name: Automation 🎛️
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
uses: ./.github/workflows/__automation.yml
secrets: inherit
quality_checks:
name: Quality checks 👌🧪
if: ${{ always() && !cancelled() }}
uses: ./.github/workflows/__quality_checks.yml
permissions: {}
with:
commit: ${{ github.event.pull_request.head.sha }}
codeql:
name: GitHub CodeQL 🔬
if: ${{ always() && !cancelled() }}
uses: ./.github/workflows/__codeql.yml
permissions:
actions: read
contents: read
security-events: write
with:
commit: ${{ github.event.pull_request.head.sha }}
deploy:
name: Deploy 🚀
uses: ./.github/workflows/__deploy.yml
if: ${{ always() && !cancelled() && needs.build.result == 'success' && github.repository == 'jellyfin/jellyfin-web' }}
needs:
- push-comment
- build
permissions:
contents: read
deployments: write
secrets: inherit
with:
# If the PR is from the master branch of a fork, append the fork's name to the branch name
branch: ${{ github.event.pull_request.head.repo.full_name != github.repository && github.event.pull_request.head.ref == 'master' && format('{0}/{1}', github.event.pull_request.head.repo.full_name, github.event.pull_request.head.ref) || github.event.pull_request.head.ref }}
comment: true
commit: ${{ github.event.pull_request.head.sha }}
run-eslint:
name: Run eslint suggestions
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup node environment
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 20
cache: npm
check-latest: true
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run eslint
uses: CatChen/eslint-suggestion-action@9c12109c4943f26f0676b71c9c10e456748872cf # v4.1.7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

58
.github/workflows/push.yml vendored Normal file
View File

@@ -0,0 +1,58 @@
name: Push & Release 🌍
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.ref }}
cancel-in-progress: true
on:
push:
branches:
- master
- release*
paths-ignore:
- '**/*.md'
jobs:
automation:
name: Automation 🎛️
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
uses: ./.github/workflows/__automation.yml
secrets: inherit
main:
name: 'Unstable release 🚀⚠️'
uses: ./.github/workflows/__package.yml
with:
commit: ${{ github.sha }}
quality_checks:
name: Quality checks 👌🧪
if: ${{ always() && !cancelled() }}
uses: ./.github/workflows/__quality_checks.yml
permissions: {}
with:
commit: ${{ github.sha }}
codeql:
name: GitHub CodeQL 🔬
uses: ./.github/workflows/__codeql.yml
permissions:
actions: read
contents: read
security-events: write
with:
commit: ${{ github.sha }}
deploy:
name: Deploy 🚀
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
uses: ./.github/workflows/__deploy.yml
needs:
- main
permissions:
contents: read
deployments: write
secrets: inherit
with:
branch: ${{ github.ref_name }}
comment: false

View File

@@ -1,123 +0,0 @@
name: Quality checks
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
push:
branches: [ master, release* ]
pull_request:
branches: [ master, release* ]
jobs:
run-escheck:
name: Run es-check
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Setup node environment
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run a production build
run: npm run build:production
- name: Run es-check
run: npm run escheck
run-eslint:
name: Run eslint
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Setup node environment
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run eslint
run: npx eslint --quiet "."
run-stylelint:
name: Run stylelint
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Setup node environment
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Set up stylelint matcher
uses: xt0rted/stylelint-problem-matcher@34db1b874c0452909f0696aedef70b723870a583 # tag=v1
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run stylelint
run: npm run stylelint
run-tsc:
name: Run TypeScript build check
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Setup node environment
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run tsc
run: npm run build:check
run-test:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Setup node environment
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Install Node.js dependencies
run: npm ci --no-audit
- name: Run test suite
run: npm run test

View File

@@ -1,10 +1,9 @@
name: Stale Check
name: Scheduled tasks 🕑
on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:
permissions:
issues: write
pull-requests: write

View File

@@ -1,52 +0,0 @@
name: Update the Jellyfin SDK
on:
schedule:
- cron: '0 7 * * *'
workflow_dispatch:
concurrency:
group: unstable-sdk-pr
cancel-in-progress: true
jobs:
update:
runs-on: ubuntu-latest
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
steps:
- name: Check out Git repository
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
ref: master
token: ${{ secrets.JF_BOT_TOKEN }}
- name: Set up Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20
check-latest: true
cache: npm
- name: Install latest unstable SDK
run: |
npm i --save @jellyfin/sdk@unstable
VERSION=$(jq -r '.dependencies["@jellyfin/sdk"]' package.json)
echo "JF_SDK_VERSION=${VERSION}" >> $GITHUB_ENV
- name: Open a pull request
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e # v6.0.5
with:
token: ${{ secrets.JF_BOT_TOKEN }}
commit-message: Update @jellyfin/sdk to ${{env.JF_SDK_VERSION}}
committer: jellyfin-bot <team@jellyfin.org>
author: jellyfin-bot <team@jellyfin.org>
branch: update-jf-sdk
delete-branch: true
title: Update @jellyfin/sdk to ${{env.JF_SDK_VERSION}}
body: |
**Changes**
Updates to the latest unstable @jellyfin/sdk build
labels: |
dependencies
npm

9
.gitignore vendored
View File

@@ -3,6 +3,9 @@ dist
web
node_modules
# test coverage
coverage
# config
config.json
@@ -10,12 +13,6 @@ config.json
.idea
.vs
# log
yarn-error.log
# vim
*.sw?
# build artifacts
fedora/jellyfin-web-*.src.rpm
fedora/jellyfin-web-*.tar.gz

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
20

View File

@@ -87,6 +87,12 @@
- [JPUC1143](https://github.com/Jpuc1143)
- [David Angel](https://github.com/davidangel)
- [Pithaya](https://github.com/Pithaya)
- [Peter Santos](https://github.com/prsantos-com)
- [Chaitanya Shahare](https://github.com/Chaitanya-Shahare)
- [Venkat Karasani](https://github.com/venkat-karasani)
- [Connor Smith](https://github.com/ConnorS1110)
- [iFraan](https://github.com/iFraan)
- [Ali](https://github.com/bu3alwa)
## Emby Contributors

View File

@@ -85,8 +85,11 @@ Jellyfin Web is the frontend used for most of the clients available for end user
├── controllers # Legacy page views and controllers 🧹
├── elements # Basic webcomponents and React wrappers 🧹
├── hooks # Custom React hooks
├── legacy # Polyfills for legacy browsers
├── libraries # Third party libraries 🧹
├── lib # Reusable libraries
│   ├── globalize # Custom localization library
│   ├── legacy # Polyfills for legacy browsers
│   ├── navdrawer # Navigation drawer library for classic layout
│   └── scroller # Content scrolling library
├── plugins # Client plugins
├── scripts # Random assortment of visual components and utilities 🐉
├── strings # Translation files

View File

@@ -15,8 +15,5 @@ module.exports = {
'@babel/preset-react'
],
plugins: [
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-private-methods',
'babel-plugin-dynamic-import-polyfill'
]
};

17355
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,130 +1,134 @@
{
"name": "jellyfin-web",
"version": "10.9.0",
"version": "10.11.0",
"description": "Web interface for Jellyfin",
"repository": "https://github.com/jellyfin/jellyfin-web",
"license": "GPL-2.0-or-later",
"devDependencies": {
"@babel/core": "7.24.3",
"@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-private-methods": "7.18.6",
"@babel/plugin-transform-modules-umd": "7.24.1",
"@babel/preset-env": "7.24.3",
"@babel/preset-react": "7.24.1",
"@babel/core": "7.25.8",
"@babel/plugin-transform-modules-umd": "7.25.7",
"@babel/preset-env": "7.25.8",
"@babel/preset-react": "7.25.7",
"@eslint-community/eslint-plugin-eslint-comments": "4.4.0",
"@stylistic/eslint-plugin": "2.9.0",
"@types/dompurify": "3.0.5",
"@types/escape-html": "1.0.4",
"@types/loadable__component": "5.13.9",
"@types/lodash-es": "4.17.12",
"@types/markdown-it": "13.0.7",
"@types/react": "17.0.79",
"@types/react-dom": "17.0.25",
"@types/markdown-it": "14.1.2",
"@types/react": "18.3.11",
"@types/react-dom": "18.3.1",
"@types/react-lazy-load-image-component": "1.6.4",
"@types/sortablejs": "1.15.8",
"@typescript-eslint/eslint-plugin": "5.62.0",
"@typescript-eslint/parser": "5.62.0",
"@uupaa/dynamic-import-polyfill": "1.0.2",
"autoprefixer": "10.4.19",
"babel-loader": "9.1.3",
"babel-plugin-dynamic-import-polyfill": "1.0.0",
"@vitest/coverage-v8": "2.1.8",
"autoprefixer": "10.4.20",
"babel-loader": "9.2.1",
"clean-webpack-plugin": "4.0.0",
"confusing-browser-globals": "1.0.11",
"copy-webpack-plugin": "12.0.2",
"cross-env": "7.0.3",
"css-loader": "6.10.0",
"cssnano": "6.1.2",
"es-check": "7.1.1",
"eslint": "8.57.0",
"css-loader": "7.1.2",
"cssnano": "7.0.6",
"es-check": "7.2.1",
"eslint": "8.57.1",
"eslint-plugin-compat": "4.2.0",
"eslint-plugin-eslint-comments": "3.2.0",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-jsx-a11y": "6.8.0",
"eslint-plugin-react": "7.34.1",
"eslint-plugin-react-hooks": "4.6.0",
"eslint-plugin-sonarjs": "0.24.0",
"expose-loader": "4.1.0",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-jsx-a11y": "6.10.0",
"eslint-plugin-react": "7.37.1",
"eslint-plugin-react-hooks": "4.6.2",
"eslint-plugin-sonarjs": "0.25.1",
"expose-loader": "5.0.0",
"fork-ts-checker-webpack-plugin": "9.0.2",
"html-loader": "4.2.0",
"html-loader": "5.1.0",
"html-webpack-plugin": "5.6.0",
"jsdom": "23.2.0",
"mini-css-extract-plugin": "2.8.1",
"postcss": "8.4.38",
"postcss-loader": "7.3.4",
"postcss-preset-env": "9.5.2",
"jsdom": "25.0.1",
"mini-css-extract-plugin": "2.9.1",
"postcss": "8.4.47",
"postcss-loader": "8.1.1",
"postcss-preset-env": "10.0.7",
"postcss-scss": "4.0.9",
"sass": "1.72.0",
"sass-loader": "13.3.3",
"source-map-loader": "4.0.2",
"sass": "1.79.5",
"sass-loader": "16.0.2",
"source-map-loader": "5.0.0",
"speed-measure-webpack-plugin": "1.5.0",
"style-loader": "3.3.4",
"style-loader": "4.0.0",
"stylelint": "15.11.0",
"stylelint-config-rational-order": "0.1.2",
"stylelint-no-browser-hacks": "1.3.0",
"stylelint-order": "6.0.4",
"stylelint-scss": "5.3.2",
"ts-loader": "9.5.1",
"typescript": "5.4.3",
"vitest": "1.4.0",
"webpack": "5.91.0",
"webpack-bundle-analyzer": "4.10.1",
"typescript": "5.6.3",
"vitest": "2.1.8",
"webpack": "5.95.0",
"webpack-bundle-analyzer": "4.10.2",
"webpack-cli": "5.1.4",
"webpack-dev-server": "4.15.2",
"webpack-merge": "5.10.0",
"webpack-dev-server": "5.1.0",
"webpack-merge": "6.0.1",
"worker-loader": "3.0.8"
},
"dependencies": {
"@emotion/react": "11.11.4",
"@emotion/styled": "11.11.0",
"@fontsource/noto-sans": "5.0.21",
"@fontsource/noto-sans-hk": "5.0.18",
"@fontsource/noto-sans-jp": "5.0.18",
"@fontsource/noto-sans-kr": "5.0.18",
"@fontsource/noto-sans-sc": "5.0.18",
"@fontsource/noto-sans-tc": "5.0.18",
"@jellyfin/libass-wasm": "4.2.1",
"@jellyfin/sdk": "0.0.0-unstable.202405050501",
"@loadable/component": "5.16.3",
"@mui/icons-material": "5.15.11",
"@mui/material": "5.15.11",
"@mui/x-data-grid": "6.19.5",
"@react-hook/resize-observer": "1.2.6",
"@tanstack/react-query": "4.36.1",
"@tanstack/react-query-devtools": "4.36.1",
"@types/react-lazy-load-image-component": "1.6.3",
"@emotion/react": "11.13.3",
"@emotion/styled": "11.13.0",
"@fontsource/noto-sans": "5.1.0",
"@fontsource/noto-sans-hk": "5.1.0",
"@fontsource/noto-sans-jp": "5.1.0",
"@fontsource/noto-sans-kr": "5.1.0",
"@fontsource/noto-sans-sc": "5.1.0",
"@fontsource/noto-sans-tc": "5.1.0",
"@jellyfin/libass-wasm": "4.2.3",
"@jellyfin/sdk": "0.0.0-unstable.202501020501",
"@mui/icons-material": "5.16.7",
"@mui/material": "5.16.7",
"@mui/x-date-pickers": "7.20.0",
"@react-hook/resize-observer": "2.0.2",
"@tanstack/react-query": "5.59.13",
"@tanstack/react-query-devtools": "5.59.13",
"abortcontroller-polyfill": "1.7.5",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
"classnames": "2.5.1",
"core-js": "3.36.1",
"core-js": "3.38.1",
"date-fns": "2.30.0",
"dompurify": "3.0.1",
"dompurify": "2.5.7",
"epubjs": "0.3.93",
"escape-html": "1.0.3",
"fast-text-encoding": "1.0.6",
"flv.js": "1.6.2",
"headroom.js": "0.12.0",
"history": "5.3.0",
"hls.js": "1.5.7",
"hls.js": "1.5.18",
"intersection-observer": "0.12.2",
"jellyfin-apiclient": "1.11.0",
"jquery": "3.7.1",
"jstree": "3.3.16",
"libarchive.js": "1.3.0",
"jstree": "3.3.17",
"libarchive.js": "2.0.2",
"libpgs": "0.8.1",
"lodash-es": "4.17.21",
"markdown-it": "14.1.0",
"material-design-icons-iconfont": "6.7.0",
"material-react-table": "2.13.3",
"native-promise-only": "0.8.1",
"pdfjs-dist": "3.11.174",
"react": "17.0.2",
"react": "18.3.1",
"react-blurhash": "0.3.0",
"react-dom": "17.0.2",
"react-lazy-load-image-component": "1.6.0",
"react-router-dom": "6.22.3",
"react-dom": "18.3.1",
"react-lazy-load-image-component": "1.6.2",
"react-router-dom": "6.27.0",
"resize-observer-polyfill": "1.5.1",
"screenfull": "6.0.2",
"sortablejs": "1.15.2",
"swiper": "11.0.7",
"usehooks-ts": "2.16.0",
"sortablejs": "1.15.3",
"swiper": "11.1.14",
"usehooks-ts": "3.1.0",
"webcomponents.js": "0.7.24",
"whatwg-fetch": "3.6.20"
},
"optionalDependencies": {
"sass-embedded": "1.79.5"
},
"browserslist": [
"last 2 Firefox versions",
"last 2 Chrome versions",
@@ -148,6 +152,7 @@
"build:development": "webpack --config webpack.dev.js",
"build:production": "cross-env NODE_ENV=\"production\" webpack --config webpack.prod.js",
"build:check": "tsc --noEmit",
"build:es-check": "npm run build:production && npm run escheck",
"escheck": "es-check",
"lint": "eslint \"./\"",
"test": "vitest --watch=false --config vite.config.ts",

View File

@@ -1,37 +1,31 @@
import loadable from '@loadable/component';
import { ThemeProvider } from '@mui/material/styles';
import { History } from '@remix-run/router';
import { QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import React from 'react';
import { ApiProvider } from 'hooks/useApi';
import { UserSettingsProvider } from 'hooks/useUserSettings';
import { WebConfigProvider } from 'hooks/useWebConfig';
import theme from 'themes/theme';
import browser from 'scripts/browser';
import { queryClient } from 'utils/query/queryClient';
const StableAppRouter = loadable(() => import('./apps/stable/AppRouter'));
const RootAppRouter = loadable(() => import('./RootAppRouter'));
import RootAppRouter from 'RootAppRouter';
const RootApp = ({ history }: Readonly<{ history: History }>) => {
const layoutMode = localStorage.getItem('layout');
const isExperimentalLayout = layoutMode === 'experimental';
const useReactQueryDevtools = window.Proxy // '@tanstack/query-devtools' requires 'Proxy', which cannot be polyfilled for legacy browsers
&& !browser.tv; // Don't use devtools on the TV as the navigation is weird
return (
<QueryClientProvider client={queryClient}>
<ApiProvider>
const RootApp = () => (
<QueryClientProvider client={queryClient}>
<ApiProvider>
<UserSettingsProvider>
<WebConfigProvider>
<ThemeProvider theme={theme}>
{isExperimentalLayout ?
<RootAppRouter history={history} /> :
<StableAppRouter history={history} />
}
</ThemeProvider>
<RootAppRouter />
</WebConfigProvider>
</ApiProvider>
</UserSettingsProvider>
</ApiProvider>
{useReactQueryDevtools && (
<ReactQueryDevtools initialIsOpen={false} />
</QueryClientProvider>
);
};
)}
</QueryClientProvider>
);
export default RootApp;

View File

@@ -1,31 +1,41 @@
import { History } from '@remix-run/router';
import React from 'react';
import {
RouterProvider,
createHashRouter,
Outlet
Outlet,
useLocation
} from 'react-router-dom';
import { DASHBOARD_APP_PATHS, DASHBOARD_APP_ROUTES } from 'apps/dashboard/routes/routes';
import { EXPERIMENTAL_APP_ROUTES } from 'apps/experimental/routes/routes';
import { STABLE_APP_ROUTES } from 'apps/stable/routes/routes';
import AppHeader from 'components/AppHeader';
import Backdrop from 'components/Backdrop';
import { useLegacyRouterSync } from 'hooks/useLegacyRouterSync';
import { DASHBOARD_APP_ROUTES } from 'apps/dashboard/routes/routes';
import BangRedirect from 'components/router/BangRedirect';
import { createRouterHistory } from 'components/router/routerHistory';
import UserThemeProvider from 'themes/UserThemeProvider';
const layoutMode = localStorage.getItem('layout');
const isExperimentalLayout = layoutMode === 'experimental';
const router = createHashRouter([
{
element: <RootAppLayout />,
children: [
...EXPERIMENTAL_APP_ROUTES,
...DASHBOARD_APP_ROUTES
...(isExperimentalLayout ? EXPERIMENTAL_APP_ROUTES : STABLE_APP_ROUTES),
...DASHBOARD_APP_ROUTES,
{
path: '!/*',
Component: BangRedirect
}
]
}
]);
export default function RootAppRouter({ history }: Readonly<{ history: History}>) {
useLegacyRouterSync({ router, history });
export const history = createRouterHistory(router);
export default function RootAppRouter() {
return <RouterProvider router={router} />;
}
@@ -34,12 +44,16 @@ export default function RootAppRouter({ history }: Readonly<{ history: History}>
* NOTE: The app will crash if these get removed from the DOM.
*/
function RootAppLayout() {
const location = useLocation();
const isNewLayoutPath = Object.values(DASHBOARD_APP_PATHS)
.some(path => location.pathname.startsWith(`/${path}`));
return (
<>
<UserThemeProvider>
<Backdrop />
<AppHeader isHidden />
<AppHeader isHidden={isExperimentalLayout || isNewLayoutPath} />
<Outlet />
</>
</UserThemeProvider>
);
}

6
src/apiclient.d.ts vendored
View File

@@ -182,7 +182,7 @@ declare module 'jellyfin-apiclient' {
getPluginConfiguration(id: string): Promise<any>;
getPublicSystemInfo(): Promise<PublicSystemInfo>;
getPublicUsers(): Promise<UserDto[]>;
getQuickConnect(verb: string): Promise<void|boolean|number|QuickConnectResult|QuickConnectState>;
getQuickConnect(verb: string): Promise<void | boolean | number | QuickConnectResult | QuickConnectState>;
getReadySyncItems(deviceId: string): Promise<any>;
getRecordingFolders(userId: string): Promise<BaseItemDtoQueryResult>;
getRegistrationInfo(feature: string): Promise<any>;
@@ -308,7 +308,7 @@ declare module 'jellyfin-apiclient' {
class AppStore {
constructor();
getItem(name: string): string|null;
getItem(name: string): string | null;
removeItem(name: string): void;
setItem(name: string, value: string): void;
}
@@ -329,7 +329,7 @@ declare module 'jellyfin-apiclient' {
connectToServer(server: any, options?: any): Promise<any>;
connectToServers(servers: any[], options?: any): Promise<any>;
deleteServer(serverId: string): Promise<void>;
getApiClient(item: BaseItemDto|string): ApiClient;
getApiClient(item: BaseItemDto | string): ApiClient;
getApiClients(): ApiClient[];
getAvailableServers(): any[];
getOrCreateApiClient(serverId: string): ApiClient;

View File

@@ -2,7 +2,9 @@ import AppBar from '@mui/material/AppBar';
import Box from '@mui/material/Box';
import { type Theme } from '@mui/material/styles';
import useMediaQuery from '@mui/material/useMediaQuery';
import React, { FC, useCallback, useState } from 'react';
import { LocalizationProvider } from '@mui/x-date-pickers';
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
import React, { FC, StrictMode, useCallback, useEffect, useState } from 'react';
import { Outlet, useLocation } from 'react-router-dom';
import AppBody from 'components/AppBody';
@@ -10,78 +12,95 @@ import AppToolbar from 'components/toolbar/AppToolbar';
import ElevationScroll from 'components/ElevationScroll';
import { DRAWER_WIDTH } from 'components/ResponsiveDrawer';
import { useApi } from 'hooks/useApi';
import { useLocale } from 'hooks/useLocale';
import AppTabs from './components/AppTabs';
import AppDrawer from './components/drawer/AppDrawer';
import HelpButton from './components/toolbar/HelpButton';
import { DASHBOARD_APP_PATHS } from './routes/routes';
import './AppOverrides.scss';
interface AppLayoutProps {
drawerlessPaths: string[]
}
const DRAWERLESS_PATHS = [ DASHBOARD_APP_PATHS.MetadataManager ];
const AppLayout: FC<AppLayoutProps> = ({
drawerlessPaths
}) => {
export const Component: FC = () => {
const [ isDrawerActive, setIsDrawerActive ] = useState(false);
const location = useLocation();
const { user } = useApi();
const { dateFnsLocale } = useLocale();
const isMediumScreen = useMediaQuery((t: Theme) => t.breakpoints.up('md'));
const isDrawerAvailable = Boolean(user)
&& !drawerlessPaths.some(path => location.pathname.startsWith(`/${path}`));
&& !DRAWERLESS_PATHS.some(path => location.pathname.startsWith(`/${path}`));
const isDrawerOpen = isDrawerActive && isDrawerAvailable;
const onToggleDrawer = useCallback(() => {
setIsDrawerActive(!isDrawerActive);
}, [ isDrawerActive, setIsDrawerActive ]);
// Update body class
useEffect(() => {
document.body.classList.add('dashboardDocument');
return () => {
document.body.classList.remove('dashboardDocument');
};
}, []);
return (
<Box sx={{ display: 'flex' }}>
<ElevationScroll elevate={false}>
<AppBar
position='fixed'
<LocalizationProvider dateAdapter={AdapterDateFns} adapterLocale={dateFnsLocale}>
<Box sx={{ display: 'flex' }}>
<StrictMode>
<ElevationScroll elevate={false}>
<AppBar
position='fixed'
sx={{
width: {
xs: '100%',
md: isDrawerAvailable ? `calc(100% - ${DRAWER_WIDTH}px)` : '100%'
},
ml: {
xs: 0,
md: isDrawerAvailable ? DRAWER_WIDTH : 0
}
}}
>
<AppToolbar
isDrawerAvailable={!isMediumScreen && isDrawerAvailable}
isDrawerOpen={isDrawerOpen}
onDrawerButtonClick={onToggleDrawer}
buttons={
<HelpButton />
}
>
<AppTabs isDrawerOpen={isDrawerOpen} />
</AppToolbar>
</AppBar>
</ElevationScroll>
{
isDrawerAvailable && (
<AppDrawer
open={isDrawerOpen}
onClose={onToggleDrawer}
onOpen={onToggleDrawer}
/>
)
}
</StrictMode>
<Box
component='main'
sx={{
width: {
xs: '100%',
md: isDrawerAvailable ? `calc(100% - ${DRAWER_WIDTH}px)` : '100%'
},
ml: {
xs: 0,
md: isDrawerAvailable ? DRAWER_WIDTH : 0
}
width: '100%',
flexGrow: 1
}}
>
<AppToolbar
isDrawerAvailable={!isMediumScreen && isDrawerAvailable}
isDrawerOpen={isDrawerOpen}
onDrawerButtonClick={onToggleDrawer}
/>
</AppBar>
</ElevationScroll>
{
isDrawerAvailable && (
<AppDrawer
open={isDrawerOpen}
onClose={onToggleDrawer}
onOpen={onToggleDrawer}
/>
)
}
<Box
component='main'
sx={{
width: '100%',
flexGrow: 1
}}
>
<AppBody>
<Outlet />
</AppBody>
<AppBody>
<Outlet />
</AppBody>
</Box>
</Box>
</Box>
</LocalizationProvider>
);
};
export default AppLayout;

View File

@@ -5,10 +5,14 @@ $mui-bp-md: 900px;
$mui-bp-lg: 1200px;
$mui-bp-xl: 1536px;
$drawer-width: 240px;
// Fix dashboard pages layout to work with drawer
.dashboardDocument {
.mainAnimatedPage {
position: relative;
.mainAnimatedPage:not(.metadataEditorPage) {
@media all and (min-width: $mui-bp-md) {
left: $drawer-width;
}
}
.skinBody {
@@ -16,7 +20,19 @@ $mui-bp-xl: 1536px;
}
// Fix the padding of dashboard pages
.content-primary.content-primary {
.content-primary {
padding-top: 3.25rem;
}
// Tabbed pages
.withTabs .content-primary {
padding-top: 6.5rem;
@media all and (min-width: $mui-bp-lg) {
padding-top: 3.25rem;
}
}
.metadataEditorPage {
padding-top: 3.25rem !important;
}
}

View File

@@ -0,0 +1,96 @@
import { Theme } from '@mui/material/styles';
import Tab from '@mui/material/Tab';
import Tabs from '@mui/material/Tabs';
import useMediaQuery from '@mui/material/useMediaQuery';
import debounce from 'lodash-es/debounce';
import isEqual from 'lodash-es/isEqual';
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
import { Link } from 'react-router-dom';
import { EventType } from 'types/eventType';
import Events, { type Event } from 'utils/events';
interface AppTabsParams {
isDrawerOpen: boolean
}
interface TabDefinition {
href: string
name: string
}
const handleResize = debounce(() => window.dispatchEvent(new Event('resize')), 100);
const AppTabs: FC<AppTabsParams> = ({
isDrawerOpen
}) => {
const documentRef = useRef<Document>(document);
const [ activeIndex, setActiveIndex ] = useState(0);
const [ tabs, setTabs ] = useState<TabDefinition[]>();
const isBigScreen = useMediaQuery((theme: Theme) => theme.breakpoints.up('sm'));
const onTabsUpdate = useCallback((
_e: Event,
_newView?: string,
newIndex: number | undefined = 0,
newTabs?: TabDefinition[]
) => {
setActiveIndex(newIndex);
if (!isEqual(tabs, newTabs)) {
setTabs(newTabs);
}
}, [ tabs ]);
useEffect(() => {
const doc = documentRef.current;
if (doc) Events.on(doc, EventType.SET_TABS, onTabsUpdate);
return () => {
if (doc) Events.off(doc, EventType.SET_TABS, onTabsUpdate);
};
}, [ onTabsUpdate ]);
// HACK: Force resizing to workaround upstream bug with tab resizing
// https://github.com/mui/material-ui/issues/24011
useEffect(() => {
handleResize();
}, [ isDrawerOpen ]);
if (!tabs?.length) return null;
return (
<Tabs
value={activeIndex}
sx={{
width: '100%',
flexShrink: {
xs: 0,
lg: 'unset'
},
order: {
xs: 100,
lg: 'unset'
}
}}
variant={isBigScreen ? 'standard' : 'scrollable'}
centered={isBigScreen}
>
{
tabs.map(({ href, name }, index) => (
<Tab
key={`tab-${name}`}
label={name}
data-tab-index={`${index}`}
component={Link}
to={href}
/>
))
}
</Tabs>
);
};
export default AppTabs;

View File

@@ -1,17 +0,0 @@
import React, { type RefAttributes } from 'react';
import { Link } from 'react-router-dom';
import { GridActionsCellItem, type GridActionsCellItemProps } from '@mui/x-data-grid';
type GridActionsCellLinkProps = { to: string } & GridActionsCellItemProps & RefAttributes<HTMLButtonElement>;
/**
* Link component to use in mui's data-grid action column due to a current bug with passing props to custom link components.
* @see https://github.com/mui/mui-x/issues/4654
*/
const GridActionsCellLink = ({ to, ...props }: GridActionsCellLinkProps) => (
<Link to={to}>
<GridActionsCellItem {...props} />
</Link>
);
export default GridActionsCellLink;

View File

@@ -29,8 +29,8 @@ const AppDrawer: FC<ResponsiveDrawerProps> = ({
<ServerDrawerSection />
<DevicesDrawerSection />
<LiveTvDrawerSection />
<AdvancedDrawerSection />
<PluginDrawerSection />
<AdvancedDrawerSection />
</ResponsiveDrawer>
);

View File

@@ -1,36 +1,18 @@
import Article from '@mui/icons-material/Article';
import EditNotifications from '@mui/icons-material/EditNotifications';
import ExpandLess from '@mui/icons-material/ExpandLess';
import ExpandMore from '@mui/icons-material/ExpandMore';
import Extension from '@mui/icons-material/Extension';
import Lan from '@mui/icons-material/Lan';
import Schedule from '@mui/icons-material/Schedule';
import VpnKey from '@mui/icons-material/VpnKey';
import Collapse from '@mui/material/Collapse';
import List from '@mui/material/List';
import ListItem from '@mui/material/ListItem';
import ListItemIcon from '@mui/material/ListItemIcon';
import ListItemText from '@mui/material/ListItemText';
import ListSubheader from '@mui/material/ListSubheader';
import React from 'react';
import { useLocation } from 'react-router-dom';
import ListItemLink from 'components/ListItemLink';
import globalize from 'scripts/globalize';
const PLUGIN_PATHS = [
'/dashboard/plugins',
'/dashboard/plugins/catalog',
'/dashboard/plugins/repositories',
'/dashboard/plugins/add',
'/configurationpage'
];
import globalize from 'lib/globalize';
const AdvancedDrawerSection = () => {
const location = useLocation();
const isPluginSectionOpen = PLUGIN_PATHS.includes(location.pathname);
return (
<List
aria-labelledby='advanced-subheader'
@@ -64,36 +46,6 @@ const AdvancedDrawerSection = () => {
<ListItemText primary={globalize.translate('TabLogs')} />
</ListItemLink>
</ListItem>
<ListItem disablePadding>
<ListItemLink to='/dashboard/notifications'>
<ListItemIcon>
<EditNotifications />
</ListItemIcon>
<ListItemText primary={globalize.translate('Notifications')} />
</ListItemLink>
</ListItem>
<ListItem disablePadding>
<ListItemLink to='/dashboard/plugins' selected={false}>
<ListItemIcon>
<Extension />
</ListItemIcon>
<ListItemText primary={globalize.translate('TabPlugins')} />
{isPluginSectionOpen ? <ExpandLess /> : <ExpandMore />}
</ListItemLink>
</ListItem>
<Collapse in={isPluginSectionOpen} timeout='auto' unmountOnExit>
<List component='div' disablePadding>
<ListItemLink to='/dashboard/plugins' sx={{ pl: 4 }}>
<ListItemText inset primary={globalize.translate('TabMyPlugins')} />
</ListItemLink>
<ListItemLink to='/dashboard/plugins/catalog' sx={{ pl: 4 }}>
<ListItemText inset primary={globalize.translate('TabCatalog')} />
</ListItemLink>
<ListItemLink to='/dashboard/plugins/repositories' sx={{ pl: 4 }}>
<ListItemText inset primary={globalize.translate('TabRepositories')} />
</ListItemLink>
</List>
</Collapse>
<ListItem disablePadding>
<ListItemLink to='/dashboard/tasks'>
<ListItemIcon>

View File

@@ -1,4 +1,4 @@
import { Devices, Analytics, Input } from '@mui/icons-material';
import { Devices, Analytics } from '@mui/icons-material';
import List from '@mui/material/List';
import ListItem from '@mui/material/ListItem';
import ListItemIcon from '@mui/material/ListItemIcon';
@@ -7,7 +7,7 @@ import ListSubheader from '@mui/material/ListSubheader';
import React from 'react';
import ListItemLink from 'components/ListItemLink';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
const DevicesDrawerSection = () => {
return (
@@ -35,14 +35,6 @@ const DevicesDrawerSection = () => {
<ListItemText primary={globalize.translate('HeaderActivity')} />
</ListItemLink>
</ListItem>
<ListItem disablePadding>
<ListItemLink to='/dashboard/dlna'>
<ListItemIcon>
<Input />
</ListItemIcon>
<ListItemText primary={'DLNA'} />
</ListItemLink>
</ListItem>
</List>
);
};

View File

@@ -7,7 +7,7 @@ import ListSubheader from '@mui/material/ListSubheader';
import React from 'react';
import ListItemLink from 'components/ListItemLink';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
const LiveTvDrawerSection = () => {
return (

View File

@@ -1,41 +1,26 @@
import { ConfigurationPageInfo } from '@jellyfin/sdk/lib/generated-client';
import { getDashboardApi } from '@jellyfin/sdk/lib/utils/api/dashboard-api';
import { Folder } from '@mui/icons-material';
import Extension from '@mui/icons-material/Extension';
import Folder from '@mui/icons-material/Folder';
import Public from '@mui/icons-material/Public';
import List from '@mui/material/List';
import ListItem from '@mui/material/ListItem';
import ListItemIcon from '@mui/material/ListItemIcon';
import ListItemText from '@mui/material/ListItemText';
import ListSubheader from '@mui/material/ListSubheader';
import React, { useEffect, useState } from 'react';
import React, { useEffect } from 'react';
import ListItemLink from 'components/ListItemLink';
import { useApi } from 'hooks/useApi';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import Dashboard from 'utils/dashboard';
import { useConfigurationPages } from 'apps/dashboard/features/plugins/api/useConfigurationPages';
const PluginDrawerSection = () => {
const { api } = useApi();
const [ pagesInfo, setPagesInfo ] = useState<ConfigurationPageInfo[]>([]);
const {
data: pagesInfo,
error
} = useConfigurationPages({ enableInMainMenu: true });
useEffect(() => {
const fetchPluginPages = async () => {
if (!api) return;
const pagesResponse = await getDashboardApi(api)
.getConfigurationPages({ enableInMainMenu: true });
setPagesInfo(pagesResponse.data);
};
fetchPluginPages()
.catch(err => {
console.error('[PluginDrawerSection] unable to fetch plugin config pages', err);
});
}, [ api ]);
if (!api || pagesInfo.length < 1) {
return null;
}
if (error) console.error('[PluginDrawerSection] unable to fetch plugin config pages', error);
}, [ error ]);
return (
<List
@@ -46,19 +31,39 @@ const PluginDrawerSection = () => {
</ListSubheader>
}
>
{
pagesInfo.map(pageInfo => (
<ListItem key={pageInfo.PluginId} disablePadding>
<ListItemLink to={`/${Dashboard.getPluginUrl(pageInfo.Name)}`}>
<ListItemIcon>
{/* TODO: Support different icons? */}
<Folder />
</ListItemIcon>
<ListItemText primary={pageInfo.DisplayName} />
</ListItemLink>
</ListItem>
))
}
<ListItemLink
to='/dashboard/plugins'
includePaths={[ '/configurationpage' ]}
excludePaths={pagesInfo?.map(p => `/${Dashboard.getPluginUrl(p.Name)}`)}
>
<ListItemIcon>
<Extension />
</ListItemIcon>
<ListItemText primary={globalize.translate('TabMyPlugins')} />
</ListItemLink>
<ListItemLink
to='/dashboard/plugins/catalog'
includePaths={[ '/dashboard/plugins/repositories' ]}
>
<ListItemIcon>
<Public />
</ListItemIcon>
<ListItemText primary={globalize.translate('TabCatalog')} />
</ListItemLink>
{pagesInfo?.map(pageInfo => (
<ListItemLink
key={pageInfo.PluginId}
to={`/${Dashboard.getPluginUrl(pageInfo.Name)}`}
>
<ListItemIcon>
{/* TODO: Support different icons? */}
<Folder />
</ListItemIcon>
<ListItemText primary={pageInfo.DisplayName} />
</ListItemLink>
))}
</List>
);
};

View File

@@ -1,15 +1,17 @@
import { Dashboard, ExpandLess, ExpandMore, LibraryAdd, People, PlayCircle, Settings } from '@mui/icons-material';
import Palette from '@mui/icons-material/Palette';
import Collapse from '@mui/material/Collapse';
import List from '@mui/material/List';
import ListItem from '@mui/material/ListItem';
import ListItemButton from '@mui/material/ListItemButton/ListItemButton';
import ListItemIcon from '@mui/material/ListItemIcon';
import ListItemText from '@mui/material/ListItemText';
import ListSubheader from '@mui/material/ListSubheader';
import React from 'react';
import React, { useCallback, useState } from 'react';
import { useLocation } from 'react-router-dom';
import ListItemLink from 'components/ListItemLink';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
const LIBRARY_PATHS = [
'/dashboard/libraries',
@@ -28,8 +30,16 @@ const PLAYBACK_PATHS = [
const ServerDrawerSection = () => {
const location = useLocation();
const isLibrarySectionOpen = LIBRARY_PATHS.includes(location.pathname);
const isPlaybackSectionOpen = PLAYBACK_PATHS.includes(location.pathname);
const [ isLibrarySectionOpen, setIsLibrarySectionOpen ] = useState(LIBRARY_PATHS.includes(location.pathname));
const [ isPlaybackSectionOpen, setIsPlaybackSectionOpen ] = useState(PLAYBACK_PATHS.includes(location.pathname));
const onLibrarySectionClick = useCallback(() => {
setIsLibrarySectionOpen(isOpen => !isOpen);
}, []);
const onPlaybackSectionClick = useCallback(() => {
setIsPlaybackSectionOpen(isOpen => !isOpen);
}, []);
return (
<List
@@ -56,6 +66,12 @@ const ServerDrawerSection = () => {
<ListItemText primary={globalize.translate('General')} />
</ListItemLink>
</ListItem>
<ListItemLink to='/dashboard/branding'>
<ListItemIcon>
<Palette />
</ListItemIcon>
<ListItemText primary={globalize.translate('HeaderBranding')} />
</ListItemLink>
<ListItem disablePadding>
<ListItemLink to='/dashboard/users'>
<ListItemIcon>
@@ -65,13 +81,13 @@ const ServerDrawerSection = () => {
</ListItemLink>
</ListItem>
<ListItem disablePadding>
<ListItemLink to='/dashboard/libraries' selected={false}>
<ListItemButton onClick={onLibrarySectionClick}>
<ListItemIcon>
<LibraryAdd />
</ListItemIcon>
<ListItemText primary={globalize.translate('HeaderLibraries')} />
{isLibrarySectionOpen ? <ExpandLess /> : <ExpandMore />}
</ListItemLink>
</ListItemButton>
</ListItem>
<Collapse in={isLibrarySectionOpen} timeout='auto' unmountOnExit>
<List component='div' disablePadding>
@@ -82,7 +98,7 @@ const ServerDrawerSection = () => {
<ListItemText inset primary={globalize.translate('Display')} />
</ListItemLink>
<ListItemLink to='/dashboard/libraries/metadata' sx={{ pl: 4 }}>
<ListItemText inset primary={globalize.translate('Metadata')} />
<ListItemText inset primary={globalize.translate('LabelMetadata')} />
</ListItemLink>
<ListItemLink to='/dashboard/libraries/nfo' sx={{ pl: 4 }}>
<ListItemText inset primary={globalize.translate('TabNfoSettings')} />
@@ -90,13 +106,13 @@ const ServerDrawerSection = () => {
</List>
</Collapse>
<ListItem disablePadding>
<ListItemLink to='/dashboard/playback/transcoding' selected={false}>
<ListItemButton onClick={onPlaybackSectionClick}>
<ListItemIcon>
<PlayCircle />
</ListItemIcon>
<ListItemText primary={globalize.translate('TitlePlayback')} />
{isPlaybackSectionOpen ? <ExpandLess /> : <ExpandMore />}
</ListItemLink>
</ListItemButton>
</ListItem>
<Collapse in={isPlaybackSectionOpen} timeout='auto' unmountOnExit>
<List component='div' disablePadding>

View File

@@ -0,0 +1,36 @@
import HelpOutline from '@mui/icons-material/HelpOutline';
import IconButton from '@mui/material/IconButton/IconButton';
import Tooltip from '@mui/material/Tooltip/Tooltip';
import React from 'react';
import { Route, Routes } from 'react-router-dom';
import { HelpLinks } from 'apps/dashboard/constants/helpLinks';
import globalize from 'lib/globalize';
const HelpButton = () => (
<Routes>
{
HelpLinks.map(({ paths, url }) => paths.map(path => (
<Route
key={[url, path].join('-')}
path={path}
element={
<Tooltip title={globalize.translate('Help')}>
<IconButton
href={url}
rel='noopener noreferrer'
target='_blank'
size='large'
color='inherit'
>
<HelpOutline />
</IconButton>
</Tooltip>
}
/>
))).flat()
}
</Routes>
);
export default HelpButton;

View File

@@ -0,0 +1,54 @@
export const HelpLinks = [
{
paths: ['/dashboard/devices'],
url: 'https://jellyfin.org/docs/general/server/devices'
}, {
paths: ['/dashboard/libraries'],
url: 'https://jellyfin.org/docs/general/server/libraries'
}, {
paths: [
'/dashboard/livetv',
'/dashboard/livetv/tuner',
'/dashboard/recordings'
],
url: 'https://jellyfin.org/docs/general/server/live-tv/'
}, {
paths: ['/dashboard/livetv/guide'],
url: 'https://jellyfin.org/docs/general/server/live-tv/setup-guide#adding-guide-data'
}, {
paths: ['/dashboard/networking'],
url: 'https://jellyfin.org/docs/general/networking/'
}, {
paths: ['/dashboard/playback/transcoding'],
url: 'https://jellyfin.org/docs/general/server/transcoding'
}, {
paths: [
'/dashboard/plugins',
'/dashboard/plugins/catalog'
],
url: 'https://jellyfin.org/docs/general/server/plugins/'
}, {
paths: ['/dashboard/plugins/repositories'],
url: 'https://jellyfin.org/docs/general/server/plugins/#repositories'
}, {
paths: [
'/dashboard/branding',
'/dashboard/settings'
],
url: 'https://jellyfin.org/docs/general/server/settings'
}, {
paths: ['/dashboard/tasks'],
url: 'https://jellyfin.org/docs/general/server/tasks'
}, {
paths: ['/dashboard/users'],
url: 'https://jellyfin.org/docs/general/server/users/adding-managing-users'
}, {
paths: [
'/dashboard/users/access',
'/dashboard/users/parentalcontrol',
'/dashboard/users/password',
'/dashboard/users/profile'
],
url: 'https://jellyfin.org/docs/general/server/users/'
}
];

View File

@@ -0,0 +1,36 @@
import type { ActivityLogApiGetLogEntriesRequest } from '@jellyfin/sdk/lib/generated-client';
import type { AxiosRequestConfig } from 'axios';
import type { Api } from '@jellyfin/sdk';
import { getActivityLogApi } from '@jellyfin/sdk/lib/utils/api/activity-log-api';
import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
const fetchLogEntries = async (
api?: Api,
requestParams?: ActivityLogApiGetLogEntriesRequest,
options?: AxiosRequestConfig
) => {
if (!api) {
console.warn('[fetchLogEntries] No API instance available');
return;
}
const response = await getActivityLogApi(api).getLogEntries(requestParams, {
signal: options?.signal
});
return response.data;
};
export const useLogEntires = (
requestParams: ActivityLogApiGetLogEntriesRequest
) => {
const { api } = useApi();
return useQuery({
queryKey: ['LogEntries', requestParams],
queryFn: ({ signal }) =>
fetchLogEntries(api, requestParams, { signal }),
enabled: !!api
});
};

View File

@@ -0,0 +1,22 @@
import IconButton from '@mui/material/IconButton/IconButton';
import PermMedia from '@mui/icons-material/PermMedia';
import React, { type FC } from 'react';
import { Link } from 'react-router-dom';
import type { ActivityLogEntryCell } from 'apps/dashboard/features/activity/types/ActivityLogEntryCell';
import globalize from 'lib/globalize';
const ActionsCell: FC<ActivityLogEntryCell> = ({ row }) => (
row.original.ItemId ? (
<IconButton
size='large'
title={globalize.translate('LabelMediaDetails')}
component={Link}
to={`/details?id=${row.original.ItemId}`}
>
<PermMedia fontSize='inherit' />
</IconButton>
) : undefined
);
export default ActionsCell;

View File

@@ -0,0 +1,14 @@
import type { LogLevel } from '@jellyfin/sdk/lib/generated-client/models/log-level';
import React, { type FC } from 'react';
import { ActivityLogEntryCell } from '../types/ActivityLogEntryCell';
import LogLevelChip from './LogLevelChip';
const LogLevelCell: FC<ActivityLogEntryCell> = ({ cell }) => {
const level = cell.getValue<LogLevel | undefined>();
return level ? (
<LogLevelChip level={level} />
) : undefined;
};
export default LogLevelCell;

View File

@@ -2,7 +2,7 @@ import { LogLevel } from '@jellyfin/sdk/lib/generated-client/models/log-level';
import Chip from '@mui/material/Chip';
import React from 'react';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
const LogLevelChip = ({ level }: { level: LogLevel }) => {
let color: 'info' | 'warning' | 'error' | undefined;

View File

@@ -1,12 +1,14 @@
import type { ActivityLogEntry } from '@jellyfin/sdk/lib/generated-client/models/activity-log-entry';
import Info from '@mui/icons-material/Info';
import Box from '@mui/material/Box';
import ClickAwayListener from '@mui/material/ClickAwayListener';
import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip';
import React, { FC, useCallback, useState } from 'react';
import React, { type FC, useCallback, useState } from 'react';
const OverviewCell: FC<ActivityLogEntry> = ({ Overview, ShortOverview }) => {
import type { ActivityLogEntryCell } from '../types/ActivityLogEntryCell';
const OverviewCell: FC<ActivityLogEntryCell> = ({ row }) => {
const { ShortOverview, Overview } = row.original;
const displayValue = ShortOverview ?? Overview;
const [ open, setOpen ] = useState(false);

View File

@@ -0,0 +1,27 @@
import type { UserDto } from '@jellyfin/sdk/lib/generated-client/models/user-dto';
import IconButton from '@mui/material/IconButton/IconButton';
import React, { type FC } from 'react';
import { Link } from 'react-router-dom';
import UserAvatar from 'components/UserAvatar';
interface UserAvatarButtonProps {
user?: UserDto
}
const UserAvatarButton: FC<UserAvatarButtonProps> = ({ user }) => (
user?.Id ? (
<IconButton
size='large'
color='inherit'
sx={{ padding: 0 }}
title={user.Name || undefined}
component={Link}
to={`/dashboard/users/profile?userId=${user.Id}`}
>
<UserAvatar user={user} />
</IconButton>
) : undefined
);
export default UserAvatarButton;

View File

@@ -0,0 +1,7 @@
import type { ActivityLogEntry } from '@jellyfin/sdk/lib/generated-client/models/activity-log-entry';
import type { MRT_Cell, MRT_Row } from 'material-react-table';
export interface ActivityLogEntryCell {
cell: MRT_Cell<ActivityLogEntry>
row: MRT_Row<ActivityLogEntry>
}

View File

@@ -0,0 +1,35 @@
import { Api } from '@jellyfin/sdk';
import { getBrandingApi } from '@jellyfin/sdk/lib/utils/api/branding-api';
import { queryOptions, useQuery } from '@tanstack/react-query';
import type { AxiosRequestConfig } from 'axios';
import { useApi } from 'hooks/useApi';
export const QUERY_KEY = 'BrandingOptions';
const fetchBrandingOptions = async (
api?: Api,
options?: AxiosRequestConfig
) => {
if (!api) {
console.error('[fetchBrandingOptions] no Api instance provided');
throw new Error('No Api instance provided to fetchBrandingOptions');
}
return getBrandingApi(api)
.getBrandingOptions(options)
.then(({ data }) => data);
};
export const getBrandingOptionsQuery = (
api?: Api
) => queryOptions({
queryKey: [ QUERY_KEY ],
queryFn: ({ signal }) => fetchBrandingOptions(api, { signal }),
enabled: !!api
});
export const useBrandingOptions = () => {
const { api } = useApi();
return useQuery(getBrandingOptionsQuery(api));
};

View File

@@ -0,0 +1,21 @@
import type { ConfigurationPageInfo } from '@jellyfin/sdk/lib/generated-client/models/configuration-page-info';
export const findBestConfigurationPage = (
configurationPages: ConfigurationPageInfo[],
pluginId: string
) => {
// Find candidates matching the plugin id
const candidates = configurationPages.filter(c => c.PluginId === pluginId);
// If none are found, return undefined
if (candidates.length === 0) return;
// If only one is found, return it
if (candidates.length === 1) return candidates[0];
// Prefer the first candidate with the EnableInMainMenu flag for consistency
const menuCandidate = candidates.find(c => !!c.EnableInMainMenu);
if (menuCandidate) return menuCandidate;
// Fallback to the first match
return candidates[0];
};

View File

@@ -0,0 +1,25 @@
import type { PluginInfo } from '@jellyfin/sdk/lib/generated-client/models/plugin-info';
import { PluginStatus } from '@jellyfin/sdk/lib/generated-client/models/plugin-status';
/**
* HACK: The Plugins API is returning garbage data in some cases,
* so we need to try to find the "best" match if multiple exist.
*/
export const findBestPluginInfo = (
pluginId: string,
plugins?: PluginInfo[]
) => {
if (!plugins) return;
// Find all plugin entries with a matching ID
const matches = plugins.filter(p => p.Id === pluginId);
// Get the first match (or undefined if none)
const firstMatch = matches?.[0];
if (matches.length > 1) {
return matches.find(p => p.Status === PluginStatus.Disabled) // Disabled entries take priority
|| matches.find(p => p.Status === PluginStatus.Restart) // Then entries specifying restart is needed
|| firstMatch; // Fallback to the first match
}
return firstMatch;
};

View File

@@ -0,0 +1,5 @@
export enum QueryKey {
ConfigurationPages = 'ConfigurationPages',
PackageInfo = 'PackageInfo',
Plugins = 'Plugins'
}

View File

@@ -0,0 +1,40 @@
import type { Api } from '@jellyfin/sdk';
import type { DashboardApiGetConfigurationPagesRequest } from '@jellyfin/sdk/lib/generated-client/api/dashboard-api';
import { getDashboardApi } from '@jellyfin/sdk/lib/utils/api/dashboard-api';
import { queryOptions, useQuery } from '@tanstack/react-query';
import type { AxiosRequestConfig } from 'axios';
import { useApi } from 'hooks/useApi';
import { QueryKey } from './queryKey';
const fetchConfigurationPages = async (
api?: Api,
params?: DashboardApiGetConfigurationPagesRequest,
options?: AxiosRequestConfig
) => {
if (!api) {
console.warn('[fetchConfigurationPages] No API instance available');
return [];
}
const response = await getDashboardApi(api)
.getConfigurationPages(params, options);
return response.data;
};
const getConfigurationPagesQuery = (
api?: Api,
params?: DashboardApiGetConfigurationPagesRequest
) => queryOptions({
queryKey: [ QueryKey.ConfigurationPages, params?.enableInMainMenu ],
queryFn: ({ signal }) => fetchConfigurationPages(api, params, { signal }),
enabled: !!api
});
export const useConfigurationPages = (
params?: DashboardApiGetConfigurationPagesRequest
) => {
const { api } = useApi();
return useQuery(getConfigurationPagesQuery(api, params));
};

View File

@@ -0,0 +1,24 @@
import type { PluginsApiDisablePluginRequest } from '@jellyfin/sdk/lib/generated-client/api/plugins-api';
import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api';
import { useMutation } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { queryClient } from 'utils/query/queryClient';
import { QueryKey } from './queryKey';
export const useDisablePlugin = () => {
const { api } = useApi();
return useMutation({
mutationFn: (params: PluginsApiDisablePluginRequest) => (
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
getPluginsApi(api!)
.disablePlugin(params)
),
onSuccess: () => {
void queryClient.invalidateQueries({
queryKey: [ QueryKey.Plugins ]
});
}
});
};

View File

@@ -0,0 +1,24 @@
import type { PluginsApiEnablePluginRequest } from '@jellyfin/sdk/lib/generated-client/api/plugins-api';
import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api';
import { useMutation } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { queryClient } from 'utils/query/queryClient';
import { QueryKey } from './queryKey';
export const useEnablePlugin = () => {
const { api } = useApi();
return useMutation({
mutationFn: (params: PluginsApiEnablePluginRequest) => (
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
getPluginsApi(api!)
.enablePlugin(params)
),
onSuccess: () => {
void queryClient.invalidateQueries({
queryKey: [ QueryKey.Plugins ]
});
}
});
};

View File

@@ -0,0 +1,27 @@
import type { PackageApiInstallPackageRequest } from '@jellyfin/sdk/lib/generated-client/api/package-api';
import { getPackageApi } from '@jellyfin/sdk/lib/utils/api/package-api';
import { useMutation } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { queryClient } from 'utils/query/queryClient';
import { QueryKey } from './queryKey';
export const useInstallPackage = () => {
const { api } = useApi();
return useMutation({
mutationFn: (params: PackageApiInstallPackageRequest) => (
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
getPackageApi(api!)
.installPackage(params)
),
onSuccess: () => {
void queryClient.invalidateQueries({
queryKey: [ QueryKey.ConfigurationPages ]
});
void queryClient.invalidateQueries({
queryKey: [ QueryKey.Plugins ]
});
}
});
};

View File

@@ -0,0 +1,47 @@
import { queryOptions, useQuery } from '@tanstack/react-query';
import type { Api } from '@jellyfin/sdk';
import type { PackageApiGetPackageInfoRequest } from '@jellyfin/sdk/lib/generated-client/api/package-api';
import { getPackageApi } from '@jellyfin/sdk/lib/utils/api/package-api';
import type { AxiosRequestConfig } from 'axios';
import { useApi } from 'hooks/useApi';
import { QueryKey } from './queryKey';
const fetchPackageInfo = async (
api?: Api,
params?: PackageApiGetPackageInfoRequest,
options?: AxiosRequestConfig
) => {
if (!api) {
console.warn('[fetchPackageInfo] No API instance available');
return;
}
if (!params) {
console.warn('[fetchPackageInfo] Missing request params');
return;
}
const response = await getPackageApi(api)
.getPackageInfo(params, options);
return response.data;
};
const getPackageInfoQuery = (
api?: Api,
params?: PackageApiGetPackageInfoRequest
) => queryOptions({
// Don't retry since requests for plugins not available in repos fail
retry: false,
queryKey: [ QueryKey.PackageInfo, params?.name, params?.assemblyGuid ],
queryFn: ({ signal }) => fetchPackageInfo(api, params, { signal }),
enabled: !!api && !!params?.name
});
export const usePackageInfo = (
params?: PackageApiGetPackageInfoRequest
) => {
const { api } = useApi();
return useQuery(getPackageInfoQuery(api, params));
};

View File

@@ -0,0 +1,36 @@
import type { Api } from '@jellyfin/sdk';
import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api';
import { queryOptions, useQuery } from '@tanstack/react-query';
import type { AxiosRequestConfig } from 'axios';
import { useApi } from 'hooks/useApi';
import { QueryKey } from './queryKey';
const fetchPlugins = async (
api?: Api,
options?: AxiosRequestConfig
) => {
if (!api) {
console.warn('[fetchPlugins] No API instance available');
return [];
}
const response = await getPluginsApi(api)
.getPlugins(options);
return response.data;
};
const getPluginsQuery = (
api?: Api
) => queryOptions({
queryKey: [ QueryKey.Plugins ],
queryFn: ({ signal }) => fetchPlugins(api, { signal }),
enabled: !!api
});
export const usePlugins = () => {
const { api } = useApi();
return useQuery(getPluginsQuery(api));
};

View File

@@ -0,0 +1,27 @@
import type { PluginsApiUninstallPluginByVersionRequest } from '@jellyfin/sdk/lib/generated-client/api/plugins-api';
import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api';
import { useMutation } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
import { queryClient } from 'utils/query/queryClient';
import { QueryKey } from './queryKey';
export const useUninstallPlugin = () => {
const { api } = useApi();
return useMutation({
mutationFn: (params: PluginsApiUninstallPluginByVersionRequest) => (
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
getPluginsApi(api!)
.uninstallPluginByVersion(params)
),
onSuccess: () => {
void queryClient.invalidateQueries({
queryKey: [ QueryKey.Plugins ]
});
void queryClient.invalidateQueries({
queryKey: [ QueryKey.ConfigurationPages ]
});
}
});
};

View File

@@ -0,0 +1,94 @@
import Link from '@mui/material/Link/Link';
import Paper, { type PaperProps } from '@mui/material/Paper/Paper';
import Skeleton from '@mui/material/Skeleton/Skeleton';
import Table from '@mui/material/Table/Table';
import TableBody from '@mui/material/TableBody/TableBody';
import TableCell from '@mui/material/TableCell/TableCell';
import TableContainer from '@mui/material/TableContainer/TableContainer';
import TableRow from '@mui/material/TableRow/TableRow';
import React, { FC } from 'react';
import { Link as RouterLink } from 'react-router-dom';
import globalize from 'lib/globalize';
import type { PluginDetails } from '../types/PluginDetails';
interface PluginDetailsTableProps extends PaperProps {
isPluginLoading: boolean
isRepositoryLoading: boolean
pluginDetails?: PluginDetails
}
const PluginDetailsTable: FC<PluginDetailsTableProps> = ({
isPluginLoading,
isRepositoryLoading,
pluginDetails,
...paperProps
}) => (
<TableContainer component={Paper} {...paperProps}>
<Table>
<TableBody>
<TableRow>
<TableCell variant='head'>
{globalize.translate('LabelStatus')}
</TableCell>
<TableCell>
{
(isPluginLoading && <Skeleton />)
|| pluginDetails?.status
|| globalize.translate('LabelNotInstalled')
}
</TableCell>
</TableRow>
<TableRow>
<TableCell variant='head'>
{globalize.translate('LabelVersion')}
</TableCell>
<TableCell>
{
(isPluginLoading && <Skeleton />)
|| pluginDetails?.version?.version
}
</TableCell>
</TableRow>
<TableRow>
<TableCell variant='head'>
{globalize.translate('LabelDeveloper')}
</TableCell>
<TableCell>
{
(isRepositoryLoading && <Skeleton />)
|| pluginDetails?.owner
|| globalize.translate('Unknown')
}
</TableCell>
</TableRow>
<TableRow
sx={{ '&:last-child td, &:last-child th': { border: 0 } }}
>
<TableCell variant='head'>
{globalize.translate('LabelRepository')}
</TableCell>
<TableCell>
{
(isRepositoryLoading && <Skeleton />)
|| (pluginDetails?.version?.repositoryUrl && (
<Link
component={RouterLink}
to={pluginDetails.version.repositoryUrl}
target='_blank'
rel='noopener noreferrer'
>
{pluginDetails.version.repositoryName}
</Link>
))
|| globalize.translate('Unknown')
}
</TableCell>
</TableRow>
</TableBody>
</Table>
</TableContainer>
);
export default PluginDetailsTable;

View File

@@ -0,0 +1,34 @@
import Paper from '@mui/material/Paper/Paper';
import Skeleton from '@mui/material/Skeleton/Skeleton';
import React, { type FC } from 'react';
interface PluginImageProps {
isLoading: boolean
alt?: string
url?: string
}
const PluginImage: FC<PluginImageProps> = ({
isLoading,
alt,
url
}) => (
<Paper sx={{ width: '100%', aspectRatio: 16 / 9, overflow: 'hidden' }}>
{isLoading && (
<Skeleton
variant='rectangular'
width='100%'
height='100%'
/>
)}
{url && (
<img
src={url}
alt={alt}
width='100%'
/>
)}
</Paper>
);
export default PluginImage;

View File

@@ -0,0 +1,67 @@
import Download from '@mui/icons-material/Download';
import DownloadDone from '@mui/icons-material/DownloadDone';
import ExpandMore from '@mui/icons-material/ExpandMore';
import Accordion from '@mui/material/Accordion/Accordion';
import AccordionDetails from '@mui/material/AccordionDetails/AccordionDetails';
import AccordionSummary from '@mui/material/AccordionSummary/AccordionSummary';
import Button from '@mui/material/Button/Button';
import Stack from '@mui/material/Stack/Stack';
import React, { type FC } from 'react';
import MarkdownBox from 'components/MarkdownBox';
import { getDisplayDateTime } from 'scripts/datetime';
import globalize from 'lib/globalize';
import type { PluginDetails } from '../types/PluginDetails';
import { VersionInfo } from '@jellyfin/sdk/lib/generated-client';
interface PluginRevisionsProps {
pluginDetails?: PluginDetails,
onInstall: (version?: VersionInfo) => () => void
}
const PluginRevisions: FC<PluginRevisionsProps> = ({
pluginDetails,
onInstall
}) => (
pluginDetails?.versions?.map(version => (
<Accordion key={version.checksum}>
<AccordionSummary
expandIcon={<ExpandMore />}
>
{version.version}
{version.timestamp && (<>
&nbsp;&mdash;&nbsp;
{getDisplayDateTime(version.timestamp)}
</>)}
</AccordionSummary>
<AccordionDetails>
<Stack spacing={2}>
<MarkdownBox
fallback={globalize.translate('LabelNoChangelog')}
markdown={version.changelog}
/>
{pluginDetails.status && version.version === pluginDetails.version?.version ? (
<Button
disabled
startIcon={<DownloadDone />}
variant='outlined'
>
{globalize.translate('LabelInstalled')}
</Button>
) : (
<Button
startIcon={<Download />}
variant='outlined'
onClick={onInstall(version)}
>
{globalize.translate('HeaderInstall')}
</Button>
)}
</Stack>
</AccordionDetails>
</Accordion>
))
);
export default PluginRevisions;

View File

@@ -0,0 +1,15 @@
/** A mapping of category names used by the plugin repository to translation keys. */
export const CATEGORY_LABELS = {
Administration: 'HeaderAdmin',
Anime: 'Anime',
Authentication: 'LabelAuthProvider', // Legacy
Books: 'Books',
Channel: 'Channels', // Unused?
General: 'General',
LiveTV: 'LiveTV',
Metadata: 'LabelMetadata', // Legacy
MoviesAndShows: 'MoviesAndShows',
Music: 'TabMusic',
Subtitles: 'Subtitles',
Other: 'Other'
};

View File

@@ -0,0 +1,15 @@
import type { ConfigurationPageInfo, PluginStatus, VersionInfo } from '@jellyfin/sdk/lib/generated-client';
export interface PluginDetails {
canUninstall: boolean
description?: string
id: string
imageUrl?: string
isEnabled: boolean
name?: string
owner?: string
configurationPage?: ConfigurationPageInfo
status?: PluginStatus
version?: VersionInfo
versions: VersionInfo[]
}

View File

@@ -2,13 +2,13 @@ import { AsyncRouteType, type AsyncRoute } from 'components/router/AsyncRoute';
export const ASYNC_ADMIN_ROUTES: AsyncRoute[] = [
{ path: 'activity', type: AsyncRouteType.Dashboard },
{ path: 'dlna', type: AsyncRouteType.Dashboard },
{ path: 'notifications', type: AsyncRouteType.Dashboard },
{ path: 'branding', type: AsyncRouteType.Dashboard },
{ path: 'playback/trickplay', type: AsyncRouteType.Dashboard },
{ path: 'plugins/:pluginId', page: 'plugins/plugin', type: AsyncRouteType.Dashboard },
{ path: 'users', type: AsyncRouteType.Dashboard },
{ path: 'users/access', type: AsyncRouteType.Dashboard },
{ path: 'users/add', type: AsyncRouteType.Dashboard },
{ path: 'users/parentalcontrol', type: AsyncRouteType.Dashboard },
{ path: 'users/password', type: AsyncRouteType.Dashboard },
{ path: 'users/profile', type: AsyncRouteType.Dashboard },
{ path: 'playback/trickplay', type: AsyncRouteType.Dashboard }
{ path: 'users/profile', type: AsyncRouteType.Dashboard }
];

View File

@@ -31,12 +31,6 @@ export const LEGACY_ADMIN_ROUTES: LegacyRoute[] = [
controller: 'dashboard/devices/device',
view: 'dashboard/devices/device.html'
}
}, {
path: 'plugins/add',
pageProps: {
controller: 'dashboard/plugins/add/index',
view: 'dashboard/plugins/add/index.html'
}
}, {
path: 'libraries',
pageProps: {

View File

@@ -1,40 +0,0 @@
import type { Redirect } from 'components/router/Redirect';
export const REDIRECTS: Redirect[] = [
{ from: 'addplugin.html', to: '/dashboard/plugins/add' },
{ from: 'apikeys.html', to: '/dashboard/keys' },
{ from: 'availableplugins.html', to: '/dashboard/plugins/catalog' },
{ from: 'dashboard.html', to: '/dashboard' },
{ from: 'dashboardgeneral.html', to: '/dashboard/settings' },
{ from: 'device.html', to: '/dashboard/devices/edit' },
{ from: 'devices.html', to: '/dashboard/devices' },
{ from: 'dlnaprofile.html', to: '/dashboard/dlna' },
{ from: 'dlnaprofiles.html', to: '/dashboard/dlna' },
{ from: 'dlnasettings.html', to: '/dashboard/dlna' },
{ from: 'edititemmetadata.html', to: '/metadata' },
{ from: 'encodingsettings.html', to: '/dashboard/playback/transcoding' },
{ from: 'installedplugins.html', to: '/dashboard/plugins' },
{ from: 'library.html', to: '/dashboard/libraries' },
{ from: 'librarydisplay.html', to: '/dashboard/libraries/display' },
{ from: 'livetvguideprovider.html', to: '/dashboard/livetv/guide' },
{ from: 'livetvsettings.html', to: '/dashboard/recordings' },
{ from: 'livetvstatus.html', to: '/dashboard/livetv' },
{ from: 'livetvtuner.html', to: '/dashboard/livetv/tuner' },
{ from: 'log.html', to: '/dashboard/logs' },
{ from: 'metadataimages.html', to: '/dashboard/libraries/metadata' },
{ from: 'metadatanfo.html', to: '/dashboard/libraries/nfo' },
{ from: 'networking.html', to: '/dashboard/networking' },
{ from: 'notificationsettings.html', to: '/dashboard/notifications' },
{ from: 'playbackconfiguration.html', to: '/dashboard/playback/resume' },
{ from: 'repositories.html', to: '/dashboard/plugins/repositories' },
{ from: 'scheduledtask.html', to: '/dashboard/tasks/edit' },
{ from: 'scheduledtasks.html', to: '/dashboard/tasks' },
{ from: 'serveractivity.html', to: '/dashboard/activity' },
{ from: 'streamingsettings.html', to: '/dashboard/playback/streaming' },
{ from: 'useredit.html', to: '/dashboard/users/profile' },
{ from: 'userlibraryaccess.html', to: '/dashboard/users/access' },
{ from: 'usernew.html', to: '/dashboard/users/add' },
{ from: 'userparentalcontrol.html', to: '/dashboard/users/parentalcontrol' },
{ from: 'userpassword.html', to: '/dashboard/users/password' },
{ from: 'userprofiles.html', to: '/dashboard/users' }
];

View File

@@ -1,35 +1,35 @@
import React, { useCallback, useEffect, useState } from 'react';
import { getActivityLogApi } from '@jellyfin/sdk/lib/utils/api/activity-log-api';
import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import type { ActivityLogEntry } from '@jellyfin/sdk/lib/generated-client/models/activity-log-entry';
import { LogLevel } from '@jellyfin/sdk/lib/generated-client/models/log-level';
import type { UserDto } from '@jellyfin/sdk/lib/generated-client/models/user-dto';
import PermMedia from '@mui/icons-material/PermMedia';
import Box from '@mui/material/Box';
import IconButton from '@mui/material/IconButton';
import ToggleButton from '@mui/material/ToggleButton';
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
import Typography from '@mui/material/Typography';
import { DataGrid, type GridColDef } from '@mui/x-data-grid';
import { Link, useSearchParams } from 'react-router-dom';
import { type MRT_ColumnDef, MaterialReactTable, useMaterialReactTable } from 'material-react-table';
import { useSearchParams } from 'react-router-dom';
import { useLogEntires } from 'apps/dashboard/features/activity/api/useLogEntries';
import ActionsCell from 'apps/dashboard/features/activity/components/ActionsCell';
import LogLevelCell from 'apps/dashboard/features/activity/components/LogLevelCell';
import OverviewCell from 'apps/dashboard/features/activity/components/OverviewCell';
import UserAvatarButton from 'apps/dashboard/features/activity/components/UserAvatarButton';
import type { ActivityLogEntryCell } from 'apps/dashboard/features/activity/types/ActivityLogEntryCell';
import Page from 'components/Page';
import UserAvatar from 'components/UserAvatar';
import { useApi } from 'hooks/useApi';
import { parseISO8601Date, toLocaleDateString, toLocaleTimeString } from 'scripts/datetime';
import globalize from 'scripts/globalize';
import { useUsers } from 'hooks/useUsers';
import { parseISO8601Date, toLocaleString } from 'scripts/datetime';
import globalize from 'lib/globalize';
import { toBoolean } from 'utils/string';
import LogLevelChip from '../components/activityTable/LogLevelChip';
import OverviewCell from '../components/activityTable/OverviewCell';
import GridActionsCellLink from '../components/dataGrid/GridActionsCellLink';
type UsersRecords = Record<string, UserDto>;
const DEFAULT_PAGE_SIZE = 25;
const VIEW_PARAM = 'useractivity';
const enum ActivityView {
All,
User,
System
All = 'All',
User = 'User',
System = 'System'
}
const getActivityView = (param: string | null) => {
@@ -38,172 +38,132 @@ const getActivityView = (param: string | null) => {
return ActivityView.System;
};
const getRowId = (row: ActivityLogEntry) => row.Id ?? -1;
const getUserCell = (users: UsersRecords) => function UserCell({ row }: ActivityLogEntryCell) {
return (
<UserAvatarButton user={row.original.UserId && users[row.original.UserId] || undefined} />
);
};
const Activity = () => {
const { api } = useApi();
const [ searchParams, setSearchParams ] = useSearchParams();
const [ activityView, setActivityView ] = useState(
getActivityView(searchParams.get(VIEW_PARAM)));
const [ isLoading, setIsLoading ] = useState(true);
const [ paginationModel, setPaginationModel ] = useState({
page: 0,
const [ pagination, setPagination ] = useState({
pageIndex: 0,
pageSize: DEFAULT_PAGE_SIZE
});
const [ rowCount, setRowCount ] = useState(0);
const [ rows, setRows ] = useState<ActivityLogEntry[]>([]);
const [ users, setUsers ] = useState<Record<string, UserDto>>({});
const userColDef: GridColDef[] = activityView !== ActivityView.System ? [
const { data: usersData, isLoading: isUsersLoading } = useUsers();
const users: UsersRecords = useMemo(() => {
if (!usersData) return {};
return usersData.reduce<UsersRecords>((acc, user) => {
const userId = user.Id;
if (!userId) return acc;
return {
...acc,
[userId]: user
};
}, {});
}, [ usersData ]);
const userNames = useMemo(() => {
const names: string[] = [];
usersData?.forEach(user => {
if (user.Name) names.push(user.Name);
});
return names;
}, [ usersData ]);
const UserCell = getUserCell(users);
const activityParams = useMemo(() => ({
startIndex: pagination.pageIndex * pagination.pageSize,
limit: pagination.pageSize,
hasUserId: activityView !== ActivityView.All ? activityView === ActivityView.User : undefined
}), [activityView, pagination.pageIndex, pagination.pageSize]);
const { data: logEntries, isLoading: isLogEntriesLoading } = useLogEntires(activityParams);
const isLoading = isUsersLoading || isLogEntriesLoading;
const userColumn: MRT_ColumnDef<ActivityLogEntry>[] = useMemo(() =>
(activityView === ActivityView.System) ? [] : [{
id: 'User',
accessorFn: row => row.UserId && users[row.UserId]?.Name,
header: globalize.translate('LabelUser'),
size: 75,
Cell: UserCell,
enableResizing: false,
muiTableBodyCellProps: {
align: 'center'
},
filterVariant: 'multi-select',
filterSelectOptions: userNames
}], [ activityView, userNames, users, UserCell ]);
const columns = useMemo<MRT_ColumnDef<ActivityLogEntry>[]>(() => [
{
field: 'User',
headerName: globalize.translate('LabelUser'),
width: 60,
valueGetter: ({ row }) => users[row.UserId]?.Name,
renderCell: ({ row }) => (
<IconButton
size='large'
color='inherit'
sx={{ padding: 0 }}
title={users[row.UserId]?.Name ?? undefined}
component={Link}
to={`/dashboard/users/profile?userId=${row.UserId}`}
>
<UserAvatar user={users[row.UserId]} />
</IconButton>
)
id: 'Date',
accessorFn: row => parseISO8601Date(row.Date),
header: globalize.translate('LabelTime'),
size: 160,
Cell: ({ cell }) => toLocaleString(cell.getValue<Date>()),
filterVariant: 'datetime-range'
},
{
accessorKey: 'Severity',
header: globalize.translate('LabelLevel'),
size: 90,
Cell: LogLevelCell,
enableResizing: false,
muiTableBodyCellProps: {
align: 'center'
},
filterVariant: 'multi-select',
filterSelectOptions: Object.values(LogLevel).map(level => globalize.translate(`LogLevel.${level}`))
},
...userColumn,
{
accessorKey: 'Name',
header: globalize.translate('LabelName'),
size: 270
},
{
id: 'Overview',
accessorFn: row => row.ShortOverview || row.Overview,
header: globalize.translate('LabelOverview'),
size: 170,
Cell: OverviewCell
},
{
accessorKey: 'Type',
header: globalize.translate('LabelType'),
size: 150
},
{
id: 'Actions',
accessorFn: row => row.ItemId,
header: '',
size: 60,
Cell: ActionsCell,
enableColumnActions: false,
enableColumnFilter: false,
enableResizing: false,
enableSorting: false
}
] : [];
], [ userColumn ]);
const columns: GridColDef[] = [
{
field: 'Date',
headerName: globalize.translate('LabelDate'),
width: 90,
type: 'date',
valueGetter: ({ value }) => parseISO8601Date(value),
valueFormatter: ({ value }) => toLocaleDateString(value)
},
{
field: 'Time',
headerName: globalize.translate('LabelTime'),
width: 100,
type: 'dateTime',
valueGetter: ({ row }) => parseISO8601Date(row.Date),
valueFormatter: ({ value }) => toLocaleTimeString(value)
},
{
field: 'Severity',
headerName: globalize.translate('LabelLevel'),
width: 110,
renderCell: ({ value }) => (
value ? (
<LogLevelChip level={value} />
) : undefined
)
},
...userColDef,
{
field: 'Name',
headerName: globalize.translate('LabelName'),
width: 200
},
{
field: 'Overview',
headerName: globalize.translate('LabelOverview'),
width: 200,
valueGetter: ({ row }) => row.ShortOverview ?? row.Overview,
renderCell: ({ row }) => (
<OverviewCell {...row} />
)
},
{
field: 'Type',
headerName: globalize.translate('LabelType'),
width: 120
},
{
field: 'actions',
type: 'actions',
getActions: ({ row }) => {
const actions = [];
if (row.ItemId) {
actions.push(
<GridActionsCellLink
size='large'
icon={<PermMedia />}
label={globalize.translate('LabelMediaDetails')}
title={globalize.translate('LabelMediaDetails')}
to={`/details?id=${row.ItemId}`}
/>
);
}
return actions;
}
}
];
const onViewChange = useCallback((_e, newView: ActivityView | null) => {
const onViewChange = useCallback((_e: React.MouseEvent<HTMLElement, MouseEvent>, newView: ActivityView | null) => {
if (newView !== null) {
setActivityView(newView);
}
}, []);
useEffect(() => {
if (api) {
const fetchUsers = async () => {
const { data } = await getUserApi(api).getUsers();
const usersById: Record<string, UserDto> = {};
data.forEach(user => {
if (user.Id) {
usersById[user.Id] = user;
}
});
setUsers(usersById);
};
fetchUsers()
.catch(err => {
console.error('[activity] failed to fetch users', err);
});
}
}, [ api ]);
useEffect(() => {
if (api) {
const fetchActivity = async () => {
const params: {
startIndex: number,
limit: number,
hasUserId?: boolean
} = {
startIndex: paginationModel.page * paginationModel.pageSize,
limit: paginationModel.pageSize
};
if (activityView !== ActivityView.All) {
params.hasUserId = activityView === ActivityView.User;
}
const { data } = await getActivityLogApi(api)
.getLogEntries(params);
setRowCount(data.TotalRecordCount ?? 0);
setRows(data.Items ?? []);
setIsLoading(false);
};
setIsLoading(true);
fetchActivity()
.catch(err => {
console.error('[activity] failed to fetch activity log entries', err);
});
}
}, [ activityView, api, paginationModel ]);
useEffect(() => {
const currentViewParam = getActivityView(searchParams.get(VIEW_PARAM));
if (currentViewParam !== activityView) {
@@ -216,56 +176,83 @@ const Activity = () => {
}
}, [ activityView, searchParams, setSearchParams ]);
const table = useMaterialReactTable({
columns,
data: logEntries?.Items || [],
// Enable custom features
enableColumnPinning: true,
enableColumnResizing: true,
// Sticky header/footer
enableStickyFooter: true,
enableStickyHeader: true,
muiTableContainerProps: {
sx: {
maxHeight: 'calc(100% - 7rem)' // 2 x 3.5rem for header and footer
}
},
// State
initialState: {
density: 'compact'
},
state: {
isLoading,
pagination
},
// Server pagination
manualPagination: true,
onPaginationChange: setPagination,
rowCount: logEntries?.TotalRecordCount || 0,
// Custom toolbar contents
renderTopToolbarCustomActions: () => (
<ToggleButtonGroup
size='small'
value={activityView}
onChange={onViewChange}
exclusive
>
<ToggleButton value={ActivityView.All}>
{globalize.translate('All')}
</ToggleButton>
<ToggleButton value={ActivityView.User}>
{globalize.translate('LabelUser')}
</ToggleButton>
<ToggleButton value={ActivityView.System}>
{globalize.translate('LabelSystem')}
</ToggleButton>
</ToggleButtonGroup>
)
});
return (
<Page
id='serverActivityPage'
title={globalize.translate('HeaderActivity')}
className='mainAnimatedPage type-interior'
>
<div className='content-primary'>
<Box
className='content-primary'
sx={{
display: 'flex',
flexDirection: 'column',
height: '100%'
}}
>
<Box
sx={{
display: 'flex',
alignItems: 'baseline',
marginY: 2
marginBottom: 1
}}
>
<Box sx={{ flexGrow: 1 }}>
<Typography variant='h2'>
{globalize.translate('HeaderActivity')}
</Typography>
</Box>
<ToggleButtonGroup
value={activityView}
onChange={onViewChange}
exclusive
>
<ToggleButton value={ActivityView.All}>
{globalize.translate('All')}
</ToggleButton>
<ToggleButton value={ActivityView.User}>
{globalize.translate('LabelUser')}
</ToggleButton>
<ToggleButton value={ActivityView.System}>
{globalize.translate('LabelSystem')}
</ToggleButton>
</ToggleButtonGroup>
<Typography variant='h2'>
{globalize.translate('HeaderActivity')}
</Typography>
</Box>
<DataGrid
columns={columns}
rows={rows}
pageSizeOptions={[ 10, 25, 50, 100 ]}
paginationMode='server'
paginationModel={paginationModel}
onPaginationModelChange={setPaginationModel}
rowCount={rowCount}
getRowId={getRowId}
loading={isLoading}
sx={{
minHeight: 500
}}
/>
</div>
<MaterialReactTable table={table} />
</Box>
</Page>
);
};

View File

@@ -0,0 +1,176 @@
import type { BrandingOptions } from '@jellyfin/sdk/lib/generated-client/models/branding-options';
import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api';
import Alert from '@mui/material/Alert';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import FormControlLabel from '@mui/material/FormControlLabel';
import Stack from '@mui/material/Stack';
import Switch from '@mui/material/Switch';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import React, { useCallback, useEffect, useState } from 'react';
import { type ActionFunctionArgs, Form, useActionData } from 'react-router-dom';
import { getBrandingOptionsQuery, QUERY_KEY, useBrandingOptions } from 'apps/dashboard/features/branding/api/useBrandingOptions';
import Loading from 'components/loading/LoadingComponent';
import Page from 'components/Page';
import ServerConnections from 'components/ServerConnections';
import globalize from 'lib/globalize';
import { queryClient } from 'utils/query/queryClient';
interface ActionData {
isSaved: boolean
}
const BRANDING_CONFIG_KEY = 'branding';
const BrandingOption = {
CustomCss: 'CustomCss',
LoginDisclaimer: 'LoginDisclaimer',
SplashscreenEnabled: 'SplashscreenEnabled'
};
export const action = async ({ request }: ActionFunctionArgs) => {
const api = ServerConnections.getCurrentApi();
if (!api) throw new Error('No Api instance available');
const formData = await request.formData();
const data = Object.fromEntries(formData);
const brandingOptions: BrandingOptions = {
CustomCss: data.CustomCss?.toString(),
LoginDisclaimer: data.LoginDisclaimer?.toString(),
SplashscreenEnabled: data.SplashscreenEnabled?.toString() === 'on'
};
await getConfigurationApi(api)
.updateNamedConfiguration({
key: BRANDING_CONFIG_KEY,
body: JSON.stringify(brandingOptions)
});
void queryClient.invalidateQueries({
queryKey: [ QUERY_KEY ]
});
return {
isSaved: true
};
};
export const loader = () => {
return queryClient.ensureQueryData(
getBrandingOptionsQuery(ServerConnections.getCurrentApi()));
};
export const Component = () => {
const actionData = useActionData() as ActionData | undefined;
const [ isSubmitting, setIsSubmitting ] = useState(false);
const {
data: defaultBrandingOptions,
isPending
} = useBrandingOptions();
const [ brandingOptions, setBrandingOptions ] = useState(defaultBrandingOptions || {});
useEffect(() => {
setIsSubmitting(false);
}, [ actionData ]);
const onSubmit = useCallback(() => {
setIsSubmitting(true);
}, []);
const setSplashscreenEnabled = useCallback((_: React.ChangeEvent<HTMLInputElement>, isEnabled: boolean) => {
setBrandingOptions({
...brandingOptions,
[BrandingOption.SplashscreenEnabled]: isEnabled
});
}, [ brandingOptions ]);
const setBrandingOption = useCallback((event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>) => {
if (Object.keys(BrandingOption).includes(event.target.name)) {
setBrandingOptions({
...brandingOptions,
[event.target.name]: event.target.value
});
}
}, [ brandingOptions ]);
if (isPending) return <Loading />;
return (
<Page
id='brandingPage'
className='mainAnimatedPage type-interior'
>
<Box className='content-primary'>
<Form
method='POST'
onSubmit={onSubmit}
>
<Stack spacing={3}>
<Typography variant='h1'>
{globalize.translate('HeaderBranding')}
</Typography>
{!isSubmitting && actionData?.isSaved && (
<Alert severity='success'>
{globalize.translate('SettingsSaved')}
</Alert>
)}
<FormControlLabel
control={
<Switch
name={BrandingOption.SplashscreenEnabled}
checked={brandingOptions?.SplashscreenEnabled}
onChange={setSplashscreenEnabled}
/>
}
label={globalize.translate('EnableSplashScreen')}
/>
<TextField
fullWidth
multiline
minRows={5}
maxRows={5}
InputProps={{
className: 'textarea-mono'
}}
name={BrandingOption.LoginDisclaimer}
label={globalize.translate('LabelLoginDisclaimer')}
helperText={globalize.translate('LabelLoginDisclaimerHelp')}
value={brandingOptions?.LoginDisclaimer}
onChange={setBrandingOption}
/>
<TextField
fullWidth
multiline
minRows={5}
maxRows={20}
InputProps={{
className: 'textarea-mono'
}}
name={BrandingOption.CustomCss}
label={globalize.translate('LabelCustomCss')}
helperText={globalize.translate('LabelCustomCssHelp')}
value={brandingOptions?.CustomCss}
onChange={setBrandingOption}
/>
<Button
type='submit'
size='large'
>
{globalize.translate('Save')}
</Button>
</Stack>
</Form>
</Box>
</Page>
);
};
Component.displayName = 'BrandingPage';

View File

@@ -1,33 +0,0 @@
import Alert from '@mui/material/Alert/Alert';
import Box from '@mui/material/Box/Box';
import Button from '@mui/material/Button/Button';
import React from 'react';
import { Link } from 'react-router-dom';
import Page from 'components/Page';
import globalize from 'scripts/globalize';
const DlnaPage = () => (
<Page
id='dlnaSettingsPage'
title='DLNA'
className='mainAnimatedPage type-interior'
>
<div className='content-primary'>
<h2>DLNA</h2>
<Alert severity='info'>
<Box sx={{ marginBottom: 2 }}>
{globalize.translate('DlnaMovedMessage')}
</Box>
<Button
component={Link}
to='/dashboard/plugins/add?name=DLNA&guid=33eba9cd7da14720967fdd7dae7b74a1'
>
{globalize.translate('GetThePlugin')}
</Button>
</Alert>
</div>
</Page>
);
export default DlnaPage;

View File

@@ -1,34 +0,0 @@
import Alert from '@mui/material/Alert/Alert';
import Box from '@mui/material/Box/Box';
import Button from '@mui/material/Button/Button';
import React from 'react';
import { Link } from 'react-router-dom';
import Page from 'components/Page';
import globalize from 'scripts/globalize';
const NotificationsPage = () => (
<Page
id='notificationSettingPage'
title={globalize.translate('Notifications')}
className='mainAnimatedPage type-interior'
>
<div className='content-primary'>
<h2>{globalize.translate('Notifications')}</h2>
<Alert severity='info'>
<Box sx={{ marginBottom: 2 }}>
{globalize.translate('NotificationsMovedMessage')}
</Box>
<Button
component={Link}
to='/dashboard/plugins/add?name=Webhook&guid=71552a5a5c5c4350a2aeebe451a30173'
>
{globalize.translate('GetThePlugin')}
</Button>
</Alert>
</div>
</Page>
);
export default NotificationsPage;

View File

@@ -1,7 +1,9 @@
import type { ProcessPriorityClass, ServerConfiguration, TrickplayScanBehavior } from '@jellyfin/sdk/lib/generated-client';
import React, { type FunctionComponent, useCallback, useEffect, useRef } from 'react';
import type { ServerConfiguration } from '@jellyfin/sdk/lib/generated-client/models/server-configuration';
import { TrickplayScanBehavior } from '@jellyfin/sdk/lib/generated-client/models/trickplay-scan-behavior';
import { ProcessPriorityClass } from '@jellyfin/sdk/lib/generated-client/models/process-priority-class';
import React, { type FC, useCallback, useEffect, useRef } from 'react';
import globalize from '../../../../scripts/globalize';
import globalize from '../../../../lib/globalize';
import Page from '../../../../components/Page';
import SectionTitleContainer from '../../../../elements/SectionTitleContainer';
import ButtonElement from '../../../../elements/ButtonElement';
@@ -17,10 +19,10 @@ function onSaveComplete() {
toast(globalize.translate('SettingsSaved'));
}
const PlaybackTrickplay: FunctionComponent = () => {
const PlaybackTrickplay: FC = () => {
const element = useRef<HTMLDivElement>(null);
const loadConfig = useCallback((config) => {
const loadConfig = useCallback((config: ServerConfiguration) => {
const page = element.current;
const options = config.TrickplayOptions;
@@ -29,17 +31,18 @@ const PlaybackTrickplay: FunctionComponent = () => {
return;
}
(page.querySelector('.chkEnableHwAcceleration') as HTMLInputElement).checked = options.EnableHwAcceleration;
(page.querySelector('.chkEnableHwEncoding') as HTMLInputElement).checked = options.EnableHwEncoding;
(page.querySelector('#selectScanBehavior') as HTMLSelectElement).value = options.ScanBehavior;
(page.querySelector('#selectProcessPriority') as HTMLSelectElement).value = options.ProcessPriority;
(page.querySelector('#txtInterval') as HTMLInputElement).value = options.Interval;
(page.querySelector('#txtWidthResolutions') as HTMLInputElement).value = options.WidthResolutions.join(',');
(page.querySelector('#txtTileWidth') as HTMLInputElement).value = options.TileWidth;
(page.querySelector('#txtTileHeight') as HTMLInputElement).value = options.TileHeight;
(page.querySelector('#txtQscale') as HTMLInputElement).value = options.Qscale;
(page.querySelector('#txtJpegQuality') as HTMLInputElement).value = options.JpegQuality;
(page.querySelector('#txtProcessThreads') as HTMLInputElement).value = options.ProcessThreads;
(page.querySelector('.chkEnableHwAcceleration') as HTMLInputElement).checked = options?.EnableHwAcceleration || false;
(page.querySelector('.chkEnableHwEncoding') as HTMLInputElement).checked = options?.EnableHwEncoding || false;
(page.querySelector('.chkEnableKeyFrameOnlyExtraction') as HTMLInputElement).checked = options?.EnableKeyFrameOnlyExtraction || false;
(page.querySelector('#selectScanBehavior') as HTMLSelectElement).value = (options?.ScanBehavior || TrickplayScanBehavior.NonBlocking);
(page.querySelector('#selectProcessPriority') as HTMLSelectElement).value = (options?.ProcessPriority || ProcessPriorityClass.Normal);
(page.querySelector('#txtInterval') as HTMLInputElement).value = options?.Interval?.toString() || '10000';
(page.querySelector('#txtWidthResolutions') as HTMLInputElement).value = options?.WidthResolutions?.join(',') || '';
(page.querySelector('#txtTileWidth') as HTMLInputElement).value = options?.TileWidth?.toString() || '10';
(page.querySelector('#txtTileHeight') as HTMLInputElement).value = options?.TileHeight?.toString() || '10';
(page.querySelector('#txtQscale') as HTMLInputElement).value = options?.Qscale?.toString() || '4';
(page.querySelector('#txtJpegQuality') as HTMLInputElement).value = options?.JpegQuality?.toString() || '90';
(page.querySelector('#txtProcessThreads') as HTMLInputElement).value = options?.ProcessThreads?.toString() || '1';
loading.hide();
}, []);
@@ -77,6 +80,7 @@ const PlaybackTrickplay: FunctionComponent = () => {
const options = config.TrickplayOptions;
options.EnableHwAcceleration = (page.querySelector('.chkEnableHwAcceleration') as HTMLInputElement).checked;
options.EnableHwEncoding = (page.querySelector('.chkEnableHwEncoding') as HTMLInputElement).checked;
options.EnableKeyFrameOnlyExtraction = (page.querySelector('.chkEnableKeyFrameOnlyExtraction') as HTMLInputElement).checked;
options.ScanBehavior = (page.querySelector('#selectScanBehavior') as HTMLSelectElement).value as TrickplayScanBehavior;
options.ProcessPriority = (page.querySelector('#selectProcessPriority') as HTMLSelectElement).value as ProcessPriorityClass;
options.Interval = Math.max(1, parseInt((page.querySelector('#txtInterval') as HTMLInputElement).value || '10000', 10));
@@ -140,12 +144,12 @@ const PlaybackTrickplay: FunctionComponent = () => {
<Page
id='trickplayConfigurationPage'
className='mainAnimatedPage type-interior playbackConfigurationPage'
title={globalize.translate('Trickplay')}
>
<div ref={element} className='content-primary'>
<div className='verticalSection'>
<SectionTitleContainer
title={globalize.translate('Trickplay')}
isLinkVisible={false}
/>
</div>
@@ -167,6 +171,17 @@ const PlaybackTrickplay: FunctionComponent = () => {
</div>
</div>
</div>
<div className='checkboxContainer checkboxContainer-withDescription'>
<CheckBoxElement
className='chkEnableKeyFrameOnlyExtraction'
title='LabelTrickplayKeyFrameOnlyExtraction'
/>
<div className='fieldDescription checkboxFieldDescription'>
<div className='fieldDescription'>
{globalize.translate('LabelTrickplayKeyFrameOnlyExtractionHelp')}
</div>
</div>
</div>
<div className='verticalSection'>
<div className='selectContainer fldSelectScanBehavior'>

View File

@@ -0,0 +1,443 @@
import { PluginStatus } from '@jellyfin/sdk/lib/generated-client/models/plugin-status';
import type { VersionInfo } from '@jellyfin/sdk/lib/generated-client/models/version-info';
import Alert from '@mui/material/Alert/Alert';
import Button from '@mui/material/Button/Button';
import Container from '@mui/material/Container/Container';
import FormControlLabel from '@mui/material/FormControlLabel/FormControlLabel';
import FormGroup from '@mui/material/FormGroup/FormGroup';
import Grid from '@mui/material/Grid/Grid';
import Skeleton from '@mui/material/Skeleton/Skeleton';
import Stack from '@mui/material/Stack/Stack';
import Switch from '@mui/material/Switch/Switch';
import Typography from '@mui/material/Typography/Typography';
import Delete from '@mui/icons-material/Delete';
import Download from '@mui/icons-material/Download';
import Settings from '@mui/icons-material/Settings';
import React, { type FC, useState, useCallback, useMemo } from 'react';
import { useSearchParams, Link as RouterLink, useParams } from 'react-router-dom';
import { findBestConfigurationPage } from 'apps/dashboard/features/plugins/api/configurationPage';
import { findBestPluginInfo } from 'apps/dashboard/features/plugins/api/pluginInfo';
import { useConfigurationPages } from 'apps/dashboard/features/plugins/api/useConfigurationPages';
import { useDisablePlugin } from 'apps/dashboard/features/plugins/api/useDisablePlugin';
import { useEnablePlugin } from 'apps/dashboard/features/plugins/api/useEnablePlugin';
import { useInstallPackage } from 'apps/dashboard/features/plugins/api/useInstallPackage';
import { usePackageInfo } from 'apps/dashboard/features/plugins/api/usePackageInfo';
import { usePlugins } from 'apps/dashboard/features/plugins/api/usePlugins';
import { useUninstallPlugin } from 'apps/dashboard/features/plugins/api/useUninstallPlugin';
import PluginImage from 'apps/dashboard/features/plugins/components/PluginImage';
import PluginDetailsTable from 'apps/dashboard/features/plugins/components/PluginDetailsTable';
import PluginRevisions from 'apps/dashboard/features/plugins/components/PluginRevisions';
import type { PluginDetails } from 'apps/dashboard/features/plugins/types/PluginDetails';
import ConfirmDialog from 'components/ConfirmDialog';
import Page from 'components/Page';
import { useApi } from 'hooks/useApi';
import globalize from 'lib/globalize';
import { getPluginUrl } from 'utils/dashboard';
import { getUri } from 'utils/api';
interface AlertMessage {
severity?: 'success' | 'info' | 'warning' | 'error'
messageKey: string
}
// Plugins from this url will be trusted and not prompt for confirmation when installing
const TRUSTED_REPO_URL = 'https://repo.jellyfin.org/';
const PluginPage: FC = () => {
const { api } = useApi();
const { pluginId } = useParams();
const [ searchParams ] = useSearchParams();
const disablePlugin = useDisablePlugin();
const enablePlugin = useEnablePlugin();
const installPlugin = useInstallPackage();
const uninstallPlugin = useUninstallPlugin();
const [ isEnabledOverride, setIsEnabledOverride ] = useState<boolean>();
const [ isInstallConfirmOpen, setIsInstallConfirmOpen ] = useState(false);
const [ isUninstallConfirmOpen, setIsUninstallConfirmOpen ] = useState(false);
const [ pendingInstallVersion, setPendingInstallVersion ] = useState<VersionInfo>();
const pluginName = searchParams.get('name') ?? undefined;
const {
data: configurationPages,
isError: isConfigurationPagesError,
isLoading: isConfigurationPagesLoading
} = useConfigurationPages();
const {
data: packageInfo,
isError: isPackageInfoError,
isLoading: isPackageInfoLoading
} = usePackageInfo(pluginName ? {
name: pluginName,
assemblyGuid: pluginId
} : undefined);
const {
data: plugins,
isLoading: isPluginsLoading,
isError: isPluginsError
} = usePlugins();
const isLoading =
isConfigurationPagesLoading || isPackageInfoLoading || isPluginsLoading;
const pluginDetails = useMemo<PluginDetails | undefined>(() => {
if (pluginId && !isPluginsLoading) {
const pluginInfo = findBestPluginInfo(pluginId, plugins);
let version;
if (pluginInfo) {
// Find the installed version
const repoVersion = packageInfo?.versions?.find(v => v.version === pluginInfo.Version);
version = repoVersion || {
version: pluginInfo.Version,
VersionNumber: pluginInfo.Version
};
} else {
// Use the latest version
version = packageInfo?.versions?.[0];
}
let imageUrl;
if (pluginInfo?.HasImage) {
imageUrl = getUri(`/Plugins/${pluginInfo.Id}/${pluginInfo.Version}/Image`, api);
}
return {
canUninstall: !!pluginInfo?.CanUninstall,
description: pluginInfo?.Description || packageInfo?.description || packageInfo?.overview,
id: pluginId,
imageUrl: imageUrl || packageInfo?.imageUrl || undefined,
isEnabled: (isEnabledOverride && pluginInfo?.Status === PluginStatus.Restart)
?? pluginInfo?.Status !== PluginStatus.Disabled,
name: pluginName || pluginInfo?.Name || packageInfo?.name,
owner: packageInfo?.owner,
status: pluginInfo?.Status,
configurationPage: findBestConfigurationPage(configurationPages || [], pluginId),
version,
versions: packageInfo?.versions || []
};
}
}, [
api,
configurationPages,
isEnabledOverride,
isPluginsLoading,
packageInfo?.description,
packageInfo?.imageUrl,
packageInfo?.name,
packageInfo?.overview,
packageInfo?.owner,
packageInfo?.versions,
pluginId,
pluginName,
plugins
]);
const alertMessages = useMemo(() => {
const alerts: AlertMessage[] = [];
if (disablePlugin.isError) {
alerts.push({ messageKey: 'PluginDisableError' });
}
if (enablePlugin.isError) {
alerts.push({ messageKey: 'PluginEnableError' });
}
if (installPlugin.isSuccess) {
alerts.push({
severity: 'success',
messageKey: 'MessagePluginInstalled'
});
}
if (installPlugin.isError) {
alerts.push({ messageKey: 'MessagePluginInstallError' });
}
if (uninstallPlugin.isError) {
alerts.push({ messageKey: 'PluginUninstallError' });
}
if (isConfigurationPagesError) {
alerts.push({ messageKey: 'PluginLoadConfigError' });
}
if (isPackageInfoError) {
alerts.push({
severity: 'warning',
messageKey: 'PluginLoadRepoError'
});
}
if (isPluginsError) {
alerts.push({ messageKey: 'MessageGetInstalledPluginsError' });
}
return alerts;
}, [
disablePlugin.isError,
enablePlugin.isError,
installPlugin.isError,
installPlugin.isSuccess,
isConfigurationPagesError,
isPackageInfoError,
isPluginsError,
uninstallPlugin.isError
]);
/** Enable/disable the plugin */
const toggleEnabled = useCallback(() => {
if (!pluginDetails?.version?.version) return;
console.debug('[PluginPage] %s plugin', pluginDetails.isEnabled ? 'disabling' : 'enabling', pluginDetails);
if (pluginDetails.isEnabled) {
disablePlugin.mutate({
pluginId: pluginDetails.id,
version: pluginDetails.version.version
}, {
onSuccess: () => {
setIsEnabledOverride(false);
},
onSettled: () => {
installPlugin.reset();
enablePlugin.reset();
uninstallPlugin.reset();
}
});
} else {
enablePlugin.mutate({
pluginId: pluginDetails.id,
version: pluginDetails.version.version
}, {
onSuccess: () => {
setIsEnabledOverride(true);
},
onSettled: () => {
installPlugin.reset();
disablePlugin.reset();
uninstallPlugin.reset();
}
});
}
}, [ disablePlugin, enablePlugin, installPlugin, pluginDetails, uninstallPlugin ]);
/** Install the plugin or prompt for confirmation if untrusted */
const onInstall = useCallback((version?: VersionInfo, isConfirmed = false) => () => {
if (!pluginDetails?.name) return;
const installVersion = version || pluginDetails.version;
if (!installVersion) return;
if (!isConfirmed && !installVersion.repositoryUrl?.startsWith(TRUSTED_REPO_URL)) {
console.debug('[PluginPage] plugin install needs confirmed', installVersion);
setPendingInstallVersion(installVersion);
setIsInstallConfirmOpen(true);
return;
}
console.debug('[PluginPage] installing plugin', installVersion);
installPlugin.mutate({
name: pluginDetails.name,
assemblyGuid: pluginDetails.id,
version: installVersion.version,
repositoryUrl: installVersion.repositoryUrl
}, {
onSettled: () => {
setPendingInstallVersion(undefined);
disablePlugin.reset();
enablePlugin.reset();
uninstallPlugin.reset();
}
});
}, [ disablePlugin, enablePlugin, installPlugin, pluginDetails, uninstallPlugin ]);
/** Confirm and install the plugin */
const onConfirmInstall = useCallback(() => {
console.debug('[PluginPage] confirmed installing plugin', pendingInstallVersion);
setIsInstallConfirmOpen(false);
onInstall(pendingInstallVersion, true)();
}, [ onInstall, pendingInstallVersion ]);
/** Close the install confirmation dialog */
const onCloseInstallConfirmDialog = useCallback(() => {
setPendingInstallVersion(undefined);
setIsInstallConfirmOpen(false);
}, []);
/** Show the uninstall confirmation dialog */
const onConfirmUninstall = useCallback(() => {
setIsUninstallConfirmOpen(true);
}, []);
/** Uninstall the plugin */
const onUninstall = useCallback(() => {
if (!pluginDetails?.version?.version) return;
console.debug('[PluginPage] uninstalling plugin', pluginDetails);
setIsUninstallConfirmOpen(false);
uninstallPlugin.mutate({
pluginId: pluginDetails.id,
version: pluginDetails.version.version
}, {
onSettled: () => {
disablePlugin.reset();
enablePlugin.reset();
installPlugin.reset();
}
});
}, [ disablePlugin, enablePlugin, installPlugin, pluginDetails, uninstallPlugin ]);
/** Close the uninstall confirmation dialog */
const onCloseUninstallConfirmDialog = useCallback(() => {
setIsUninstallConfirmOpen(false);
}, []);
return (
<Page
id='addPluginPage'
className='mainAnimatedPage type-interior'
>
<Container className='content-primary'>
{alertMessages.map(({ severity = 'error', messageKey }) => (
<Alert key={messageKey} severity={severity}>
{globalize.translate(messageKey)}
</Alert>
))}
<Grid container spacing={2} sx={{ marginTop: 0 }}>
<Grid item xs={12} lg={8}>
<Stack spacing={2}>
<Typography variant='h1'>
{pluginDetails?.name || pluginName}
</Typography>
<Typography sx={{ maxWidth: '80ch' }}>
{isLoading && !pluginDetails?.description ? (
<Skeleton />
) : (
pluginDetails?.description
)}
</Typography>
</Stack>
</Grid>
<Grid item lg={4} sx={{ display: { xs: 'none', lg: 'initial' } }}>
<PluginImage
isLoading={isLoading}
alt={pluginDetails?.name}
url={pluginDetails?.imageUrl}
/>
</Grid>
<Grid item xs={12} lg={8} sx={{ order: { xs: 1, lg: 'initial' } }}>
{!!pluginDetails?.versions.length && (
<>
<Typography variant='h3' sx={{ marginBottom: 2 }}>
{globalize.translate('HeaderRevisionHistory')}
</Typography>
<PluginRevisions
pluginDetails={pluginDetails}
onInstall={onInstall}
/>
</>
)}
</Grid>
<Grid item xs={12} lg={4}>
<Stack spacing={2} direction={{ xs: 'column', sm: 'row-reverse', lg: 'column' }}>
<Stack spacing={1} sx={{ flexBasis: '50%' }}>
{!isLoading && !pluginDetails?.status && (
<>
<Alert severity='info'>
{globalize.translate('ServerRestartNeededAfterPluginInstall')}
</Alert>
<Button
startIcon={<Download />}
onClick={onInstall()}
>
{globalize.translate('HeaderInstall')}
</Button>
</>
)}
{!isLoading && pluginDetails?.canUninstall && (
<FormGroup>
<FormControlLabel
control={
<Switch
checked={pluginDetails.isEnabled}
onChange={toggleEnabled}
disabled={pluginDetails.status === PluginStatus.Restart}
/>
}
label={globalize.translate('LabelEnablePlugin')}
/>
</FormGroup>
)}
{!isLoading && pluginDetails?.configurationPage?.Name && (
<Button
component={RouterLink}
to={`/${getPluginUrl(pluginDetails.configurationPage.Name)}`}
startIcon={<Settings />}
>
{globalize.translate('Settings')}
</Button>
)}
{!isLoading && pluginDetails?.canUninstall && (
<Button
color='error'
startIcon={<Delete />}
onClick={onConfirmUninstall}
>
{globalize.translate('ButtonUninstall')}
</Button>
)}
</Stack>
<PluginDetailsTable
isPluginLoading={isPluginsLoading}
isRepositoryLoading={isPackageInfoLoading}
pluginDetails={pluginDetails}
sx={{ flexBasis: '50%' }}
/>
</Stack>
</Grid>
</Grid>
</Container>
<ConfirmDialog
open={isInstallConfirmOpen}
title={globalize.translate('HeaderConfirmPluginInstallation')}
text={globalize.translate('MessagePluginInstallDisclaimer')}
onCancel={onCloseInstallConfirmDialog}
onConfirm={onConfirmInstall}
confirmButtonText={globalize.translate('HeaderInstall')}
/>
<ConfirmDialog
open={isUninstallConfirmOpen}
title={globalize.translate('HeaderUninstallPlugin')}
text={globalize.translate('UninstallPluginConfirmation', pluginName || '')}
onCancel={onCloseUninstallConfirmDialog}
onConfirm={onUninstall}
confirmButtonColor='error'
confirmButtonText={globalize.translate('ButtonUninstall')}
/>
</Page>
);
};
export default PluginPage;

View File

@@ -1,12 +1,12 @@
import React from 'react';
import { RouteObject } from 'react-router-dom';
import AppLayout from '../AppLayout';
import ConnectionRequired from 'components/ConnectionRequired';
import { ASYNC_ADMIN_ROUTES } from './_asyncRoutes';
import { toAsyncPageRoute } from 'components/router/AsyncRoute';
import { toViewManagerPageRoute } from 'components/router/LegacyRoute';
import { LEGACY_ADMIN_ROUTES } from './_legacyRoutes';
import ServerContentPage from 'components/ServerContentPage';
import ErrorBoundary from 'components/router/ErrorBoundary';
export const DASHBOARD_APP_PATHS = {
Dashboard: 'dashboard',
@@ -19,14 +19,15 @@ export const DASHBOARD_APP_ROUTES: RouteObject[] = [
element: <ConnectionRequired isAdminRequired />,
children: [
{
element: <AppLayout drawerlessPaths={[ DASHBOARD_APP_PATHS.MetadataManager ]} />,
lazy: () => import('../AppLayout'),
children: [
{
path: DASHBOARD_APP_PATHS.Dashboard,
children: [
...ASYNC_ADMIN_ROUTES.map(toAsyncPageRoute),
...LEGACY_ADMIN_ROUTES.map(toViewManagerPageRoute)
]
],
errorElement: <ErrorBoundary pageClasses={[ 'type-interior' ]} />
},
/* NOTE: The metadata editor might deserve a dedicated app in the future */

View File

@@ -1,30 +1,33 @@
import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
import React, { FunctionComponent, useCallback, useEffect, useState, useRef } from 'react';
import type { BaseItemDto, DeviceInfoDto, UserDto } from '@jellyfin/sdk/lib/generated-client';
import React, { useCallback, useEffect, useState, useRef, useMemo } from 'react';
import { useSearchParams } from 'react-router-dom';
import loading from '../../../../components/loading/loading';
import libraryMenu from '../../../../scripts/libraryMenu';
import globalize from '../../../../scripts/globalize';
import globalize from '../../../../lib/globalize';
import toast from '../../../../components/toast/toast';
import SectionTabs from '../../../../components/dashboard/users/SectionTabs';
import ButtonElement from '../../../../elements/ButtonElement';
import { getParameterByName } from '../../../../utils/url';
import SectionTitleContainer from '../../../../elements/SectionTitleContainer';
import AccessContainer from '../../../../components/dashboard/users/AccessContainer';
import CheckBoxElement from '../../../../elements/CheckBoxElement';
import Page from '../../../../components/Page';
type ItemsArr = {
Name?: string;
Id?: string;
AppName?: string;
Name?: string | null;
Id?: string | null;
AppName?: string | null;
CustomName?: string | null;
checkedAttribute?: string
};
const UserLibraryAccess: FunctionComponent = () => {
const UserLibraryAccess = () => {
const [ searchParams ] = useSearchParams();
const userId = searchParams.get('userId');
const [ userName, setUserName ] = useState('');
const [channelsItems, setChannelsItems] = useState<ItemsArr[]>([]);
const [mediaFoldersItems, setMediaFoldersItems] = useState<ItemsArr[]>([]);
const [devicesItems, setDevicesItems] = useState<ItemsArr[]>([]);
const libraryMenu = useMemo(async () => ((await import('../../../../scripts/libraryMenu')).default), []);
const element = useRef<HTMLDivElement>(null);
@@ -33,18 +36,18 @@ const UserLibraryAccess: FunctionComponent = () => {
select.dispatchEvent(evt);
};
const loadMediaFolders = useCallback((user, mediaFolders) => {
const loadMediaFolders = useCallback((user: UserDto, mediaFolders: BaseItemDto[]) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[userlibraryaccess] Unexpected null page reference');
return;
}
const itemsArr: ItemsArr[] = [];
for (const folder of mediaFolders) {
const isChecked = user.Policy.EnableAllFolders || user.Policy.EnabledFolders.indexOf(folder.Id) != -1;
const isChecked = user.Policy?.EnableAllFolders || user.Policy?.EnabledFolders?.indexOf(folder.Id || '') != -1;
const checkedAttribute = isChecked ? ' checked="checked"' : '';
itemsArr.push({
Id: folder.Id,
@@ -56,22 +59,22 @@ const UserLibraryAccess: FunctionComponent = () => {
setMediaFoldersItems(itemsArr);
const chkEnableAllFolders = page.querySelector('.chkEnableAllFolders') as HTMLInputElement;
chkEnableAllFolders.checked = user.Policy.EnableAllFolders;
chkEnableAllFolders.checked = Boolean(user.Policy?.EnableAllFolders);
triggerChange(chkEnableAllFolders);
}, []);
const loadChannels = useCallback((user, channels) => {
const loadChannels = useCallback((user: UserDto, channels: BaseItemDto[]) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[userlibraryaccess] Unexpected null page reference');
return;
}
const itemsArr: ItemsArr[] = [];
for (const folder of channels) {
const isChecked = user.Policy.EnableAllChannels || user.Policy.EnabledChannels.indexOf(folder.Id) != -1;
const isChecked = user.Policy?.EnableAllChannels || user.Policy?.EnabledChannels?.indexOf(folder.Id || '') != -1;
const checkedAttribute = isChecked ? ' checked="checked"' : '';
itemsArr.push({
Id: folder.Id,
@@ -89,27 +92,28 @@ const UserLibraryAccess: FunctionComponent = () => {
}
const chkEnableAllChannels = page.querySelector('.chkEnableAllChannels') as HTMLInputElement;
chkEnableAllChannels.checked = user.Policy.EnableAllChannels;
chkEnableAllChannels.checked = Boolean(user.Policy?.EnableAllChannels);
triggerChange(chkEnableAllChannels);
}, []);
const loadDevices = useCallback((user, devices) => {
const loadDevices = useCallback((user: UserDto, devices: DeviceInfoDto[]) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[userlibraryaccess] Unexpected null page reference');
return;
}
const itemsArr: ItemsArr[] = [];
for (const device of devices) {
const isChecked = user.Policy.EnableAllDevices || user.Policy.EnabledDevices.indexOf(device.Id) != -1;
const isChecked = user.Policy?.EnableAllDevices || user.Policy?.EnabledDevices?.indexOf(device.Id || '') != -1;
const checkedAttribute = isChecked ? ' checked="checked"' : '';
itemsArr.push({
Id: device.Id,
Name: device.Name,
AppName: device.AppName,
CustomName: device.CustomName,
checkedAttribute: checkedAttribute
});
}
@@ -117,19 +121,19 @@ const UserLibraryAccess: FunctionComponent = () => {
setDevicesItems(itemsArr);
const chkEnableAllDevices = page.querySelector('.chkEnableAllDevices') as HTMLInputElement;
chkEnableAllDevices.checked = user.Policy.EnableAllDevices;
chkEnableAllDevices.checked = Boolean(user.Policy?.EnableAllDevices);
triggerChange(chkEnableAllDevices);
if (user.Policy.IsAdministrator) {
if (user.Policy?.IsAdministrator) {
(page.querySelector('.deviceAccessContainer') as HTMLDivElement).classList.add('hide');
} else {
(page.querySelector('.deviceAccessContainer') as HTMLDivElement).classList.remove('hide');
}
}, []);
const loadUser = useCallback((user, mediaFolders, channels, devices) => {
setUserName(user.Name);
libraryMenu.setTitle(user.Name);
const loadUser = useCallback((user: UserDto, mediaFolders: BaseItemDto[], channels: BaseItemDto[], devices: DeviceInfoDto[]) => {
setUserName(user.Name || '');
void libraryMenu.then(menu => menu.setTitle(user.Name));
loadChannels(user, channels);
loadMediaFolders(user, mediaFolders);
loadDevices(user, devices);
@@ -138,7 +142,6 @@ const UserLibraryAccess: FunctionComponent = () => {
const loadData = useCallback(() => {
loading.show();
const userId = getParameterByName('userId');
const promise1 = userId ? window.ApiClient.getUser(userId) : Promise.resolve({ Configuration: {} });
const promise2 = window.ApiClient.getJSON(window.ApiClient.getUrl('Library/MediaFolders', {
IsHidden: false
@@ -150,21 +153,25 @@ const UserLibraryAccess: FunctionComponent = () => {
}).catch(err => {
console.error('[userlibraryaccess] failed to load data', err);
});
}, [loadUser]);
}, [loadUser, userId]);
useEffect(() => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[userlibraryaccess] Unexpected null page reference');
return;
}
loadData();
const onSubmit = (e: Event) => {
if (!userId) {
console.error('[userlibraryaccess] missing user id');
return;
}
loading.show();
const userId = getParameterByName('userId');
window.ApiClient.getUser(userId).then(function (result) {
saveUser(result);
}).catch(err => {
@@ -240,7 +247,6 @@ const UserLibraryAccess: FunctionComponent = () => {
<div className='verticalSection'>
<SectionTitleContainer
title={userName}
url='https://jellyfin.org/docs/general/server/users/'
/>
</div>
<SectionTabs activeTab='userlibraryaccess'/>
@@ -302,7 +308,7 @@ const UserLibraryAccess: FunctionComponent = () => {
key={Item.Id}
className='chkDevice'
itemId={Item.Id}
itemName={Item.Name}
itemName={Item.CustomName || Item.Name}
itemAppName={Item.AppName}
itemCheckedAttribute={Item.checkedAttribute}
/>

View File

@@ -1,7 +1,8 @@
import React, { FunctionComponent, useCallback, useEffect, useState, useRef } from 'react';
import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client';
import React, { useCallback, useEffect, useState, useRef } from 'react';
import Dashboard from '../../../../utils/dashboard';
import globalize from '../../../../scripts/globalize';
import globalize from '../../../../lib/globalize';
import loading from '../../../../components/loading/loading';
import toast from '../../../../components/toast/toast';
import SectionTitleContainer from '../../../../elements/SectionTitleContainer';
@@ -11,22 +12,22 @@ import AccessContainer from '../../../../components/dashboard/users/AccessContai
import CheckBoxElement from '../../../../elements/CheckBoxElement';
import Page from '../../../../components/Page';
type userInput = {
type UserInput = {
Name?: string;
Password?: string;
};
type ItemsArr = {
Name?: string;
Name?: string | null;
Id?: string;
};
const UserNew: FunctionComponent = () => {
const UserNew = () => {
const [ channelsItems, setChannelsItems ] = useState<ItemsArr[]>([]);
const [ mediaFoldersItems, setMediaFoldersItems ] = useState<ItemsArr[]>([]);
const element = useRef<HTMLDivElement>(null);
const getItemsResult = (items: ItemsArr[]) => {
const getItemsResult = (items: BaseItemDto[]) => {
return items.map(item =>
({
Id: item.Id,
@@ -35,7 +36,7 @@ const UserNew: FunctionComponent = () => {
);
};
const loadMediaFolders = useCallback((result) => {
const loadMediaFolders = useCallback((result: BaseItemDto[]) => {
const page = element.current;
if (!page) {
@@ -53,7 +54,7 @@ const UserNew: FunctionComponent = () => {
(page.querySelector('.chkEnableAllFolders') as HTMLInputElement).checked = false;
}, []);
const loadChannels = useCallback((result) => {
const loadChannels = useCallback((result: BaseItemDto[]) => {
const page = element.current;
if (!page) {
@@ -109,7 +110,7 @@ const UserNew: FunctionComponent = () => {
loadUser();
const saveUser = () => {
const userInput: userInput = {};
const userInput: UserInput = {};
userInput.Name = (page.querySelector('#txtUsername') as HTMLInputElement).value;
userInput.Password = (page.querySelector('#txtPassword') as HTMLInputElement).value;
window.ApiClient.createUser(userInput).then(function (user) {
@@ -187,7 +188,6 @@ const UserNew: FunctionComponent = () => {
<div className='verticalSection'>
<SectionTitleContainer
title={globalize.translate('HeaderAddUser')}
url='https://jellyfin.org/docs/general/server/users/'
/>
</div>

View File

@@ -1,8 +1,8 @@
import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
import React, { FunctionComponent, useEffect, useState, useRef } from 'react';
import React, { useEffect, useState, useRef } from 'react';
import Dashboard from '../../../../utils/dashboard';
import globalize from '../../../../scripts/globalize';
import globalize from '../../../../lib/globalize';
import loading from '../../../../components/loading/loading';
import dom from '../../../../scripts/dom';
import confirm from '../../../../components/confirm/confirm';
@@ -21,7 +21,7 @@ type MenuEntry = {
icon?: string;
};
const UserProfiles: FunctionComponent = () => {
const UserProfiles = () => {
const [ users, setUsers ] = useState<UserDto[]>([]);
const element = useRef<HTMLDivElement>(null);
@@ -159,6 +159,7 @@ const UserProfiles: FunctionComponent = () => {
<Page
id='userProfilesPage'
className='mainAnimatedPage type-interior userProfilesPage fullWidthContent'
title={globalize.translate('HeaderUsers')}
>
<div ref={element} className='content-primary'>
<div className='verticalSection'>
@@ -169,7 +170,6 @@ const UserProfiles: FunctionComponent = () => {
btnClassName='fab submit sectionTitleButton'
btnTitle='ButtonAddUser'
btnIcon='add'
url='https://jellyfin.org/docs/general/server/users/adding-managing-users'
/>
</div>

View File

@@ -1,10 +1,11 @@
import type { AccessSchedule, ParentalRating, UserDto } from '@jellyfin/sdk/lib/generated-client';
import { UnratedItem } from '@jellyfin/sdk/lib/generated-client/models/unrated-item';
import { DynamicDayOfWeek } from '@jellyfin/sdk/lib/generated-client/models/dynamic-day-of-week';
import React, { FunctionComponent, useCallback, useEffect, useState, useRef } from 'react';
import escapeHTML from 'escape-html';
import React, { useCallback, useEffect, useState, useRef, useMemo } from 'react';
import { useSearchParams } from 'react-router-dom';
import globalize from '../../../../scripts/globalize';
import LibraryMenu from '../../../../scripts/libraryMenu';
import globalize from '../../../../lib/globalize';
import AccessScheduleList from '../../../../components/dashboard/users/AccessScheduleList';
import TagList from '../../../../components/dashboard/users/TagList';
import ButtonElement from '../../../../elements/ButtonElement';
@@ -12,16 +13,18 @@ import SectionTitleContainer from '../../../../elements/SectionTitleContainer';
import SectionTabs from '../../../../components/dashboard/users/SectionTabs';
import loading from '../../../../components/loading/loading';
import toast from '../../../../components/toast/toast';
import { getParameterByName } from '../../../../utils/url';
import CheckBoxElement from '../../../../elements/CheckBoxElement';
import SelectElement from '../../../../elements/SelectElement';
import Page from '../../../../components/Page';
import prompt from '../../../../components/prompt/prompt';
import ServerConnections from 'components/ServerConnections';
type UnratedItem = {
type NamedItem = {
name: string;
value: string;
value: UnratedItem;
};
type UnratedNamedItem = NamedItem & {
checkedAttribute: string
};
@@ -56,17 +59,20 @@ function handleSaveUser(
};
}
const UserParentalControl: FunctionComponent = () => {
const UserParentalControl = () => {
const [ searchParams ] = useSearchParams();
const userId = searchParams.get('userId');
const [ userName, setUserName ] = useState('');
const [ parentalRatings, setParentalRatings ] = useState<ParentalRating[]>([]);
const [ unratedItems, setUnratedItems ] = useState<UnratedItem[]>([]);
const [ unratedItems, setUnratedItems ] = useState<UnratedNamedItem[]>([]);
const [ accessSchedules, setAccessSchedules ] = useState<AccessSchedule[]>([]);
const [ allowedTags, setAllowedTags ] = useState<string[]>([]);
const [ blockedTags, setBlockedTags ] = useState<string[]>([]);
const libraryMenu = useMemo(async () => ((await import('../../../../scripts/libraryMenu')).default), []);
const element = useRef<HTMLDivElement>(null);
const populateRatings = useCallback((allParentalRatings) => {
const populateRatings = useCallback((allParentalRatings: ParentalRating[]) => {
let rating;
const ratings: ParentalRating[] = [];
@@ -91,133 +97,69 @@ const UserParentalControl: FunctionComponent = () => {
setParentalRatings(ratings);
}, []);
const loadUnratedItems = useCallback((user) => {
const loadUnratedItems = useCallback((user: UserDto) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[userparentalcontrol] Unexpected null page reference');
return;
}
const items = [{
const items: NamedItem[] = [{
name: globalize.translate('Books'),
value: 'Book'
value: UnratedItem.Book
}, {
name: globalize.translate('Channels'),
value: 'ChannelContent'
value: UnratedItem.ChannelContent
}, {
name: globalize.translate('LiveTV'),
value: 'LiveTvChannel'
value: UnratedItem.LiveTvChannel
}, {
name: globalize.translate('Movies'),
value: 'Movie'
value: UnratedItem.Movie
}, {
name: globalize.translate('Music'),
value: 'Music'
value: UnratedItem.Music
}, {
name: globalize.translate('Trailers'),
value: 'Trailer'
value: UnratedItem.Trailer
}, {
name: globalize.translate('Shows'),
value: 'Series'
value: UnratedItem.Series
}];
const itemsArr: UnratedItem[] = [];
const unratedNamedItem: UnratedNamedItem[] = [];
for (const item of items) {
const isChecked = user.Policy.BlockUnratedItems.indexOf(item.value) != -1;
const isChecked = user.Policy?.BlockUnratedItems?.indexOf(item.value) != -1;
const checkedAttribute = isChecked ? ' checked="checked"' : '';
itemsArr.push({
unratedNamedItem.push({
value: item.value,
name: item.name,
checkedAttribute: checkedAttribute
});
}
setUnratedItems(itemsArr);
setUnratedItems(unratedNamedItem);
const blockUnratedItems = page.querySelector('.blockUnratedItems') as HTMLDivElement;
blockUnratedItems.dispatchEvent(new CustomEvent('create'));
}, []);
const loadAllowedTags = useCallback((tags: string[]) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
return;
}
setAllowedTags(tags);
const allowedTagsElem = page.querySelector('.allowedTags') as HTMLDivElement;
for (const btnDeleteTag of allowedTagsElem.querySelectorAll('.btnDeleteTag')) {
btnDeleteTag.addEventListener('click', function () {
const tag = btnDeleteTag.getAttribute('data-tag');
const newTags = tags.filter(t => t !== tag);
loadAllowedTags(newTags);
});
}
}, []);
const loadBlockedTags = useCallback((tags: string[]) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
return;
}
setBlockedTags(tags);
const blockedTagsElem = page.querySelector('.blockedTags') as HTMLDivElement;
for (const btnDeleteTag of blockedTagsElem.querySelectorAll('.btnDeleteTag')) {
btnDeleteTag.addEventListener('click', function () {
const tag = btnDeleteTag.getAttribute('data-tag');
const newTags = tags.filter(t => t !== tag);
loadBlockedTags(newTags);
});
}
}, []);
const renderAccessSchedule = useCallback((schedules) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
return;
}
setAccessSchedules(schedules);
const accessScheduleList = page.querySelector('.accessScheduleList') as HTMLDivElement;
for (const btnDelete of accessScheduleList.querySelectorAll('.btnDelete')) {
btnDelete.addEventListener('click', function () {
const index = parseInt(btnDelete.getAttribute('data-index') ?? '0', 10);
schedules.splice(index, 1);
const newindex = schedules.filter((i: number) => i != index);
renderAccessSchedule(newindex);
});
}
}, []);
const loadUser = useCallback((user: UserDto, allParentalRatings: ParentalRating[]) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[userparentalcontrol] Unexpected null page reference');
return;
}
setUserName(user.Name || '');
LibraryMenu.setTitle(user.Name);
void libraryMenu.then(menu => menu.setTitle(user.Name));
loadUnratedItems(user);
loadAllowedTags(user.Policy?.AllowedTags || []);
loadBlockedTags(user.Policy?.BlockedTags || []);
setAllowedTags(user.Policy?.AllowedTags || []);
setBlockedTags(user.Policy?.BlockedTags || []);
populateRatings(allParentalRatings);
let ratingValue = '';
@@ -229,20 +171,24 @@ const UserParentalControl: FunctionComponent = () => {
});
}
(page.querySelector('#selectMaxParentalRating') as HTMLSelectElement).value = ratingValue;
(page.querySelector('#selectMaxParentalRating') as HTMLSelectElement).value = String(ratingValue);
if (user.Policy?.IsAdministrator) {
(page.querySelector('.accessScheduleSection') as HTMLDivElement).classList.add('hide');
} else {
(page.querySelector('.accessScheduleSection') as HTMLDivElement).classList.remove('hide');
}
renderAccessSchedule(user.Policy?.AccessSchedules || []);
setAccessSchedules(user.Policy?.AccessSchedules || []);
loading.hide();
}, [loadAllowedTags, loadBlockedTags, loadUnratedItems, populateRatings, renderAccessSchedule]);
}, [libraryMenu, setAllowedTags, setBlockedTags, loadUnratedItems, populateRatings]);
const loadData = useCallback(() => {
if (!userId) {
console.error('[userparentalcontrol.loadData] missing user id');
return;
}
loading.show();
const userId = getParameterByName('userId');
const promise1 = window.ApiClient.getUser(userId);
const promise2 = window.ApiClient.getParentalRatings();
Promise.all([promise1, promise2]).then(function (responses) {
@@ -250,13 +196,13 @@ const UserParentalControl: FunctionComponent = () => {
}).catch(err => {
console.error('[userparentalcontrol] failed to load data', err);
});
}, [loadUser]);
}, [loadUser, userId]);
useEffect(() => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[userparentalcontrol] Unexpected null page reference');
return;
}
@@ -275,7 +221,7 @@ const UserParentalControl: FunctionComponent = () => {
}
schedules[index] = updatedSchedule;
renderAccessSchedule(schedules);
setAccessSchedules(schedules);
}).catch(() => {
// access schedule closed
});
@@ -308,7 +254,7 @@ const UserParentalControl: FunctionComponent = () => {
if (tags.indexOf(value) == -1) {
tags.push(value);
loadAllowedTags(tags);
setAllowedTags(tags);
}
}).catch(() => {
// prompt closed
@@ -329,7 +275,7 @@ const UserParentalControl: FunctionComponent = () => {
if (tags.indexOf(value) == -1) {
tags.push(value);
loadBlockedTags(tags);
setBlockedTags(tags);
}
}).catch(() => {
// prompt closed
@@ -344,8 +290,12 @@ const UserParentalControl: FunctionComponent = () => {
const saveUser = handleSaveUser(page, getSchedulesFromPage, getAllowedTagsFromPage, getBlockedTagsFromPage, onSaveComplete);
const onSubmit = (e: Event) => {
if (!userId) {
console.error('[userparentalcontrol.onSubmit] missing user id');
return;
}
loading.show();
const userId = getParameterByName('userId');
window.ApiClient.getUser(userId).then(function (result) {
saveUser(result);
}).catch(err => {
@@ -356,7 +306,8 @@ const UserParentalControl: FunctionComponent = () => {
return false;
};
(page.querySelector('#btnAddSchedule') as HTMLButtonElement).addEventListener('click', function () {
// The following is still hacky and should migrate to pure react implementation for callbacks in the future
const accessSchedulesPopupCallback = function () {
showSchedulePopup({
Id: 0,
UserId: '',
@@ -364,18 +315,19 @@ const UserParentalControl: FunctionComponent = () => {
StartHour: 0,
EndHour: 0
}, -1);
});
(page.querySelector('#btnAddAllowedTag') as HTMLButtonElement).addEventListener('click', function () {
showAllowedTagPopup();
});
(page.querySelector('#btnAddBlockedTag') as HTMLButtonElement).addEventListener('click', function () {
showBlockedTagPopup();
});
};
(page.querySelector('#btnAddSchedule') as HTMLButtonElement).addEventListener('click', accessSchedulesPopupCallback);
(page.querySelector('#btnAddAllowedTag') as HTMLButtonElement).addEventListener('click', showAllowedTagPopup);
(page.querySelector('#btnAddBlockedTag') as HTMLButtonElement).addEventListener('click', showBlockedTagPopup);
(page.querySelector('.userParentalControlForm') as HTMLFormElement).addEventListener('submit', onSubmit);
}, [loadAllowedTags, loadBlockedTags, loadData, renderAccessSchedule]);
return () => {
(page.querySelector('#btnAddSchedule') as HTMLButtonElement).removeEventListener('click', accessSchedulesPopupCallback);
(page.querySelector('#btnAddAllowedTag') as HTMLButtonElement).removeEventListener('click', showAllowedTagPopup);
(page.querySelector('#btnAddBlockedTag') as HTMLButtonElement).removeEventListener('click', showBlockedTagPopup);
(page.querySelector('.userParentalControlForm') as HTMLFormElement).removeEventListener('submit', onSubmit);
};
}, [setAllowedTags, setBlockedTags, loadData, userId]);
const optionMaxParentalRating = () => {
let content = '';
@@ -386,6 +338,21 @@ const UserParentalControl: FunctionComponent = () => {
return content;
};
const removeAllowedTagsCallback = useCallback((tag: string) => {
const newTags = allowedTags.filter(t => t !== tag);
setAllowedTags(newTags);
}, [allowedTags, setAllowedTags]);
const removeBlockedTagsTagsCallback = useCallback((tag: string) => {
const newTags = blockedTags.filter(t => t !== tag);
setBlockedTags(newTags);
}, [blockedTags, setBlockedTags]);
const removeScheduleCallback = useCallback((index: number) => {
const newSchedules = accessSchedules.filter((_e, i) => i != index);
setAccessSchedules(newSchedules);
}, [accessSchedules, setAccessSchedules]);
return (
<Page
id='userParentalControlPage'
@@ -395,7 +362,6 @@ const UserParentalControl: FunctionComponent = () => {
<div className='verticalSection'>
<SectionTitleContainer
title={userName}
url='https://jellyfin.org/docs/general/server/users/'
/>
</div>
<SectionTabs activeTab='userparentalcontrol'/>
@@ -439,7 +405,6 @@ const UserParentalControl: FunctionComponent = () => {
btnClassName='fab submit sectionTitleButton'
btnTitle='Add'
btnIcon='add'
isLinkVisible={false}
/>
<div className='fieldDescription'>
{globalize.translate('AllowContentWithTagsHelp')}
@@ -450,6 +415,7 @@ const UserParentalControl: FunctionComponent = () => {
key={tag}
tag={tag}
tagType='allowedTag'
removeTagCallback={removeAllowedTagsCallback}
/>;
})}
</div>
@@ -463,7 +429,6 @@ const UserParentalControl: FunctionComponent = () => {
btnClassName='fab submit sectionTitleButton'
btnTitle='Add'
btnIcon='add'
isLinkVisible={false}
/>
<div className='fieldDescription'>
{globalize.translate('BlockContentWithTagsHelp')}
@@ -474,6 +439,7 @@ const UserParentalControl: FunctionComponent = () => {
key={tag}
tag={tag}
tagType='blockedTag'
removeTagCallback={removeBlockedTagsTagsCallback}
/>;
})}
</div>
@@ -486,17 +452,17 @@ const UserParentalControl: FunctionComponent = () => {
btnClassName='fab submit sectionTitleButton'
btnTitle='Add'
btnIcon='add'
isLinkVisible={false}
/>
<p>{globalize.translate('HeaderAccessScheduleHelp')}</p>
<div className='accessScheduleList paperList'>
{accessSchedules.map((accessSchedule, index) => {
return <AccessScheduleList
key={accessSchedule.Id}
key={`${accessSchedule.DayOfWeek}${accessSchedule.StartHour}${accessSchedule.EndHour}`}
index={index}
DayOfWeek={accessSchedule.DayOfWeek}
StartHour={accessSchedule.StartHour}
EndHour={accessSchedule.EndHour}
removeScheduleCallback={removeScheduleCallback}
/>;
})}
</div>

View File

@@ -1,17 +1,23 @@
import React, { FunctionComponent, useCallback, useEffect, useState } from 'react';
import React, { useCallback, useEffect, useState } from 'react';
import { useSearchParams } from 'react-router-dom';
import SectionTabs from '../../../../components/dashboard/users/SectionTabs';
import UserPasswordForm from '../../../../components/dashboard/users/UserPasswordForm';
import { getParameterByName } from '../../../../utils/url';
import SectionTitleContainer from '../../../../elements/SectionTitleContainer';
import Page from '../../../../components/Page';
import loading from '../../../../components/loading/loading';
const UserPassword: FunctionComponent = () => {
const userId = getParameterByName('userId');
const UserPassword = () => {
const [ searchParams ] = useSearchParams();
const userId = searchParams.get('userId');
const [ userName, setUserName ] = useState('');
const loadUser = useCallback(() => {
if (!userId) {
console.error('[userpassword] missing user id');
return;
}
loading.show();
window.ApiClient.getUser(userId).then(function (user) {
if (!user.Name) {
@@ -36,7 +42,6 @@ const UserPassword: FunctionComponent = () => {
<div className='verticalSection'>
<SectionTitleContainer
title={userName}
url='https://jellyfin.org/docs/general/server/users/'
/>
</div>
<SectionTabs activeTab='userpassword'/>

View File

@@ -1,31 +1,25 @@
import type { SyncPlayUserAccessType, UserDto } from '@jellyfin/sdk/lib/generated-client';
import React, { FunctionComponent, useCallback, useEffect, useState, useRef } from 'react';
import type { BaseItemDto, NameIdPair, SyncPlayUserAccessType, UserDto } from '@jellyfin/sdk/lib/generated-client';
import escapeHTML from 'escape-html';
import React, { useCallback, useEffect, useState, useRef, useMemo } from 'react';
import { useSearchParams } from 'react-router-dom';
import Dashboard from '../../../../utils/dashboard';
import globalize from '../../../../scripts/globalize';
import LibraryMenu from '../../../../scripts/libraryMenu';
import globalize from '../../../../lib/globalize';
import ButtonElement from '../../../../elements/ButtonElement';
import CheckBoxElement from '../../../../elements/CheckBoxElement';
import InputElement from '../../../../elements/InputElement';
import LinkEditUserPreferences from '../../../../components/dashboard/users/LinkEditUserPreferences';
import LinkButton from '../../../../elements/emby-button/LinkButton';
import SectionTitleContainer from '../../../../elements/SectionTitleContainer';
import SectionTabs from '../../../../components/dashboard/users/SectionTabs';
import loading from '../../../../components/loading/loading';
import toast from '../../../../components/toast/toast';
import { getParameterByName } from '../../../../utils/url';
import SelectElement from '../../../../elements/SelectElement';
import Page from '../../../../components/Page';
type ResetProvider = AuthProvider & {
type ResetProvider = BaseItemDto & {
checkedAttribute: string
};
type AuthProvider = {
Name?: string;
Id?: string;
};
const getCheckedElementDataIds = (elements: NodeListOf<Element>) => (
Array.prototype.filter.call(elements, e => e.checked)
.map(e => e.getAttribute('data-id'))
@@ -40,11 +34,14 @@ function onSaveComplete() {
toast(globalize.translate('SettingsSaved'));
}
const UserEdit: FunctionComponent = () => {
const [ userName, setUserName ] = useState('');
const UserEdit = () => {
const [ searchParams ] = useSearchParams();
const userId = searchParams.get('userId');
const [ userDto, setUserDto ] = useState<UserDto>();
const [ deleteFoldersAccess, setDeleteFoldersAccess ] = useState<ResetProvider[]>([]);
const [ authProviders, setAuthProviders ] = useState<AuthProvider[]>([]);
const [ passwordResetProviders, setPasswordResetProviders ] = useState<ResetProvider[]>([]);
const [ authProviders, setAuthProviders ] = useState<NameIdPair[]>([]);
const [ passwordResetProviders, setPasswordResetProviders ] = useState<NameIdPair[]>([]);
const libraryMenu = useMemo(async () => ((await import('../../../../scripts/libraryMenu')).default), []);
const [ authenticationProviderId, setAuthenticationProviderId ] = useState('');
const [ passwordResetProviderId, setPasswordResetProviderId ] = useState('');
@@ -57,52 +54,31 @@ const UserEdit: FunctionComponent = () => {
};
const getUser = () => {
const userId = getParameterByName('userId');
if (!userId) throw new Error('missing user id');
return window.ApiClient.getUser(userId);
};
const loadAuthProviders = useCallback((user, providers) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
return;
}
const loadAuthProviders = useCallback((page: HTMLDivElement, user: UserDto, providers: NameIdPair[]) => {
const fldSelectLoginProvider = page.querySelector('.fldSelectLoginProvider') as HTMLDivElement;
fldSelectLoginProvider.classList.toggle('hide', providers.length <= 1);
setAuthProviders(providers);
const currentProviderId = user.Policy.AuthenticationProviderId;
const currentProviderId = user.Policy?.AuthenticationProviderId || '';
setAuthenticationProviderId(currentProviderId);
}, []);
const loadPasswordResetProviders = useCallback((user, providers) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
return;
}
const loadPasswordResetProviders = useCallback((page: HTMLDivElement, user: UserDto, providers: NameIdPair[]) => {
const fldSelectPasswordResetProvider = page.querySelector('.fldSelectPasswordResetProvider') as HTMLDivElement;
fldSelectPasswordResetProvider.classList.toggle('hide', providers.length <= 1);
setPasswordResetProviders(providers);
const currentProviderId = user.Policy.PasswordResetProviderId;
const currentProviderId = user.Policy?.PasswordResetProviderId || '';
setPasswordResetProviderId(currentProviderId);
}, []);
const loadDeleteFolders = useCallback((user, mediaFolders) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
return;
}
const loadDeleteFolders = useCallback((page: HTMLDivElement, user: UserDto, mediaFolders: BaseItemDto[]) => {
window.ApiClient.getJSON(window.ApiClient.getUrl('Channels', {
SupportsMediaDeletion: true
})).then(function (channelsResult) {
@@ -110,22 +86,20 @@ const UserEdit: FunctionComponent = () => {
let checkedAttribute;
const itemsArr: ResetProvider[] = [];
for (const folder of mediaFolders) {
isChecked = user.Policy.EnableContentDeletion || user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id) != -1;
for (const mediaFolder of mediaFolders) {
isChecked = user.Policy?.EnableContentDeletion || user.Policy?.EnableContentDeletionFromFolders?.indexOf(mediaFolder.Id || '') != -1;
checkedAttribute = isChecked ? ' checked="checked"' : '';
itemsArr.push({
Id: folder.Id,
Name: folder.Name,
...mediaFolder,
checkedAttribute: checkedAttribute
});
}
for (const folder of channelsResult.Items) {
isChecked = user.Policy.EnableContentDeletion || user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id) != -1;
for (const channel of channelsResult.Items) {
isChecked = user.Policy?.EnableContentDeletion || user.Policy?.EnableContentDeletionFromFolders?.indexOf(channel.Id || '') != -1;
checkedAttribute = isChecked ? ' checked="checked"' : '';
itemsArr.push({
Id: folder.Id,
Name: folder.Name,
...channel,
checkedAttribute: checkedAttribute
});
}
@@ -133,74 +107,71 @@ const UserEdit: FunctionComponent = () => {
setDeleteFoldersAccess(itemsArr);
const chkEnableDeleteAllFolders = page.querySelector('.chkEnableDeleteAllFolders') as HTMLInputElement;
chkEnableDeleteAllFolders.checked = user.Policy.EnableContentDeletion;
chkEnableDeleteAllFolders.checked = user.Policy?.EnableContentDeletion || false;
triggerChange(chkEnableDeleteAllFolders);
}).catch(err => {
console.error('[useredit] failed to fetch channels', err);
});
}, []);
const loadUser = useCallback((user) => {
const loadUser = useCallback((user: UserDto) => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[useredit] Unexpected null page reference');
return;
}
window.ApiClient.getJSON(window.ApiClient.getUrl('Auth/Providers')).then(function (providers) {
loadAuthProviders(user, providers);
loadAuthProviders(page, user, providers);
}).catch(err => {
console.error('[useredit] failed to fetch auth providers', err);
});
window.ApiClient.getJSON(window.ApiClient.getUrl('Auth/PasswordResetProviders')).then(function (providers) {
loadPasswordResetProviders(user, providers);
loadPasswordResetProviders(page, user, providers);
}).catch(err => {
console.error('[useredit] failed to fetch password reset providers', err);
});
window.ApiClient.getJSON(window.ApiClient.getUrl('Library/MediaFolders', {
IsHidden: false
})).then(function (folders) {
loadDeleteFolders(user, folders.Items);
loadDeleteFolders(page, user, folders.Items);
}).catch(err => {
console.error('[useredit] failed to fetch media folders', err);
});
const disabledUserBanner = page.querySelector('.disabledUserBanner') as HTMLDivElement;
disabledUserBanner.classList.toggle('hide', !user.Policy.IsDisabled);
disabledUserBanner.classList.toggle('hide', !user.Policy?.IsDisabled);
const txtUserName = page.querySelector('#txtUserName') as HTMLInputElement;
txtUserName.disabled = false;
txtUserName.removeAttribute('disabled');
const lnkEditUserPreferences = page.querySelector('.lnkEditUserPreferences') as HTMLDivElement;
lnkEditUserPreferences.setAttribute('href', 'mypreferencesmenu.html?userId=' + user.Id);
LibraryMenu.setTitle(user.Name);
setUserName(user.Name);
(page.querySelector('#txtUserName') as HTMLInputElement).value = user.Name;
(page.querySelector('.chkIsAdmin') as HTMLInputElement).checked = user.Policy.IsAdministrator;
(page.querySelector('.chkDisabled') as HTMLInputElement).checked = user.Policy.IsDisabled;
(page.querySelector('.chkIsHidden') as HTMLInputElement).checked = user.Policy.IsHidden;
(page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked = user.Policy.EnableCollectionManagement;
(page.querySelector('.chkEnableSubtitleManagement') as HTMLInputElement).checked = user.Policy.EnableSubtitleManagement;
(page.querySelector('.chkRemoteControlSharedDevices') as HTMLInputElement).checked = user.Policy.EnableSharedDeviceControl;
(page.querySelector('.chkEnableRemoteControlOtherUsers') as HTMLInputElement).checked = user.Policy.EnableRemoteControlOfOtherUsers;
(page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked = user.Policy.EnableContentDownloading;
(page.querySelector('.chkManageLiveTv') as HTMLInputElement).checked = user.Policy.EnableLiveTvManagement;
(page.querySelector('.chkEnableLiveTvAccess') as HTMLInputElement).checked = user.Policy.EnableLiveTvAccess;
(page.querySelector('.chkEnableMediaPlayback') as HTMLInputElement).checked = user.Policy.EnableMediaPlayback;
(page.querySelector('.chkEnableAudioPlaybackTranscoding') as HTMLInputElement).checked = user.Policy.EnableAudioPlaybackTranscoding;
(page.querySelector('.chkEnableVideoPlaybackTranscoding') as HTMLInputElement).checked = user.Policy.EnableVideoPlaybackTranscoding;
(page.querySelector('.chkEnableVideoPlaybackRemuxing') as HTMLInputElement).checked = user.Policy.EnablePlaybackRemuxing;
(page.querySelector('.chkForceRemoteSourceTranscoding') as HTMLInputElement).checked = user.Policy.ForceRemoteSourceTranscoding;
(page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked = user.Policy.EnableRemoteAccess == null || user.Policy.EnableRemoteAccess;
(page.querySelector('#txtRemoteClientBitrateLimit') as HTMLInputElement).value = user.Policy.RemoteClientBitrateLimit > 0 ?
(user.Policy.RemoteClientBitrateLimit / 1e6).toLocaleString(undefined, { maximumFractionDigits: 6 }) : '';
(page.querySelector('#txtLoginAttemptsBeforeLockout') as HTMLInputElement).value = user.Policy.LoginAttemptsBeforeLockout || '0';
(page.querySelector('#txtMaxActiveSessions') as HTMLInputElement).value = user.Policy.MaxActiveSessions || '0';
if (window.ApiClient.isMinServerVersion('10.6.0')) {
(page.querySelector('#selectSyncPlayAccess') as HTMLSelectElement).value = user.Policy.SyncPlayAccess;
}
void libraryMenu.then(menu => menu.setTitle(user.Name));
setUserDto(user);
(page.querySelector('#txtUserName') as HTMLInputElement).value = user.Name || '';
(page.querySelector('.chkIsAdmin') as HTMLInputElement).checked = !!user.Policy?.IsAdministrator;
(page.querySelector('.chkDisabled') as HTMLInputElement).checked = !!user.Policy?.IsDisabled;
(page.querySelector('.chkIsHidden') as HTMLInputElement).checked = !!user.Policy?.IsHidden;
(page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked = !!user.Policy?.EnableCollectionManagement;
(page.querySelector('.chkEnableSubtitleManagement') as HTMLInputElement).checked = !!user.Policy?.EnableSubtitleManagement;
(page.querySelector('.chkRemoteControlSharedDevices') as HTMLInputElement).checked = !!user.Policy?.EnableSharedDeviceControl;
(page.querySelector('.chkEnableRemoteControlOtherUsers') as HTMLInputElement).checked = !!user.Policy?.EnableRemoteControlOfOtherUsers;
(page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked = !!user.Policy?.EnableContentDownloading;
(page.querySelector('.chkManageLiveTv') as HTMLInputElement).checked = !!user.Policy?.EnableLiveTvManagement;
(page.querySelector('.chkEnableLiveTvAccess') as HTMLInputElement).checked = !!user.Policy?.EnableLiveTvAccess;
(page.querySelector('.chkEnableMediaPlayback') as HTMLInputElement).checked = !!user.Policy?.EnableMediaPlayback;
(page.querySelector('.chkEnableAudioPlaybackTranscoding') as HTMLInputElement).checked = !!user.Policy?.EnableAudioPlaybackTranscoding;
(page.querySelector('.chkEnableVideoPlaybackTranscoding') as HTMLInputElement).checked = !!user.Policy?.EnableVideoPlaybackTranscoding;
(page.querySelector('.chkEnableVideoPlaybackRemuxing') as HTMLInputElement).checked = !!user.Policy?.EnablePlaybackRemuxing;
(page.querySelector('.chkForceRemoteSourceTranscoding') as HTMLInputElement).checked = !!user.Policy?.ForceRemoteSourceTranscoding;
(page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked = user.Policy?.EnableRemoteAccess == null || user.Policy?.EnableRemoteAccess;
(page.querySelector('#txtRemoteClientBitrateLimit') as HTMLInputElement).value = user.Policy?.RemoteClientBitrateLimit && user.Policy?.RemoteClientBitrateLimit > 0 ?
(user.Policy?.RemoteClientBitrateLimit / 1e6).toLocaleString(undefined, { maximumFractionDigits: 6 }) : '';
(page.querySelector('#txtLoginAttemptsBeforeLockout') as HTMLInputElement).value = String(user.Policy?.LoginAttemptsBeforeLockout) || '-1';
(page.querySelector('#txtMaxActiveSessions') as HTMLInputElement).value = String(user.Policy?.MaxActiveSessions) || '0';
(page.querySelector('#selectSyncPlayAccess') as HTMLSelectElement).value = String(user.Policy?.SyncPlayAccess);
loading.hide();
}, [loadAuthProviders, loadPasswordResetProviders, loadDeleteFolders ]);
@@ -217,7 +188,7 @@ const UserEdit: FunctionComponent = () => {
const page = element.current;
if (!page) {
console.error('Unexpected null reference');
console.error('[useredit] Unexpected null page reference');
return;
}
@@ -318,8 +289,7 @@ const UserEdit: FunctionComponent = () => {
<div ref={element} className='content-primary'>
<div className='verticalSection'>
<SectionTitleContainer
title={userName}
url='https://jellyfin.org/docs/general/server/users/'
title={userDto?.Name || ''}
/>
</div>
@@ -328,10 +298,9 @@ const UserEdit: FunctionComponent = () => {
className='lnkEditUserPreferencesContainer'
style={{ paddingBottom: '1em' }}
>
<LinkEditUserPreferences
className= 'lnkEditUserPreferences button-link'
title= 'ButtonEditOtherUserPreferences'
/>
<LinkButton className='lnkEditUserPreferences button-link' href={userDto?.Id ? `mypreferencesmenu.html?userId=${userDto.Id}` : undefined}>
{globalize.translate('ButtonEditOtherUserPreferences')}
</LinkButton>
</div>
<form className='editUserProfileForm'>
<div className='disabledUserBanner hide'>

View File

@@ -1,4 +1,4 @@
import React, { useCallback, useState } from 'react';
import React, { StrictMode, useCallback, useState } from 'react';
import AppBar from '@mui/material/AppBar';
import Box from '@mui/material/Box';
import { type Theme } from '@mui/material/styles';
@@ -15,7 +15,7 @@ import AppDrawer, { isDrawerPath } from './components/drawers/AppDrawer';
import './AppOverrides.scss';
const AppLayout = () => {
export const Component = () => {
const [ isDrawerActive, setIsDrawerActive ] = useState(false);
const { user } = useApi();
const location = useLocation();
@@ -29,38 +29,40 @@ const AppLayout = () => {
}, [ isDrawerActive, setIsDrawerActive ]);
return (
<Box sx={{ display: 'flex' }}>
<ElevationScroll elevate={false}>
<AppBar
position='fixed'
sx={{
width: {
xs: '100%',
md: isDrawerAvailable ? `calc(100% - ${DRAWER_WIDTH}px)` : '100%'
},
ml: {
xs: 0,
md: isDrawerAvailable ? DRAWER_WIDTH : 0
}
}}
>
<AppToolbar
isDrawerAvailable={!isMediumScreen && isDrawerAvailable}
isDrawerOpen={isDrawerOpen}
onDrawerButtonClick={onToggleDrawer}
/>
</AppBar>
</ElevationScroll>
<Box sx={{ position: 'relative', display: 'flex', height: '100%' }}>
<StrictMode>
<ElevationScroll elevate={false}>
<AppBar
position='fixed'
sx={{
width: {
xs: '100%',
md: isDrawerAvailable ? `calc(100% - ${DRAWER_WIDTH}px)` : '100%'
},
ml: {
xs: 0,
md: isDrawerAvailable ? DRAWER_WIDTH : 0
}
}}
>
<AppToolbar
isDrawerAvailable={!isMediumScreen && isDrawerAvailable}
isDrawerOpen={isDrawerOpen}
onDrawerButtonClick={onToggleDrawer}
/>
</AppBar>
</ElevationScroll>
{
isDrawerAvailable && (
<AppDrawer
open={isDrawerOpen}
onClose={onToggleDrawer}
onOpen={onToggleDrawer}
/>
)
}
{
isDrawerAvailable && (
<AppDrawer
open={isDrawerOpen}
onClose={onToggleDrawer}
onOpen={onToggleDrawer}
/>
)
}
</StrictMode>
<Box
component='main'
@@ -76,5 +78,3 @@ const AppLayout = () => {
</Box>
);
};
export default AppLayout;

View File

@@ -5,9 +5,17 @@ $mui-bp-md: 900px;
$mui-bp-lg: 1200px;
$mui-bp-xl: 1536px;
$drawer-width: 240px;
#reactRoot {
height: 100%;
}
// Fix main pages layout to work with drawer
.mainAnimatedPage {
position: relative;
@media all and (min-width: $mui-bp-md) {
left: $drawer-width;
}
}
// Hide some items from the user "settings" page that are in the drawer

View File

@@ -8,7 +8,7 @@ import { useTheme } from '@mui/material/styles';
import Tooltip from '@mui/material/Tooltip';
import { playbackManager } from 'components/playback/playbackmanager';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import Events from 'utils/events';
import RemotePlayMenu, { ID } from './menus/RemotePlayMenu';
@@ -33,7 +33,7 @@ const RemotePlayButton = () => {
const [ remotePlayMenuAnchorEl, setRemotePlayMenuAnchorEl ] = useState<null | HTMLElement>(null);
const isRemotePlayMenuOpen = Boolean(remotePlayMenuAnchorEl);
const onRemotePlayButtonClick = useCallback((event) => {
const onRemotePlayButtonClick = useCallback((event: React.MouseEvent<HTMLElement>) => {
setRemotePlayMenuAnchorEl(event.currentTarget);
}, [ setRemotePlayMenuAnchorEl ]);
@@ -44,7 +44,7 @@ const RemotePlayButton = () => {
const [ remotePlayActiveMenuAnchorEl, setRemotePlayActiveMenuAnchorEl ] = useState<null | HTMLElement>(null);
const isRemotePlayActiveMenuOpen = Boolean(remotePlayActiveMenuAnchorEl);
const onRemotePlayActiveButtonClick = useCallback((event) => {
const onRemotePlayActiveButtonClick = useCallback((event: React.MouseEvent<HTMLElement>) => {
setRemotePlayActiveMenuAnchorEl(event.currentTarget);
}, [ setRemotePlayActiveMenuAnchorEl ]);

View File

@@ -0,0 +1,62 @@
import React, { type FC } from 'react';
import {
Link,
URLSearchParamsInit,
createSearchParams,
useLocation,
useSearchParams
} from 'react-router-dom';
import SearchIcon from '@mui/icons-material/Search';
import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip';
import globalize from 'lib/globalize';
const getUrlParams = (searchParams: URLSearchParams) => {
const parentId =
searchParams.get('parentId') || searchParams.get('topParentId');
const collectionType = searchParams.get('collectionType');
const params: URLSearchParamsInit = {};
if (parentId) {
params.parentId = parentId;
}
if (collectionType) {
params.collectionType = collectionType;
}
return params;
};
interface SearchButtonProps {
isTabsAvailable: boolean;
}
const SearchButton: FC<SearchButtonProps> = ({ isTabsAvailable }) => {
const location = useLocation();
const [searchParams] = useSearchParams();
const isSearchPath = location.pathname === '/search.html';
const createSearchLink = isTabsAvailable ?
{
pathname: '/search.html',
search: `?${createSearchParams(getUrlParams(searchParams))}`
} :
'/search.html';
return (
<Tooltip title={globalize.translate('Search')}>
<IconButton
size='large'
aria-label={globalize.translate('Search')}
color='inherit'
component={Link}
disabled={isSearchPath}
to={createSearchLink}
>
<SearchIcon />
</IconButton>
</Tooltip>
);
};
export default SearchButton;

View File

@@ -6,7 +6,7 @@ import React, { useCallback, useState } from 'react';
import { pluginManager } from 'components/pluginManager';
import { useApi } from 'hooks/useApi';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import { PluginType } from 'types/plugin';
import AppSyncPlayMenu, { ID } from './menus/SyncPlayMenu';
@@ -17,7 +17,7 @@ const SyncPlayButton = () => {
const [ syncPlayMenuAnchorEl, setSyncPlayMenuAnchorEl ] = useState<null | HTMLElement>(null);
const isSyncPlayMenuOpen = Boolean(syncPlayMenuAnchorEl);
const onSyncPlayButtonClick = useCallback((event) => {
const onSyncPlayButtonClick = useCallback((event: React.MouseEvent<HTMLElement>) => {
setSyncPlayMenuAnchorEl(event.currentTarget);
}, [ setSyncPlayMenuAnchorEl ]);

View File

@@ -1,15 +1,10 @@
import SearchIcon from '@mui/icons-material/Search';
import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip';
import React, { FC } from 'react';
import { Link, useLocation } from 'react-router-dom';
import React, { type FC } from 'react';
import { useLocation } from 'react-router-dom';
import AppToolbar from 'components/toolbar/AppToolbar';
import globalize from 'scripts/globalize';
import AppTabs from '../tabs/AppTabs';
import RemotePlayButton from './RemotePlayButton';
import SyncPlayButton from './SyncPlayButton';
import SearchButton from './SearchButton';
import { isTabPath } from '../tabs/tabRoutes';
interface AppToolbarProps {
@@ -18,37 +13,40 @@ interface AppToolbarProps {
onDrawerButtonClick: (event: React.MouseEvent<HTMLElement>) => void
}
const PUBLIC_PATHS = [
'/addserver.html',
'/selectserver.html',
'/login.html',
'/forgotpassword.html',
'/forgotpasswordpin.html'
];
const ExperimentalAppToolbar: FC<AppToolbarProps> = ({
isDrawerAvailable,
isDrawerOpen,
onDrawerButtonClick
}) => {
const location = useLocation();
// The video osd does not show the standard toolbar
if (location.pathname === '/video') return null;
const isTabsAvailable = isTabPath(location.pathname);
const isPublicPath = PUBLIC_PATHS.includes(location.pathname);
return (
<AppToolbar
buttons={
buttons={!isPublicPath && (
<>
<SyncPlayButton />
<RemotePlayButton />
<Tooltip title={globalize.translate('Search')}>
<IconButton
size='large'
aria-label={globalize.translate('Search')}
color='inherit'
component={Link}
to='/search.html'
>
<SearchIcon />
</IconButton>
</Tooltip>
<SearchButton isTabsAvailable={isTabsAvailable} />
</>
}
)}
isDrawerAvailable={isDrawerAvailable}
isDrawerOpen={isDrawerOpen}
onDrawerButtonClick={onDrawerButtonClick}
isUserMenuAvailable={!isPublicPath}
>
{isTabsAvailable && (<AppTabs isDrawerOpen={isDrawerOpen} />)}
</AppToolbar>

View File

@@ -12,8 +12,8 @@ import { playbackManager } from 'components/playback/playbackmanager';
import React, { FC, useCallback, useState } from 'react';
import { Link } from 'react-router-dom';
import { enable, isEnabled, supported } from 'scripts/autocast';
import globalize from 'scripts/globalize';
import { enable, isEnabled } from 'scripts/autocast';
import globalize from 'lib/globalize';
interface RemotePlayActiveMenuProps extends MenuProps {
onMenuClose: () => void
@@ -43,11 +43,10 @@ const RemotePlayActiveMenu: FC<RemotePlayActiveMenuProps> = ({
}, [ isDisplayMirrorEnabled, setIsDisplayMirrorEnabled ]);
const [ isAutoCastEnabled, setIsAutoCastEnabled ] = useState(isEnabled());
const isAutoCastSupported = supported();
const toggleAutoCast = useCallback(() => {
enable(!isAutoCastEnabled);
setIsAutoCastEnabled(!isAutoCastEnabled);
}, [ isAutoCastEnabled, setIsAutoCastEnabled ]);
}, [ isAutoCastEnabled ]);
const remotePlayerName = playerInfo?.deviceName || playerInfo?.name;
@@ -117,20 +116,18 @@ const RemotePlayActiveMenu: FC<RemotePlayActiveMenuProps> = ({
</MenuItem>
)}
{isAutoCastSupported && (
<MenuItem onClick={toggleAutoCast}>
{isAutoCastEnabled && (
<ListItemIcon>
<Check />
</ListItemIcon>
)}
<ListItemText inset={!isAutoCastEnabled}>
{globalize.translate('EnableAutoCast')}
</ListItemText>
</MenuItem>
)}
<MenuItem onClick={toggleAutoCast}>
{isAutoCastEnabled && (
<ListItemIcon>
<Check />
</ListItemIcon>
)}
<ListItemText inset={!isAutoCastEnabled}>
{globalize.translate('EnableAutoCast')}
</ListItemText>
</MenuItem>
{(isDisplayMirrorSupported || isAutoCastSupported) && <Divider />}
<Divider />
<MenuItem
component={Link}

View File

@@ -6,7 +6,7 @@ import Menu, { type MenuProps } from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
import React, { FC, useEffect, useState } from 'react';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import { playbackManager } from 'components/playback/playbackmanager';
import { pluginManager } from 'components/pluginManager';
import type { PlayTarget } from 'types/playTarget';
@@ -65,17 +65,20 @@ const RemotePlayMenu: FC<RemotePlayMenuProps> = ({
open={open}
onClose={onMenuClose}
>
{!isChromecastPluginLoaded && ([
<MenuItem key='cast-unsupported-item' disabled>
{!isChromecastPluginLoaded && (
<MenuItem disabled>
<ListItemIcon>
<Warning />
</ListItemIcon>
<ListItemText>
{globalize.translate('GoogleCastUnsupported')}
</ListItemText>
</MenuItem>,
<Divider key='cast-unsupported-divider' />
])}
</MenuItem>
)}
{!isChromecastPluginLoaded && playbackTargets.length > 0 && (
<Divider />
)}
{playbackTargets.map(target => (
<MenuItem

View File

@@ -20,9 +20,9 @@ import React, { FC, useCallback, useEffect, useState } from 'react';
import { pluginManager } from 'components/pluginManager';
import { useApi } from 'hooks/useApi';
import { useSyncPlayGroups } from 'hooks/useSyncPlayGroups';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import { PluginType } from 'types/plugin';
import Events from 'utils/events';
import Events, { Event } from 'utils/events';
export const ID = 'app-sync-play-menu';
@@ -136,7 +136,7 @@ const SyncPlayMenu: FC<SyncPlayMenuProps> = ({
}
}, [ __legacyApiClient__, onMenuClose, syncPlay ]);
const updateSyncPlayGroup = useCallback((_e, enabled) => {
const updateSyncPlayGroup = useCallback((_e: Event, enabled: boolean) => {
if (syncPlay && enabled) {
setCurrentGroup(syncPlay.Manager.getGroupInfo() ?? undefined);
} else {

View File

@@ -1,4 +1,5 @@
import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client';
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
import Movie from '@mui/icons-material/Movie';
import MusicNote from '@mui/icons-material/MusicNote';
import Photo from '@mui/icons-material/Photo';
@@ -7,11 +8,11 @@ import Tv from '@mui/icons-material/Tv';
import Theaters from '@mui/icons-material/Theaters';
import MusicVideo from '@mui/icons-material/MusicVideo';
import Book from '@mui/icons-material/Book';
import Collections from '@mui/icons-material/Collections';
import Queue from '@mui/icons-material/Queue';
import Quiz from '@mui/icons-material/Quiz';
import VideoLibrary from '@mui/icons-material/VideoLibrary';
import Folder from '@mui/icons-material/Folder';
import React, { FC } from 'react';
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
interface LibraryIconProps {
item: BaseItemDto
@@ -39,9 +40,11 @@ const LibraryIcon: FC<LibraryIconProps> = ({
case CollectionType.Books:
return <Book />;
case CollectionType.Boxsets:
return <Collections />;
return <VideoLibrary />;
case CollectionType.Playlists:
return <Queue />;
case undefined:
return <Quiz />;
default:
return <Folder />;
}

View File

@@ -18,7 +18,7 @@ import { appRouter } from 'components/router/appRouter';
import { useApi } from 'hooks/useApi';
import { useUserViews } from 'hooks/useUserViews';
import { useWebConfig } from 'hooks/useWebConfig';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import LibraryIcon from '../LibraryIcon';
import DrawerHeaderLink from './DrawerHeaderLink';

View File

@@ -2,7 +2,7 @@ import type { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/bas
import type { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
import React, { FC } from 'react';
import { useGetGenres } from 'hooks/useFetchItems';
import globalize from 'scripts/globalize';
import NoItemsMessage from 'components/common/NoItemsMessage';
import Loading from 'components/loading/LoadingComponent';
import GenresSectionContainer from './GenresSectionContainer';
import type { ParentId } from 'types/library';
@@ -25,27 +25,18 @@ const GenresItemsContainer: FC<GenresItemsContainerProps> = ({
}
if (!genresResult?.Items?.length) {
return (
<div className='noItemsMessage centerMessage'>
<h1>{globalize.translate('MessageNothingHere')}</h1>
<p>{globalize.translate('MessageNoGenresAvailable')}</p>
</div>
);
return <NoItemsMessage message='MessageNoGenresAvailable' />;
}
return (
<>
{genresResult.Items.map((genre) => (
<GenresSectionContainer
key={genre.Id}
collectionType={collectionType}
parentId={parentId}
itemType={itemType}
genre={genre}
/>
))}
</>
);
return genresResult.Items.map((genre) => (
<GenresSectionContainer
key={genre.Id}
collectionType={collectionType}
parentId={parentId}
itemType={itemType}
genre={genre}
/>
));
};
export default GenresItemsContainer;

View File

@@ -1,23 +1,23 @@
import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client';
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
import { ItemFields } from '@jellyfin/sdk/lib/generated-client/models/item-fields';
import { ImageType } from '@jellyfin/sdk/lib/generated-client/models/image-type';
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
import { ItemSortBy } from '@jellyfin/sdk/lib/models/api/item-sort-by';
import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by';
import { SortOrder } from '@jellyfin/sdk/lib/generated-client/models/sort-order';
import React, { type FC } from 'react';
import { useGetItems } from 'hooks/useFetchItems';
import Loading from 'components/loading/LoadingComponent';
import { appRouter } from 'components/router/appRouter';
import SectionContainer from './SectionContainer';
import SectionContainer from 'components/common/SectionContainer';
import { CardShape } from 'utils/card';
import type { ParentId } from 'types/library';
import type { ItemDto } from 'types/base/models/item-dto';
interface GenresSectionContainerProps {
parentId: ParentId;
collectionType: CollectionType | undefined;
itemType: BaseItemKind[];
genre: BaseItemDto;
genre: ItemDto;
}
const GenresSectionContainer: FC<GenresSectionContainerProps> = ({
@@ -47,7 +47,7 @@ const GenresSectionContainer: FC<GenresSectionContainerProps> = ({
const { isLoading, data: itemsResult } = useGetItems(getParametersOptions());
const getRouteUrl = (item: BaseItemDto) => {
const getRouteUrl = (item: ItemDto) => {
return appRouter.getRouteUrl(item, {
context: collectionType,
parentId: parentId
@@ -59,9 +59,12 @@ const GenresSectionContainer: FC<GenresSectionContainerProps> = ({
}
return <SectionContainer
sectionTitle={genre.Name || ''}
items={itemsResult?.Items || []}
url={getRouteUrl(genre)}
key={genre.Name}
sectionHeaderProps={{
title: genre.Name || '',
url: getRouteUrl(genre)
}}
items={itemsResult?.Items}
cardOptions={{
scalable: true,
overlayPlayButton: true,

View File

@@ -2,7 +2,7 @@ import React, { FC, useCallback } from 'react';
import { ButtonGroup, IconButton } from '@mui/material';
import ViewModuleIcon from '@mui/icons-material/ViewModule';
import ViewListIcon from '@mui/icons-material/ViewList';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import { LibraryViewSettings, ViewMode } from 'types/library';
import { LibraryTab } from 'types/libraryTab';
import ViewSettingsButton from './ViewSettingsButton';

View File

@@ -1,4 +1,5 @@
import React, { FC, useCallback, useEffect, useRef } from 'react';
import Box from '@mui/material/Box';
import Guide from 'components/guide/guide';
import 'material-design-icons-iconfont';
import 'elements/emby-programcell/emby-programcell';
@@ -45,7 +46,20 @@ const GuideView: FC = () => {
};
}, [initGuide]);
return <div ref={tvGuideContainerRef} />;
return <Box
ref={tvGuideContainerRef}
className='absolutePageTabContent'
sx={{
display: 'flex !important',
width: 'auto',
paddingTop: '0',
paddingBottom: '0 !important',
top: {
xs: '6.9em !important',
lg: '4em !important'
}
}}
/>;
};
export default GuideView;

View File

@@ -1,7 +1,7 @@
import type { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
import { ImageType } from '@jellyfin/sdk/lib/generated-client';
import { ItemSortBy } from '@jellyfin/sdk/lib/models/api/item-sort-by';
import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by';
import React, { type FC, useCallback } from 'react';
import Box from '@mui/material/Box';
import classNames from 'classnames';
@@ -72,7 +72,7 @@ const ItemsView: FC<ItemsViewProps> = ({
const {
isLoading,
data: itemsResult,
isPreviousData,
isPlaceholderData,
refetch
} = useGetItemsViewByType(
viewType,
@@ -92,7 +92,7 @@ const ItemsView: FC<ItemsViewProps> = ({
listOptions.showParentTitle = true;
listOptions.action = 'playallfromhere';
listOptions.smallIcon = true;
listOptions.artist = true;
listOptions.showArtist = true;
listOptions.addToListButton = true;
} else if (viewType === LibraryTab.Albums) {
listOptions.sortBy = libraryViewSettings.SortBy;
@@ -181,7 +181,7 @@ const ItemsView: FC<ItemsViewProps> = ({
const getItems = useCallback(() => {
if (!itemsResult?.Items?.length) {
return <NoItemsMessage noItemsMessage={noItemsMessage} />;
return <NoItemsMessage message={noItemsMessage} />;
}
if (libraryViewSettings.ViewMode === ViewMode.ListView) {
@@ -228,7 +228,7 @@ const ItemsView: FC<ItemsViewProps> = ({
<Pagination
totalRecordCount={totalRecordCount}
libraryViewSettings={libraryViewSettings}
isPreviousData={isPreviousData}
isPlaceholderData={isPlaceholderData}
setLibraryViewSettings={setLibraryViewSettings}
/>
)}
@@ -312,7 +312,7 @@ const ItemsView: FC<ItemsViewProps> = ({
<Pagination
totalRecordCount={totalRecordCount}
libraryViewSettings={libraryViewSettings}
isPreviousData={isPreviousData}
isPlaceholderData={isPlaceholderData}
setLibraryViewSettings={setLibraryViewSettings}
/>
</Box>

View File

@@ -1,7 +1,7 @@
import React, { FC, useCallback } from 'react';
import { IconButton } from '@mui/material';
import AddIcon from '@mui/icons-material/Add';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
const NewCollectionButton: FC = () => {
const showCollectionEditor = useCallback(() => {

View File

@@ -5,7 +5,7 @@ import Box from '@mui/material/Box';
import ButtonGroup from '@mui/material/ButtonGroup';
import IconButton from '@mui/material/IconButton';
import globalize from 'scripts/globalize';
import globalize from 'lib/globalize';
import * as userSettings from 'scripts/settings/userSettings';
import { LibraryViewSettings } from 'types/library';
@@ -13,14 +13,14 @@ interface PaginationProps {
libraryViewSettings: LibraryViewSettings;
setLibraryViewSettings: React.Dispatch<React.SetStateAction<LibraryViewSettings>>;
totalRecordCount: number;
isPreviousData: boolean
isPlaceholderData: boolean
}
const Pagination: FC<PaginationProps> = ({
libraryViewSettings,
setLibraryViewSettings,
totalRecordCount,
isPreviousData
isPlaceholderData
}) => {
const limit = userSettings.libraryPageSize(undefined);
const startIndex = libraryViewSettings.StartIndex ?? 0;
@@ -65,7 +65,7 @@ const Pagination: FC<PaginationProps> = ({
<IconButton
title={globalize.translate('Previous')}
className='paper-icon-button-light btnPreviousPage autoSize'
disabled={startIndex == 0 || isPreviousData}
disabled={startIndex == 0 || isPlaceholderData}
onClick={onPreviousPageClick}
>
<ArrowBackIcon />
@@ -74,7 +74,7 @@ const Pagination: FC<PaginationProps> = ({
<IconButton
title={globalize.translate('Next')}
className='paper-icon-button-light btnNextPage autoSize'
disabled={startIndex + limit >= totalRecordCount || isPreviousData }
disabled={startIndex + limit >= totalRecordCount || isPlaceholderData }
onClick={onNextPageClick}
>
<ArrowForwardIcon />

Some files were not shown because too many files have changed in this diff Show More