From b97d6d34414284b7ff35a8bd7179adf38b1f8d86 Mon Sep 17 00:00:00 2001 From: robert-hamilton36 Date: Fri, 17 Mar 2023 10:52:38 +1300 Subject: [PATCH 01/23] add volume adjust onwheel scroll event --- src/controllers/playback/video/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index d7bbab581d..d1e85fc36d 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -1287,6 +1287,15 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components resetIdle(); } + function onWheel(e) { + if (e.deltaY < 0) { + playbackManager.volumeUp(currentPlayer); + } + if (e.deltaY > 0) { + playbackManager.volumeDown(currentPlayer); + } + } + function onWindowMouseDown(e) { clickedElement = e.target; mouseIsDown = true; @@ -1445,6 +1454,7 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components capture: true, passive: true }); + document.addEventListener('wheel', onWheel); /* eslint-disable-next-line compat/compat */ dom.addEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, { capture: true, @@ -1486,6 +1496,7 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components capture: true, passive: true }); + document.removeEventListener('wheel', onWheel); /* eslint-disable-next-line compat/compat */ dom.removeEventListener(window, window.PointerEvent ? 'pointerdown' : 'mousedown', onWindowMouseDown, { capture: true, From 1189d28974a8095bcf2f764a667fa76842b74e72 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Fri, 18 Nov 2022 18:58:11 -0500 Subject: [PATCH 02/23] Render navigation elements with react --- src/App.tsx | 26 ++++++++++++++++++++++++-- src/components/viewContainer.js | 19 ++++++++++++++++--- src/index.html | 10 +--------- src/index.jsx | 8 +++++--- 4 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 13ae93dec0..1a544723a1 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ import { History } from '@remix-run/router'; -import React from 'react'; +import React, { useEffect } from 'react'; import { HistoryRouter } from './components/HistoryRouter'; import { ApiProvider } from './hooks/useApi'; @@ -7,10 +7,32 @@ import { AppRoutes, ExperimentalAppRoutes } from './routes'; const App = ({ history }: { history: History }) => { const layoutMode = localStorage.getItem('layout'); + + useEffect(() => { + Promise.all([ + // Initialize the UI components after first render + import('./scripts/libraryMenu'), + import('./scripts/autoBackdrops') + ]); + }, []); + return ( - {layoutMode === 'experimental' ? : } +
+
+ +
+
+
+
+ +
+
+ {layoutMode === 'experimental' ? : } +
+ +
); diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index 82e7ef40c7..c65b5f8a03 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -2,6 +2,14 @@ import { importModule } from '@uupaa/dynamic-import-polyfill'; import './viewManager/viewContainer.scss'; import Dashboard from '../utils/dashboard'; +const getMainAnimatedPages = () => { + if (!mainAnimatedPages) { + mainAnimatedPages = document.querySelector('.mainAnimatedPages'); + } + + return mainAnimatedPages; +}; + /* eslint-disable indent */ function setControllerClass(view, options) { @@ -55,6 +63,11 @@ import Dashboard from '../utils/dashboard'; view.classList.add('mainAnimatedPage'); + if (!getMainAnimatedPages()) { + console.warn('[viewContainer] main animated pages element is not present'); + return; + } + if (currentPage) { if (newViewInfo.hasScript && window.$) { mainAnimatedPages.removeChild(currentPage); @@ -225,18 +238,18 @@ import Dashboard from '../utils/dashboard'; export function reset() { allPages = []; currentUrls = []; - mainAnimatedPages.innerHTML = ''; + if (mainAnimatedPages) mainAnimatedPages.innerHTML = ''; selectedPageIndex = -1; } let onBeforeChange; - const mainAnimatedPages = document.querySelector('.mainAnimatedPages'); + let mainAnimatedPages; let allPages = []; let currentUrls = []; const pageContainerCount = 3; let selectedPageIndex = -1; reset(); - mainAnimatedPages.classList.remove('hide'); + getMainAnimatedPages()?.classList.remove('hide'); /* eslint-enable indent */ diff --git a/src/index.html b/src/index.html index 6d58a3dcd1..e406f11343 100644 --- a/src/index.html +++ b/src/index.html @@ -159,16 +159,8 @@ -
-
-
-
-
-
-
+
-
-
diff --git a/src/index.jsx b/src/index.jsx index 08b3bfada3..87e4fde803 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -23,9 +23,7 @@ import packageManager from './components/packageManager'; import { appRouter, history } from './components/appRouter'; import './elements/emby-button/emby-button'; import './scripts/autoThemes'; -import './scripts/libraryMenu'; import './components/themeMediaPlayer'; -import './scripts/autoBackdrops'; import { pageClassOn, serverAddress } from './utils/dashboard'; import './scripts/screensavermanager'; import './scripts/serverNotifications'; @@ -145,13 +143,17 @@ async function onAppReady() { ServerConnections.currentApiClient()?.ensureWebSocket(); }); + const root = document.getElementById('reactRoot'); + // Remove the splash logo + root.innerHTML = ''; + await appRouter.start(); ReactDOM.render( , - document.getElementById('reactRoot') + root ); if (!browser.tv && !browser.xboxOne && !browser.ps4) { From 6310564bf5572fa26bf380145b65b780e6c84e92 Mon Sep 17 00:00:00 2001 From: felix920506 Date: Thu, 13 Apr 2023 23:23:10 +0000 Subject: [PATCH 03/23] Translated using Weblate (Chinese (Traditional)) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/ --- src/strings/zh-tw.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index 14fbbff294..1eb9889d00 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -148,7 +148,7 @@ "OptionParentalRating": "家長評級", "OptionPlayCount": "播放次數", "OptionPremiereDate": "首映日期", - "OptionResumable": "可恢復", + "OptionResumable": "可繼續", "OptionSpecialEpisode": "特集", "OptionTrackName": "曲目名稱", "OptionTvdbRating": "TVDB 評分", @@ -1224,7 +1224,7 @@ "PinCodeResetConfirmation": "你確定要重設簡易 PIN code 嗎?", "PasswordResetProviderHelp": "選擇重設密碼提供者以便使用者重設密碼。", "PlaceFavoriteChannelsAtBeginning": "將喜愛的頻道置頂", - "PlaybackData": "播放資料", + "PlaybackData": "播放內容", "OptionRandom": "隨機", "XmlDocumentAttributeListHelp": "這些屬性會在每一個 XML 回應的根元素上套用。", "SkipEpisodesAlreadyInMyLibraryHelp": "劇集將使用季和劇集編號進行比較。", @@ -1532,8 +1532,8 @@ "MessageSent": "訊息送出。", "LabelSlowResponseTime": "反應緩慢判斷時間(毫秒):", "LabelSlowResponseEnabled": "當伺服器應答過慢時記錄警告訊息", - "LabelMinAudiobookResume": "恢復播放有聲書的最短時間:", - "LabelMaxAudiobookResume": "恢復播放有聲書的剩餘時間:", + "LabelMinAudiobookResume": "繼續播放有聲書的最短時間:", + "LabelMaxAudiobookResume": "繼續播放有聲書的剩餘時間:", "LabelLocalCustomCss": "自訂CSS樣式僅使用於此客戶端。你可能會想要停用伺服器自訂CSS。", "LabelDisableCustomCss": "停用由伺服器提供的自訂CSS標籤或品牌。", "LabelCreateHttpPortMapHelp": "允許自動端口映射為除了HTTPS之外的HTTP流量創建規則。", From b56f83df9ace722f071df4d97f063b2cf29d17dd Mon Sep 17 00:00:00 2001 From: FireGamer3 Date: Thu, 13 Apr 2023 12:17:07 -0500 Subject: [PATCH 04/23] Adds Ratings to both Video Player and Up Next Dialog Window --- src/components/upnextdialog/upnextdialog.js | 4 ++-- src/controllers/playback/video/index.html | 3 +++ src/controllers/playback/video/index.js | 13 +++++++++++++ src/styles/videoosd.scss | 18 +++++++++++++++++- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/components/upnextdialog/upnextdialog.js b/src/components/upnextdialog/upnextdialog.js index 2a37fcbe45..bfb3ca18cd 100644 --- a/src/components/upnextdialog/upnextdialog.js +++ b/src/components/upnextdialog/upnextdialog.js @@ -69,9 +69,9 @@ import '../../styles/flexstyles.scss'; const elem = instance.options.parent; elem.querySelector('.upNextDialog-mediainfo').innerHTML = mediaInfo.getPrimaryMediaInfoHtml(item, { - criticRating: false, + criticRating: true, originalAirDate: false, - starRating: false, + starRating: true, subtitles: false }); diff --git a/src/controllers/playback/video/index.html b/src/controllers/playback/video/index.html index 002a818314..ca49f872c9 100644 --- a/src/controllers/playback/video/index.html +++ b/src/controllers/playback/video/index.html @@ -65,6 +65,9 @@
+ +
+