From 25cf88d0f82bd80fde05020bc8fd0b2489ceea87 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 27 Mar 2019 15:35:54 -0700 Subject: [PATCH 001/106] remove padding from progress slider --- src/components/emby-slider/emby-slider.css | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/emby-slider/emby-slider.css b/src/components/emby-slider/emby-slider.css index 179270e22..4a0457141 100644 --- a/src/components/emby-slider/emby-slider.css +++ b/src/components/emby-slider/emby-slider.css @@ -158,8 +158,6 @@ _:-ms-input-placeholder { } .mdl-slider-background-flex-container { - padding-left: 10px; - padding-right: 10px; width: 100%; box-sizing: border-box; margin-top: -.05em; From b1eae70caed05c1968786227a0837d8ff5f38222 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 27 Mar 2019 15:36:28 -0700 Subject: [PATCH 002/106] add back cover art on mobile devices --- .../nowplayingbar/nowplayingbar.css | 27 +++---------------- 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/src/components/nowplayingbar/nowplayingbar.css b/src/components/nowplayingbar/nowplayingbar.css index 80f078d88..14b08a20a 100644 --- a/src/components/nowplayingbar/nowplayingbar.css +++ b/src/components/nowplayingbar/nowplayingbar.css @@ -119,7 +119,6 @@ height: 1.2em !important; } - @media all and (max-width: 70em) { .nowPlayingBarRight .nowPlayingBarUserDataButtons { @@ -133,52 +132,32 @@ } } - @media all and (max-width: 62em) { - .nowPlayingBarCenter .nowPlayingBarCurrentTime { display: none !important; } - } @media all and (max-width: 56em) { - .nowPlayingBarCenter { display: none !important; } - } - @media all and (min-width: 56em) { - .nowPlayingBarRight .playPauseButton { display: none; } - -} - -@media all and (max-width: 40em) { - - .nowPlayingBarInfoContainer .nowPlayingImage { - display: none; - } - } @media all and (max-width: 36em) { - .nowPlayingBarRight .nowPlayingBarVolumeSliderContainer { display: none !important; } - } @media all and (max-width: 24em) { - - .nowPlayingBar .muteButton, .nowPlayingBar .unmuteButton { - display: none; - } - + .nowPlayingBar .muteButton, .nowPlayingBar .unmuteButton { + display: none; + } } From 16faeb05fe408f7c0576f7ff28609decb3a34093 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 28 Mar 2019 04:18:07 -0700 Subject: [PATCH 003/106] remove duplicate button for user preferences --- src/scripts/librarymenu.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index 9f21b81c1..a687d3a7a 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -193,12 +193,11 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " html += ""; } - html += '
'; - html += '

'; - html += globalize.translate("HeaderUser"); - html += "

"; if (user.localUser) { - html += 'settings' + globalize.translate("ButtonSettings") + ""; + html += '
'; + html += '

'; + html += globalize.translate("HeaderUser"); + html += "

"; if (appHost.supports("multiserver")) { html += 'wifi' + globalize.translate("ButtonSelectServer") + ""; } From 658d77c15f11c8a1770d1039586843503b083f36 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 28 Mar 2019 04:45:05 -0700 Subject: [PATCH 004/106] make dashboard header uniform size and modify card hover style --- src/components/cardbuilder/card.css | 20 ++++++++------------ src/css/dashboard.css | 4 ---- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.css index ebdeffe1d..64ce965da 100644 --- a/src/components/cardbuilder/card.css +++ b/src/components/cardbuilder/card.css @@ -46,9 +46,9 @@ button { flex-wrap: wrap; } - .vertical-wrap.centered { - justify-content: center; - } +.vertical-wrap.centered { + justify-content: center; +} .cardScalable { position: relative; @@ -226,10 +226,6 @@ button { box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); } -/*.card:focus .cardContent-shadow { - box-shadow: 0 .63em 1.26em rgba(0, 0, 0, 0.37); -}*/ - .cardImageContainer { display: flex; } @@ -767,7 +763,7 @@ button { } .cardOverlayContainer { - background: radial-gradient(farthest-corner at 50% 50%,rgba(30,30,30,.5) 50%,#2c2c2c 100%); + background: rgba(0,0,0,0.5); opacity: 0; transition: opacity .2s; position: absolute; @@ -810,7 +806,7 @@ button { left: 50%; } - .cardOverlayFab-primary i { - border: .07em solid rgba(255,255,255,.9); - color: #fff; - } +.cardOverlayFab-primary i { + border: .07em solid rgba(255,255,255,.9); + color: #fff; +} diff --git a/src/css/dashboard.css b/src/css/dashboard.css index 6568f7637..47ccacf1c 100644 --- a/src/css/dashboard.css +++ b/src/css/dashboard.css @@ -63,10 +63,6 @@ progress[aria-valuenow]:before { } } -.dashboardDocument { - font-size: 94.1% -} - .dashboardDocument .dashboardEntryHeaderButton, .dashboardDocument .lnkManageServer { display: none !important From ba1219f78b678c302719ba71b19214ff5cb88eb8 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 28 Mar 2019 04:53:34 -0700 Subject: [PATCH 005/106] remove duplicate button to home screen settings --- src/components/homesections/homesections.js | 47 --------------------- 1 file changed, 47 deletions(-) diff --git a/src/components/homesections/homesections.js b/src/components/homesections/homesections.js index 0c30a015c..2f4f51e39 100644 --- a/src/components/homesections/homesections.js +++ b/src/components/homesections/homesections.js @@ -183,28 +183,19 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la } function getLibraryButtonsHtml(items) { - var html = ""; html += '
'; html += '
'; html += '

' + globalize.translate('HeaderMyMedia') + '

'; - - if (!layoutManager.tv) { - html += ''; - } - html += '
'; html += '
'; // "My Library" backgrounds for (var i = 0, length = items.length; i < length; i++) { - var item = items[i]; - var icon; - switch (item.CollectionType) { case "movies": icon = "local_movies"; @@ -258,7 +249,6 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la var html = getLibraryButtonsHtml(userViews); elem.innerHTML = html; - bindHomeScreenSettingsIcon(elem, apiClient, user.Id, userSettings); imageLoader.lazyChildren(elem); } @@ -410,42 +400,11 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la } function getRequirePromise(deps) { - return new Promise(function (resolve, reject) { - require(deps, resolve); }); } - function showHomeScreenSettings(elem, options) { - return getRequirePromise(['homescreenSettingsDialog']).then(function (homescreenSettingsDialog) { - - return homescreenSettingsDialog.show(options).then(function () { - - dom.parentWithClass(elem, 'homeSectionsContainer').dispatchEvent(new CustomEvent('settingschange', { - cancelable: false - })); - }); - }); - } - - function bindHomeScreenSettingsIcon(elem, apiClient, userId, userSettings) { - - var btnHomeScreenSettings = elem.querySelector('.btnHomeScreenSettings'); - if (!btnHomeScreenSettings) { - return; - } - - btnHomeScreenSettings.addEventListener('click', function () { - showHomeScreenSettings(elem, { - serverId: apiClient.serverId(), - userId: userId, - userSettings: userSettings - - }); - }); - } - function loadLibraryTiles(elem, apiClient, user, userSettings, shape, userViews, allSections) { elem.classList.remove('verticalSection'); @@ -460,11 +419,6 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la html += '
'; html += '

' + globalize.translate('HeaderMyMedia') + '

'; - - if (!layoutManager.tv) { - html += ''; - } - html += '
'; if (scrollX) { @@ -492,7 +446,6 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la } elem.innerHTML = html; - bindHomeScreenSettingsIcon(elem, apiClient, user.Id, userSettings); imageLoader.lazyChildren(elem); } From 66d12b6d2dcaea6c94b1fed428392bc31134c355 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 28 Mar 2019 12:31:11 -0700 Subject: [PATCH 006/106] match user menu layout with navigation bar --- src/controllers/mypreferencescommon.js | 2 +- src/mypreferencesmenu.html | 47 ++++++++++++++------------ 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/controllers/mypreferencescommon.js b/src/controllers/mypreferencescommon.js index e52fcc1b3..51e9c1086 100644 --- a/src/controllers/mypreferencescommon.js +++ b/src/controllers/mypreferencescommon.js @@ -31,7 +31,7 @@ define(["apphost", "connectionManager", "listViewStyle", "emby-button"], functio }); Dashboard.getCurrentUser().then(function(user) { - page.querySelector(".headerUser").innerHTML = user.Name; + page.querySelector(".headerUsername").innerHTML = user.Name; if (user.Policy.IsAdministrator) { page.querySelector(".adminSection").classList.remove("hide"); } else { diff --git a/src/mypreferencesmenu.html b/src/mypreferencesmenu.html index 7269fe352..b9c02fc02 100644 --- a/src/mypreferencesmenu.html +++ b/src/mypreferencesmenu.html @@ -3,6 +3,7 @@ \ No newline at end of file From 450a72792ffa0fd3314562b54457934294af0c74 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 28 Mar 2019 13:09:14 -0700 Subject: [PATCH 007/106] update logindefault to match other icons --- src/img/logindefault.png | Bin 1327 -> 3571 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/img/logindefault.png b/src/img/logindefault.png index d88cc2805f1b2531593fc17c1da4af1f257bd41b..0453f2489704e37852b32a4d0e0a50e01dca422a 100644 GIT binary patch literal 3571 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 From 91241ceea1cf156b4ee4398c5b24507b0ff579f7 Mon Sep 17 00:00:00 2001 From: redSpoutnik <15638041+redSpoutnik@users.noreply.github.com> Date: Sat, 30 Mar 2019 22:11:39 +0100 Subject: [PATCH 008/106] Add vtt and ass subtitle-offset in videoplayer --- src/components/htmlvideoplayer/plugin.js | 66 ++++++++++++++++++++++ src/components/playback/playbackmanager.js | 22 ++++++++ src/controllers/videoosd.js | 55 ++++++++++++++++++ src/css/videoosd.css | 7 +++ src/videoosd.html | 7 +++ 5 files changed, 157 insertions(+) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index d25b49163..ca9303426 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -188,6 +188,8 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa var currentAssRenderer; var customTrackIndex = -1; + var currentTrackOffset; + var videoSubtitlesElem; var currentTrackEvents; @@ -543,6 +545,65 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa setCurrentTrackElement(index); }; + self.setSubtitleOffset = function(offset) { + + var offsetValue = parseFloat(offset); + var videoElement = self._mediaElement; + var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource); + + Array.from(videoElement.textTracks) + .filter(trackElement => { + if (customTrackIndex === -1 ) { + // get showing .vtt textTacks + return trackElement.mode === 'showing'; + } else { + // get current .ass textTrack + return ("textTrack" + customTrackIndex) === trackElement.id; + } + }) + .forEach(trackElement => { + + var track = mediaStreamTextTracks.filter(stream => { + return ("textTrack" + stream.Index) === trackElement.id; + })[0]; + + if(track) { + offsetValue = updateCurrentTrackOffset(offsetValue); + var format = (track.Codec || '').toLowerCase(); + if (format !== 'ass' && format !== 'ssa') { + setVttSubtitleOffset(trackElement, offsetValue); + } + } else { + console.log("No available track, cannot apply offset : " + offsetValue); + } + + }); + }; + + function updateCurrentTrackOffset(offsetValue) { + + var relativeOffset = offsetValue; + var newTrackOffset = offsetValue; + if(currentTrackOffset){ + relativeOffset -= currentTrackOffset; + } + currentTrackOffset = newTrackOffset; + // relative to currentTrackOffset + return relativeOffset; + } + + function setVttSubtitleOffset(currentTrack, offsetValue) { + + if(currentTrack.cues) { + Array.from(currentTrack.cues) + .forEach(cue => { + cue.startTime -= offsetValue; + cue.endTime -= offsetValue; + }); + } + + } + function isAudioStreamSupported(stream, deviceProfile) { var codec = (stream.Codec || '').toLowerCase(); @@ -1167,6 +1228,11 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa function updateSubtitleText(timeMs) { + // handle offset for ass tracks + if(currentTrackOffset) { + timeMs += (currentTrackOffset * 1000); + } + var clock = currentClock; if (clock) { try { diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 33b0b2b79..1588be5d2 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -1635,6 +1635,28 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla getPlayerData(player).subtitleStreamIndex = index; }; + self.supportSubtitleOffset = function(player) { + player = player || self._currentPlayer; + return 'setSubtitleOffset' in player; + } + + self.isSubtitleStreamExternal = function(index, player) { + var stream = getSubtitleStream(player, index); + return stream ? getDeliveryMethod(stream) === 'External' : false; + } + + self.setSubtitleOffset = function (sliderValue, player) { + player = player || self._currentPlayer; + player.setSubtitleOffset(self.getOffsetFromSliderValue(sliderValue)); + }; + + self.getOffsetFromSliderValue = function(value) { + var offset = (value - 50) / 50; + // multiply by offset min/max range value (-x to +x) : + offset *= 30; + return offset.toFixed(1); + }; + self.seek = function (ticks, player) { ticks = Math.max(0, ticks); diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index c9befe03c..00ce862f2 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -280,6 +280,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med btnFastForward.disabled = true; btnRewind.disabled = true; view.querySelector(".btnSubtitles").classList.add("hide"); + view.querySelector(".subtitleSyncSliderContainer").classList.add("hide"); view.querySelector(".btnAudio").classList.add("hide"); view.querySelector(".osdTitle").innerHTML = ""; view.querySelector(".osdMediaInfo").innerHTML = ""; @@ -295,8 +296,23 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med if (playbackManager.subtitleTracks(player).length) { view.querySelector(".btnSubtitles").classList.remove("hide"); + + if(playbackManager.supportSubtitleOffset()) { + var index = playbackManager.getSubtitleStreamIndex(player); + // if there is an external subtitle stream enabled + if(index !== -1 && playbackManager.isSubtitleStreamExternal(index, player)){ + // show subtitle sync slider + subtitleSyncSliderContainer.classList.remove("hide"); + }else{ + // hide subtitle sync slider + subtitleSyncSliderContainer.classList.add("hide"); + } + } + } else { view.querySelector(".btnSubtitles").classList.add("hide"); + // hide subtitle sync slider + subtitleSyncSliderContainer.classList.add("hide"); } if (playbackManager.audioTracks(player).length > 1) { @@ -1008,6 +1024,28 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med if (index !== currentIndex) { playbackManager.setSubtitleStreamIndex(index, player); } + return id; + + }).then(function (id) { + var index = parseInt(id); + // on subtitle stream change + if (playbackManager.supportSubtitleOffset() && index !== currentIndex) { + + /// if there is an external subtitle stream enabled + if (index !== -1 && playbackManager.isSubtitleStreamExternal(index, player)){ + + // set default offset to '0' (slider's middle value) + var subtitleSyncSliderMiddleValue = 50; + subtitleSyncSlider.value = subtitleSyncSliderMiddleValue.toString(); + playbackManager.setSubtitleOffset(subtitleSyncSliderMiddleValue, player); + + // show subtitle sync slider + subtitleSyncSliderContainer.classList.remove("hide"); + } else { + // hide subtitle sync slider + subtitleSyncSliderContainer.classList.add("hide"); + } + } }); }); } @@ -1146,6 +1184,8 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med var programStartDateMs = 0; var programEndDateMs = 0; var playbackStartTimeTicks = 0; + var subtitleSyncSlider = view.querySelector(".subtitleSyncSlider"); + var subtitleSyncSliderContainer = view.querySelector(".subtitleSyncSliderContainer"); var nowPlayingVolumeSlider = view.querySelector(".osdVolumeSlider"); var nowPlayingVolumeSliderContainer = view.querySelector(".osdVolumeSliderContainer"); var nowPlayingPositionSlider = view.querySelector(".osdPositionSlider"); @@ -1268,6 +1308,21 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med nowPlayingVolumeSlider.addEventListener("touchmove", function () { playbackManager.setVolume(this.value, currentPlayer); }); + + subtitleSyncSlider.addEventListener("change", function () { + playbackManager.setSubtitleOffset(this.value, currentPlayer); + }); + subtitleSyncSlider.addEventListener("touchmove", function () { + playbackManager.setSubtitleOffset(this.value, currentPlayer); + }); + + subtitleSyncSlider.getBubbleHtml = function (value) { + var newOffset = playbackManager.getOffsetFromSliderValue(value); + return '

' + + (newOffset > 0 ? "+" : "") + parseFloat(newOffset) + "s" + + "

"; + }; + nowPlayingPositionSlider.addEventListener("change", function () { var player = currentPlayer; diff --git a/src/css/videoosd.css b/src/css/videoosd.css index bd24e4130..5151f87d6 100644 --- a/src/css/videoosd.css +++ b/src/css/videoosd.css @@ -144,6 +144,13 @@ flex-grow: 1 } +.subtitleSyncSliderContainer { + width: 12em; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1 +} + .osdMediaInfo, .volumeButtons { display: -webkit-box; diff --git a/src/videoosd.html b/src/videoosd.html index e70adbe39..d5c117a4d 100644 --- a/src/videoosd.html +++ b/src/videoosd.html @@ -59,6 +59,13 @@ + +
+
+ +
+
+ From b3716dc20b3bf8077df37a5e7c3074fd27434f4f Mon Sep 17 00:00:00 2001 From: redSpoutnik <15638041+redSpoutnik@users.noreply.github.com> Date: Sat, 30 Mar 2019 22:29:45 +0100 Subject: [PATCH 009/106] add redSpoutnik to CONTRIBUTORS --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index bbdb64f7a..2b7a71134 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -20,6 +20,7 @@ - [TtheCreator](https://github.com/Tthecreator) - [RazeLighter777](https://github.com/RazeLighter777) - [LogicalPhallacy](https://github.com/LogicalPhallacy) + - [redSpoutnik](https://github.com/redSpoutnik) # Emby Contributors From e0d40e29a3b7d8bc40295537c8ed0fb7b0fe422d Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 5 Apr 2019 02:02:02 +0300 Subject: [PATCH 010/106] Fix "Password Reset by PIN" page --- src/controllers/forgotpassword.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/controllers/forgotpassword.js b/src/controllers/forgotpassword.js index bb9489a11..9c1ed7d5f 100644 --- a/src/controllers/forgotpassword.js +++ b/src/controllers/forgotpassword.js @@ -12,9 +12,12 @@ define([], function() { }); if ("PinCode" == result.Action) { var msg = Globalize.translate("MessageForgotPasswordFileCreated"); - return msg += "
", msg += "
", msg += "Enter PIN here to finish Password Reset" ,msg += "
",msg += result.PinFile, msg += "
", void Dashboard.alert({ + return msg += "
", msg += "
", msg += "Enter PIN here to finish Password Reset
" ,msg += "
",msg += result.PinFile, msg += "
", void Dashboard.alert({ message: msg, title: Globalize.translate("HeaderForgotPassword") + callback: function() { + Dashboard.navigate("forgotpasswordpin.html") + } }) } } From bdc7623216f5ff67efd5963784424ac3974a9179 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 5 Apr 2019 16:26:55 +0300 Subject: [PATCH 011/106] fix Indentation --- src/controllers/forgotpassword.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/forgotpassword.js b/src/controllers/forgotpassword.js index 9c1ed7d5f..a2528c5a5 100644 --- a/src/controllers/forgotpassword.js +++ b/src/controllers/forgotpassword.js @@ -15,7 +15,7 @@ define([], function() { return msg += "
", msg += "
", msg += "Enter PIN here to finish Password Reset
" ,msg += "
",msg += result.PinFile, msg += "
", void Dashboard.alert({ message: msg, title: Globalize.translate("HeaderForgotPassword") - callback: function() { + callback: function() { Dashboard.navigate("forgotpasswordpin.html") } }) From 27c4a005dee1e1d24c336cc894e01b299cff0d12 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Fri, 5 Apr 2019 23:40:55 -0400 Subject: [PATCH 012/106] Remove unnecessary overflowY changes --- src/controllers/livetvsuggested.js | 7 ------- src/controllers/videoosd.js | 2 -- src/css/site.css | 5 ----- 3 files changed, 14 deletions(-) diff --git a/src/controllers/livetvsuggested.js b/src/controllers/livetvsuggested.js index c341986d3..7821b3e0e 100644 --- a/src/controllers/livetvsuggested.js +++ b/src/controllers/livetvsuggested.js @@ -284,12 +284,6 @@ define(["layoutManager", "userSettings", "inputManager", "loading", "globalize", getTabController(page, index, function (controller) { initialTabIndex = null; - if (1 === index) { - document.body.classList.add("autoScrollY"); - } else { - document.body.classList.remove("autoScrollY"); - } - if (-1 == renderedTabs.indexOf(index)) { if (1 === index) { renderedTabs.push(index); @@ -362,7 +356,6 @@ define(["layoutManager", "userSettings", "inputManager", "loading", "globalize", if (currentTabController && currentTabController.onHide) { currentTabController.onHide(); } - document.body.classList.remove("autoScrollY"); inputManager.off(window, onInputCommand); }); view.addEventListener("viewdestroy", function (evt) { diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index c9befe03c..ee725b958 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -1169,7 +1169,6 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med dom.addEventListener(document, window.PointerEvent ? "pointermove" : "mousemove", onPointerMove, { passive: true }); - document.body.classList.add("autoScrollY"); showOsd(); inputManager.on(window, onInputCommand); dom.addEventListener(window, "keydown", onWindowKeyDown, { @@ -1190,7 +1189,6 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med dom.removeEventListener(document, window.PointerEvent ? "pointermove" : "mousemove", onPointerMove, { passive: true }); - document.body.classList.remove("autoScrollY"); inputManager.off(window, onInputCommand); events.off(playbackManager, "playerchange", onPlayerChange); releaseCurrentPlayer(); diff --git a/src/css/site.css b/src/css/site.css index 0111b3823..c9db015ab 100644 --- a/src/css/site.css +++ b/src/css/site.css @@ -29,16 +29,11 @@ html { } body { - overflow-y: scroll !important; overflow-x: hidden; background-color: transparent !important; -webkit-font-smoothing: antialiased } -body.autoScrollY { - overflow-y: auto !important -} - .mainAnimatedPage { contain: style size !important } From c0ae6b75e4ae55b4efc528d4e0e5fd795eb770af Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 28 Mar 2019 14:42:22 -0700 Subject: [PATCH 013/106] replace more web archive buttons with new documentation --- src/controllers/dashboardpage.js | 2 +- src/useredit.html | 2 +- src/userlibraryaccess.html | 2 +- src/usernew.html | 2 +- src/userparentalcontrol.html | 2 +- src/userpassword.html | 2 +- src/userprofiles.html | 2 +- src/wizardstart.html | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/controllers/dashboardpage.js b/src/controllers/dashboardpage.js index 446a7c6d6..574f2e33f 100644 --- a/src/controllers/dashboardpage.js +++ b/src/controllers/dashboardpage.js @@ -712,7 +712,7 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa }, systemUpdateTaskKey: "SystemUpdateTask", renderUrls: function (page, systemInfo) { - var helpButton = '' + globalize.translate("ButtonHelp") + ""; + var helpButton = '' + globalize.translate("ButtonHelp") + ""; var localUrlElem = page.querySelector(".localUrl"); var externalUrlElem = page.querySelector(".externalUrl"); diff --git a/src/useredit.html b/src/useredit.html index 32b7d5036..764c4adb1 100644 --- a/src/useredit.html +++ b/src/useredit.html @@ -6,7 +6,7 @@ diff --git a/src/userlibraryaccess.html b/src/userlibraryaccess.html index cb39571fa..bcf729acf 100644 --- a/src/userlibraryaccess.html +++ b/src/userlibraryaccess.html @@ -6,7 +6,7 @@ diff --git a/src/usernew.html b/src/usernew.html index 44eb15775..2e90df813 100644 --- a/src/usernew.html +++ b/src/usernew.html @@ -7,7 +7,7 @@

${HeaderAddUser}

- ${Help} + ${Help}
diff --git a/src/userparentalcontrol.html b/src/userparentalcontrol.html index 2ac8e0192..83cfa176f 100644 --- a/src/userparentalcontrol.html +++ b/src/userparentalcontrol.html @@ -5,7 +5,7 @@ diff --git a/src/userpassword.html b/src/userpassword.html index c7ce840e3..b301c412b 100644 --- a/src/userpassword.html +++ b/src/userpassword.html @@ -5,7 +5,7 @@ diff --git a/src/userprofiles.html b/src/userprofiles.html index 5daa86ca1..c23be1317 100644 --- a/src/userprofiles.html +++ b/src/userprofiles.html @@ -10,7 +10,7 @@ - ${Help} + ${Help}
diff --git a/src/wizardstart.html b/src/wizardstart.html index 723afa2ae..7b75f9c0b 100644 --- a/src/wizardstart.html +++ b/src/wizardstart.html @@ -9,7 +9,7 @@

${WelcomeToProject}

- + ${ButtonQuickStartGuide}
From 3eec1cf2f76650b21d8ed6d9c7ee50e63f4cf5be Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 29 Mar 2019 15:07:26 -0700 Subject: [PATCH 014/106] move device routes to the usual location --- src/components/cardbuilder/cardbuilder.js | 7 ------- src/components/itemhelper.js | 7 ++----- .../userdatabuttons/emby-playstatebutton.js | 16 ---------------- src/controllers/devices.js | 4 ++-- src/dashboard.html | 2 +- src/{devices => }/device.html | 0 src/{devices => }/devices.html | 0 src/scripts/librarymenu.js | 2 +- src/scripts/routes.js | 4 ++-- 9 files changed, 8 insertions(+), 34 deletions(-) rename src/{devices => }/device.html (100%) rename src/{devices => }/devices.html (100%) diff --git a/src/components/cardbuilder/cardbuilder.js b/src/components/cardbuilder/cardbuilder.js index 2885d7f75..d1e502e76 100644 --- a/src/components/cardbuilder/cardbuilder.js +++ b/src/components/cardbuilder/cardbuilder.js @@ -1537,18 +1537,11 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana var btnCssClass = 'cardOverlayButton cardOverlayButton-hover itemAction'; if (playbackManager.canPlay(item)) { - html += ''; } html += '
'; - //if (itemHelper.canEdit({ Policy: { IsAdministrator: true } }, item)) { - - // //require(['emby-playstatebutton']); - // html += ''; - //} - var userData = item.UserData || {}; if (itemHelper.canMarkPlayed(item)) { diff --git a/src/components/itemhelper.js b/src/components/itemhelper.js index 19845ca4a..f8bdb28ac 100644 --- a/src/components/itemhelper.js +++ b/src/components/itemhelper.js @@ -16,16 +16,13 @@ define(['apphost', 'globalize'], function (appHost, globalize) { var name = ((item.Type === 'Program' || item.Type === 'Recording') && (item.IsSeries || item.EpisodeTitle) ? item.EpisodeTitle : item.Name) || ''; if (item.Type === "TvChannel") { - if (item.ChannelNumber) { return item.ChannelNumber + ' ' + name; } return name; } - if (/*options.isInlineSpecial &&*/ item.Type === "Episode" && item.ParentIndexNumber === 0) { - + if (item.Type === "Episode" && item.ParentIndexNumber === 0) { name = globalize.translate('ValueSpecialEpisodeName', name); - } else if ((item.Type === "Episode" || item.Type === 'Program') && item.IndexNumber != null && item.ParentIndexNumber != null && options.includeIndexNumber !== false) { var displayIndexNumber = item.IndexNumber; @@ -104,7 +101,7 @@ define(['apphost', 'globalize'], function (appHost, globalize) { var itemType = item.Type; - if (itemType === "UserRootFolder" || /*itemType == "CollectionFolder" ||*/ itemType === "UserView") { + if (itemType === "UserRootFolder" || itemType === "UserView") { return false; } diff --git a/src/components/userdatabuttons/emby-playstatebutton.js b/src/components/userdatabuttons/emby-playstatebutton.js index 7480cd0d7..eaed12893 100644 --- a/src/components/userdatabuttons/emby-playstatebutton.js +++ b/src/components/userdatabuttons/emby-playstatebutton.js @@ -2,14 +2,12 @@ define(['connectionManager', 'serverNotifications', 'events', 'globalize', 'emby 'use strict'; function addNotificationEvent(instance, name, handler) { - var localHandler = handler.bind(instance); events.on(serverNotifications, name, localHandler); instance[name] = localHandler; } function removeNotificationEvent(instance, name) { - var handler = instance[name]; if (handler) { events.off(serverNotifications, name, handler); @@ -25,31 +23,22 @@ define(['connectionManager', 'serverNotifications', 'events', 'globalize', 'emby var apiClient = connectionManager.getApiClient(serverId); if (!button.classList.contains('playstatebutton-played')) { - apiClient.markPlayed(apiClient.getCurrentUserId(), id, new Date()); - setState(button, true); - } else { - apiClient.markUnplayed(apiClient.getCurrentUserId(), id, new Date()); - setState(button, false); } } function onUserDataChanged(e, apiClient, userData) { - var button = this; - if (userData.ItemId === button.getAttribute('data-id')) { - setState(button, userData.Played); } } function setState(button, played, updateAttribute) { - var icon = button.iconElement; if (!icon) { button.iconElement = button.querySelector('i'); @@ -57,18 +46,13 @@ define(['connectionManager', 'serverNotifications', 'events', 'globalize', 'emby } if (played) { - button.classList.add('playstatebutton-played'); - if (icon) { icon.classList.add('playstatebutton-icon-played'); icon.classList.remove('playstatebutton-icon-unplayed'); } - } else { - button.classList.remove('playstatebutton-played'); - if (icon) { icon.classList.remove('playstatebutton-icon-played'); icon.classList.add('playstatebutton-icon-unplayed'); diff --git a/src/controllers/devices.js b/src/controllers/devices.js index e4c2f6b44..d85b6e901 100644 --- a/src/controllers/devices.js +++ b/src/controllers/devices.js @@ -43,7 +43,7 @@ define(["loading", "dom", "libraryMenu", "globalize", "humanedate", "emby-button callback: function(id) { switch (id) { case "open": - Dashboard.navigate("devices/device.html?id=" + deviceId); + Dashboard.navigate("device.html?id=" + deviceId); break; case "delete": deleteDevice(view, deviceId) @@ -57,7 +57,7 @@ define(["loading", "dom", "libraryMenu", "globalize", "humanedate", "emby-button var html = ""; html += devices.map(function(device) { var deviceHtml = ""; - deviceHtml += "
", deviceHtml += '
', deviceHtml += '
', deviceHtml += '
', deviceHtml += ''; + deviceHtml += "
", deviceHtml += '
', deviceHtml += '", deviceHtml += '
', (canEdit || canDelete(device.Id)) && (deviceHtml += '
', deviceHtml += '', deviceHtml += "
"), deviceHtml += "
", deviceHtml += device.Name, deviceHtml += "
", deviceHtml += "
", deviceHtml += device.AppName + " " + device.AppVersion, deviceHtml += "
", deviceHtml += "
", device.LastUserName && (deviceHtml += device.LastUserName, deviceHtml += ", " + humane_date(device.DateLastActivity)), deviceHtml += " ", deviceHtml += "
", deviceHtml += "
", deviceHtml += "
", deviceHtml += "
" }).join(""), page.querySelector(".devicesList").innerHTML = html diff --git a/src/dashboard.html b/src/dashboard.html index ba973280e..71c4bf5e1 100644 --- a/src/dashboard.html +++ b/src/dashboard.html @@ -33,7 +33,7 @@
- +

${HeaderActiveDevices}

diff --git a/src/devices/device.html b/src/device.html similarity index 100% rename from src/devices/device.html rename to src/device.html diff --git a/src/devices/devices.html b/src/devices.html similarity index 100% rename from src/devices/devices.html rename to src/devices.html diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index a687d3a7a..ba8b2d306 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -307,7 +307,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " }); links.push({ name: globalize.translate("TabDevices"), - href: "devices/devices.html", + href: "devices.html", pageIds: ["devicesPage", "devicePage"], icon: "devices" }); diff --git a/src/scripts/routes.js b/src/scripts/routes.js index bd735877f..f2f66ad26 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -62,13 +62,13 @@ define([ controller: "dashboardhosting" }); defineRoute({ - path: "/devices/devices.html", + path: "/devices.html", autoFocus: false, roles: "admin", controller: "devices" }); defineRoute({ - path: "/devices/device.html", + path: "/device.html", autoFocus: false, roles: "admin", controller: "device" From 3f4b7502885d8a714f7c56c0de07ccd9f5f5ca5d Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 29 Mar 2019 15:09:51 -0700 Subject: [PATCH 015/106] move list page to the usual location --- src/components/favoriteitems.js | 2 +- src/{list => }/list.html | 8 ++------ src/livetv.html | 12 ++++++------ src/scripts/itembynamedetailpage.js | 2 +- src/scripts/livetvrecordings.js | 2 +- src/scripts/routes.js | 2 +- src/scripts/site.js | 24 ++++++++++++------------ 7 files changed, 24 insertions(+), 28 deletions(-) rename src/{list => }/list.html (98%) diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js index fa7b5aee1..e50bc1c53 100644 --- a/src/components/favoriteitems.js +++ b/src/components/favoriteitems.js @@ -111,7 +111,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad var html = ""; if (result.Items.length) { if (html += '
', !layoutManager.tv && options.Limit && result.Items.length >= options.Limit) { - html += '', html += '

', html += globalize.translate(section.name), html += "

", html += '', html += "
" + html += '', html += '

', html += globalize.translate(section.name), html += "

", html += '', html += "
" } else html += '

' + globalize.translate(section.name) + "

"; if (html += "
", enableScrollX()) { var scrollXClass = "scrollX hiddenScrollX"; diff --git a/src/list/list.html b/src/list.html similarity index 98% rename from src/list/list.html rename to src/list.html index 929c1596f..516170424 100644 --- a/src/list/list.html +++ b/src/list.html @@ -1,10 +1,7 @@
- -
- - +
+
-
-
diff --git a/src/livetv.html b/src/livetv.html index b4ef35d9b..2bc99b2b8 100644 --- a/src/livetv.html +++ b/src/livetv.html @@ -5,7 +5,7 @@
- +

${HeaderOnNow}

@@ -14,7 +14,7 @@
- +

${TabShows}

@@ -23,7 +23,7 @@
- +

${HeaderMovies}

@@ -32,7 +32,7 @@
- +

${Sports}

@@ -41,7 +41,7 @@
- +

${HeaderForKids}

@@ -50,7 +50,7 @@
- +

${News}

diff --git a/src/scripts/itembynamedetailpage.js b/src/scripts/itembynamedetailpage.js index 727532a38..a80792d17 100644 --- a/src/scripts/itembynamedetailpage.js +++ b/src/scripts/itembynamedetailpage.js @@ -210,7 +210,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB } function getMoreItemsHref(item, type) { - return "Genre" == item.Type ? "list/list.html?type=" + type + "&genreId=" + item.Id + "&serverId=" + item.ServerId : "MusicGenre" == item.Type ? "list/list.html?type=" + type + "&musicGenreId=" + item.Id + "&serverId=" + item.ServerId : "Studio" == item.Type ? "list/list.html?type=" + type + "&studioId=" + item.Id + "&serverId=" + item.ServerId : "MusicArtist" == item.Type ? "list/list.html?type=" + type + "&artistId=" + item.Id + "&serverId=" + item.ServerId : "Person" == item.Type ? "list/list.html?type=" + type + "&personId=" + item.Id + "&serverId=" + item.ServerId : "list/list.html?type=" + type + "&parentId=" + item.Id + "&serverId=" + item.ServerId + return "Genre" == item.Type ? "list.html?type=" + type + "&genreId=" + item.Id + "&serverId=" + item.ServerId : "MusicGenre" == item.Type ? "list.html?type=" + type + "&musicGenreId=" + item.Id + "&serverId=" + item.ServerId : "Studio" == item.Type ? "list.html?type=" + type + "&studioId=" + item.Id + "&serverId=" + item.ServerId : "MusicArtist" == item.Type ? "list.html?type=" + type + "&artistId=" + item.Id + "&serverId=" + item.ServerId : "Person" == item.Type ? "list.html?type=" + type + "&personId=" + item.Id + "&serverId=" + item.ServerId : "list.html?type=" + type + "&parentId=" + item.Id + "&serverId=" + item.ServerId } function addCurrentItemToQuery(query, item) { diff --git a/src/scripts/livetvrecordings.js b/src/scripts/livetvrecordings.js index c56956314..aac880ebd 100644 --- a/src/scripts/livetvrecordings.js +++ b/src/scripts/livetvrecordings.js @@ -45,7 +45,7 @@ define(["layoutManager", "loading", "cardBuilder", "apphost", "imageLoader", "sc serverId = ApiClient.serverId(); switch (type) { case "latest": - Dashboard.navigate("list/list.html?type=Recordings&serverId=" + serverId) + Dashboard.navigate("list.html?type=Recordings&serverId=" + serverId) } } return function(view, params, tabContent) { diff --git a/src/scripts/routes.js b/src/scripts/routes.js index f2f66ad26..9d98e8a93 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -119,7 +119,7 @@ define([ type: "home" }); defineRoute({ - path: "/list/list.html", + path: "/list.html", autoFocus: false, controller: "list", transition: "fade" diff --git a/src/scripts/site.js b/src/scripts/site.js index f984f20eb..d60666b3a 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -992,11 +992,11 @@ var AppInfo = {}; } if ("nextup" === item) { - return "list/list.html?type=nextup&serverId=" + options.serverId; + return "list.html?type=nextup&serverId=" + options.serverId; } if ("list" === item) { - var url = "list/list.html?serverId=" + options.serverId + "&type=" + options.itemTypes; + var url = "list.html?serverId=" + options.serverId + "&type=" + options.itemTypes; if (options.isFavorite) { url += "&IsFavorite=true"; @@ -1011,27 +1011,27 @@ var AppInfo = {}; } if ("movies" === options.section) { - return "list/list.html?type=Programs&IsMovie=true&serverId=" + options.serverId; + return "list.html?type=Programs&IsMovie=true&serverId=" + options.serverId; } if ("shows" === options.section) { - return "list/list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=" + options.serverId; + return "list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=" + options.serverId; } if ("sports" === options.section) { - return "list/list.html?type=Programs&IsSports=true&serverId=" + options.serverId; + return "list.html?type=Programs&IsSports=true&serverId=" + options.serverId; } if ("kids" === options.section) { - return "list/list.html?type=Programs&IsKids=true&serverId=" + options.serverId; + return "list.html?type=Programs&IsKids=true&serverId=" + options.serverId; } if ("news" === options.section) { - return "list/list.html?type=Programs&IsNews=true&serverId=" + options.serverId; + return "list.html?type=Programs&IsNews=true&serverId=" + options.serverId; } if ("onnow" === options.section) { - return "list/list.html?type=Programs&IsAiring=true&serverId=" + options.serverId; + return "list.html?type=Programs&IsAiring=true&serverId=" + options.serverId; } if ("dvrschedule" === options.section) { @@ -1050,7 +1050,7 @@ var AppInfo = {}; } if ("Genre" === item.Type) { - url = "list/list.html?genreId=" + item.Id + "&serverId=" + serverId; + url = "list.html?genreId=" + item.Id + "&serverId=" + serverId; if ("livetv" === context) { url += "&type=Programs"; @@ -1064,7 +1064,7 @@ var AppInfo = {}; } if ("MusicGenre" === item.Type) { - url = "list/list.html?musicGenreId=" + item.Id + "&serverId=" + serverId; + url = "list.html?musicGenreId=" + item.Id + "&serverId=" + serverId; if (options.parentId) { url += "&parentId=" + options.parentId; @@ -1074,7 +1074,7 @@ var AppInfo = {}; } if ("Studio" === item.Type) { - url = "list/list.html?studioId=" + item.Id + "&serverId=" + serverId; + url = "list.html?studioId=" + item.Id + "&serverId=" + serverId; if (options.parentId) { url += "&parentId=" + options.parentId; @@ -1123,7 +1123,7 @@ var AppInfo = {}; if (item.IsFolder) { if (id) { - return "list/list.html?parentId=" + id + "&serverId=" + serverId; + return "list.html?parentId=" + id + "&serverId=" + serverId; } return "#"; From 6ca5ad644103e0d825e6b1c98a32975a6e6b0d23 Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 29 Mar 2019 15:24:06 -0700 Subject: [PATCH 016/106] add back classic themes --- src/components/skinManager.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/skinManager.js b/src/components/skinManager.js index d5dd0aa07..82e3a50e5 100644 --- a/src/components/skinManager.js +++ b/src/components/skinManager.js @@ -36,6 +36,9 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr id: "dark", isDefault: true, isDefaultServerDashboard: true + }, { + name: "Dark Classic", + id: "dark-classic", }, { name: "Dark (green accent)", id: "dark-green" @@ -45,6 +48,9 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr }, { name: "Light", id: "light" + }, { + name: "Light Classic", + id: "light-classic" }, { name: "Light (blue accent)", id: "light-blue" From ac5b545ce4192d49c80e41218d12f3243b0a6c62 Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 29 Mar 2019 15:50:16 -0700 Subject: [PATCH 017/106] remove useless playback settings alert dialog --- .../displaysettings/displaysettings.js | 8 +----- src/components/playback/playersettingsmenu.js | 18 ------------ src/components/skinManager.js | 28 +++++++------------ src/strings/de.json | 2 -- src/strings/el.json | 1 - src/strings/en-us.json | 2 -- src/strings/es-mx.json | 2 -- src/strings/fr.json | 2 -- src/strings/hu.json | 2 -- src/strings/kk.json | 2 -- src/strings/nl.json | 1 - src/strings/pl.json | 2 -- src/strings/ru.json | 2 -- 13 files changed, 11 insertions(+), 61 deletions(-) diff --git a/src/components/displaysettings/displaysettings.js b/src/components/displaysettings/displaysettings.js index 680c6b634..fea7d9bd3 100644 --- a/src/components/displaysettings/displaysettings.js +++ b/src/components/displaysettings/displaysettings.js @@ -2,25 +2,19 @@ define(['require', 'browser', 'layoutManager', 'appSettings', 'pluginManager', ' "use strict"; function fillThemes(select, isDashboard) { - select.innerHTML = skinManager.getThemes().map(function (t) { - var value = t.id; - if (t.isDefault && !isDashboard) { value = ''; - } - else if (t.isDefaultServerDashboard && isDashboard) { + } else if (t.isDefaultServerDashboard && isDashboard) { value = ''; } return ''; - }).join(''); } function loadScreensavers(context, userSettings) { - var selectScreensaver = context.querySelector('.selectScreensaver'); var options = pluginManager.ofType('screensaver').map(function (plugin) { return { diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js index b51027fe0..b0c460921 100644 --- a/src/components/playback/playersettingsmenu.js +++ b/src/components/playback/playersettingsmenu.js @@ -196,11 +196,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob }); } - menuItems.push({ - name: globalize.translate('PlaybackSettings'), - id: 'playbacksettings' - }); - if (user && user.Policy.EnableVideoPlaybackTranscoding) { var secondaryQualityText = getQualitySecondaryText(player); @@ -214,7 +209,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob var repeatMode = playbackManager.getRepeatMode(player); if (supportedCommands.indexOf('SetRepeatMode') !== -1 && playbackManager.currentMediaSource(player).RunTimeTicks) { - menuItems.push({ name: globalize.translate('RepeatMode'), id: 'repeatmode', @@ -223,7 +217,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob } if (options.stats) { - menuItems.push({ name: globalize.translate('StatsForNerds'), id: 'stats', @@ -237,12 +230,9 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob }); return actionsheet.show({ - items: menuItems, positionTo: options.positionTo - }).then(function (id) { - return handleSelectedOption(id, options, player); }); } @@ -279,14 +269,8 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob return alertText(globalize.translate('SubtitleSettingsIntro')); } - function showPlaybackSettings(player, btn) { - return alertText(globalize.translate('PlaybackSettingsIntro')); - } - function handleSelectedOption(id, options, player) { - switch (id) { - case 'quality': return showQualityMenu(player, options.positionTo); case 'aspectratio': @@ -295,8 +279,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob return showRepeatModeMenu(player, options.positionTo); case 'subtitlesettings': return showSubtitleSettings(player, options.positionTo); - case 'playbacksettings': - return showPlaybackSettings(player, options.positionTo); case 'stats': if (options.onOption) { options.onOption('stats'); diff --git a/src/components/skinManager.js b/src/components/skinManager.js index 82e3a50e5..a9af80a87 100644 --- a/src/components/skinManager.js +++ b/src/components/skinManager.js @@ -7,7 +7,6 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr function unloadTheme() { var elem = themeStyleElement; if (elem) { - elem.parentNode.removeChild(elem); themeStyleElement = null; currentThemeId = null; @@ -16,7 +15,6 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr function loadUserSkin(options) { options = options || {}; - if (options.start) { Emby.Page.invokeShortcut(options.start); } else { @@ -40,10 +38,10 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr name: "Dark Classic", id: "dark-classic", }, { - name: "Dark (green accent)", + name: "Dark (Green Accent)", id: "dark-green" }, { - name: "Dark (red accent)", + name: "Dark (Red Accent)", id: "dark-red" }, { name: "Light", @@ -52,19 +50,19 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr name: "Light Classic", id: "light-classic" }, { - name: "Light (blue accent)", + name: "Light (Blue Accent)", id: "light-blue" }, { - name: "Light (green accent)", + name: "Light (Green Accent)", id: "light-green" }, { - name: "Light (pink accent)", + name: "Light (Pink Accent)", id: "light-pink" }, { - name: "Light (purple accent)", + name: "Light (Purple Accent)", id: "light-purple" }, { - name: "Light (red accent)", + name: "Light (Red Accent)", id: "light-red" }, { name: "Windows Media Center", @@ -77,7 +75,7 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr loadUserSkin: loadUserSkin }; - function getThemeStylesheetInfo(id, requiresRegistration, isDefaultProperty) { + function getThemeStylesheetInfo(id, isDefaultProperty) { var themes = skinManager.getThemes(); var defaultTheme; var selectedTheme; @@ -128,14 +126,13 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr skinManager.setTheme = function (id, context) { return new Promise(function (resolve, reject) { - var requiresRegistration = true; if (currentThemeId && currentThemeId === id) { resolve(); return; } var isDefaultProperty = context === 'serverdashboard' ? 'isDefaultServerDashboard' : 'isDefault'; - var info = getThemeStylesheetInfo(id, requiresRegistration, isDefaultProperty); + var info = getThemeStylesheetInfo(id, isDefaultProperty); if (currentThemeId && currentThemeId === info.themeId) { resolve(); return; @@ -187,21 +184,16 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr document.addEventListener('viewshow', onViewBeforeShow); function playSound(path, volume) { - lastSound = new Date().getTime(); - require(['howler'], function (howler) { - try { var sound = new Howl({ src: [path], volume: volume || 0.1 }); - sound.play(); currentSound = sound; - } - catch (err) { + } catch (err) { console.log('Error playing sound: ' + err); } }); diff --git a/src/strings/de.json b/src/strings/de.json index 6c93871eb..771412306 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -1077,7 +1077,6 @@ "PlayFromBeginning": "Von Beginn abspielen", "PlayNext": "Spiele als Nächstes ab", "PlayNextEpisodeAutomatically": "Starte nächste Episode automatisch", - "PlaybackSettingsIntro": "Um die Wiedergabeeinstellungen zu ändern, stoppen Sie die Wiedergabe und klicken Sie auf Ihr Benutzer-Icon in der oberen rechten Ecke der App.", "Played": "Gesehen", "Playlists": "Wiedergabelisten", "PleaseAddAtLeastOneFolder": "Bitte fügen Sie mindestens ein Verzeichniss zur Bibliothek durch Klicken der \"Hinzufügen\"-Schaltfläche hinzu.", @@ -1387,7 +1386,6 @@ "OptionRegex": "Reguläre Ausdrücke", "OptionSpecialEpisode": "Extras", "OptionTrackName": "Spurname", - "PlaybackSettings": "Wiedergabeeinstellungen", "Screenshots": "Bildschirmfotos", "Studios": "Studios", "SubtitleSettings": "Untertiteleinstellungen", diff --git a/src/strings/el.json b/src/strings/el.json index 325ab2fbc..a81759166 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -970,7 +970,6 @@ "PlayFromBeginning": "Αναπαραγωγή από την αρχή", "PlayNext": "Επόμενη Αναπαραγωγή", "PlayNextEpisodeAutomatically": "Αναπαραγωγή του επόμενου επεισοδίου αυτόματα", - "PlaybackSettingsIntro": "Για να ρυθμίσετε τις προεπιλεγμένες ρυθμίσεις αναπαραγωγής, σταματήστε την αναπαραγωγή βίντεο και στη συνέχεια, κάντε κλικ στο εικονίδιο χρήστη στην επάνω δεξιά ενότητα της εφαρμογής.", "Played": "Έγινε Αναπαραγωγή", "Playlists": "Λίστες αναπαραγωγής", "PleaseConfirmPluginInstallation": "Παρακαλώ κάντε κλικ στο OK για να επιβεβαιώσετε ότι έχετε διαβάσει τα ανωτέρω και επιθυμείτε να προχωρήσετε με την εγκατάσταση του πρόσθετου.", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index d39c7f9ea..7f79d37ec 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1191,8 +1191,6 @@ "PlayFromBeginning": "Play from beginning", "PlayNext": "Play next", "PlayNextEpisodeAutomatically": "Play next episode automatically", - "PlaybackSettings": "Playback settings", - "PlaybackSettingsIntro": "To configure default playback settings, stop video playback, then click your user icon in the top right section of the app.", "Played": "Played", "Playlists": "Playlists", "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 445ba02c6..9eb68484b 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -1141,8 +1141,6 @@ "PlayFromBeginning": "Reproducir desde el inicio", "PlayNext": "Reproducir siguiente", "PlayNextEpisodeAutomatically": "Reproducir el siguiente episodio automáticamente", - "PlaybackSettings": "Configuraciones de Reproducción", - "PlaybackSettingsIntro": "Para configurar las opciones de reproducción predeterminadas, detenga la reproducción de video. entonces de clic en su icono de usuario en la esquina superior derecha de la aplicación.", "Played": "Reproducido", "Playlists": "Listas de reproducción", "PleaseAddAtLeastOneFolder": "Por favor agregue al menos una carpeta a esta biblioteca dando clic al botón de Agregar.", diff --git a/src/strings/fr.json b/src/strings/fr.json index 171837cce..b3b77df90 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -1135,8 +1135,6 @@ "PlayFromBeginning": "Lire depuis le début", "PlayNext": "Lire le suivant", "PlayNextEpisodeAutomatically": "Lancer l'épisode suivant automatiquement", - "PlaybackSettings": "Paramètres de lecture", - "PlaybackSettingsIntro": "Pour configurer les réglages de lecture par défaut, arrêtez la lecture de la vidéo, puis cliquez sur votre icône utilisateur située en haut à droite dans l'application.", "Played": "Lu", "Playlists": "Listes de lecture", "PleaseAddAtLeastOneFolder": "Veuillez ajouter au moins un dossier à cette médiathèque en cliquant sur le bouton Ajouter.", diff --git a/src/strings/hu.json b/src/strings/hu.json index ac181eee6..902ae1bc0 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -1208,8 +1208,6 @@ "PlaceFavoriteChannelsAtBeginning": "Helyezd el a kedvenc csatornákat az elején", "PlayFromBeginning": "Lejátszás az elejétől", "PlayNext": "Következő lejátszása", - "PlaybackSettings": "Lejátszási beállítások", - "PlaybackSettingsIntro": "Az alapértelmezett lejátszási beállítások konfigurálásához állítsd le a videót, majd kattints a felhasználói ikonra az alkalmazás jobb felső részén.", "PleaseAddAtLeastOneFolder": "Adj hozzá legalább egy mappát ehhez a könyvtárhoz a Hozzáad gombra kattintva.", "PleaseConfirmPluginInstallation": "Kérlek kattints az OK gombra, hogy megerősítsd, hogy elolvastad a fentieket és folytatni kívánod a bővítmény telepítését.", "PleaseEnterNameOrId": "Kérlek adj meg egy nevet vagy egy külső ID-t.", diff --git a/src/strings/kk.json b/src/strings/kk.json index 6e19e43eb..2c5361ce4 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -1165,7 +1165,6 @@ "PlayFromBeginning": "Basynan oınatý", "PlayNext": "Kelesini oınatý", "PlayNextEpisodeAutomatically": "Kelesi bólimdi avtomatty júktep alý", - "PlaybackSettingsIntro": "Ádepki oınatý parametrlerin teńsheý úshin beıne oınatýdy toqtatyńyz, sodan keıin qoldanbanyń joǵarǵy oń jaq bóligindegi paıdalanýshy belgishesin basyńyz.", "Played": "Oınatylǵan", "Playlists": "Oınatý tizimderi", "PleaseAddAtLeastOneFolder": "Qosý túımeshigin basý arqyly, osy tasyǵyshhanaǵa kem degende bir qalta qosyńyz.", @@ -1418,6 +1417,5 @@ "MessageImageFileTypeAllowed": "Tek qana JPEG jáne PNG faıldary qoldaýda.", "MessageImageTypeNotSelected": "Sýret túrin ashylmaly mázirden tandańyz.", "OptionResElement": "res elementi", - "PlaybackSettings": "Oınatý parametrleri", "SubtitleSettings": "Sýbtıtrler parametrleri" } diff --git a/src/strings/nl.json b/src/strings/nl.json index f6b8e4597..d34653169 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -1075,7 +1075,6 @@ "PlayFromBeginning": "Afspelen vanaf begin", "PlayNext": "Volgende afspelen", "PlayNextEpisodeAutomatically": "Speel volgende aflevering automatisch", - "PlaybackSettingsIntro": "Om de standaard afspeelinstellingen te configureren, stopt u het afspelen van de video. Vervolgens klikt u op het gebruikersicoon in de rechterbovenhoek van de app.", "Played": "Afgespeeld", "Playlists": "Afspeellijsten", "PleaseAddAtLeastOneFolder": "Voeg tenminste 1 map aan deze bibliotheek toe door op de Toevoegen knop te klikken.", diff --git a/src/strings/pl.json b/src/strings/pl.json index 7e41d6ca9..0e28cbb3a 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -1156,8 +1156,6 @@ "PlayFromBeginning": "Odtwarzaj od początku", "PlayNext": "Odtwarzaj następne", "PlayNextEpisodeAutomatically": "Odtwarzaj następny odcinek automatycznie", - "PlaybackSettings": "Ustawienia odtwarzania", - "PlaybackSettingsIntro": "W celu skonfigurowania domyślnych ustawień odtwarzania, zatrzymaj odtwarzanie, a następnie naciśnij ikonę użytkownika w górnej prawej sekcji aplikacji.", "Played": "Odtworzone", "Playlists": "Listy", "PleaseAddAtLeastOneFolder": "Proszę dodaj przynajmniej jeden folder do tej listy poprzez kliknięcie guzika Dodaj", diff --git a/src/strings/ru.json b/src/strings/ru.json index 673942bc0..a3b7046e1 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -1165,7 +1165,6 @@ "PlayFromBeginning": "Воспр. с начала", "PlayNext": "Воспроизвести следующее", "PlayNextEpisodeAutomatically": "Воспроизводить последующий эпизод автоматически", - "PlaybackSettingsIntro": "Чтобы конфигурировать параметры воспроизведения по умолчанию, остановите воспроизведение видео, затем щелкните значок пользователя в правой верхней части приложения.", "Played": "Воспроизведено", "Playlists": "Плей-листы", "PleaseAddAtLeastOneFolder": "Добавьте, по крайней мере, одну папку к данной медиатеке, нажав кнопку Добавить.", @@ -1418,7 +1417,6 @@ "LeaveBlankToNotSetAPassword": "Необязательно - оставьте пустым, чтобы не назначать пароль", "MessageImageFileTypeAllowed": "Поддерживаются только файлы JPEG и PNG.", "MessageImageTypeNotSelected": "Выберите тип рисунка из выпадающего меню.", - "PlaybackSettings": "Параметры воспроизведения", "SubtitleSettings": "Параметры субтитров", "OptionResElement": "res-элемент" } From 28a5552d96a99081a78e926c072bd02ea4fe9120 Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 29 Mar 2019 16:04:56 -0700 Subject: [PATCH 018/106] remove useless subtitle setting alert dialog --- src/components/playback/playersettingsmenu.js | 40 +------------------ src/strings/de.json | 2 - src/strings/el.json | 1 - src/strings/en-us.json | 2 - src/strings/es-mx.json | 2 - src/strings/fr.json | 2 - src/strings/hu.json | 2 - src/strings/kk.json | 4 +- src/strings/nl.json | 1 - src/strings/pl.json | 2 - src/strings/ru.json | 2 - 11 files changed, 3 insertions(+), 57 deletions(-) diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js index b0c460921..f7f240afa 100644 --- a/src/components/playback/playersettingsmenu.js +++ b/src/components/playback/playersettingsmenu.js @@ -16,7 +16,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob }); var menuItems = options.map(function (o) { - var opt = { name: o.name, id: o.bitrate, @@ -39,25 +38,19 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob return actionsheet.show({ items: menuItems, positionTo: btn - }).then(function (id) { var bitrate = parseInt(id); if (bitrate !== selectedId) { - playbackManager.setMaxStreamingBitrate({ - enableAutomaticBitrateDetection: bitrate ? false : true, maxBitrate: bitrate - }, player); } }); } function showRepeatModeMenu(player, btn) { - var menuItems = []; - var currentValue = playbackManager.getRepeatMode(player); menuItems.push({ @@ -65,6 +58,7 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob id: 'RepeatAll', selected: currentValue === 'RepeatAll' }); + menuItems.push({ name: globalize.translate('RepeatOne'), id: 'RepeatOne', @@ -80,9 +74,7 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob return actionsheet.show({ items: menuItems, positionTo: btn - }).then(function (mode) { - if (mode) { playbackManager.setRepeatMode(mode, player); } @@ -90,15 +82,14 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob } function getQualitySecondaryText(player) { - var state = playbackManager.getPlayerState(player); - var isAutoEnabled = playbackManager.enableAutomaticBitrateDetection(player); var currentMaxBitrate = playbackManager.getMaxStreamingBitrate(player); var videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) { return stream.Type === "Video"; })[0]; + var videoWidth = videoStream ? videoStream.Width : null; var options = qualityoptions.getVideoQualityOptions({ @@ -109,7 +100,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob }); var menuItems = options.map(function (o) { - var opt = { name: o.name, id: o.bitrate, @@ -132,7 +122,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob } selectedOption = selectedOption[0]; - var text = selectedOption.name; if (selectedOption.autoText) { @@ -224,11 +213,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob }); } - menuItems.push({ - name: globalize.translate('SubtitleSettings'), - id: 'subtitlesettings' - }); - return actionsheet.show({ items: menuItems, positionTo: options.positionTo @@ -238,9 +222,7 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob } function show(options) { - var player = options.player; - var currentItem = playbackManager.currentItem(player); if (!currentItem || !currentItem.ServerId) { @@ -248,27 +230,11 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob } var apiClient = connectionManager.getApiClient(currentItem.ServerId); - return apiClient.getCurrentUser().then(function (user) { return showWithUser(options, player, user); }); } - function alertText(text) { - - return new Promise(function (resolve, reject) { - - require(['alert'], function (alert) { - - alert(text).then(resolve); - }); - }); - } - - function showSubtitleSettings(player, btn) { - return alertText(globalize.translate('SubtitleSettingsIntro')); - } - function handleSelectedOption(id, options, player) { switch (id) { case 'quality': @@ -277,8 +243,6 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob return showAspectRatioMenu(player, options.positionTo); case 'repeatmode': return showRepeatModeMenu(player, options.positionTo); - case 'subtitlesettings': - return showSubtitleSettings(player, options.positionTo); case 'stats': if (options.onOption) { options.onOption('stats'); diff --git a/src/strings/de.json b/src/strings/de.json index 771412306..2e632d763 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -1182,7 +1182,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Diese Einstellungen werden auch auf jede Chromecast-Wiedergabe angewendet, die von diesem Gerät gestartet wird.", "SubtitleAppearanceSettingsDisclaimer": "Diese Einstellungen werden nicht auf grafische Untertitel (PGS, DVD, etc.) oder Untertitel mit eingebettetem Style-Elementen (ASS/SSA) angewendet.", "SubtitleDownloadersHelp": "Aktiviere und bewerte Deine bevorzugten Untertitel Downloader in der Reihenfolge der Priorität.", - "SubtitleSettingsIntro": "Um das Aussehen der Untertitel und die Spracheinstellungen zu ändern, stoppen Sie die Wiedergabe und klicken Sie auf Ihr Benutzer-Icon in der oberen rechten Ecke der App.", "Subtitles": "Untertitel", "Suggestions": "Empfehlungen", "Sunday": "Sonntag", @@ -1388,7 +1387,6 @@ "OptionTrackName": "Spurname", "Screenshots": "Bildschirmfotos", "Studios": "Studios", - "SubtitleSettings": "Untertiteleinstellungen", "TV": "TV", "TabCodecs": "Codecs", "TabGenres": "Genres", diff --git a/src/strings/el.json b/src/strings/el.json index a81759166..8e4e399dd 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -1066,7 +1066,6 @@ "Studios": "Στούντιο", "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Αυτές οι ρυθμίσεις ισχύουν επίσης για οποιαδήποτε αναπαραγωγή του Chromecast που ξεκίνησε από αυτήν τη συσκευή.", "SubtitleAppearanceSettingsDisclaimer": "Αυτές οι ρυθμίσεις δεν θα ισχύουν για γραφικούς υποτίτλους (PGS, DVD, κ.λπ.) ή για υπότιτλους που έχουν ενσωματωμένο το δικό τους στυλ (ASS / SSA).", - "SubtitleSettingsIntro": "Για να ρυθμίσετε την προεπιλεγμένη εμφάνιση υπότιτλων και τις ρυθμίσεις γλώσσας, σταματήστε την αναπαραγωγή βίντεο και, στη συνέχεια, κάντε κλικ στο εικονίδιο χρήστη στην επάνω δεξιά ενότητα της εφαρμογής.", "Subtitles": "Υπότιτλοι", "Suggestions": "Προτάσεις", "Sunday": "Κυριακή", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 7f79d37ec..ea7b479b4 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1301,8 +1301,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "These settings also apply to any Chromecast playback started by this device.", "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority.", - "SubtitleSettings": "Subtitle settings", - "SubtitleSettingsIntro": "To configure default subtitle appearance and language settings, stop video playback, then click your user icon in the top right section of the app.", "Subtitles": "Subtitles", "Suggestions": "Suggestions", "Sunday": "Sunday", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 9eb68484b..dd09447e7 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -1250,8 +1250,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Estos ajustes también aplican a cualquier reproducción de Chromecast iniciada por este dispositivo.", "SubtitleAppearanceSettingsDisclaimer": "Estas configuraciones no se aplicaran a subtitulos gráficos (PGS, DVD, etc.) o a subtitulos que tienen sus propias fuentes embebidas (ASS/SSA).", "SubtitleDownloadersHelp": "Habilite y priorice sus recolectores de subtitulos en orden de preferencia.", - "SubtitleSettings": "Configuraciones de Subtitulos", - "SubtitleSettingsIntro": "Para configurar la apariencia predeterminada de los subtitulos e idioma, detenga la reproducción de video, entonces de clic en su icono de usuario en la parte superior derecha de la aplicación.", "Subtitles": "Subtítulos", "Suggestions": "Sugerencias", "Sunday": "Domingo", diff --git a/src/strings/fr.json b/src/strings/fr.json index b3b77df90..b864934e0 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -1242,8 +1242,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Ces paramètres s'appliquent également à toute lecture Chromecast démarrée par cet appareil.", "SubtitleAppearanceSettingsDisclaimer": "Ces paramètres ne s'appliqueront pas aux sous-titres graphiques (PGS, DVD etc) ou aux sous-titres qui ont leurs propres styles incorporés (ASS/SSA).", "SubtitleDownloadersHelp": "Activer et ranger vos outils de téléchargement de sous-titres favoris par ordre de priorité.", - "SubtitleSettings": "Paramètres des sous-titres", - "SubtitleSettingsIntro": "Pour configurer l'apparence des sous-titres et la langue par défaut, arrêtez la lecture de la vidéo, puis cliquez sur votre icône utilisateur située en haut à droite dans l'application.", "Subtitles": "Sous-titres", "Sunday": "Dimanche", "Sync": "Synchroniser", diff --git a/src/strings/hu.json b/src/strings/hu.json index 902ae1bc0..bcf15036b 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -1267,8 +1267,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Ezek a beállítások a készülék által elindított összes Chromecast lejátszásra is vonatkoznak.", "SubtitleAppearanceSettingsDisclaimer": "Ezek a beállítások nem vonatkoznak a grafikus feliratokra (PGS, DVD, stb.) Vagy a saját stílusokkal ellátott feliratokra (ASS / SSA).", "SubtitleDownloadersHelp": "Engedélyezd és rangsorold az előnyben részesített feliratok letöltőket sorrendben.", - "SubtitleSettings": "Felirat beállítások", - "SubtitleSettingsIntro": "Az alapértelmezett felirat megjelenésének és nyelvi beállításainak konfigurálásához állítsd le a videót, majd kattints a felhasználói ikonra az alkalmazás jobb felső részén.", "SystemDlnaProfilesHelp": "A rendszerprofilok csak olvashatóak. A rendszerprofil módosításai egy új egyéni profilba kerülnek.", "TV": "TV", "TabDirectPlay": "Közvetlen lejátszás", diff --git a/src/strings/kk.json b/src/strings/kk.json index 2c5361ce4..817f55275 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -1275,7 +1275,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Bul parametrler osy qurylǵy arqyly iske qosylǵan kez-kelgen Chromecast oınatýyna qoldanylady.", "SubtitleAppearanceSettingsDisclaimer": "Bul parametrler grafıkalyq sýbtıtrlerge (PGS, DVD j.t.b.) nemese óz máneri bar endirilgen sýbtıtrlerge (ASS/SSA) qoldanylmaıdy.", "SubtitleDownloadersHelp": "Teńshelgen sýbtıtrler júkteýshilerin qosyńyz jáne basymdylyq reti boıynsha dáreje berińiz.", - "SubtitleSettingsIntro": "Ádepki sýbtıtr kórinisin jáne til parametrlerin teńsheý úshin beıne oınatýdy toqtatyńyz, sodan keıin qoldanbanyń joǵarǵy oń jaq bóligindegi paıdalanýshy belgishesin basyńyz.", "Subtitles": "Sýbtıtrler", "Suggestions": "Usynystar", "Sunday": "jeksenbi", @@ -1416,6 +1415,5 @@ "LeaveBlankToNotSetAPassword": "Mindetti emes - bos qaldyrsańyz, paról paıdalanylmaıdy", "MessageImageFileTypeAllowed": "Tek qana JPEG jáne PNG faıldary qoldaýda.", "MessageImageTypeNotSelected": "Sýret túrin ashylmaly mázirden tandańyz.", - "OptionResElement": "res elementi", - "SubtitleSettings": "Sýbtıtrler parametrleri" + "OptionResElement": "res elementi" } diff --git a/src/strings/nl.json b/src/strings/nl.json index d34653169..8f19baa49 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -1182,7 +1182,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Deze instellingen hebben ook effect op afspelen naar een Chromecast wanneer deze vanaf dit apparaat worden gestart.", "SubtitleAppearanceSettingsDisclaimer": "Deze instellingen hebben geen invloed op grafische ondertitels (PGS, DVD etc.) en ondertitels die hun eigen stijl ingebouwd hebben (ASS/SSA).", "SubtitleDownloadersHelp": "Schakel de gewenste ondertiteldownloaders in en rangschik ze in volgorde van prioritieit.", - "SubtitleSettingsIntro": "Om de standaard ondertiteling- en taalinstellingen te configureren, stopt u het afspelen van de video. Vervolgens klikt u op het gebruikersicoon in de rechterbovenhoek van de app.", "Subtitles": "Ondertiteling", "Suggestions": "Suggesties", "Sunday": "Zondag", diff --git a/src/strings/pl.json b/src/strings/pl.json index 0e28cbb3a..042c9a7f2 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -1266,8 +1266,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Powyższe ustawienia dotyczą także odtwarzania Chromecast rozpoczętego przez to urządzenie.", "SubtitleAppearanceSettingsDisclaimer": "Te ustawienia nie mają zastosowania do napisów graficznych (PGS, DVD, etc) lub napisów, które posiadają swoje własne wbudowane style (ASS/SSA).", "SubtitleDownloadersHelp": "Umożliwia aktywowanie i używanie dostawców napisów w preferowanej kolejności.", - "SubtitleSettings": "Ustawienia napisów", - "SubtitleSettingsIntro": "W celu skonfigurowania domyślnych ustawień napisów i języka, zatrzymaj odtwarzanie, a następnie naciśnij ikonę użytkownika w górnej prawej sekcji aplikacji.", "Subtitles": "Napisy", "Suggestions": "Polecane", "Sunday": "Niedziela", diff --git a/src/strings/ru.json b/src/strings/ru.json index a3b7046e1..eb20428f1 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -1275,7 +1275,6 @@ "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Эти параметры также применимы к любому Chromecast-воспроизведению запущенному данным устройством.", "SubtitleAppearanceSettingsDisclaimer": "Данные параметры не применимы к графическим субтитрам (PGS, DVD и т.д.) или к субтитрам, которые имеют внедрённые свои собственные стили (ASS/SSA).", "SubtitleDownloadersHelp": "Включите и ранжируйте предпочитаемые загрузчики субтитров в порядке приоритета.", - "SubtitleSettingsIntro": "Чтобы конфигурировать внешний вид субтитров и языковые настройки, остановите воспроизведение видео, затем щелкните значок пользователя в правой верхней части приложения.", "Subtitles": "Субтитры", "Suggestions": "Предлагаемое", "Sunday": "воскресенье", @@ -1417,6 +1416,5 @@ "LeaveBlankToNotSetAPassword": "Необязательно - оставьте пустым, чтобы не назначать пароль", "MessageImageFileTypeAllowed": "Поддерживаются только файлы JPEG и PNG.", "MessageImageTypeNotSelected": "Выберите тип рисунка из выпадающего меню.", - "SubtitleSettings": "Параметры субтитров", "OptionResElement": "res-элемент" } From 7f4895465d139405385e1fa00d426a96acc91c6e Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 29 Mar 2019 16:58:46 -0700 Subject: [PATCH 019/106] small changes to some strings --- .../homescreensettings/homescreensettings.template.html | 6 +----- src/components/playback/playersettingsmenu.js | 2 +- src/mypreferenceshome.html | 3 +-- src/mypreferencesmenu.html | 2 +- src/strings/ar.json | 2 -- src/strings/bg-bg.json | 3 --- src/strings/ca.json | 3 --- src/strings/cs.json | 3 --- src/strings/da.json | 2 -- src/strings/de.json | 4 ---- src/strings/el.json | 4 ---- src/strings/en-us.json | 7 +++---- src/strings/es-mx.json | 4 ---- src/strings/es.json | 4 ---- src/strings/fr.json | 4 ---- src/strings/hr.json | 2 -- src/strings/hu.json | 4 ---- src/strings/it.json | 4 ---- src/strings/kk.json | 4 ---- src/strings/ko.json | 2 -- src/strings/nb.json | 3 --- src/strings/nl.json | 4 ---- src/strings/pl.json | 4 ---- src/strings/pt-br.json | 4 ---- src/strings/pt-pt.json | 2 -- src/strings/ru.json | 4 ---- src/strings/sk.json | 3 --- src/strings/sv.json | 3 --- src/strings/zh-cn.json | 3 --- 29 files changed, 7 insertions(+), 92 deletions(-) diff --git a/src/components/homescreensettings/homescreensettings.template.html b/src/components/homescreensettings/homescreensettings.template.html index 6295af0df..2cb1dcbe1 100644 --- a/src/components/homescreensettings/homescreensettings.template.html +++ b/src/components/homescreensettings/homescreensettings.template.html @@ -1,10 +1,6 @@
-
- -

- ${HeaderHomeScreen} -

+

${HeaderHome}

+
+
\ No newline at end of file diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index 00ce862f2..68c0024f7 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -280,7 +280,6 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med btnFastForward.disabled = true; btnRewind.disabled = true; view.querySelector(".btnSubtitles").classList.add("hide"); - view.querySelector(".subtitleSyncSliderContainer").classList.add("hide"); view.querySelector(".btnAudio").classList.add("hide"); view.querySelector(".osdTitle").innerHTML = ""; view.querySelector(".osdMediaInfo").innerHTML = ""; @@ -296,23 +295,10 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med if (playbackManager.subtitleTracks(player).length) { view.querySelector(".btnSubtitles").classList.remove("hide"); - - if(playbackManager.supportSubtitleOffset()) { - var index = playbackManager.getSubtitleStreamIndex(player); - // if there is an external subtitle stream enabled - if(index !== -1 && playbackManager.isSubtitleStreamExternal(index, player)){ - // show subtitle sync slider - subtitleSyncSliderContainer.classList.remove("hide"); - }else{ - // hide subtitle sync slider - subtitleSyncSliderContainer.classList.add("hide"); - } - } - + toggleSubtitleSync(); } else { view.querySelector(".btnSubtitles").classList.add("hide"); - // hide subtitle sync slider - subtitleSyncSliderContainer.classList.add("hide"); + toggleSubtitleSync("forceToHide"); } if (playbackManager.audioTracks(player).length > 1) { @@ -435,6 +421,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med focusManager.focus(elem.querySelector(".btnPause")); }, 50); } + toggleSubtitleSync(); } } @@ -447,6 +434,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med once: true }); currentVisibleMenu = null; + toggleSubtitleSync("hide"); } } @@ -638,6 +626,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med function releaseCurrentPlayer() { destroyStats(); + destroySubtitleSync(); resetUpNextDialog(); var player = currentPlayer; @@ -913,11 +902,17 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med var player = currentPlayer; if (player) { + + // show subtitle offset feature only if player and media support it + var showSubOffset = playbackManager.supportSubtitleOffset(player) && + playbackManager.canHandleOffsetOnCurrentSubtitle(player); + playerSettingsMenu.show({ mediaType: "Video", player: player, positionTo: btn, stats: true, + suboffset: showSubOffset, onOption: onSettingsOption }); } @@ -927,6 +922,12 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med function onSettingsOption(selectedOption) { if ("stats" === selectedOption) { toggleStats(); + } else if ("suboffset" === selectedOption) { + var player = currentPlayer; + if (player) { + playbackManager.enableShowingSubtitleOffset(player); + toggleSubtitleSync(); + } } } @@ -1024,32 +1025,30 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med if (index !== currentIndex) { playbackManager.setSubtitleStreamIndex(index, player); } - return id; - }).then(function (id) { - var index = parseInt(id); - // on subtitle stream change - if (playbackManager.supportSubtitleOffset() && index !== currentIndex) { - - /// if there is an external subtitle stream enabled - if (index !== -1 && playbackManager.isSubtitleStreamExternal(index, player)){ - - // set default offset to '0' (slider's middle value) - var subtitleSyncSliderMiddleValue = 50; - subtitleSyncSlider.value = subtitleSyncSliderMiddleValue.toString(); - playbackManager.setSubtitleOffset(subtitleSyncSliderMiddleValue, player); - - // show subtitle sync slider - subtitleSyncSliderContainer.classList.remove("hide"); - } else { - // hide subtitle sync slider - subtitleSyncSliderContainer.classList.add("hide"); - } - } + toggleSubtitleSync(); }); }); } + function toggleSubtitleSync(action) { + require(["subtitleSync"], function (SubtitleSync) { + var player = currentPlayer; + if (subtitleSyncOverlay) { + subtitleSyncOverlay.toggle(action); + } else if(player){ + subtitleSyncOverlay = new SubtitleSync(player); + } + }); + } + + function destroySubtitleSync() { + if (subtitleSyncOverlay) { + subtitleSyncOverlay.destroy(); + subtitleSyncOverlay = null; + } + } + function onWindowKeyDown(e) { if (!currentVisibleMenu && (32 === e.keyCode || 13 === e.keyCode)) { playbackManager.playPause(currentPlayer); @@ -1184,8 +1183,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med var programStartDateMs = 0; var programEndDateMs = 0; var playbackStartTimeTicks = 0; - var subtitleSyncSlider = view.querySelector(".subtitleSyncSlider"); - var subtitleSyncSliderContainer = view.querySelector(".subtitleSyncSliderContainer"); + var subtitleSyncOverlay; var nowPlayingVolumeSlider = view.querySelector(".osdVolumeSlider"); var nowPlayingVolumeSliderContainer = view.querySelector(".osdVolumeSliderContainer"); var nowPlayingPositionSlider = view.querySelector(".osdPositionSlider"); @@ -1257,6 +1255,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med } destroyStats(); + destroySubtitleSync(); }); var lastPointerDown = 0; dom.addEventListener(view, window.PointerEvent ? "pointerdown" : "click", function (e) { @@ -1309,20 +1308,6 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med playbackManager.setVolume(this.value, currentPlayer); }); - subtitleSyncSlider.addEventListener("change", function () { - playbackManager.setSubtitleOffset(this.value, currentPlayer); - }); - subtitleSyncSlider.addEventListener("touchmove", function () { - playbackManager.setSubtitleOffset(this.value, currentPlayer); - }); - - subtitleSyncSlider.getBubbleHtml = function (value) { - var newOffset = playbackManager.getOffsetFromSliderValue(value); - return '

' + - (newOffset > 0 ? "+" : "") + parseFloat(newOffset) + "s" + - "

"; - }; - nowPlayingPositionSlider.addEventListener("change", function () { var player = currentPlayer; diff --git a/src/css/videoosd.css b/src/css/videoosd.css index 5151f87d6..bd24e4130 100644 --- a/src/css/videoosd.css +++ b/src/css/videoosd.css @@ -144,13 +144,6 @@ flex-grow: 1 } -.subtitleSyncSliderContainer { - width: 12em; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - flex-grow: 1 -} - .osdMediaInfo, .volumeButtons { display: -webkit-box; diff --git a/src/scripts/site.js b/src/scripts/site.js index f984f20eb..6471343ed 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -758,6 +758,7 @@ var AppInfo = {}; define("recordingButton", [componentsPath + "/recordingcreator/recordingbutton"], returnFirstDependency); define("recordingHelper", [componentsPath + "/recordingcreator/recordinghelper"], returnFirstDependency); define("subtitleEditor", [componentsPath + "/subtitleeditor/subtitleeditor"], returnFirstDependency); + define("subtitleSync", [componentsPath + "/subtitlesync/subtitlesync"], returnFirstDependency); define("itemIdentifier", [componentsPath + "/itemidentifier/itemidentifier"], returnFirstDependency); define("mediaInfo", [componentsPath + "/mediainfo/mediainfo"], returnFirstDependency); define("itemContextMenu", [componentsPath + "/itemcontextmenu"], returnFirstDependency); diff --git a/src/videoosd.html b/src/videoosd.html index d5c117a4d..72b93aa83 100644 --- a/src/videoosd.html +++ b/src/videoosd.html @@ -1,4 +1,4 @@ -
+
@@ -60,12 +60,6 @@ -
-
- -
-
- From 266ba6ea990b7e6110f560357f51626b51a2e4c3 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 10 Apr 2019 00:10:05 -0700 Subject: [PATCH 025/106] remove unusable resources from emby repository --- src/components/staticbackdrops.js | 129 ------------------------ src/components/themes/appletv/theme.css | 2 +- src/controllers/selectserver.js | 4 +- 3 files changed, 2 insertions(+), 133 deletions(-) delete mode 100644 src/components/staticbackdrops.js diff --git a/src/components/staticbackdrops.js b/src/components/staticbackdrops.js deleted file mode 100644 index f69d0109b..000000000 --- a/src/components/staticbackdrops.js +++ /dev/null @@ -1,129 +0,0 @@ -define([], function () { - 'use strict'; - - function getStaticBackdrops() { - var list = []; - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg1-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg2-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg3-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg4-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg5-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg6-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg7-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg8-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg9-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg10-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg11-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg12-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg13-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg14-1920.jpg', - width: 1920 - } - ]); - - list.push([ - { - url: 'https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/wallpaper/bg15-1920.jpg', - width: 1920 - } - ]); - - return list; - } - - function getRandomInt(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; - } - - function getRandomImageUrl() { - var images = getStaticBackdrops(); - var index = getRandomInt(0, images.length - 1); - return images[index][0].url; - } - - return { - getStaticBackdrops: getStaticBackdrops, - getRandomImageUrl: getRandomImageUrl - }; -}); \ No newline at end of file diff --git a/src/components/themes/appletv/theme.css b/src/components/themes/appletv/theme.css index fe38cc1e0..2342568ce 100644 --- a/src/components/themes/appletv/theme.css +++ b/src/components/themes/appletv/theme.css @@ -55,7 +55,7 @@ html { .backgroundContainer, .dialog { - background: url(https://github.com/MediaBrowser/Emby.Resources/raw/master/images/wallpaper/atv1-1080.png) center center no-repeat #D5E9F2; + background: #D5E9F2; -webkit-background-size: 100% 100%; background-size: 100% 100% } diff --git a/src/controllers/selectserver.js b/src/controllers/selectserver.js index ecb1ee9e3..3fac07cec 100644 --- a/src/controllers/selectserver.js +++ b/src/controllers/selectserver.js @@ -1,4 +1,4 @@ -define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focusManager", "connectionManager", "backdrop", "globalize", "staticBackdrops", "actionsheet", "dom", "material-icons", "flexStyles", "emby-scroller", "emby-itemscontainer", "cardStyle", "emby-button"], function(loading, appRouter, layoutManager, appSettings, appHost, focusManager, connectionManager, backdrop, globalize, staticBackdrops, actionSheet, dom) { +define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focusManager", "connectionManager", "globalize", "actionsheet", "dom", "material-icons", "flexStyles", "emby-scroller", "emby-itemscontainer", "cardStyle", "emby-button"], function(loading, appRouter, layoutManager, appSettings, appHost, focusManager, connectionManager, globalize, actionSheet, dom) { "use strict"; function renderSelectServerItems(view, servers) { @@ -117,11 +117,9 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu var servers; layoutManager.desktop; updatePageStyle(view, params); - var backdropUrl = staticBackdrops.getRandomImageUrl(); view.addEventListener("viewshow", function(e) { var isRestored = e.detail.isRestored; appRouter.setTitle(null); - backdrop.setBackdrop(backdropUrl); if (!isRestored) loadServers(); }), view.querySelector(".servers").addEventListener("click", function(e) { var card = dom.parentWithClass(e.target, "card"); From 35ef6a4fd509962c0faeeb8bceb0ebe83d2ec583 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 10 Apr 2019 00:47:58 -0700 Subject: [PATCH 026/106] deminify select server controller --- src/controllers/selectserver.js | 112 ++++++++++++++++++++++---------- 1 file changed, 78 insertions(+), 34 deletions(-) diff --git a/src/controllers/selectserver.js b/src/controllers/selectserver.js index 3fac07cec..e36ef832b 100644 --- a/src/controllers/selectserver.js +++ b/src/controllers/selectserver.js @@ -11,56 +11,93 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu id: server.Id, server: server } - }), - html = items.map(function(item) { + }); + var html = items.map(function(item) { var cardImageContainer; - cardImageContainer = item.showIcon ? '' + item.icon + "" : '
'; + if (item.showIcon) { + cardImageContainer = '' + item.icon + ""; + } else { + cardImageContainer = '
'; + } var cardBoxCssClass = "cardBox"; - layoutManager.tv && (cardBoxCssClass += " cardBox-focustransform"); + if (layoutManager.tv) { + cardBoxCssClass += " cardBox-focustransform"; + } var innerOpening = '
'; - return '
" - }).join(""), - itemsContainer = view.querySelector(".servers"); - items.length || (html = "

" + globalize.translate("MessageNoServersAvailableToConnect") + "

"), itemsContainer.innerHTML = html, loading.hide() + var cardContainer = ''; + cardContainer += '
'; + return cardContainer; + }).join(""); + var itemsContainer = view.querySelector(".servers"); + if (!items.length) { + html = '

' + globalize.translate("MessageNoServersAvailableToConnect") + "

"; + } + itemsContainer.innerHTML = html; + loading.hide(); } function updatePageStyle(view, params) { - "1" == params.showuser ? (view.classList.add("libraryPage"), view.classList.remove("standalonePage"), view.classList.add("noSecondaryNavPage")) : (view.classList.add("standalonePage"), view.classList.remove("libraryPage"), view.classList.remove("noSecondaryNavPage")) + if (params.showuser == "1") { + view.classList.add("libraryPage"); + view.classList.remove("standalonePage"); + view.classList.add("noSecondaryNavPage"); + } else { + view.classList.add("standalonePage"); + view.classList.remove("libraryPage"); + view.classList.remove("noSecondaryNavPage"); + } } function showGeneralError() { - loading.hide(), alertText(globalize.translate("DefaultErrorMessage")) + loading.hide(); + alertText(globalize.translate("DefaultErrorMessage")); } function alertText(text) { alertTextWithOptions({ text: text - }) + }); } function alertTextWithOptions(options) { require(["alert"], function(alert) { - alert(options) - }) + alert(options); + }); } function showServerConnectionFailure() { - alertText(globalize.translate("MessageUnableToConnectToServer"), globalize.translate("HeaderConnectionFailure")) + alertText(globalize.translate("MessageUnableToConnectToServer"), globalize.translate("HeaderConnectionFailure")); } return function(view, params) { function connectToServer(server) { - loading.show(), connectionManager.connectToServer(server, { + loading.show(); + connectionManager.connectToServer(server, { enableAutoLogin: appSettings.enableAutoLogin() }).then(function(result) { loading.hide(); var apiClient = result.ApiClient; switch (result.State) { case "SignedIn": - Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient), Dashboard.navigate("home.html"); + Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient); + Dashboard.navigate("home.html"); break; case "ServerSignIn": - Dashboard.onServerChanged(null, null, apiClient), Dashboard.navigate("login.html?serverid=" + result.Servers[0].Id); + Dashboard.onServerChanged(null, null, apiClient); + Dashboard.navigate("login.html?serverid=" + result.Servers[0].Id); break; case "ServerUpdateNeeded": alertTextWithOptions({ @@ -69,17 +106,17 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu }); break; default: - showServerConnectionFailure() + showServerConnectionFailure(); } }) } function deleteServer(server) { - loading.show(), connectionManager.deleteServer(server.Id).then(function() { - loading.hide(), loadServers() - }, function() { - loading.hide(), loadServers() - }) + loading.show(); + connectionManager.deleteServer(server.Id).then(function() { + loading.hide(); + loadServers(); + }); } function onServerClick(server) { @@ -87,7 +124,8 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu menuItems.push({ name: globalize.translate("Connect"), id: "connect" - }), menuItems.push({ + }); + menuItems.push({ name: globalize.translate("Delete"), id: "delete" }); @@ -106,31 +144,37 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu } function onServersRetrieved(result) { - servers = result, renderSelectServerItems(view, result), layoutManager.tv && focusManager.autoFocus(view) + servers = result; + renderSelectServerItems(view, result); + if (layoutManager.tv) { + focusManager.autoFocus(view); + } } function loadServers() { - loading.show(), connectionManager.getAvailableServers().then(onServersRetrieved, function(result) { - onServersRetrieved([]) - }) + loading.show(); + connectionManager.getAvailableServers().then(onServersRetrieved); } + var servers; - layoutManager.desktop; updatePageStyle(view, params); + view.addEventListener("viewshow", function(e) { var isRestored = e.detail.isRestored; appRouter.setTitle(null); if (!isRestored) loadServers(); - }), view.querySelector(".servers").addEventListener("click", function(e) { + }); + view.querySelector(".servers").addEventListener("click", function(e) { var card = dom.parentWithClass(e.target, "card"); if (card) { var url = card.getAttribute("data-url"); - if (url) appRouter.show(url); - else { + if (url) { + appRouter.show(url); + } else { var id = card.getAttribute("data-id"); onServerClick(servers.filter(function(s) { - return s.Id === id - })[0]) + return s.Id === id; + })[0]); } } }) From dbca80b0b3228a67da1e1d6cb17a805aacb5bdfd Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 10 Apr 2019 00:50:16 -0700 Subject: [PATCH 027/106] fix error message placement --- src/selectserver.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/selectserver.html b/src/selectserver.html index 748a5bbdb..1ddab3e6d 100644 --- a/src/selectserver.html +++ b/src/selectserver.html @@ -3,7 +3,7 @@

${HeaderSelectServer}

-
+
From fa998abfbcb6ac7280150fd933069d67b10eaed2 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 10 Apr 2019 00:51:02 -0700 Subject: [PATCH 028/106] update string to remove a connect reference --- src/controllers/selectserver.js | 2 +- src/strings/ar.json | 1 - src/strings/ca.json | 1 - src/strings/cs.json | 1 - src/strings/da.json | 1 - src/strings/de.json | 1 - src/strings/el.json | 1 - src/strings/en-us.json | 2 +- src/strings/es-mx.json | 1 - src/strings/es.json | 1 - src/strings/fr.json | 1 - src/strings/hr.json | 1 - src/strings/kk.json | 1 - src/strings/ko.json | 1 - src/strings/nb.json | 1 - src/strings/nl.json | 1 - src/strings/pl.json | 1 - src/strings/pt-br.json | 1 - src/strings/pt-pt.json | 1 - src/strings/ru.json | 1 - src/strings/sv.json | 1 - src/strings/zh-cn.json | 1 - 22 files changed, 2 insertions(+), 22 deletions(-) diff --git a/src/controllers/selectserver.js b/src/controllers/selectserver.js index e36ef832b..385ab69ca 100644 --- a/src/controllers/selectserver.js +++ b/src/controllers/selectserver.js @@ -43,7 +43,7 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu }).join(""); var itemsContainer = view.querySelector(".servers"); if (!items.length) { - html = '

' + globalize.translate("MessageNoServersAvailableToConnect") + "

"; + html = '

' + globalize.translate("MessageNoServersAvailable") + "

"; } itemsContainer.innerHTML = html; loading.hide(); diff --git a/src/strings/ar.json b/src/strings/ar.json index 4ca4e3770..499bab9d0 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -635,7 +635,6 @@ "MessageNoAvailablePlugins": "لا توجد أي ملحقات.", "MessageNoMovieSuggestionsAvailable": "لا يوجد حالياً اقتراحات افلام. إبداً بمشاهدة وتقييم الأفلام ثم عاود زيارة هذه الصفحة لمشاهدة المقترحات.", "MessageNoPluginsInstalled": "ليس عندك أي ملحقات مثبتة.", - "MessageNoServersAvailableToConnect": "لا توجد أية خوادم للإتصال بها. إذا كنت قد دعيت إلى خادم ما، تأكد أنك قبلت الدعوة أو الدخول على الرابط المرسل في بريد الدعوة.", "MessageNoTrailersFound": "لم يتم إيجاد أي عروض إعلانية. قم بتثبيت قناة العروض الإعلانية لتحسين متعة المشاهدة بإضافة مكتبة عروض إعلانية من الإنترنت.", "MessageNothingHere": "لا شىء هنا.", "MessagePasswordResetForUsers": "لقد تم حذف كلمات السر الخاصة بالمستخدمين التاليين. لتسجيل الدخول، يجب استخدام كلمة سرية فارغة.", diff --git a/src/strings/ca.json b/src/strings/ca.json index 4b80ce853..7b2e25587 100644 --- a/src/strings/ca.json +++ b/src/strings/ca.json @@ -487,7 +487,6 @@ "MessageNoAvailablePlugins": "No hi ha extensions disponibles.", "MessageNoMovieSuggestionsAvailable": "Per ara no hi ha suggerències de pel·lícules. Comença a veure i valorar les teves pel·lícules i llavors torna aquí per veure les teves recomanacions.", "MessageNoPluginsInstalled": "No tens cap complement instal·lat.", - "MessageNoServersAvailableToConnect": "No hi ha servidors disponibles als que connectar-se. Si has estat convidat a compartir un servidor assegura't d'acceptar-ho aquí sota o fent clic a l'enllaç del correu electrònic.", "MessageNoTrailersFound": "No s'han trobat tràilers. Instal·la el canal Trailer per millorar la teva experiència amb les pel·lícules afegint una llibreria de tràilers d'internet.", "MessageNothingHere": "Res aquí.", "MessagePleaseEnsureInternetMetadata": "Si et plau, assegura't que la descàrrega de metadades d'internet està habilitada.", diff --git a/src/strings/cs.json b/src/strings/cs.json index a16879447..62b4d59ce 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -811,7 +811,6 @@ "MessageNoAvailablePlugins": "Nejsou dostupné žádné zásuvné moduly.", "MessageNoMovieSuggestionsAvailable": "Žádné návrhy nejsou v současnosti k dispozici. Začněte sledovat a hodnotit filmy, a pak se vám doporučení zobrazí.", "MessageNoPluginsInstalled": "Nemáte instalovány žádné zásuvné moduly.", - "MessageNoServersAvailableToConnect": "Žádné servery nejsou k dispozici. Pokud jste byli pozváni na sdílený server, ujistěte se, že jste pozvánku níže akceptovali nebo klikly na odkaz v e-mailu.", "MessageNoTrailersFound": "Nebyly nalezeny žádné ukázky z filmů (trailery). Nainstalujte trailer kanál pro lepší zážitek z filmu přidáním knihovny internetových trailerů.", "MessageNothingHere": "Tady nic není.", "MessagePasswordResetForUsers": "Hesla byly odstraněny pro následující uživatele. Pro přihlášení se přihlaste s prázdným heslem.", diff --git a/src/strings/da.json b/src/strings/da.json index 9bbda656e..77d79ec5b 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -746,7 +746,6 @@ "MessageNoAvailablePlugins": "Ingen tilgængelige plugins.", "MessageNoMovieSuggestionsAvailable": "Ingen filmforslag er tilgængelige. Begynd at se og vurder dine film, og kom tilbage for at se dine anbefalinger.", "MessageNoPluginsInstalled": "Du har ingen plugins installeret.", - "MessageNoServersAvailableToConnect": "Der er ingen servere, der kan forbindes til. Hvis du er blevet inviteret til at dele en server, skal du acceptere nedenfor eller klikke på linket i e-mailen.", "MessageNoTrailersFound": "Ingen trailere fundet. Installer Trailer kanalen for at tilføje et bibliotek med trailere fra internettet.", "MessageNothingHere": "Her er ingenting.", "MessagePasswordResetForUsers": "Adgangskoder blev fjernet for følgende brugere. For at logge ind, skal der benyttes en blank adgangskode.", diff --git a/src/strings/de.json b/src/strings/de.json index 6c93871eb..cd21f22ef 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -880,7 +880,6 @@ "MessageNoAvailablePlugins": "Keine verfügbaren Erweiterungen.", "MessageNoMovieSuggestionsAvailable": "Momentan sind keine Filmvorschläge verfügbar. Schaue und bewerte zuerst deine Filme. Komme danach zurück, um deine Filmvorschläge anzuschauen.", "MessageNoPluginsInstalled": "Du hast keine Plugins installiert.", - "MessageNoServersAvailableToConnect": "Es steht kein verbindungsbereiter Server zur Verfügung. Wenn du eingeladen wurdest, vergewissere dich, dass du die Einladung weiter unten akzeptierst oder den Link in der E-Mail angeklickt hast.", "MessageNoTrailersFound": "Keine Trailer gefunden. Installieren Sie den Trailer-Channel um Ihre Film-Bibliothek mit Trailer aus dem Internet zu erweitern.", "MessageNothingHere": "Nichts hier.", "MessagePasswordResetForUsers": "Passwörter wurden für die folgenden Benutzer entfernt. Zur Anmeldung verwenden Sie kein Passwort.", diff --git a/src/strings/el.json b/src/strings/el.json index 325ab2fbc..f0a3aa85b 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -784,7 +784,6 @@ "MessageNoAvailablePlugins": "Δεν υπάρχουν διαθέσιμα plugins.", "MessageNoMovieSuggestionsAvailable": "Δεν υπάρχουν διαθέσιμες προτάσεις ταινιών. Αρχίστε να παρακολουθείτε και να αξιολογείτε τις ταινίες σας και μετά επιστρέψτε για να δείτε τις συστάσεις σας.", "MessageNoPluginsInstalled": "Δεν έχετε εγκαταστήσει πρόσθετα.", - "MessageNoServersAvailableToConnect": "Δεν υπάρχουν διαθέσιμοι διακομιστές για σύνδεση. Αν έχετε προσκληθεί να μοιραστείτε ένα διακομιστή, βεβαιωθείτε ότι το αποδεχθήκατε παρακάτω ή κάνοντας κλικ στο σύνδεσμο του μηνύματος ηλεκτρονικού ταχυδρομείου.", "MessageNoTrailersFound": "Δεν βρέθηκαν trailer. Εγκαταστήστε το κανάλι trailer για να βελτιώσετε την εμπειρία κινηματογράφου σας με την προσθήκη μιας βιβλιοθήκης με internet trailers .", "MessageNothingHere": "Τίποτα εδώ ", "MessagePasswordResetForUsers": "Οι κωδικοί πρόσβασης έχουν καταργηθεί για τους ακόλουθους χρήστες. Για να συνδεθείτε, συνδεθείτε με έναν κενό κωδικό πρόσβασης.", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index d39c7f9ea..5b25db8a5 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -964,7 +964,7 @@ "MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, and albums Albums. Click the + button to start creating collections.", "MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.", "MessageNoPluginsInstalled": "You have no plugins installed.", - "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessageNoServersAvailable": "No servers have been found using the automatic server discovery.", "MessageNoTrailersFound": "No trailers found. Install the Trailer channel to enhance your movie experience by adding a library of internet trailers.", "MessageNothingHere": "Nothing here.", "MessagePasswordResetForUsers": "The following users have had their passwords reset. They can now sign in with the PIN codes that were used to perform the reset.", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 445ba02c6..84986d1af 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -929,7 +929,6 @@ "MessageNoAvailablePlugins": "No hay complementos disponibles.", "MessageNoMovieSuggestionsAvailable": "No hay sugerencias de películas disponibles en este momento. Comienza a ver y a calificar tus películas, y regresa para ver tus recomendaciones.", "MessageNoPluginsInstalled": "No tienes extensiones instaladas.", - "MessageNoServersAvailableToConnect": "No hay servidores disponibles para conectarse. Si se le ha invitado a compartir un servidor, asegúrese de aceptarlo aquí abajo o haciendo clic en la liga del correo electrónico.", "MessageNoTrailersFound": "No se encontraron tráilers. Instale el canal de tráilers para mejorar su experiencia con películas al agregar una biblioteca de tráilers desde el Internet.", "MessageNothingHere": "Nada aquí.", "MessagePasswordResetForUsers": "Las contraseñas han sido eliminadas para los siguientes usuarios. Para acceder, inicie sesión con la contraseña en blanco.", diff --git a/src/strings/es.json b/src/strings/es.json index 9130571ee..16b156dd3 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -850,7 +850,6 @@ "MessageNoAvailablePlugins": "No hay plugins disponibles.", "MessageNoMovieSuggestionsAvailable": "No hay sugerencias de películas disponibles. Comience ver y calificar sus películas y vuelva para ver las recomendaciones.", "MessageNoPluginsInstalled": "No tiene plugins instalados.", - "MessageNoServersAvailableToConnect": "No hay servidores disponibles para conectarse. Si te han invitado a unirte a un servidor, asegúrate de aceptar aquí abajo o haciendo clic en el enlace del correo.", "MessageNoTrailersFound": "No se han encontrado tráilers. Instala el canal de tráilers para mejorar su experiencia añadiendo una biblioteca de tráilers por internet.", "MessageNothingHere": "Nada aquí.", "MessagePasswordResetForUsers": "Las contraseñas se han eliminado para los siguientes usuarios. Para iniciar sesión, hazlo sin contraseña.", diff --git a/src/strings/fr.json b/src/strings/fr.json index 171837cce..936bce527 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -926,7 +926,6 @@ "MessageNoAvailablePlugins": "Aucune extension disponible.", "MessageNoMovieSuggestionsAvailable": "Aucune suggestion de film n'est actuellement disponible. Commencez à regarder et à noter vos films pour avoir des suggestions.", "MessageNoPluginsInstalled": "Vous n'avez aucune extension installée.", - "MessageNoServersAvailableToConnect": "Connexion impossible, aucun serveur disponible. Si vous avez été invité à partager un serveur, veuillez accepter ci-dessous ou en cliquant sur le lien dans le courriel.", "MessageNoTrailersFound": "Aucune bande-annonce trouvée. Installez la chaîne Trailers pour améliorer votre expérience, par l'ajout d'une médiathèque de bandes-annonces disponibles sur Internet.", "MessageNothingHere": "Il n'y a rien ici.", "MessagePasswordResetForUsers": "Les mot de passes ont été supprimés pour les utilisateurs suivants. Pour vous connecter, identifiez-vous avec un mot de passe vide.", diff --git a/src/strings/hr.json b/src/strings/hr.json index 7fa4a990f..3403af10f 100644 --- a/src/strings/hr.json +++ b/src/strings/hr.json @@ -685,7 +685,6 @@ "MessageNoAvailablePlugins": "Nema odgovarajućih dodataka.", "MessageNoMovieSuggestionsAvailable": "Filmski prijedlozi nisu trenutno dostupni. Počnite s gledanjem i ocjenjivanjem svoje filmove, a zatim se vratite da biste vidjeli svoje preporuke.", "MessageNoPluginsInstalled": "Nemate instaliranih dodataka.", - "MessageNoServersAvailableToConnect": "Nema poslužitelja dostupnih za povezivanje. Ako ste pozvani da dijelite poslužitelj, provjerite da li ste ga prihvatili ispod ili klikom na link u e-pošti.", "MessageNoTrailersFound": "Nisu pronađeni kratki videi. Postavite kanal kratkih filmova kako biste poboljšali svoj filmski doživljaj dodavanjem kratkih filmova sa internet biblioteke.", "MessageNothingHere": "Ništa ovdje.", "MessagePasswordResetForUsers": "Lozinke su uklonjene za sljedeće korisnike. Za prijavu, prijavite se s praznom lozinkom.", diff --git a/src/strings/kk.json b/src/strings/kk.json index 6e19e43eb..7dcbce6e4 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -946,7 +946,6 @@ "MessageNoAvailablePlugins": "Qol jetimdi plagınder joq.", "MessageNoMovieSuggestionsAvailable": "Eshqandaı fılm usynystary aǵymda qol jetimdi emes. Fılmderdi qaraýdy jáne baǵalaýdy bastańyz, sonda arnalǵan usynytaryńyzdy kórý úshin qaıta kelińiz.", "MessageNoPluginsInstalled": "Ornatylǵan plagınder joq.", - "MessageNoServersAvailableToConnect": "Qosylý úshin eshqandaı serverler qol jetimdi emes. Eger servermen ortaqtasýǵa shaqyrylsańyz, qabyldaýyn tómende nemese e-poshtadaǵy siltemeni nuqyp naqtylańyz.", "MessageNoTrailersFound": "Treılerler tabylmady. Internet-treılerler tasyǵyshhanasyn ústep fılm áserin jaqsartý úshin Treıler arnasyn ornatyńyz.", "MessageNothingHere": "Osynda eshteme joq.", "MessagePasswordResetForUsers": "Parólder mynadaı paıdalanýshylar úshin alastaldy. Júıege úshin, bos parólben kirińiz.", diff --git a/src/strings/ko.json b/src/strings/ko.json index 530277bb8..aa6cac555 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -527,7 +527,6 @@ "MessageItemsAdded": "항목 추가됨", "MessageNoMovieSuggestionsAvailable": "현재 추천 영화를 사용할 수 없습니다. 영화 보기를 시작하고 평가를 하면 추천을 볼 수 있습니다.", "MessageNoPluginsInstalled": "설치된 플러그인이 없습니다.", - "MessageNoServersAvailableToConnect": "연결할 수 있는 서버가 없습니다. 공유 서버에 초대를 받았다면 아래에서 승인을 확인하거나 이메일의 링크를 클릭하세요.", "MessageNoTrailersFound": "예고편이 없습니다. 예고편 채널을 설치하여 인터넷 예고편 라이브러리를 추가하면 향상된 영화 환경을 경험할 수 있습니다.", "MessageNothingHere": "아무것도 없습니다.", "MessagePasswordResetForUsers": "다음 사용자의 비밀번호가 삭제되었습니다. 빈 비밀번호로 로그인하세요.", diff --git a/src/strings/nb.json b/src/strings/nb.json index e0bdcaaa0..aa5130525 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -749,7 +749,6 @@ "MessageNoAvailablePlugins": "Ingen tilgjengelige programtillegg.", "MessageNoMovieSuggestionsAvailable": "Ingen film forslag er foreløpig tilgjengelig. Start med å se og ranger filmer. Kom deretter tilbake for å få forslag på anbefalinger.", "MessageNoPluginsInstalled": "Du har ingen programtillegg installert.", - "MessageNoServersAvailableToConnect": "Ingen servere tilgjengelig for å koble til. Hvis du har blitt invitert til å dele en server, må du akseptere den nedenfor eller ved å klikke på lenken i e-posten.", "MessageNoTrailersFound": "Ingen trailere funnet. Installer Trailer tillegget for å forbedre filmopplevelsen ved å legge til et bibliotek med internet-trailere.", "MessageNothingHere": "Ingeting her.", "MessagePasswordResetForUsers": "Passord har blitt fjernet fra følgende brukere. For å logge inn bruk et passord.", diff --git a/src/strings/nl.json b/src/strings/nl.json index f6b8e4597..31eaf3d56 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -875,7 +875,6 @@ "MessageNoAvailablePlugins": "Geen beschikbare Plugins.", "MessageNoMovieSuggestionsAvailable": "Er zijn momenteel geen film suggesties beschikbaar. Begin met het bekijken en waardeer uw films, kom daarna terug om uw aanbevelingen te bekijken.", "MessageNoPluginsInstalled": "U heeft geen Plugins geïnstalleerd.", - "MessageNoServersAvailableToConnect": "Er zijn geen servers beschikbaar om mee te verbinden. Als u uitgenodigd bent om een server te delen accepteer dit hieronder of door op de link in het e-mailbericht te klikken.", "MessageNoTrailersFound": "Geen trailers gevonden. Installeer het Trailers kanaal en verbeter uw film ervaring door middel van een bibliotheek met internet trailers.", "MessageNothingHere": "Lijst is leeg.", "MessagePasswordResetForUsers": "Wachtwoorden van de volgende gebruikers zijn verwijderd. Gebruik een leeg wachtwoord om aan te melden.", diff --git a/src/strings/pl.json b/src/strings/pl.json index 7e41d6ca9..6a5d38d90 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -939,7 +939,6 @@ "MessageNoAvailablePlugins": "Brak dostępnych wtyczek.", "MessageNoMovieSuggestionsAvailable": "Brak aktualnie polecanych filmów. Zacznij oglądać i oceniać filmy, następnie wróć, aby obejrzeć swoje rekomendacje.", "MessageNoPluginsInstalled": "Brak zainstalowanych wtyczek.", - "MessageNoServersAvailableToConnect": "Brak serwerów dostępnych do połączenia. Jeśli zostałeś zaproszony do korzystania z serwera, upewnij się, że je zaakceptowałeś poniżej lub za naciskając na łącze w wiadomości pocztowej.", "MessageNoTrailersFound": "Brak dostępnych zwiastunów. Zainstaluj wtyczkę Trailer Channel, aby ulepszyć swoje doświadczenie kinowe, dodając zwiastuny z internetu do biblioteki.", "MessageNothingHere": "Nic tutaj nie ma.", "MessagePasswordResetForUsers": "Hasła następujących użytkowników zostały usunięte. W celu zalogowania, użyj pustego hasła.", diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index 68aba833c..054581eb2 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -913,7 +913,6 @@ "MessageNoAvailablePlugins": "Não existem plugins disponíveis.", "MessageNoMovieSuggestionsAvailable": "Não existem sugestões de filmes disponíveis atualmente. Comece por assistir e avaliar seus filmes e, então, volte para verificar suas recomendações.", "MessageNoPluginsInstalled": "Você não possui plugins instalados.", - "MessageNoServersAvailableToConnect": "Nenhum servidor disponível para se conectar. Se foi convidado para compartilhar um servidor, aceite abaixo ou clicando no link no email.", "MessageNoTrailersFound": "Nenhum trailer encontrado. Instale o canal Trailer para melhorar sua experiência com filmes, adicionando uma biblioteca de trailers da internet.", "MessageNothingHere": "Nada aqui.", "MessagePasswordResetForUsers": "As senhas foram removidas dos seguintes usuários. Para entrar, acesse com uma senha em branco.", diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json index b45874af3..9dbca9bfc 100644 --- a/src/strings/pt-pt.json +++ b/src/strings/pt-pt.json @@ -534,7 +534,6 @@ "MessageNoAvailablePlugins": "Sem extensões disponíveis.", "MessageNoMovieSuggestionsAvailable": "Não existem sugestões de filmes disponíveis atualmente. Comece por assistir e avaliar seus filmes e, então, volte para verificar suas recomendações.", "MessageNoPluginsInstalled": "Você não possui plugins instalados.", - "MessageNoServersAvailableToConnect": "Nenhum servidor disponível para conexão. Se foi convidado a compartilhar um servidor, confirme aceitando abaixo ou clicando no link em seu email.", "MessageNoTrailersFound": "Nenhum trailer encontrado. Instale o canal Trailer para melhorar sua experiência com filmes, adicionando uma biblioteca de trailers da internet.", "MessageNothingHere": "Nada aqui.", "MessagePasswordResetForUsers": "As senhas foram removidas dos seguintes utilizadores. Para entrar, acesse com uma senha em branco", diff --git a/src/strings/ru.json b/src/strings/ru.json index 673942bc0..13dc7e7b7 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -946,7 +946,6 @@ "MessageNoAvailablePlugins": "Плагинов не имеется.", "MessageNoMovieSuggestionsAvailable": "В настоящее время предложений фильмов не имеются. Начните смотреть и оценивать свои фильмы, а затем вернитесь, чтобы просмотреть рекомендации.", "MessageNoPluginsInstalled": "Нет установленных плагинов.", - "MessageNoServersAvailableToConnect": "Не имеется серверов для подсоединения. Если вы получили приглашение к совместному доступу к серверу, то подтвердите, что приняли его ниже, или щёлкнув по ссылке в э-почте.", "MessageNoTrailersFound": "Трейлеры не найдены. Установите канал трейлеров, чтобы повысить своё впечатление от фильма путём добавления собрания интернет-трейлеров.", "MessageNothingHere": "Здесь ничего нет.", "MessagePasswordResetForUsers": "Пароли были изъяты у следующих пользователей. Входите с пустым паролем.", diff --git a/src/strings/sv.json b/src/strings/sv.json index 58d8ffed1..405ad4396 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -877,7 +877,6 @@ "MessageNoAvailablePlugins": "Inga tillägg tillgängliga.", "MessageNoMovieSuggestionsAvailable": "Det finns inga filmförslag för tillfället. Efter att ha sett ett antal filmer kan du återkomma hit för att se dina förslag.", "MessageNoPluginsInstalled": "Inga tillägg har installerats.", - "MessageNoServersAvailableToConnect": "Inga servers finns tillgängliga att ansluta mot. Om du har blivit inbjuden till att dela en server, se till att acceptera nedan eller klicka på länken i mailet.", "MessageNoTrailersFound": "Hittade inga trailers. Installera Trailer-kanalen och öka biokänslan genom att lägga till ett bibliotek av trailers.", "MessageNothingHere": "Ingenting här.", "MessagePasswordResetForUsers": "Lösenord har tagots bort från följande användare. För att logga in, använd ett blankt lösenord.", diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 362e9cf39..3741c4a8e 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -895,7 +895,6 @@ "MessageNoAvailablePlugins": "没有可用的插件。", "MessageNoMovieSuggestionsAvailable": "没有可用的电影建议。开始观看你的电影并进行评分,再回过头来查看你的建议。", "MessageNoPluginsInstalled": "你没有安装插件。", - "MessageNoServersAvailableToConnect": "没有服务器可以连接。如果你收到一个服务器共享邀请,请确保你已经通过点击下方按钮或发送到你邮箱内的链接以接受邀请。", "MessageNoTrailersFound": "未发现任何预告片。安装 Trailer channel 以通过添加一个网络预告片媒体库来增强你的电影体验。", "MessageNothingHere": "这里没有可显示的内容。", "MessagePasswordResetForUsers": "下列用户的密码已经被移除,之后请使用空密码登录。", From 58dd96bdea77146b7e020e62683f5cb473645893 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 10 Apr 2019 01:07:26 -0700 Subject: [PATCH 029/106] remove old require statement for staticbackdrops --- src/scripts/site.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index f984f20eb..48be8ef9a 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -674,7 +674,6 @@ var AppInfo = {}; var paths = { velocity: bowerPath + "/velocity/velocity.min", vibrant: bowerPath + "/vibrant/dist/vibrant", - staticBackdrops: componentsPath + "/staticbackdrops", ironCardList: "components/ironcardlist/ironcardlist", scrollThreshold: "components/scrollthreshold", playlisteditor: "components/playlisteditor/playlisteditor", From 75009450e7a53a4c26795e3b32de78d3512feddd Mon Sep 17 00:00:00 2001 From: DrPandemic Date: Wed, 10 Apr 2019 22:40:11 -0400 Subject: [PATCH 030/106] Logout cleans session --- src/bower_components/apiclient/apiclientcore.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bower_components/apiclient/apiclientcore.js b/src/bower_components/apiclient/apiclientcore.js index ee8e1c79e..2ee75beb2 100644 --- a/src/bower_components/apiclient/apiclientcore.js +++ b/src/bower_components/apiclient/apiclientcore.js @@ -303,6 +303,7 @@ define(["events", "appStorage"], function(events, appStorage) { }, ApiClient.prototype.logout = function() { stopBitrateDetection(this), this.closeWebSocket(); var done = function() { + appStorage.removeItem("user-" + this._currentUser.Id + "-" + this._currentUser.ServerId) this.setAuthenticationInfo(null, null) }.bind(this); if (this.accessToken()) { From 0a59b836c036866cfe77f46e8016bfa6e7455e31 Mon Sep 17 00:00:00 2001 From: redSpoutnik <15638041+redSpoutnik@users.noreply.github.com> Date: Sat, 13 Apr 2019 09:17:03 +0200 Subject: [PATCH 031/106] replace arrow functions by function expresions --- src/components/htmlvideoplayer/plugin.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index ca132ce15..7d5fcaeda 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -565,7 +565,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource); Array.from(videoElement.textTracks) - .filter((trackElement) => { + .filter(function(trackElement) { if (customTrackIndex === -1 ) { // get showing .vtt textTacks return trackElement.mode === 'showing'; @@ -574,9 +574,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return ("textTrack" + customTrackIndex) === trackElement.id; } }) - .forEach(trackElement => { + .forEach(function(trackElement) { - var track = mediaStreamTextTracks.filter((stream) => { + var track = mediaStreamTextTracks.filter(function(stream) { return ("textTrack" + stream.Index) === trackElement.id; })[0]; @@ -609,7 +609,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa if(currentTrack.cues) { Array.from(currentTrack.cues) - .forEach((cue) => { + .forEach(function(cue) { cue.startTime -= offsetValue; cue.endTime -= offsetValue; }); From a18160ae4b5b9cfae73c75320fdbe5d95280c470 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Thu, 18 Apr 2019 01:18:18 +0300 Subject: [PATCH 032/106] Adding new themes with rounded layout --- src/components/skinManager.js | 3 + src/components/themes/purple-haze/bg.jpg | Bin 0 -> 300045 bytes src/components/themes/purple-haze/theme.css | 476 ++++++++++++++++++++ 3 files changed, 479 insertions(+) create mode 100644 src/components/themes/purple-haze/bg.jpg create mode 100644 src/components/themes/purple-haze/theme.css diff --git a/src/components/skinManager.js b/src/components/skinManager.js index a9af80a87..7bca4e283 100644 --- a/src/components/skinManager.js +++ b/src/components/skinManager.js @@ -64,6 +64,9 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr }, { name: "Light (Red Accent)", id: "light-red" + }, { + name: "Purple Haze", + id: "purple-haze" }, { name: "Windows Media Center", id: "wmc" diff --git a/src/components/themes/purple-haze/bg.jpg b/src/components/themes/purple-haze/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f02e5160ff70366793a62108a61567342c6ea3c GIT binary patch literal 300045 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 { + color: inherit; + background: #222 +} + +.emby-select-withcolor:focus { + border-color: #00a4dc !important +} + +.emby-select-tv-withcolor:focus { + background-color: #00a4dc !important; + color: #fff !important +} + +.emby-checkbox:checked+span+span+.checkboxOutline { + border-color: #00a4dc +} + +.emby-checkbox:focus+span+.emby-checkbox-focushelper { + background-color: rgba(0,164,220, .26) +} + +.emby-checkbox:checked+span+span+.checkboxOutline, +.itemProgressBarForeground { + background-color: #00a4dc +} + +.itemProgressBarForeground-recording { + background-color: #CB272A +} + +.countIndicator, +.fullSyncIndicator, +.playedIndicator { + background: #00a4dc +} + +.fullSyncIndicator { + color: #fff +} + +.mainDrawer { + background: rgba(0, 0, 0, .5); +} + +.drawer-open { + background-color: #030322 + +} + +.navMenuOption:hover { + background: rgba(221, 221, 221, 0.068) +} + +.navMenuOption-selected { + background: #AA5CC3 !important; + color: #fff +} + +.emby-button-focusscale:focus { + background: #00a4dc; + color: #fff +} + +.emby-tab-button { + color: #999; + color: rgba(255, 255, 255, .4) +} + +.emby-tab-button-active { + color: #fff +} + +.emby-tab-button-active.emby-button-tv { + color: #fff +} + +.emby-tab-button.emby-button-tv:focus { + color: #00a4dc; + background: 0 0 +} + +.channelPrograms, +.guide-channelHeaderCell, +.programCell { + border-color: rgba(255, 255, 255, .05) +} + +.programCell-sports { + background: #3949AB !important +} + +.programCell-movie { + background: #5E35B1 !important +} + +.programCell-kids { + background: #039BE5 !important +} + +.programCell-news { + background: #43A047 !important +} + +.programCell-active { + background: rgba(0, 0, 0, .4) !important +} + +.guide-channelHeaderCell:focus, +.programCell:focus { + background-color: #00a4dc !important; + color: #fff !important +} + +.guide-programTextIcon { + color: #1e1e1e; + background: #555 +} + +.guide-headerTimeslots { + color: inherit +} + +.guide-date-tab-button { + color: #555; + color: rgba(255, 255, 255, .3) +} + +.guide-date-tab-button.emby-tab-button-active, +.guide-date-tab-button:focus { + color: #00a4dc +} + +.guide-date-tab-button.emby-button-tv:focus { + background-color: #00a4dc; + color: #fff +} + +.itemBackdropFader { + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#181818)); + background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #181818); + background: -o-linear-gradient(rgba(0, 0, 0, 0), #181818); + background: linear-gradient(rgba(0, 0, 0, 0), #181818) +} + +.infoBanner { + color: #ddd; + background: #111; + padding: 1em; + -webkit-border-radius: .25em; + border-radius: .25em +} + +.ratingbutton-icon-withrating { + color: #c33 +} + +.downloadbutton-icon-complete, +.downloadbutton-icon-on { + color: #4285F4 +} + +.playstatebutton-icon-played { + color: #c33 +} + +.repeatButton-active { + color: #4285F4 +} + +.card:focus .card-focuscontent { + border-color: #00a4dc +} + +.layout-desktop ::-webkit-scrollbar { + width: 1em; + height: 1em +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) +} + +::-webkit-scrollbar-track-piece { + background-color: #3b3b3b +} + +::-webkit-scrollbar-thumb:horizontal, +::-webkit-scrollbar-thumb:vertical { + -webkit-border-radius: 2px; + background: center no-repeat #888 +} + +.timeslotHeaders-desktop::-webkit-scrollbar { + height: .7em +} + +.mediaInfoOfficialRating { + border: .09em solid #583fa0; + background-color: #5a1259 +} From 353cf8fa9905a182eb820d624ac07e7fa8b2503f Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Wed, 17 Apr 2019 23:42:53 +0300 Subject: [PATCH 033/106] Readd Missing Strings --- src/strings/en-us.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 93cb21e04..e9eabd074 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -894,6 +894,8 @@ "LanNetworksHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth restrictions. If set, all other IP addresses will be considered to be on the external network and will be subject to the external bandwidth restrictions. If left blank, only the server's subnet is considered to be on the local network.", "Large": "Large", "LatestFromLibrary": "Latest {0}", + "LaunchWebAppOnStartup": "Launch the Jellyfin web app in my web browser when Jellyfin Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Jellyfin Server initially starts. This will not occur when using the restart server function.", "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", "LearnHowYouCanContribute": "Learn how you can contribute.", "LeaveBlankToNotSetAPassword": "Optional - leave blank to set no password", @@ -1060,6 +1062,7 @@ "OptionAutomatic": "Auto", "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "OptionBanner": "Banner", "OptionBlockBooks": "Books", "OptionBlockChannelContent": "Internet Channel Content", "OptionBlockLiveTvChannels": "Live TV Channels", @@ -1129,6 +1132,7 @@ "OptionIsHD": "HD", "OptionIsSD": "SD", "OptionLikes": "Likes", + "OptionList": "List", "OptionLoginAttemptsBeforeLockout": "Determines how many incorrect login attempts can be made before lockout occurs.", "OptionLoginAttemptsBeforeLockoutHelp": "0 means inheriting the default of 3 for non-admin and 5 for admin, -1 disables lockout", "OptionMax": "Max", @@ -1146,6 +1150,8 @@ "OptionPlainVideoItemsHelp": "If enabled, all videos are represented in DIDL as \"object.item.videoItem\" instead of a more specific type, such as \"object.item.videoItem.movie\".", "OptionPlayCount": "Play Count", "OptionPlayed": "Played", + "OptionPoster": "Poster", + "OptionPosterCard": "Poster card", "OptionPremiereDate": "Premiere Date", "OptionProfileAudio": "Audio", "OptionProfilePhoto": "Photo", @@ -1169,6 +1175,8 @@ "OptionSubstring": "Substring", "OptionSunday": "Sunday", "OptionThursday": "Thursday", + "OptionThumb": "Thumb", + "OptionThumbCard": "Thumb card", "OptionTrackName": "Track Name", "OptionTuesday": "Tuesday", "OptionTvdbRating": "Tvdb Rating", From b5db89661a6e581fb385234c2567acc85b5f42c5 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Sat, 20 Apr 2019 20:44:42 +0200 Subject: [PATCH 034/106] Fix fallback culture before login --- src/components/globalize.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/globalize.js b/src/components/globalize.js index 32b6412a4..c41e88584 100644 --- a/src/components/globalize.js +++ b/src/components/globalize.js @@ -127,12 +127,17 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana function loadStrings(options) { var locale = getCurrentLocale(); + var promises = []; + var optionsName;; if (typeof options === 'string') { - return ensureTranslation(allTranslations[options], locale); + optionsName = options; } else { + optionsName = options.name; register(options); - return ensureTranslation(allTranslations[options.name], locale); } + promises.push(ensureTranslation(allTranslations[optionsName], locale)); + promises.push(ensureTranslation(allTranslations[optionsName], fallbackCulture)); + return Promise.all(promises); } var cacheParam = new Date().getTime(); From bdbc5682db39182f0e1a355e3fc6557153d36419 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Sat, 20 Apr 2019 20:48:13 +0200 Subject: [PATCH 035/106] Remove extra semicolon --- src/components/globalize.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/globalize.js b/src/components/globalize.js index c41e88584..aa3a2ef0f 100644 --- a/src/components/globalize.js +++ b/src/components/globalize.js @@ -128,7 +128,7 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana function loadStrings(options) { var locale = getCurrentLocale(); var promises = []; - var optionsName;; + var optionsName; if (typeof options === 'string') { optionsName = options; } else { From 5493667a6c114bcf7ecdaa3d3731e46f2e6b7cb3 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Sat, 20 Apr 2019 14:52:53 -0400 Subject: [PATCH 036/106] Fix server name input type url type is too strict for what should be a host name/address --- src/addserver.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/addserver.html b/src/addserver.html index a17bbcf72..a5c67ddce 100644 --- a/src/addserver.html +++ b/src/addserver.html @@ -3,7 +3,7 @@

${HeaderConnectToServer}

- +
${LabelServerHostHelp}

From df51418753b1de7a72c1a05d33e4ba11f0897da8 Mon Sep 17 00:00:00 2001 From: DrPandemic Date: Mon, 22 Apr 2019 01:04:02 -0400 Subject: [PATCH 037/106] Prevent the rendering of button inside button --- src/components/cardbuilder/cardbuilder.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/components/cardbuilder/cardbuilder.js b/src/components/cardbuilder/cardbuilder.js index d1e502e76..d8c71d461 100644 --- a/src/components/cardbuilder/cardbuilder.js +++ b/src/components/cardbuilder/cardbuilder.js @@ -1267,13 +1267,6 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana var showTitle = options.showTitle === 'auto' ? true : (options.showTitle || item.Type === 'PhotoAlbum' || item.Type === 'Folder'); var overlayText = options.overlayText; - if (forceName && !options.cardLayout) { - - if (overlayText == null) { - overlayText = true; - } - } - var cardImageContainerClass = 'cardImageContainer'; var coveredImage = options.coverImage || imgInfo.coverImage; From 9ee281bfba81257e562a99d5e3c9f6402b2bc6c2 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 22 Apr 2019 09:15:28 -0700 Subject: [PATCH 038/106] deminify scheduled tasks page --- src/controllers/scheduledtaskspage.js | 143 +++++++++++++++++++++----- 1 file changed, 115 insertions(+), 28 deletions(-) diff --git a/src/controllers/scheduledtaskspage.js b/src/controllers/scheduledtaskspage.js index 1580f1a4c..086cc2634 100644 --- a/src/controllers/scheduledtaskspage.js +++ b/src/controllers/scheduledtaskspage.js @@ -3,21 +3,63 @@ define(["jQuery", "loading", "events", "globalize", "serverNotifications", "huma function reloadList(page) { ApiClient.getScheduledTasks({ - isHidden: !1 + isHidden: false }).then(function(tasks) { - populateList(page, tasks), loading.hide() + populateList(page, tasks); + loading.hide(); }) } function populateList(page, tasks) { tasks = tasks.sort(function(a, b) { - return a = a.Category + " " + a.Name, b = b.Category + " " + b.Name, a == b ? 0 : a < b ? -1 : 1 + a = a.Category + " " + a.Name; + b = b.Category + " " + b.Name; + return a == b ? 0 : a < b ? -1 : 1; }); - for (var currentCategory, html = "", i = 0, length = tasks.length; i < length; i++) { + + var currentCategory; + var html = ""; + for (var i = 0; i < tasks.length; i++) { var task = tasks[i]; - task.Category != currentCategory && (currentCategory = task.Category, currentCategory && (html += "

", html += "
"), html += '
', html += '
', html += '

', html += currentCategory, html += "

", 0 === i && (html += '' + globalize.translate("Help") + ""), html += "
", html += '
'), html += '
', html += "", html += 'schedule', html += "", html += '", "Idle" == task.State ? html += '' : "Running" == task.State ? html += '' : html += '', html += "
" + if (task.Category != currentCategory) { + currentCategory = task.Category; + if (currentCategory) { + html += "
"; + html += "
"; + } + html += '
'; + html += '
'; + html += '

'; + html += currentCategory; + html += "

"; + if (i === 0) { + html += '' + globalize.translate("Help") + ""; + } + html += "
"; + html += '
'; + } + html += '
'; + html += ""; + html += 'schedule'; + html += ""; + html += '"; + if (task.State === "Running") { + html += ''; + } else { + html += ''; + } + html += "
"; } - tasks.length && (html += "
", html += "
"), page.querySelector(".divScheduledTasks").innerHTML = html + if (tasks.length) { + html += "
"; + html += "
"; + } + page.querySelector(".divScheduledTasks").innerHTML = html; } function humane_elapsed(firstDateStr, secondDateStr) { @@ -34,8 +76,18 @@ define(["jQuery", "loading", "events", "globalize", "serverNotifications", "huma function getTaskProgressHtml(task) { var html = ""; - if ("Idle" == task.State) task.LastExecutionResult && (html += globalize.translate("LabelScheduledTaskLastRan").replace("{0}", humane_date(task.LastExecutionResult.EndTimeUtc)).replace("{1}", humane_elapsed(task.LastExecutionResult.StartTimeUtc, task.LastExecutionResult.EndTimeUtc)), "Failed" == task.LastExecutionResult.Status ? html += " (" + globalize.translate("LabelFailed") + ")" : "Cancelled" == task.LastExecutionResult.Status ? html += " (" + globalize.translate("LabelCancelled") + ")" : "Aborted" == task.LastExecutionResult.Status && (html += " " + globalize.translate("LabelAbortedByServerShutdown") + "")); - else if ("Running" == task.State) { + if (task.State === "Idle") { + if (task.LastExecutionResult) { + html += globalize.translate("LabelScheduledTaskLastRan").replace("{0}", humane_date(task.LastExecutionResult.EndTimeUtc)).replace("{1}", humane_elapsed(task.LastExecutionResult.StartTimeUtc, task.LastExecutionResult.EndTimeUtc)); + if (task.LastExecutionResult.Status === "Failed") { + html += " (" + globalize.translate("LabelFailed") + ")"; + } else if (task.LastExecutionResult.Status === "Cancelled") { + html += " (" + globalize.translate("LabelCancelled") + ")"; + } else if (task.LastExecutionResult.Status === "Aborted") { + html += " " + globalize.translate("LabelAbortedByServerShutdown") + ""; + } + } + } else if (task.State === "Running") { var progress = (task.CurrentProgressPercentage || 0).toFixed(1); html += '
'; html += '
'; @@ -47,53 +99,88 @@ define(["jQuery", "loading", "events", "globalize", "serverNotifications", "huma } else { html += "" + globalize.translate("LabelStopping") + ""; } - return html + return html; } function updateTaskButton(elem, state) { - "Idle" == state ? (elem.classList.add("btnStartTask"), elem.classList.remove("btnStopTask"), elem.classList.remove("hide"), elem.querySelector("i").innerHTML = "play_arrow", elem.title = globalize.translate("ButtonStart")) : "Running" == state ? (elem.classList.remove("btnStartTask"), elem.classList.add("btnStopTask"), elem.classList.remove("hide"), elem.querySelector("i").innerHTML = "stop", elem.title = globalize.translate("ButtonStop")) : (elem.classList.add("btnStartTask"), elem.classList.remove("btnStopTask"), elem.classList.add("hide"), elem.querySelector("i").innerHTML = "play_arrow", elem.title = globalize.translate("ButtonStart")), $(elem).parents(".listItem")[0].setAttribute("data-status", state) + if (state === "Running") { + elem.classList.remove("btnStartTask"); + elem.classList.add("btnStopTask"); + elem.classList.remove("hide"); + elem.querySelector("i").innerHTML = "stop"; + elem.title = globalize.translate("ButtonStop"); + } else { + elem.classList.add("btnStartTask"); + elem.classList.remove("btnStopTask"); + elem.classList.add("hide"); + elem.querySelector("i").innerHTML = "play_arrow"; + elem.title = globalize.translate("ButtonStart"); + } + $(elem).parents(".listItem")[0].setAttribute("data-status", state); } + return function(view, params) { function updateTasks(tasks) { - for (var i = 0, length = tasks.length; i < length; i++) { + for (var i = 0; i < tasks.length; i++) { var task = tasks[i]; view.querySelector("#taskProgress" + task.Id).innerHTML = getTaskProgressHtml(task); - updateTaskButton(view.querySelector("#btnTask" + task.Id), task.State) + updateTaskButton(view.querySelector("#btnTask" + task.Id), task.State); } } function onPollIntervalFired() { - ApiClient.isMessageChannelOpen() || reloadList(view) + if (!ApiClient.isMessageChannelOpen()) { + reloadList(view); + } } function onScheduledTasksUpdate(e, apiClient, info) { - apiClient.serverId() === serverId && updateTasks(info) + if (apiClient.serverId() === serverId) { + updateTasks(info); + } } function startInterval() { - ApiClient.sendMessage("ScheduledTasksInfoStart", "1000,1000"), pollInterval && clearInterval(pollInterval), pollInterval = setInterval(onPollIntervalFired, 1e4) + ApiClient.sendMessage("ScheduledTasksInfoStart", "1000,1000"); + pollInterval && clearInterval(pollInterval); + pollInterval = setInterval(onPollIntervalFired, 1e4); } function stopInterval() { - ApiClient.sendMessage("ScheduledTasksInfoStop"), pollInterval && clearInterval(pollInterval) + ApiClient.sendMessage("ScheduledTasksInfoStop"); + pollInterval && clearInterval(pollInterval); } + var pollInterval, serverId = ApiClient.serverId(); + $(".divScheduledTasks", view).on("click", ".btnStartTask", function() { - var button = this, - id = button.getAttribute("data-taskid"); + var button = this; + var id = button.getAttribute("data-taskid"); ApiClient.startScheduledTask(id).then(function() { - updateTaskButton(button, "Running"), reloadList(view) + updateTaskButton(button, "Running"); + reloadList(view); }) - }).on("click", ".btnStopTask", function() { - var button = this, - id = button.getAttribute("data-taskid"); + }); + + $(".divScheduledTasks", view).on("click", ".btnStopTask", function() { + var button = this; + var id = button.getAttribute("data-taskid"); ApiClient.stopScheduledTask(id).then(function() { - updateTaskButton(button, ""), reloadList(view) + updateTaskButton(button, ""); + reloadList(view); }) - }), view.addEventListener("viewbeforehide", function() { - events.off(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate), stopInterval() - }), view.addEventListener("viewshow", function() { - loading.show(), startInterval(), reloadList(view), events.on(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate) - }) + }); + + view.addEventListener("viewbeforehide", function() { + events.off(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate); + stopInterval(); + }); + + view.addEventListener("viewshow", function() { + loading.show(); + startInterval(); + reloadList(view); + events.on(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate); + }); } }); From c3b0f2fea661326ef4eb276ae65676ca0ab463ea Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 22 Apr 2019 09:19:31 -0700 Subject: [PATCH 039/106] move docs to new location and update links for tasks --- src/addplugin.html | 2 +- src/controllers/scheduledtaskspage.js | 2 +- src/scheduledtask.html | 2 +- src/useredit.html | 2 +- src/userlibraryaccess.html | 2 +- src/usernew.html | 2 +- src/userparentalcontrol.html | 2 +- src/userpassword.html | 2 +- src/userprofiles.html | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/addplugin.html b/src/addplugin.html index 5d5d5799d..adbf9aa0b 100644 --- a/src/addplugin.html +++ b/src/addplugin.html @@ -8,7 +8,7 @@

diff --git a/src/controllers/scheduledtaskspage.js b/src/controllers/scheduledtaskspage.js index 086cc2634..0f0fc715f 100644 --- a/src/controllers/scheduledtaskspage.js +++ b/src/controllers/scheduledtaskspage.js @@ -33,7 +33,7 @@ define(["jQuery", "loading", "events", "globalize", "serverNotifications", "huma html += currentCategory; html += ""; if (i === 0) { - html += '' + globalize.translate("Help") + ""; + html += '' + globalize.translate("Help") + ""; } html += "
"; html += '
'; diff --git a/src/scheduledtask.html b/src/scheduledtask.html index 75a70e779..ad47d8eb4 100644 --- a/src/scheduledtask.html +++ b/src/scheduledtask.html @@ -5,7 +5,7 @@ diff --git a/src/useredit.html b/src/useredit.html index 764c4adb1..1efaff555 100644 --- a/src/useredit.html +++ b/src/useredit.html @@ -6,7 +6,7 @@ diff --git a/src/userlibraryaccess.html b/src/userlibraryaccess.html index bcf729acf..2a21c2f41 100644 --- a/src/userlibraryaccess.html +++ b/src/userlibraryaccess.html @@ -6,7 +6,7 @@ diff --git a/src/usernew.html b/src/usernew.html index 2e90df813..55eda8ea7 100644 --- a/src/usernew.html +++ b/src/usernew.html @@ -7,7 +7,7 @@

${HeaderAddUser}

- ${Help} + ${Help}
diff --git a/src/userparentalcontrol.html b/src/userparentalcontrol.html index 83cfa176f..d1c9c3350 100644 --- a/src/userparentalcontrol.html +++ b/src/userparentalcontrol.html @@ -5,7 +5,7 @@ diff --git a/src/userpassword.html b/src/userpassword.html index b301c412b..29b78acc4 100644 --- a/src/userpassword.html +++ b/src/userpassword.html @@ -5,7 +5,7 @@ diff --git a/src/userprofiles.html b/src/userprofiles.html index c23be1317..aee6e9f2c 100644 --- a/src/userprofiles.html +++ b/src/userprofiles.html @@ -10,7 +10,7 @@ - ${Help} + ${Help}
From 99a79b62e1e80631e31b13be95207ceae7a34583 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 22 Apr 2019 09:29:06 -0700 Subject: [PATCH 040/106] update links for new documentation --- src/components/subtitleeditor/subtitleeditor.template.html | 2 +- src/components/tvproviders/schedulesdirect.template.html | 2 +- src/components/tvproviders/xmltv.template.html | 2 +- src/controllers/notificationsettings.js | 2 +- src/dashboardgeneral.html | 2 +- src/device.html | 2 +- src/devices.html | 2 +- src/encodingsettings.html | 2 +- src/library.html | 2 +- src/livetvsettings.html | 2 +- src/livetvstatus.html | 2 +- src/livetvtuner.html | 2 +- src/notificationsetting.html | 2 +- src/scripts/medialibrarypage.js | 7 ++++--- src/wizardlibrary.html | 2 +- 15 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/components/subtitleeditor/subtitleeditor.template.html b/src/components/subtitleeditor/subtitleeditor.template.html index 1b7027dbd..84ae6da0e 100644 --- a/src/components/subtitleeditor/subtitleeditor.template.html +++ b/src/components/subtitleeditor/subtitleeditor.template.html @@ -2,7 +2,7 @@

${Subtitles}

- ${Help} + ${Help}
diff --git a/src/components/tvproviders/schedulesdirect.template.html b/src/components/tvproviders/schedulesdirect.template.html index db215328e..49d8c37f8 100644 --- a/src/components/tvproviders/schedulesdirect.template.html +++ b/src/components/tvproviders/schedulesdirect.template.html @@ -1,7 +1,7 @@

Schedules Direct

- ${Help} + ${Help}

diff --git a/src/components/tvproviders/xmltv.template.html b/src/components/tvproviders/xmltv.template.html index 89ca753a7..45172019c 100644 --- a/src/components/tvproviders/xmltv.template.html +++ b/src/components/tvproviders/xmltv.template.html @@ -1,7 +1,7 @@

Xml TV

- ${Help} + ${Help}
diff --git a/src/controllers/notificationsettings.js b/src/controllers/notificationsettings.js index 092d92e24..ebb878841 100644 --- a/src/controllers/notificationsettings.js +++ b/src/controllers/notificationsettings.js @@ -22,7 +22,7 @@ define(["loading", "libraryMenu", "globalize", "listViewStyle", "emby-button"], itemHtml += ""; if (showHelp) { showHelp = false; - itemHtml += ''; + itemHtml += ''; itemHtml += globalize.translate("Help"); itemHtml += ""; } diff --git a/src/dashboardgeneral.html b/src/dashboardgeneral.html index f41fc80d4..a285b0e55 100644 --- a/src/dashboardgeneral.html +++ b/src/dashboardgeneral.html @@ -8,7 +8,7 @@

${TabSettings}

- ${Help} + ${Help}
diff --git a/src/device.html b/src/device.html index da9610979..b7a696fd7 100644 --- a/src/device.html +++ b/src/device.html @@ -9,7 +9,7 @@
diff --git a/src/devices.html b/src/devices.html index 6997f42ed..3d8f4008d 100644 --- a/src/devices.html +++ b/src/devices.html @@ -4,7 +4,7 @@

${TabDevices}

- ${Help} + ${Help}
diff --git a/src/encodingsettings.html b/src/encodingsettings.html index 625088f56..6afde425a 100644 --- a/src/encodingsettings.html +++ b/src/encodingsettings.html @@ -8,7 +8,7 @@

${TabTranscoding}

- ${Help} + ${Help}
diff --git a/src/library.html b/src/library.html index 0182fe5f1..23d83044d 100644 --- a/src/library.html +++ b/src/library.html @@ -9,7 +9,7 @@ - ${Help} + ${Help}
diff --git a/src/livetvsettings.html b/src/livetvsettings.html index ff8db2dd3..6e91d1ce5 100644 --- a/src/livetvsettings.html +++ b/src/livetvsettings.html @@ -4,7 +4,7 @@

DVR

- ${Help} + ${Help}
diff --git a/src/livetvstatus.html b/src/livetvstatus.html index f6a0c8aeb..f2e2b4c4b 100644 --- a/src/livetvstatus.html +++ b/src/livetvstatus.html @@ -10,7 +10,7 @@ - ${Help} + ${Help}
diff --git a/src/livetvtuner.html b/src/livetvtuner.html index 71ddde77d..8528bfd55 100644 --- a/src/livetvtuner.html +++ b/src/livetvtuner.html @@ -5,7 +5,7 @@

${HeaderLiveTvTunerSetup}

- ${Help} + ${Help}
diff --git a/src/notificationsetting.html b/src/notificationsetting.html index 74fc3b19f..ffce9edbe 100644 --- a/src/notificationsetting.html +++ b/src/notificationsetting.html @@ -8,7 +8,7 @@ diff --git a/src/scripts/medialibrarypage.js b/src/scripts/medialibrarypage.js index 91123ec1e..0240d565b 100644 --- a/src/scripts/medialibrarypage.js +++ b/src/scripts/medialibrarypage.js @@ -190,14 +190,15 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl }, { name: globalize.translate("FolderTypeMovies"), value: "movies", - message: getLink("MovieLibraryHelp", "https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Movie-naming") + message: getLink("MovieLibraryHelp", "https://jellyfin.readthedocs.io/en/latest/media/movies/") }, { name: globalize.translate("FolderTypeMusic"), - value: "music" + value: "music", + message: getLink("MovieLibraryHelp", "https://jellyfin.readthedocs.io/en/latest/media/music/") }, { name: globalize.translate("FolderTypeTvShows"), value: "tvshows", - message: getLink("TvLibraryHelp", "https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/TV-naming") + message: getLink("TvLibraryHelp", "https://jellyfin.readthedocs.io/en/latest/media/shows/") }, { name: globalize.translate("FolderTypeBooks"), value: "books", diff --git a/src/wizardlibrary.html b/src/wizardlibrary.html index cb7420c63..16dd9488a 100644 --- a/src/wizardlibrary.html +++ b/src/wizardlibrary.html @@ -8,7 +8,7 @@

${HeaderSetupLibrary}

- +

From 145c4462f723431114a35b6e3677259cb482882e Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 22 Apr 2019 09:29:44 -0700 Subject: [PATCH 041/106] remove an old page until it gets added to the new docs --- src/components/directorybrowser/directorybrowser.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/components/directorybrowser/directorybrowser.js b/src/components/directorybrowser/directorybrowser.js index e4ceecc0c..aac45f86d 100644 --- a/src/components/directorybrowser/directorybrowser.js +++ b/src/components/directorybrowser/directorybrowser.js @@ -90,20 +90,11 @@ define(['loading', 'dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'paper- html += '
'; html += instruction; html += Globalize.translate("MessageDirectoryPickerInstruction").replace("{0}", "\\\\server").replace("{1}", "\\\\192.168.1.101"); - if ("synology" === (systemInfo.PackageName || "").toLowerCase()) { - html += "
"; - html += "
"; - html += ''; - html += Globalize.translate("LearnHowToCreateSynologyShares"); - html += ""; - } else if ("bsd" === systemInfo.OperatingSystem.toLowerCase()) { + if ("bsd" === systemInfo.OperatingSystem.toLowerCase()) { html += "
"; html += "
"; html += Globalize.translate("MessageDirectoryPickerBSDInstruction"); html += "
"; - html += ''; - html += Globalize.translate("ButtonMoreInformation"); - html += ""; } else if ("linux" === systemInfo.OperatingSystem.toLowerCase()) { html += "
"; html += "
"; From 3ac33728ec9f738b49eca7d54bd322556b008729 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 22 Apr 2019 21:03:14 +0300 Subject: [PATCH 042/106] fix rounded progress bars --- src/css/dashboard.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/css/dashboard.css b/src/css/dashboard.css index 47ccacf1c..149678d33 100644 --- a/src/css/dashboard.css +++ b/src/css/dashboard.css @@ -17,6 +17,7 @@ progress { appearance: none; -moz-appearance: none; -webkit-appearance: none; + border: 2px solid #ccc; -webkit-border-radius: .4em; border-radius: .4em; margin: 0; From 117614362f7f28b3a9656354a9750ccbc5e9840a Mon Sep 17 00:00:00 2001 From: Anthony Lavado Date: Thu, 25 Apr 2019 01:25:19 -0400 Subject: [PATCH 043/106] Adds recording button back to view As per @cvium on Matrix, adds the recording button back by changing the selector that makes it visible. Fixes #268. --- src/components/recordingcreator/recordingfields.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/recordingcreator/recordingfields.js b/src/components/recordingcreator/recordingfields.js index bb2582320..a17054cc0 100644 --- a/src/components/recordingcreator/recordingfields.js +++ b/src/components/recordingcreator/recordingfields.js @@ -38,7 +38,7 @@ define(['globalize', 'connectionManager', 'serverNotifications', 'require', 'loa var options = instance.options; var apiClient = connectionManager.getApiClient(options.serverId); - instance.querySelector('.recordingFields').classList.remove('hide'); + options.parent.querySelector('.recordingFields').classList.remove('hide'); return apiClient.getLiveTvProgram(options.programId, apiClient.getCurrentUserId()).then(function (program) { instance.TimerId = program.TimerId; instance.Status = program.Status; @@ -254,4 +254,4 @@ define(['globalize', 'connectionManager', 'serverNotifications', 'require', 'loa }; return RecordingEditor; -}); \ No newline at end of file +}); From e098fffea8a3ced41a18d20bdb9097d47925f357 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 24 Apr 2019 23:59:44 -0700 Subject: [PATCH 044/106] deminify log page --- src/controllers/logpage.js | 39 ++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/controllers/logpage.js b/src/controllers/logpage.js index 4b288b288..77274c62b 100644 --- a/src/controllers/logpage.js +++ b/src/controllers/logpage.js @@ -3,27 +3,42 @@ define(["datetime", "loading", "apphost", "listViewStyle", "emby-button", "flexS return function(view, params) { view.querySelector("#chkDebugLog").addEventListener("change", function() { ApiClient.getServerConfiguration().then(function(config) { - config.EnableDebugLevelLogging = view.querySelector("#chkDebugLog").checked, ApiClient.updateServerConfiguration(config) + config.EnableDebugLevelLogging = view.querySelector("#chkDebugLog").checked; + ApiClient.updateServerConfiguration(config); }) - }), view.addEventListener("viewbeforeshow", function() { + }); + + view.addEventListener("viewbeforeshow", function() { loading.show(); var apiClient = ApiClient; apiClient.getJSON(apiClient.getUrl("System/Logs")).then(function(logs) { var html = ""; - html += '
', html += logs.map(function(log) { + html += '
'; + html += logs.map(function(log) { var logUrl = apiClient.getUrl("System/Logs/Log", { name: log.Name }); logUrl += "&api_key=" + apiClient.accessToken(); var logHtml = ""; - logHtml += '', logHtml += '
', logHtml += "

" + log.Name + "

"; - var date = datetime.parseISO8601Date(log.DateModified, !0), - text = datetime.toLocaleDateString(date); - return text += " " + datetime.getDisplayTime(date), logHtml += '
' + text + "
", logHtml += "
", logHtml += "
" - }).join(""), html += "
", view.querySelector(".serverLogs").innerHTML = html, loading.hide() - }), apiClient.getServerConfiguration().then(function(config) { - view.querySelector("#chkDebugLog").checked = config.EnableDebugLevelLogging - }) - }) + logHtml += ''; + logHtml += '
'; + logHtml += "

" + log.Name + "

"; + var date = datetime.parseISO8601Date(log.DateModified, true); + var text = datetime.toLocaleDateString(date); + text += " " + datetime.getDisplayTime(date); + logHtml += '
' + text + "
"; + logHtml += "
"; + logHtml += "
"; + return logHtml; + }).join(""); + html += "
"; + view.querySelector(".serverLogs").innerHTML = html; + loading.hide(); + }); + + apiClient.getServerConfiguration().then(function(config) { + view.querySelector("#chkDebugLog").checked = config.EnableDebugLevelLogging; + }); + }); } }); \ No newline at end of file From e5885dfd020db0aa72a68963893569e5abb540dd Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 25 Apr 2019 00:02:06 -0700 Subject: [PATCH 045/106] remove option to enable debug logging --- src/controllers/logpage.js | 11 ----------- src/log.html | 13 ------------- 2 files changed, 24 deletions(-) diff --git a/src/controllers/logpage.js b/src/controllers/logpage.js index 77274c62b..f5866f344 100644 --- a/src/controllers/logpage.js +++ b/src/controllers/logpage.js @@ -1,13 +1,6 @@ define(["datetime", "loading", "apphost", "listViewStyle", "emby-button", "flexStyles"], function(datetime, loading, appHost) { "use strict"; return function(view, params) { - view.querySelector("#chkDebugLog").addEventListener("change", function() { - ApiClient.getServerConfiguration().then(function(config) { - config.EnableDebugLevelLogging = view.querySelector("#chkDebugLog").checked; - ApiClient.updateServerConfiguration(config); - }) - }); - view.addEventListener("viewbeforeshow", function() { loading.show(); var apiClient = ApiClient; @@ -35,10 +28,6 @@ define(["datetime", "loading", "apphost", "listViewStyle", "emby-button", "flexS view.querySelector(".serverLogs").innerHTML = html; loading.hide(); }); - - apiClient.getServerConfiguration().then(function(config) { - view.querySelector("#chkDebugLog").checked = config.EnableDebugLevelLogging; - }); }); } }); \ No newline at end of file diff --git a/src/log.html b/src/log.html index 7e76ea3c5..dd98b0d33 100644 --- a/src/log.html +++ b/src/log.html @@ -1,20 +1,7 @@
-
-
-
-
- -
${EnableDebugLoggingHelp}
-
-
-
-
From 0c2a5f0c5e53cbc815616d8e238db1a92d09128f Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Thu, 25 Apr 2019 17:50:33 +0300 Subject: [PATCH 046/106] aligning the gradient in the header --- src/components/themes/purple-haze/theme.css | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index 97958d49b..9c584f9b3 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -16,11 +16,11 @@ html { } .skinHeader-withBackground { - background: #303030; - background: -webkit-gradient(linear, left top, right top, from(#000420), color-stop(#06256f), color-stop(#5a1259), color-stop(#06256f), to(#011145)); - background: -webkit-linear-gradient(left, #000420, #06256f, #5a1259, #2b052b, #011145); - background: -o-linear-gradient(left, #000420, #06256f, #5a1259, #2b052b, #011145); - background: linear-gradient(to right, #000420, #06256f, #5a1259, #2b052b, #011145) + background: #000420; + background: -moz-linear-gradient(left, #000420 0%, #06256f 18%, #2b052b 38%, #2b052b 68%, #06256f 81%, #000420 100%); + background: -webkit-linear-gradient(left, #000420 0%,#06256f 18%,#2b052b 38%,#2b052b 68%,#06256f 81%,#000420 100%); + background: linear-gradient(to right, #000420 0%,#06256f 18%,#2b052b 38%,#2b052b 68%,#06256f 81%,#000420 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000420', endColorstr='#000420',GradientType=1 ); } .skinHeader.semiTransparent { @@ -328,7 +328,7 @@ html { } .navMenuOption-selected { - background: #AA5CC3 !important; + background: #6f0765 !important; color: #fff } From ed80f5109c10ef0827d02af61a1ae0c23df8f73e Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 25 Apr 2019 12:21:18 -0400 Subject: [PATCH 047/106] Fix text overflow not displaying ellipsis in cards --- src/components/cardbuilder/card.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.css index 64ce965da..100a464cd 100644 --- a/src/components/cardbuilder/card.css +++ b/src/components/cardbuilder/card.css @@ -315,6 +315,12 @@ button { padding-top: .24em; } +.cardText > .textActionButton { + width: 100%; + overflow: hidden; + text-overflow: ellipsis; +} + .innerCardFooter > .cardText { padding: .3em .5em; } From 9c4517957a6174ea3c73cb5b4afc0369c8c143c9 Mon Sep 17 00:00:00 2001 From: Jean-Samuel Aubry-Guzzi Date: Thu, 25 Apr 2019 11:50:44 -0400 Subject: [PATCH 048/106] Add double click to fullscreen --- src/controllers/videoosd.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index c9befe03c..96613aec7 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -368,7 +368,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med if ("osd" === currentVisibleMenu) { hideOsd(); } else if (!currentVisibleMenu) { - showOsd(); + showOsd(); } } @@ -1254,6 +1254,12 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med if (browser.touch) { dom.addEventListener(view, "dblclick", onDoubleClick, {}); + } else { + dom.addEventListener(view, "dblclick", function () { + playbackManager.toggleFullscreen(currentPlayer); + }, { + passive: true + }); } view.querySelector(".buttonMute").addEventListener("click", function () { From 05a1beebaf198bfc413f3a7b9c55ff59adbcf580 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 25 Apr 2019 11:16:01 -0700 Subject: [PATCH 049/106] move livetv controller to the old location --- src/{controllers => scripts}/livetvseriestimers.js | 0 src/scripts/routes.js | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/{controllers => scripts}/livetvseriestimers.js (100%) diff --git a/src/controllers/livetvseriestimers.js b/src/scripts/livetvseriestimers.js similarity index 100% rename from src/controllers/livetvseriestimers.js rename to src/scripts/livetvseriestimers.js diff --git a/src/scripts/routes.js b/src/scripts/routes.js index 070cfdc10..419f5a8c8 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -166,7 +166,7 @@ define([ defineRoute({ path: "/livetvseriestimer.html", autoFocus: false, - controller: "livetvseriestimer" + controller: "scripts/livetvseriestimer" }); defineRoute({ path: "/livetvsettings.html", @@ -432,4 +432,4 @@ define([ isDefaultRoute: true, autoFocus: false, }); -}); \ No newline at end of file +}); From 6c7d64b4de8e0100123fcacc70e4e1bdb05b9c82 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 25 Apr 2019 11:16:11 -0700 Subject: [PATCH 050/106] remove unnecessary route --- src/scripts/routes.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/scripts/routes.js b/src/scripts/routes.js index 419f5a8c8..37f3b2dc6 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -163,11 +163,6 @@ define([ autoFocus: false, roles: "admin" }); - defineRoute({ - path: "/livetvseriestimer.html", - autoFocus: false, - controller: "scripts/livetvseriestimer" - }); defineRoute({ path: "/livetvsettings.html", autoFocus: false From 304ce9ef775e8d78b4a789bca05cb455f8883ee6 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 24 Apr 2019 23:26:54 -0700 Subject: [PATCH 051/106] remove similar themes with accent changes --- src/components/skinManager.js | 28 +- src/components/themes/dark-green/theme.css | 451 ------------------ src/components/themes/dark-red/theme.css | 449 ----------------- .../themes/{dark-classic => emby}/theme.css | 0 src/components/themes/light-blue/theme.css | 433 ----------------- src/components/themes/light-classic/theme.css | 434 ----------------- src/components/themes/light-green/theme.css | 443 ----------------- src/components/themes/light-pink/theme.css | 440 ----------------- src/components/themes/light-purple/theme.css | 441 ----------------- src/components/themes/light-red/theme.css | 439 ----------------- 10 files changed, 2 insertions(+), 3556 deletions(-) delete mode 100644 src/components/themes/dark-green/theme.css delete mode 100644 src/components/themes/dark-red/theme.css rename src/components/themes/{dark-classic => emby}/theme.css (100%) delete mode 100644 src/components/themes/light-blue/theme.css delete mode 100644 src/components/themes/light-classic/theme.css delete mode 100644 src/components/themes/light-green/theme.css delete mode 100644 src/components/themes/light-pink/theme.css delete mode 100644 src/components/themes/light-purple/theme.css delete mode 100644 src/components/themes/light-red/theme.css diff --git a/src/components/skinManager.js b/src/components/skinManager.js index 7bca4e283..780b8273b 100644 --- a/src/components/skinManager.js +++ b/src/components/skinManager.js @@ -35,35 +35,11 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr isDefault: true, isDefaultServerDashboard: true }, { - name: "Dark Classic", - id: "dark-classic", - }, { - name: "Dark (Green Accent)", - id: "dark-green" - }, { - name: "Dark (Red Accent)", - id: "dark-red" + name: "Emby", + id: "emby", }, { name: "Light", id: "light" - }, { - name: "Light Classic", - id: "light-classic" - }, { - name: "Light (Blue Accent)", - id: "light-blue" - }, { - name: "Light (Green Accent)", - id: "light-green" - }, { - name: "Light (Pink Accent)", - id: "light-pink" - }, { - name: "Light (Purple Accent)", - id: "light-purple" - }, { - name: "Light (Red Accent)", - id: "light-red" }, { name: "Purple Haze", id: "purple-haze" diff --git a/src/components/themes/dark-green/theme.css b/src/components/themes/dark-green/theme.css deleted file mode 100644 index 638892782..000000000 --- a/src/components/themes/dark-green/theme.css +++ /dev/null @@ -1,451 +0,0 @@ -.skinHeader, -html { - color: #eee; - color: rgba(255, 255, 255, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #52B54B -} - -.emby-collapsible-button { - border-color: #383838; - border-color: rgba(255, 255, 255, .135) -} - -.skinHeader { - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -.skinHeader-withBackground { - background-color: #52B54B; - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37) -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - -webkit-box-shadow: none; - box-shadow: none -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -.dialog, -html { - background-color: #282828 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(0, 0, 0, .86) -} - -.paper-icon-button-light:focus { - color: #52B54B; - background-color: rgba(82, 181, 75, .2) -} - -.skinHeader-withBackground .paper-icon-button-light:focus { - color: #fff; - background-color: rgba(255, 255, 255, .2) -} - -.fab, -.raised { - background: #404040; - color: #fff -} - -.fab:focus, -.raised:focus { - background: #505050 -} - -.button-submit { - background: #52B54B; - color: #fff -} - -.button-submit:focus { - background: #5EC157; - color: #fff -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #bbb; - color: rgba(255, 255, 255, .7) -} - -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: #52B54B -} - -.checkboxOutline { - border-color: currentColor -} - -.collapseContent, -.formDialogFooter:not(.formDialogFooter-clear), -.formDialogHeader:not(.formDialogHeader-clear), -.paperList, -.visualCardBox { - background-color: #222 -} - -.defaultCardBackground1 { - background-color: #d2b019 -} - -.defaultCardBackground2 { - background-color: #338abb -} - -.defaultCardBackground3 { - background-color: #6b689d -} - -.defaultCardBackground4 { - background-color: #dd452b -} - -.defaultCardBackground5 { - background-color: #5ccea9 -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #999; - color: rgba(255, 255, 255, .5) -} - -.actionsheetDivider { - background: #444; - background: rgba(255, 255, 255, .14) -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.actionSheetMenuItem:hover { - background-color: #222 -} - -.toast { - background: #303030; - color: #fff; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #101010; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.itemSelectionPanel { - border: 1px solid #52B54B -} - -.selectionCommandsPanel { - background: #52B54B; - color: #fff -} - -.upNextDialog-countdownText { - color: #52B54B -} - -.alphaPickerButton { - color: #999; - color: rgba(255, 255, 255, .5); - background-color: transparent -} - -.alphaPickerButton-selected { - color: #fff -} - -.alphaPickerButton-tv:focus { - background-color: #52B54B; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #1c1c1c; - background: rgba(30, 30, 30, .9) -} - -.listItem-border { - border-color: rgba(30, 30, 30, .9) !important -} - -.listItem:focus { - background: #333 -} - -.progressring-spiner { - border-color: #52B54B -} - -.button-flat-accent, -.button-link { - color: #52B54B -} - -.mediaInfoText { - color: #ddd; - background: rgba(170, 170, 190, .2) -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #1c1c1c; - border: .07em solid #1c1c1c; - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #52B54B -} - -.emby-select-withcolor { - color: inherit; - background: #1c1c1c; - border: .07em solid #1c1c1c -} - -.emby-select-withcolor>option { - color: inherit; - background: #222 -} - -.emby-select-withcolor:focus { - border-color: #52B54B !important -} - -.emby-select-tv-withcolor:focus { - background-color: #52B54B !important; - color: #fff !important -} - -.emby-checkbox:checked+span+span+.checkboxOutline { - border-color: #52B54B -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(82, 181, 75, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #52B54B -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.fullSyncIndicator, -.playedIndicator { - background: #52B54B -} - -.fullSyncIndicator { - color: #fff -} - -.mainDrawer { - background-color: #1c1c1f; - color: #ccc; - color: rgba(255, 255, 255, .7) -} - -.navMenuOption:hover { - background: #252528 -} - -.navMenuOption-selected { - background: #52B54B !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #52B54B; - color: #fff -} - -.emby-tab-button { - color: #999; - color: rgba(255, 255, 255, .5) -} - -.emby-tab-button-active, -.emby-tab-button-active.emby-button-tv { - color: #fff -} - -.emby-tab-button.emby-button-tv:focus { - color: #fff; - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: #383838 -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: #1e1e1e !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #52B54B !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(255, 255, 255, .3) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #52B54B -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #52B54B; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#191919)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #191919); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #191919); - background: linear-gradient(rgba(0, 0, 0, 0), #191919) -} - -.infoBanner { - color: #ddd; - background: #111; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #52B54B -} - -.layout-desktop ::-webkit-scrollbar { - width: 1em; - height: 1em -} - -::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) -} - -::-webkit-scrollbar-track-piece { - background-color: #3b3b3b -} - -::-webkit-scrollbar-thumb:horizontal, -::-webkit-scrollbar-thumb:vertical { - -webkit-border-radius: 2px; - background: center no-repeat #888 -} diff --git a/src/components/themes/dark-red/theme.css b/src/components/themes/dark-red/theme.css deleted file mode 100644 index 2f5793231..000000000 --- a/src/components/themes/dark-red/theme.css +++ /dev/null @@ -1,449 +0,0 @@ -.skinHeader, -html { - color: #eee; - color: rgba(255, 255, 255, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #c33 -} - -.emby-collapsible-button { - border-color: #383838; - border-color: rgba(255, 255, 255, .135) -} - -.skinHeader { - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -.skinHeader-withBackground { - background-color: #c33; - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37) -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - -webkit-box-shadow: none; - box-shadow: none -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -.dialog, -html { - background-color: #282828 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(0, 0, 0, .86) -} - -.paper-icon-button-light:focus { - color: #c33; - background-color: rgba(204, 51, 51, .2) -} - -.skinHeader-withBackground .paper-icon-button-light:focus { - color: #fff; - background-color: rgba(255, 255, 255, .2) -} - -.fab, -.raised { - background: #404040; - color: #fff -} - -.fab:focus, -.raised:focus { - background: #505050 -} - -.button-submit { - background: #c33 -} - -.button-submit:focus { - background: #D83F3F -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #bbb; - color: rgba(255, 255, 255, .7) -} - -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: #c33 -} - -.checkboxOutline { - border-color: currentColor -} - -.collapseContent, -.formDialogFooter:not(.formDialogFooter-clear), -.formDialogHeader:not(.formDialogHeader-clear), -.paperList, -.visualCardBox { - background-color: #222 -} - -.defaultCardBackground1 { - background-color: #d2b019 -} - -.defaultCardBackground2 { - background-color: #338abb -} - -.defaultCardBackground3 { - background-color: #6b689d -} - -.defaultCardBackground4 { - background-color: #dd452b -} - -.defaultCardBackground5 { - background-color: #5ccea9 -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #999; - color: rgba(255, 255, 255, .5) -} - -.actionsheetDivider { - background: #444; - background: rgba(255, 255, 255, .14) -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.actionSheetMenuItem:hover { - background-color: #222 -} - -.toast { - background: #303030; - color: #fff; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #101010; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.itemSelectionPanel { - border: 1px solid #c33 -} - -.selectionCommandsPanel { - background: #c33; - color: #fff -} - -.upNextDialog-countdownText { - color: #c33 -} - -.alphaPickerButton { - color: #999; - color: rgba(255, 255, 255, .5); - background-color: transparent -} - -.alphaPickerButton-selected { - color: #fff -} - -.alphaPickerButton-tv:focus { - background-color: #c33; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #1c1c1c; - background: rgba(30, 30, 30, .9) -} - -.listItem-border { - border-color: rgba(30, 30, 30, .9) !important -} - -.listItem:focus { - background: #333 -} - -.progressring-spiner { - border-color: #c33 -} - -.button-flat-accent, -.button-link { - color: #c33 -} - -.mediaInfoText { - color: #ddd; - background: rgba(170, 170, 190, .2) -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #1c1c1c; - border: .07em solid #1c1c1c; - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #c33 -} - -.emby-select-withcolor { - color: inherit; - background: #1c1c1c; - border: .07em solid #1c1c1c -} - -.emby-select-withcolor>option { - color: inherit; - background: #222 -} - -.emby-select-withcolor:focus { - border-color: #c33 !important -} - -.emby-select-tv-withcolor:focus { - background-color: #c33 !important; - color: #fff !important -} - -.emby-checkbox:checked+span+span+.checkboxOutline { - border-color: #c33 -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(204, 51, 51, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #c33 -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.playedIndicator { - background: #c33 -} - -.fullSyncIndicator { - background: #c33; - color: #fff -} - -.mainDrawer { - background-color: #1c1c1f; - color: #ccc; - color: rgba(255, 255, 255, .7) -} - -.navMenuOption:hover { - background: #252528 -} - -.navMenuOption-selected { - background: #c33 !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #c33; - color: #fff -} - -.emby-tab-button { - color: #999; - color: rgba(255, 255, 255, .5) -} - -.emby-tab-button-active, -.emby-tab-button-active.emby-button-tv { - color: #fff -} - -.emby-tab-button.emby-button-tv:focus { - color: #fff; - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: #383838 -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: #1e1e1e !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #c33 !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(255, 255, 255, .3) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #c33 -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #c33; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#191919)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #191919); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #191919); - background: linear-gradient(rgba(0, 0, 0, 0), #191919) -} - -.infoBanner { - color: #ddd; - background: #111; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #c33 -} - -.layout-desktop ::-webkit-scrollbar { - width: 1em; - height: 1em -} - -::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) -} - -::-webkit-scrollbar-track-piece { - background-color: #3b3b3b -} - -::-webkit-scrollbar-thumb:horizontal, -::-webkit-scrollbar-thumb:vertical { - -webkit-border-radius: 2px; - background: center no-repeat #888 -} diff --git a/src/components/themes/dark-classic/theme.css b/src/components/themes/emby/theme.css similarity index 100% rename from src/components/themes/dark-classic/theme.css rename to src/components/themes/emby/theme.css diff --git a/src/components/themes/light-blue/theme.css b/src/components/themes/light-blue/theme.css deleted file mode 100644 index fba787c14..000000000 --- a/src/components/themes/light-blue/theme.css +++ /dev/null @@ -1,433 +0,0 @@ -.skinHeader, -html { - color: #222; - color: rgba(0, 0, 0, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #2196F3 -} - -.emby-collapsible-button { - border-color: #ccc; - border-color: rgba(0, 0, 0, .158) -} - -.collapseContent { - background-color: #eaeaea -} - -.skinHeader-withBackground { - background-color: #2196F3; - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - color: #fff -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - -webkit-backdrop-filter: none !important; - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -html { - background-color: #f2f2f2 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(255, 255, 255, .94) -} - -.dialog { - background-color: #f0f0f0 -} - -.paper-icon-button-light:focus { - color: #2196F3; - background-color: rgba(33, 150, 243, .2) -} - -.skinHeader-withBackground .paper-icon-button-light:focus { - color: #fff; - background-color: rgba(255, 255, 255, .2) -} - -.fab, -.raised { - background: #d8d8d8; - color: inherit -} - -.fab:focus, -.raised:focus { - background: #ccc; - color: inherit -} - -.button-submit { - background: #2196F3; - color: #fff -} - -.button-submit:focus { - background: #2DA2FF; - color: #fff -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #555 -} - -.button-link, -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: #2196F3 -} - -.checkboxOutline { - border-color: currentColor -} - -.paperList, -.visualCardBox { - background-color: #fff -} - -.defaultCardBackground1 { - background-color: #009688 -} - -.defaultCardBackground2 { - background-color: #D32F2F -} - -.defaultCardBackground3 { - background-color: #0288D1 -} - -.defaultCardBackground4 { - background-color: #388E3C -} - -.defaultCardBackground5 { - background-color: #F57F17 -} - -.formDialogHeader:not(.formDialogHeader-clear) { - background-color: #2196F3; - color: #fff -} - -.formDialogFooter:not(.formDialogFooter-clear) { - background-color: #f0f0f0; - border-top: 1px solid rgba(0, 0, 0, .08); - color: inherit -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #888 -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.formDialogHeader a, -.toast { - color: #fff -} - -.actionSheetMenuItem:hover { - background-color: #ddd -} - -.toast { - background: #303030; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #282828; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.nowPlayingBarSecondaryText { - color: #999 -} - -.itemSelectionPanel { - border: 1px solid #2196F3 -} - -.selectionCommandsPanel { - background: #2196F3; - color: #fff -} - -.upNextDialog-countdownText { - color: #2196F3 -} - -.alphaPickerButton { - color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent -} - -.alphaPickerButton-selected, -.alphaPickerButton-tv:focus { - background-color: #2196F3; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #f8f8f8 -} - -.listItem-border { - border-color: #f0f0f0 !important -} - -.listItem:focus { - background: #ddd -} - -.progressring-spiner { - border-color: #2196F3 -} - -.mediaInfoText { - color: #333; - background: #fff -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158); - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #2196F3 -} - -.emby-select-withcolor { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.emby-select-withcolor:focus { - border-color: #2196F3 -} - -.emby-select-withcolor>option { - color: #000; - background: #fff -} - -.emby-select-tv-withcolor:focus { - background-color: #2196F3; - color: #fff -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(33, 150, 243, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #2196F3 -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.fullSyncIndicator, -.playedIndicator { - background: #2196F3 -} - -.fullSyncIndicator { - color: #fff -} - -.mainDrawer { - background: #fff -} - -.navMenuOption:hover { - background: #f2f2f2 -} - -.navMenuOption-selected { - background: #2196F3 !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #2196F3; - color: #fff -} - -.emby-tab-button { - color: #fff; - color: rgba(255, 255, 255, .5) -} - -.emby-tab-button-active, -.emby-tab-button-active.emby-button-tv { - color: #fff; - color: rgba(255, 255, 255, 1) -} - -.emby-tab-button.emby-button-tv:focus { - color: #fff; - color: rgba(255, 255, 255, 1); - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: rgba(0, 0, 0, .12) -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: rgba(0, 0, 0, .1) !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #2196F3 !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(0, 0, 0, .54) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #2196F3 -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #2196F3; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#f2f2f2)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: linear-gradient(rgba(0, 0, 0, 0), #f2f2f2) -} - -.infoBanner { - color: #000; - background: #fff3a5; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #2196F3 -} diff --git a/src/components/themes/light-classic/theme.css b/src/components/themes/light-classic/theme.css deleted file mode 100644 index 835a18ec8..000000000 --- a/src/components/themes/light-classic/theme.css +++ /dev/null @@ -1,434 +0,0 @@ -.skinHeader, -html { - color: #222; - color: rgba(0, 0, 0, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #303030 -} - -.emby-collapsible-button { - border-color: #ccc; - border-color: rgba(0, 0, 0, .158) -} - -.collapseContent { - background-color: #eaeaea -} - -.skinHeader-withBackground { - background-color: #303030; - color: #ccc; - color: rgba(255, 255, 255, .87); - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37) -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - -webkit-backdrop-filter: none !important; - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -html { - background-color: #f2f2f2 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(255, 255, 255, .94) -} - -.dialog { - background-color: #f0f0f0 -} - -.paper-icon-button-light:focus { - color: #52b54b; - background-color: rgba(82, 181, 75, .2) -} - -.fab, -.raised { - background: #d8d8d8; - color: inherit -} - -.fab:focus, -.raised:focus { - background: #ccc -} - -.button-submit { - background: #52b54b; - color: #fff -} - -.button-submit:focus { - background: #5EC157 -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #555 -} - -.button-link, -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: green -} - -.checkboxOutline { - border-color: currentColor -} - -.paperList, -.visualCardBox { - background-color: #fff -} - -.defaultCardBackground1 { - background-color: #009688 -} - -.defaultCardBackground2 { - background-color: #D32F2F -} - -.defaultCardBackground3 { - background-color: #0288D1 -} - -.defaultCardBackground4 { - background-color: #388E3C -} - -.defaultCardBackground5 { - background-color: #F57F17 -} - -.formDialogHeader:not(.formDialogHeader-clear) { - background-color: #52b54b; - color: #fff -} - -.formDialogFooter:not(.formDialogFooter-clear) { - background-color: #f0f0f0; - border-top: 1px solid #ddd; - border-top: 1px solid rgba(0, 0, 0, .08); - color: inherit -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #888 -} - -.actionsheetDivider { - background: #ddd; - background: rgba(0, 0, 0, .14) -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.formDialogHeader a, -.toast { - color: #fff -} - -.actionSheetMenuItem:hover { - background-color: #ddd -} - -.toast { - background: #303030; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #282828; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.nowPlayingBarSecondaryText { - color: #999 -} - -.itemSelectionPanel { - border: 1px solid #52b54b -} - -.selectionCommandsPanel { - background: #52b54b; - color: #fff -} - -.upNextDialog-countdownText { - color: #52b54b -} - -.alphaPickerButton { - color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent -} - -.alphaPickerButton-selected, -.alphaPickerButton-tv:focus { - background-color: #52b54b; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #f8f8f8 -} - -.listItem-border { - border-color: #f0f0f0 !important -} - -.listItem:focus { - background: #ddd -} - -.progressring-spiner { - border-color: #52b54b -} - -.mediaInfoText { - color: #333; - background: #fff -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158); - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #52b54b -} - -.emby-select-withcolor { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.emby-select-withcolor:focus { - border-color: #52b54b -} - -.emby-select-withcolor>option { - color: #000; - background: #fff -} - -.emby-select-tv-withcolor:focus { - background-color: #52b54b; - color: #fff -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(82, 181, 75, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #52b54b -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.fullSyncIndicator, -.playedIndicator { - background: #52b54b -} - -.fullSyncIndicator { - color: #fff -} - -.mainDrawer { - background: #fff -} - -.navMenuOption:hover { - background: #f2f2f2 -} - -.navMenuOption-selected { - background: #52b54b !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #52b54b; - color: #fff -} - -.emby-tab-button { - color: #999; - color: rgba(255, 255, 255, .5) -} - -.emby-tab-button-active { - color: #52b54b -} - -.emby-tab-button-active.emby-button-tv { - color: #fff -} - -.emby-tab-button.emby-button-tv:focus { - color: #52b54b; - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: rgba(0, 0, 0, .12) -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: rgba(0, 0, 0, .1) !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #52b54b !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(0, 0, 0, .54) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #52b54b -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #52b54b; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#f2f2f2)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: linear-gradient(rgba(0, 0, 0, 0), #f2f2f2) -} - -.infoBanner { - color: #000; - background: #fff3a5; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #52b54b -} diff --git a/src/components/themes/light-green/theme.css b/src/components/themes/light-green/theme.css deleted file mode 100644 index 38519bbfe..000000000 --- a/src/components/themes/light-green/theme.css +++ /dev/null @@ -1,443 +0,0 @@ -.skinHeader, -html { - color: #222; - color: rgba(0, 0, 0, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #52B54B -} - -.emby-collapsible-button { - border-color: #ccc; - border-color: rgba(0, 0, 0, .158) -} - -.collapseContent { - background-color: #eaeaea -} - -.skinHeader-withBackground { - background-color: #52B54B; - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - color: #fff -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - -webkit-backdrop-filter: none !important; - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -html { - background-color: #f2f2f2 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(255, 255, 255, .94) -} - -.dialog { - background-color: #f0f0f0 -} - -.paper-icon-button-light:focus { - color: #52B54B; - background-color: rgba(82, 181, 75, .2) -} - -.skinHeader-withBackground .paper-icon-button-light:focus { - color: #fff; - background-color: rgba(255, 255, 255, .2) -} - -.skinHeader-withBackground .button-link { - color: #fff -} - -.fab, -.raised { - background: #d8d8d8; - color: inherit -} - -.fab:focus, -.raised:focus { - background: #ccc; - color: inherit -} - -.button-submit { - background: #52B54B; - color: #fff -} - -.button-submit:focus { - background: #5EC157; - color: #fff -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #555 -} - -.button-link, -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: green -} - -.checkboxOutline { - border-color: currentColor -} - -.paperList, -.visualCardBox { - background-color: #fff -} - -.defaultCardBackground1 { - background-color: #009688 -} - -.defaultCardBackground2 { - background-color: #D32F2F -} - -.defaultCardBackground3 { - background-color: #0288D1 -} - -.defaultCardBackground4 { - background-color: #388E3C -} - -.defaultCardBackground5 { - background-color: #F57F17 -} - -.formDialogHeader:not(.formDialogHeader-clear) { - background-color: #52B54B; - color: #fff -} - -.formDialogFooter:not(.formDialogFooter-clear) { - background-color: #f0f0f0; - border-top: 1px solid #ddd; - border-top: 1px solid rgba(0, 0, 0, .08); - color: inherit -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #888 -} - -.actionsheetDivider { - background: #ddd; - background: rgba(0, 0, 0, .14) -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.formDialogHeader a, -.toast { - color: #fff -} - -.actionSheetMenuItem:hover { - background-color: #ddd -} - -.toast { - background: #303030; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #282828; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.nowPlayingBarSecondaryText { - color: #999 -} - -.itemSelectionPanel { - border: 1px solid #52B54B -} - -.selectionCommandsPanel { - background: #52B54B; - color: #fff -} - -.upNextDialog-countdownText { - color: #52B54B -} - -.alphaPickerButton { - color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent -} - -.alphaPickerButton-selected, -.alphaPickerButton-tv:focus { - background-color: #52B54B; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #f8f8f8 -} - -.listItem-border { - border-color: #f0f0f0 !important -} - -.listItem:focus { - background: #ddd -} - -.progressring-spiner { - border-color: #52B54B -} - -.mediaInfoText { - color: #333; - background: #fff -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158); - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #52B54B -} - -.emby-select-withcolor { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.emby-select-withcolor:focus { - border-color: #52B54B -} - -.emby-select-withcolor>option { - color: #000; - background: #fff -} - -.emby-select-tv-withcolor:focus { - background-color: #52B54B; - color: #fff -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(82, 181, 75, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #52B54B -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.fullSyncIndicator, -.playedIndicator { - background: #52B54B -} - -.fullSyncIndicator { - color: #fff -} - -.mainDrawer { - background: #fff -} - -.navMenuOption:hover { - background: #f2f2f2 -} - -.navMenuOption-selected { - background: #52B54B !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #52B54B; - color: #fff -} - -.emby-tab-button { - color: #fff; - color: rgba(255, 255, 255, .5) -} - -.emby-tab-button-active, -.emby-tab-button-active.emby-button-tv { - color: #fff; - color: rgba(255, 255, 255, 1) -} - -.emby-tab-button.emby-button-tv:focus { - color: #fff; - color: rgba(255, 255, 255, 1); - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: rgba(0, 0, 0, .12) -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: rgba(0, 0, 0, .1) !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #52B54B !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(0, 0, 0, .54) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #52B54B -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #52B54B; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#f2f2f2)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: linear-gradient(rgba(0, 0, 0, 0), #f2f2f2) -} - -.infoBanner { - color: #000; - background: #fff3a5; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #52B54B -} diff --git a/src/components/themes/light-pink/theme.css b/src/components/themes/light-pink/theme.css deleted file mode 100644 index b3b9a869a..000000000 --- a/src/components/themes/light-pink/theme.css +++ /dev/null @@ -1,440 +0,0 @@ -.skinHeader, -html { - color: #222; - color: rgba(0, 0, 0, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #E91E63 -} - -.emby-collapsible-button { - border-color: #ccc; - border-color: rgba(0, 0, 0, .158) -} - -.collapseContent { - background-color: #eaeaea -} - -.skinHeader-withBackground { - background-color: #E91E63; - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - color: #fff -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - -webkit-backdrop-filter: none !important; - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -html { - background-color: #f2f2f2 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(255, 255, 255, .94) -} - -.dialog { - background-color: #f0f0f0 -} - -.paper-icon-button-light:focus { - color: #E91E63; - background-color: rgba(233, 30, 99, .2) -} - -.skinHeader-withBackground .paper-icon-button-light:focus { - color: #fff; - background-color: rgba(255, 255, 255, .2) -} - -.fab, -.raised { - background: #d8d8d8; - color: inherit -} - -.fab:focus, -.raised:focus { - background: #ccc; - color: inherit -} - -.button-submit { - background: #E91E63; - color: #fff -} - -.button-submit:focus { - background: #F52A6F; - color: #fff -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #555; - color: rgba(0, 0, 0, .7) -} - -.button-link, -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: #E91E63 -} - -.checkboxOutline { - border-color: currentColor -} - -.paperList, -.visualCardBox { - background-color: #F8BBD0 -} - -.defaultCardBackground1 { - background-color: #009688 -} - -.defaultCardBackground2 { - background-color: #D32F2F -} - -.defaultCardBackground3 { - background-color: #0288D1 -} - -.defaultCardBackground4 { - background-color: #388E3C -} - -.defaultCardBackground5 { - background-color: #F57F17 -} - -.formDialogHeader:not(.formDialogHeader-clear) { - background-color: #E91E63; - color: #fff -} - -.formDialogFooter:not(.formDialogFooter-clear) { - background-color: #f0f0f0; - border-top: 1px solid rgba(0, 0, 0, .08); - color: inherit -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #888; - color: rgba(0, 0, 0, .54) -} - -.actionsheetDivider { - background: #ddd; - background: rgba(0, 0, 0, .14) -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.formDialogHeader a, -.toast { - color: #fff -} - -.actionSheetMenuItem:hover { - background-color: #ddd -} - -.toast { - background: #303030; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #282828; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.nowPlayingBarSecondaryText { - color: #999 -} - -.itemSelectionPanel { - border: 1px solid #E91E63 -} - -.selectionCommandsPanel { - background: #E91E63; - color: #fff -} - -.upNextDialog-countdownText { - color: #E91E63 -} - -.alphaPickerButton { - color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent -} - -.alphaPickerButton-selected, -.alphaPickerButton-tv:focus { - background-color: #E91E63; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #f8f8f8 -} - -.listItem-border { - border-color: #f0f0f0 !important -} - -.listItem:focus { - background: #ddd -} - -.progressring-spiner { - border-color: #E91E63 -} - -.mediaInfoText { - color: #333; - background: #fff -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158); - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #E91E63 -} - -.emby-select-withcolor { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.emby-select-withcolor:focus { - border-color: #E91E63 -} - -.emby-select-withcolor>option { - color: #000; - background: #fff -} - -.emby-select-tv-withcolor:focus { - background-color: #E91E63; - color: #fff -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(233, 30, 99, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #E91E63 -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.fullSyncIndicator, -.playedIndicator { - background: #E91E63 -} - -.fullSyncIndicator { - color: #fff -} - -.mainDrawer { - background: #fff -} - -.navMenuOption:hover { - background: #f2f2f2 -} - -.navMenuOption-selected { - background: #E91E63 !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #E91E63; - color: #fff -} - -.emby-tab-button { - color: #fff; - color: rgba(255, 255, 255, .5) -} - -.emby-tab-button-active, -.emby-tab-button-active.emby-button-tv { - color: #fff; - color: rgba(255, 255, 255, 1) -} - -.emby-tab-button.emby-button-tv:focus { - color: #fff; - color: rgba(255, 255, 255, 1); - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: rgba(0, 0, 0, .12) -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: rgba(0, 0, 0, .1) !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #E91E63 !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(0, 0, 0, .54) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #E91E63 -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #E91E63; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#f2f2f2)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: linear-gradient(rgba(0, 0, 0, 0), #f2f2f2) -} - -.infoBanner { - color: #000; - background: #fff3a5; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #E91E63 -} diff --git a/src/components/themes/light-purple/theme.css b/src/components/themes/light-purple/theme.css deleted file mode 100644 index 2c3b16f66..000000000 --- a/src/components/themes/light-purple/theme.css +++ /dev/null @@ -1,441 +0,0 @@ -.skinHeader, -html { - color: #222; - color: rgba(0, 0, 0, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #673AB7 -} - -.emby-collapsible-button { - border-color: #ccc; - border-color: rgba(0, 0, 0, .158) -} - -.collapseContent { - background-color: #eaeaea -} - -.skinHeader-withBackground { - background-color: #673AB7; - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - color: #fff -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - -webkit-backdrop-filter: none !important; - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -html { - background-color: #EDE7F6 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(237, 241, 236, .94) -} - -.dialog { - background-color: #f0f0f0 -} - -.paper-icon-button-light:focus { - color: #673AB7; - background-color: rgba(103, 58, 183, .2) -} - -.skinHeader-withBackground .paper-icon-button-light:focus { - color: #fff; - background-color: rgba(255, 255, 255, .2) -} - -.fab, -.raised { - background: #d8d8d8; - color: inherit -} - -.fab:focus, -.raised:focus { - background: #ccc; - color: inherit -} - -.button-submit { - background: #673AB7; - color: #fff -} - -.button-submit:focus { - background: #7346C3; - color: #fff -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #555; - color: rgba(0, 0, 0, .7) -} - -.button-link, -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: #673AB7 -} - -.checkboxOutline { - border-color: currentColor -} - -.paperList, -.visualCardBox { - background-color: #D1C4E9 -} - -.defaultCardBackground1 { - background-color: #009688 -} - -.defaultCardBackground2 { - background-color: #D32F2F -} - -.defaultCardBackground3 { - background-color: #0288D1 -} - -.defaultCardBackground4 { - background-color: #388E3C -} - -.defaultCardBackground5 { - background-color: #F57F17 -} - -.formDialogHeader:not(.formDialogHeader-clear) { - background-color: #673AB7; - color: #fff -} - -.formDialogFooter:not(.formDialogFooter-clear) { - background-color: #f0f0f0; - border-top: 1px solid #ddd; - border-top: 1px solid rgba(0, 0, 0, .08); - color: inherit -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #888; - color: rgba(0, 0, 0, .54) -} - -.actionsheetDivider { - background: #ddd; - background: rgba(0, 0, 0, .14) -} - -.listItem:focus { - background: #ddd -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.formDialogHeader a, -.toast { - color: #fff -} - -.actionSheetMenuItem:hover { - background-color: #ddd -} - -.toast { - background: #303030; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #282828; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.nowPlayingBarSecondaryText { - color: #999 -} - -.itemSelectionPanel { - border: 1px solid #673AB7 -} - -.selectionCommandsPanel { - background: #673AB7; - color: #fff -} - -.upNextDialog-countdownText { - color: #673AB7 -} - -.alphaPickerButton { - color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent -} - -.alphaPickerButton-selected, -.alphaPickerButton-tv:focus { - background-color: #673AB7; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #f8f8f8 -} - -.listItem-border { - border-color: #f0f0f0 !important -} - -.progressring-spiner { - border-color: #673AB7 -} - -.mediaInfoText { - color: #333; - background: #fff -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158); - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #673AB7 -} - -.emby-select-withcolor { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.emby-select-withcolor:focus { - border-color: #673AB7 -} - -.emby-select-withcolor>option { - color: #000; - background: #fff -} - -.emby-select-tv-withcolor:focus { - background-color: #673AB7; - color: #fff -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(103, 58, 183, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #673AB7 -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.fullSyncIndicator, -.playedIndicator { - background: #673AB7 -} - -.fullSyncIndicator { - color: #fff -} - -.mainDrawer { - background: #fff -} - -.navMenuOption:hover { - background: #f2f2f2 -} - -.navMenuOption-selected { - background: #673AB7 !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #673AB7; - color: #fff -} - -.emby-tab-button { - color: #fff; - color: rgba(255, 255, 255, .54) -} - -.emby-tab-button-active, -.emby-tab-button-active.emby-button-tv { - color: #fff; - color: rgba(255, 255, 255, 1) -} - -.emby-tab-button.emby-button-tv:focus { - color: #fff; - color: rgba(255, 255, 255, 1); - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: rgba(0, 0, 0, .12) -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: rgba(0, 0, 0, .1) !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #673AB7 !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(0, 0, 0, .54) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #673AB7 -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #673AB7; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#EDE7F6)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #EDE7F6); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #EDE7F6); - background: linear-gradient(rgba(0, 0, 0, 0), #EDE7F6) -} - -.infoBanner { - color: #000; - background: #fff3a5; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #673AB7 -} diff --git a/src/components/themes/light-red/theme.css b/src/components/themes/light-red/theme.css deleted file mode 100644 index bd98f6682..000000000 --- a/src/components/themes/light-red/theme.css +++ /dev/null @@ -1,439 +0,0 @@ -.skinHeader, -html { - color: #222; - color: rgba(0, 0, 0, .87) -} - -.wizardStartForm, -.ui-corner-all, -.ui-shadow { - background-color: #c33 -} - -.emby-collapsible-button { - border-color: #ccc; - border-color: rgba(0, 0, 0, .158) -} - -.collapseContent { - background-color: #eaeaea -} - -.skinHeader-withBackground { - background-color: #c33; - -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - color: #fff -} - -.osdHeader { - -webkit-box-shadow: none !important; - box-shadow: none !important -} - -.skinHeader.semiTransparent { - -webkit-backdrop-filter: none !important; - backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .6)), to(rgba(0, 0, 0, 0))); - background: -webkit-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: -o-linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) -} - -.pageTitleWithDefaultLogo { - background-image: url(../logowhite.png) -} - -.backgroundContainer, -html { - background-color: #f2f2f2 -} - -.backgroundContainer.withBackdrop { - background-color: rgba(255, 255, 255, .94) -} - -.dialog { - background-color: #f0f0f0 -} - -.paper-icon-button-light:focus { - color: #c33; - background-color: rgba(204, 51, 51, .2) -} - -.skinHeader-withBackground .paper-icon-button-light:focus { - color: #fff; - background-color: rgba(255, 255, 255, .2) -} - -.fab, -.raised { - background: #d8d8d8; - color: inherit -} - -.fab:focus, -.raised:focus { - background: #ccc; - color: inherit -} - -.button-submit { - background: #c33; - color: #fff -} - -.button-submit:focus { - background: #D83F3F; - color: #fff -} - -.checkboxLabel { - color: inherit -} - -.checkboxListLabel, -.inputLabel, -.inputLabelUnfocused, -.paperListLabel, -.textareaLabelUnfocused { - color: #555 -} - -.button-link, -.inputLabelFocused, -.selectLabelFocused, -.textareaLabelFocused { - color: #c33 -} - -.checkboxOutline { - border-color: currentColor -} - -.paperList, -.visualCardBox { - background-color: #fff -} - -.defaultCardBackground1 { - background-color: #009688 -} - -.defaultCardBackground2 { - background-color: #D32F2F -} - -.defaultCardBackground3 { - background-color: #0288D1 -} - -.defaultCardBackground4 { - background-color: #388E3C -} - -.defaultCardBackground5 { - background-color: #F57F17 -} - -.formDialogHeader:not(.formDialogHeader-clear) { - background-color: #c33; - color: #fff -} - -.formDialogFooter:not(.formDialogFooter-clear) { - background-color: #f0f0f0; - border-top: 1px solid #ddd; - border-top: 1px solid rgba(0, 0, 0, .08); - color: inherit -} - -.cardText-secondary, -.fieldDescription, -.guide-programNameCaret, -.listItem .secondary, -.nowPlayingBarSecondaryText, -.programSecondaryTitle, -.secondaryText { - color: #888 -} - -.actionsheetDivider { - background: #ddd; - background: rgba(0, 0, 0, .14) -} - -.cardFooter-vibrant .cardText-secondary { - color: inherit; - opacity: .5 -} - -.formDialogHeader a, -.toast { - color: #fff -} - -.actionSheetMenuItem:hover { - background-color: #ddd -} - -.toast { - background: #303030; - color: rgba(255, 255, 255, .87) -} - -.appfooter { - background: #282828; - color: #ccc; - color: rgba(255, 255, 255, .78) -} - -@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); - backdrop-filter: blur(20px) - } -} - -.nowPlayingBarSecondaryText { - color: #999 -} - -.itemSelectionPanel { - border: 1px solid #c33 -} - -.selectionCommandsPanel { - background: #c33; - color: #fff -} - -.upNextDialog-countdownText { - color: #c33 -} - -.alphaPickerButton { - color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent -} - -.alphaPickerButton-selected, -.alphaPickerButton-tv:focus { - background-color: #c33; - color: #fff !important -} - -.detailTableBodyRow-shaded:nth-child(even) { - background: #f8f8f8 -} - -.listItem-border { - border-color: #f0f0f0 !important -} - -.listItem:focus { - background: #ddd -} - -.progressring-spiner { - border-color: #c33 -} - -.mediaInfoText { - color: #333; - background: #fff -} - -.mediaInfoTimerIcon, -.starIcon { - color: #CB272A -} - -.emby-input, -.emby-textarea { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158); - -webkit-border-radius: .15em; - border-radius: .15em -} - -.emby-input:focus, -.emby-textarea:focus { - border-color: #c33 -} - -.emby-select-withcolor { - color: inherit; - background: #fff; - border: .07em solid rgba(0, 0, 0, .158) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.emby-select-withcolor:focus { - border-color: #c33 -} - -.emby-select-withcolor>option { - color: #000; - background: #fff -} - -.emby-select-tv-withcolor:focus { - background-color: #c33; - color: #fff -} - -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(204, 51, 51, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #c33 -} - -.itemProgressBarForeground-recording { - background-color: #CB272A -} - -.countIndicator, -.playedIndicator { - background: #c33 -} - -.fullSyncIndicator { - background: #c33; - color: #fff -} - -.mainDrawer { - background: #fff -} - -.navMenuOption:hover { - background: #f2f2f2 -} - -.navMenuOption-selected { - background: #c33 !important; - color: #fff -} - -.emby-button-focusscale:focus { - background: #c33; - color: #fff -} - -.emby-tab-button { - color: #fff; - color: rgba(255, 255, 255, .5) -} - -.emby-tab-button-active, -.emby-tab-button-active.emby-button-tv { - color: #fff; - color: rgba(255, 255, 255, 1) -} - -.emby-tab-button.emby-button-tv:focus { - color: #fff; - color: rgba(255, 255, 255, 1); - background: 0 0 -} - -.channelPrograms, -.guide-channelHeaderCell, -.programCell { - border-color: rgba(0, 0, 0, .12) -} - -.programCell-sports { - background: #3949AB !important -} - -.programCell-movie { - background: #5E35B1 !important -} - -.programCell-kids { - background: #039BE5 !important -} - -.programCell-news { - background: #43A047 !important -} - -.programCell-active { - background: rgba(0, 0, 0, .1) !important -} - -.guide-channelHeaderCell:focus, -.programCell:focus { - background-color: #c33 !important; - color: #fff !important -} - -.guide-programTextIcon { - color: #1e1e1e; - background: #555 -} - -.guide-headerTimeslots { - color: inherit -} - -.guide-date-tab-button { - color: #555; - color: rgba(0, 0, 0, .54) -} - -.guide-date-tab-button.emby-tab-button-active, -.guide-date-tab-button:focus { - color: #00a4dc -} - -.guide-date-tab-button.emby-button-tv:focus { - background-color: #00a4dc; - color: #fff -} - -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#f2f2f2)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #f2f2f2); - background: linear-gradient(rgba(0, 0, 0, 0), #f2f2f2) -} - -.infoBanner { - color: #000; - background: #fff3a5; - padding: 1em; - -webkit-border-radius: .25em; - border-radius: .25em -} - -.ratingbutton-icon-withrating { - color: #c33 -} - -.downloadbutton-icon-complete, -.downloadbutton-icon-on { - color: #4285F4 -} - -.playstatebutton-icon-played { - color: #c33 -} - -.repeatButton-active { - color: #4285F4 -} - -.card:focus .card-focuscontent { - border-color: #c33 -} From 2cac48cf2b17c3e19aa001d363cb464a54a1d07e Mon Sep 17 00:00:00 2001 From: bugfixin Date: Fri, 26 Apr 2019 17:51:49 +0000 Subject: [PATCH 052/106] Remove extraneous padding from sliders --- src/components/emby-slider/emby-slider.css | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/emby-slider/emby-slider.css b/src/components/emby-slider/emby-slider.css index 179270e22..ee71abd0b 100644 --- a/src/components/emby-slider/emby-slider.css +++ b/src/components/emby-slider/emby-slider.css @@ -17,7 +17,6 @@ _:-ms-input-placeholder { -ms-user-select: none; user-select: none; outline: 0; - padding: 1em 0; color: #00a4dc; -webkit-align-self: center; -ms-flex-item-align: center; From d9210a7aa15b717403550f42ca08f2a1ffab809b Mon Sep 17 00:00:00 2001 From: bugfixin Date: Fri, 26 Apr 2019 23:00:44 +0000 Subject: [PATCH 053/106] Remove outdated firefox exception for slider bubble --- src/components/emby-slider/emby-slider.js | 45 +++++++++++------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/components/emby-slider/emby-slider.js b/src/components/emby-slider/emby-slider.js index 3daaf8841..1ca1448ea 100644 --- a/src/components/emby-slider/emby-slider.js +++ b/src/components/emby-slider/emby-slider.js @@ -141,34 +141,31 @@ define(['browser', 'dom', 'layoutManager', 'css!./emby-slider', 'registerElement passive: true }); - // In firefox this feature disrupts the ability to move the slider - if (!browser.firefox) { - dom.addEventListener(this, (window.PointerEvent ? 'pointermove' : 'mousemove'), function (e) { + dom.addEventListener(this, (window.PointerEvent ? 'pointermove' : 'mousemove'), function (e) { - if (!this.dragging) { - var rect = this.getBoundingClientRect(); - var clientX = e.clientX; - var bubbleValue = (clientX - rect.left) / rect.width; - bubbleValue *= 100; - updateBubble(this, bubbleValue, sliderBubble); + if (!this.dragging) { + var rect = this.getBoundingClientRect(); + var clientX = e.clientX; + var bubbleValue = (clientX - rect.left) / rect.width; + bubbleValue *= 100; + updateBubble(this, bubbleValue, sliderBubble); - if (hasHideClass) { - sliderBubble.classList.remove('hide'); - hasHideClass = false; - } + if (hasHideClass) { + sliderBubble.classList.remove('hide'); + hasHideClass = false; } + } - }, { - passive: true - }); + }, { + passive: true + }); - dom.addEventListener(this, (window.PointerEvent ? 'pointerleave' : 'mouseleave'), function () { - sliderBubble.classList.add('hide'); - hasHideClass = true; - }, { - passive: true - }); - } + dom.addEventListener(this, (window.PointerEvent ? 'pointerleave' : 'mouseleave'), function () { + sliderBubble.classList.add('hide'); + hasHideClass = true; + }, { + passive: true + }); if (!supportsNativeProgressStyle) { @@ -269,4 +266,4 @@ define(['browser', 'dom', 'layoutManager', 'css!./emby-slider', 'registerElement prototype: EmbySliderPrototype, extends: 'input' }); -}); \ No newline at end of file +}); From 02ad6c51af05d5ae01b1d8048f254f560d156111 Mon Sep 17 00:00:00 2001 From: bugfixin Date: Fri, 26 Apr 2019 23:36:00 +0000 Subject: [PATCH 054/106] Change reference to correct autoplaydetect file --- src/scripts/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index f984f20eb..6ca850a0f 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -703,7 +703,7 @@ var AppInfo = {}; itemHelper: componentsPath + "/itemhelper", itemShortcuts: componentsPath + "/shortcuts", playQueueManager: componentsPath + "/playback/playqueuemanager", - autoPlayDetect: componentsPath + "/playback/autoPlayDetect", + autoPlayDetect: componentsPath + "/playback/autoplaydetect", nowPlayingHelper: componentsPath + "/playback/nowplayinghelper", pluginManager: componentsPath + "/pluginmanager", packageManager: componentsPath + "/packagemanager" From 588c8c8fc757c01f72b10a3cedef726bd3ae7b15 Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 26 Apr 2019 20:39:43 -0700 Subject: [PATCH 055/106] fix some issues with the user preference page --- src/controllers/loginpage.js | 8 +-- src/controllers/mypreferencescommon.js | 29 +++++----- src/mypreferencesmenu.html | 73 +++++++++++--------------- src/scripts/librarymenu.js | 6 +-- 4 files changed, 49 insertions(+), 67 deletions(-) diff --git a/src/controllers/loginpage.js b/src/controllers/loginpage.js index 2f396ff5e..1c291e4c2 100644 --- a/src/controllers/loginpage.js +++ b/src/controllers/loginpage.js @@ -146,12 +146,8 @@ define(["apphost", "appSettings", "dom", "connectionManager", "loading", "cardSt var apiClient = getApiClient(); apiClient.getPublicUsers().then(function(users) { if (users.length) { - if (users[0].EnableAutoLogin) { - authenticateUserByName(view, apiClient, users[0].Name, ""); - } else { - showVisualForm(); - loadUserList(view, apiClient, users); - } + showVisualForm(); + loadUserList(view, apiClient, users); } else { view.querySelector("#txtManualName").value = ""; showManualForm(view, false, false); diff --git a/src/controllers/mypreferencescommon.js b/src/controllers/mypreferencescommon.js index 51e9c1086..5423c5294 100644 --- a/src/controllers/mypreferencescommon.js +++ b/src/controllers/mypreferencescommon.js @@ -7,14 +7,15 @@ define(["apphost", "connectionManager", "listViewStyle", "emby-button"], functio }); view.addEventListener("viewshow", function() { - var page = this; + // this page can also be used by admins to change user preferences from the user edit page var userId = params.userId || Dashboard.getCurrentUserId(); + var page = this; - page.querySelector(".lnkDisplayPreferences").setAttribute("href", "mypreferencesdisplay.html?userId=" + userId); - page.querySelector(".lnkLanguagePreferences").setAttribute("href", "mypreferenceslanguages.html?userId=" + userId); - page.querySelector(".lnkSubtitleSettings").setAttribute("href", "mypreferencessubtitles.html?userId=" + userId); - page.querySelector(".lnkHomeScreenPreferences").setAttribute("href", "mypreferenceshome.html?userId=" + userId); page.querySelector(".lnkMyProfile").setAttribute("href", "myprofile.html?userId=" + userId); + page.querySelector(".lnkDisplayPreferences").setAttribute("href", "mypreferencesdisplay.html?userId=" + userId); + page.querySelector(".lnkHomePreferences").setAttribute("href", "mypreferenceshome.html?userId=" + userId); + page.querySelector(".lnkLanguagePreferences").setAttribute("href", "mypreferenceslanguages.html?userId=" + userId); + page.querySelector(".lnkSubtitlePreferences").setAttribute("href", "mypreferencessubtitles.html?userId=" + userId); if (appHost.supports("multiserver")) { page.querySelector(".selectServer").classList.remove("hide") @@ -22,19 +23,15 @@ define(["apphost", "connectionManager", "listViewStyle", "emby-button"], functio page.querySelector(".selectServer").classList.add("hide"); } - connectionManager.user(ApiClient).then(function(user) { - if (user.localUser && !user.localUser.EnableAutoLogin) { - view.querySelector(".btnLogout").classList.remove("hide"); - } else { - view.querySelector(".btnLogout").classList.add("hide"); - } - }); + // hide the actions if user preferences are being edited for a different user + if (params.userId && params.userId !== Dashboard.getCurrentUserId) { + page.querySelector(".userSection").classList.add("hide"); + page.querySelector(".adminSection").classList.add("hide"); + } - Dashboard.getCurrentUser().then(function(user) { + ApiClient.getUser(userId).then(function(user) { page.querySelector(".headerUsername").innerHTML = user.Name; - if (user.Policy.IsAdministrator) { - page.querySelector(".adminSection").classList.remove("hide"); - } else { + if (!user.Policy.IsAdministrator) { page.querySelector(".adminSection").classList.add("hide"); } }); diff --git a/src/mypreferencesmenu.html b/src/mypreferencesmenu.html index eda9d4208..008c39b43 100644 --- a/src/mypreferencesmenu.html +++ b/src/mypreferencesmenu.html @@ -22,7 +22,7 @@
- +
home
@@ -40,7 +40,7 @@
- + -
+

${HeaderAdmin}

-
- - - -
+ diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index d25c4066c..484ee1135 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -201,11 +201,9 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " if (appHost.supports("multiserver")) { html += 'wifi' + globalize.translate("ButtonSelectServer") + ""; } - if (!user.localUser.EnableAutoLogin) { - html += 'exit_to_app' + globalize.translate("ButtonSignOut") + ""; - } + html += 'exit_to_app' + globalize.translate("ButtonSignOut") + ""; + html += "
"; } - html += "
"; // add buttons to navigation drawer navDrawerScrollContainer.innerHTML = html; From 6ee9772eca6cda5982c300baf6922b9ffdd68aac Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sat, 27 Apr 2019 20:54:57 +0300 Subject: [PATCH 056/106] change cast & crew scroller to horizontal --- src/controllers/itemdetailpage.js | 9 +++------ src/itemdetails.html | 11 ++++++----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index f352f71c0..1d59d4852 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -1028,9 +1028,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild if (!people.length) return void page.querySelector("#castCollapsible").classList.add("hide"); page.querySelector("#castCollapsible").classList.remove("hide"); var castContent = page.querySelector("#castContent"); - enableScrollX() ? (castContent.classList.add("scrollX"), limit = 32) : castContent.classList.add("vertical-wrap"); - var limitExceeded = limit && people.length > limit; - limitExceeded && (people = people.slice(0), people.length = Math.min(limit, people.length)), require(["peoplecardbuilder"], function(peoplecardbuilder) { + require(["peoplecardbuilder"], function(peoplecardbuilder) { peoplecardbuilder.buildPeopleCards(people, { itemsContainer: castContent, coverImage: !0, @@ -1038,9 +1036,8 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild width: 160, shape: getPortraitShape() }) - }); - var morePeopleButton = page.querySelector(".morePeople"); - morePeopleButton && (limitExceeded && !enableScrollX() ? morePeopleButton.classList.remove("hide") : morePeopleButton.classList.add("hide")) + }) + } function itemDetailPage() { diff --git a/src/itemdetails.html b/src/itemdetails.html index 30d6171f4..0a8c02eb4 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -251,12 +251,13 @@
-

+

${HeaderCastCrew}

-
-
- +
+
+
+
@@ -312,4 +313,4 @@
-
\ No newline at end of file +
From 5dcbf946f687572c1e600f09874b5037ccb7f2e3 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sat, 27 Apr 2019 21:08:39 +0300 Subject: [PATCH 057/106] remove white scpace --- src/controllers/itemdetailpage.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 1d59d4852..dbe3e4e5f 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -1037,7 +1037,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild shape: getPortraitShape() }) }) - } function itemDetailPage() { From bca2b35d495758bb3c94ccaf5a43fed5212ea684 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Fri, 26 Apr 2019 08:46:01 -0400 Subject: [PATCH 058/106] Update src/controllers/videoosd.js Co-Authored-By: DrPandemic --- src/controllers/videoosd.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index 96613aec7..1825f6d6c 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -1255,11 +1255,8 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med if (browser.touch) { dom.addEventListener(view, "dblclick", onDoubleClick, {}); } else { - dom.addEventListener(view, "dblclick", function () { - playbackManager.toggleFullscreen(currentPlayer); - }, { - passive: true - }); + var options = { passive: true }; + dom.addEventListener(view, "dblclick", function () { playbackManager.toggleFullscreen(currentPlayer); }, options); } view.querySelector(".buttonMute").addEventListener("click", function () { From f071e420bdafcddce4679816d615ef6964a7fa49 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 29 Apr 2019 20:59:22 +0300 Subject: [PATCH 059/106] fix bad implementation --- src/css/dashboard.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/css/dashboard.css b/src/css/dashboard.css index 149678d33..3d6782361 100644 --- a/src/css/dashboard.css +++ b/src/css/dashboard.css @@ -17,8 +17,6 @@ progress { appearance: none; -moz-appearance: none; -webkit-appearance: none; - border: 2px solid #ccc; - -webkit-border-radius: .4em; border-radius: .4em; margin: 0; background: #ccc !important @@ -29,6 +27,7 @@ progress[role]:after { } progress::-webkit-progress-bar { + border-radius: .4em; background: #ccc } From 8039d656afc1d9a1f3c5f4ddbe4598e9252b603c Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 29 Apr 2019 22:18:38 +0300 Subject: [PATCH 060/106] remove border-radius --- src/css/dashboard.css | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/css/dashboard.css b/src/css/dashboard.css index 3d6782361..e5b2c20a3 100644 --- a/src/css/dashboard.css +++ b/src/css/dashboard.css @@ -17,7 +17,6 @@ progress { appearance: none; -moz-appearance: none; -webkit-appearance: none; - border-radius: .4em; margin: 0; background: #ccc !important } @@ -27,23 +26,18 @@ progress[role]:after { } progress::-webkit-progress-bar { - border-radius: .4em; background: #ccc } progress::-moz-progress-bar { - border-radius: .4em; background-color: #00a4dc } progress::-webkit-progress-value { - -webkit-border-radius: .4em; - border-radius: .4em; background-color: #00a4dc } progress[aria-valuenow]:before { - -webkit-border-radius: .4em; border-radius: .4em; background-color: #00a4dc } From 78a780f5c448c37a0673a2d1ca94beb20607f0b0 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 30 Apr 2019 17:42:23 +0300 Subject: [PATCH 061/106] Add a round progress bar to purple haze theme --- src/components/themes/purple-haze/theme.css | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index 9c584f9b3..a0432dd05 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -63,6 +63,22 @@ html { background-color: rgba(0,164,220, .2) } +progress { + border-radius: .4em; +} + +progress::-webkit-progress-bar { + border-radius: .4em; +} + +progress::-moz-progress-bar { + border-radius: .4em; +} + +progress::-webkit-progress-value { + border-radius: .4em; +} + .fab, .raised { background: rgba(0, 0, 0, .5); From 6f3b28d7b0ed70ba301f6771a37e974273cf0aa2 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Tue, 30 Apr 2019 12:58:31 -0400 Subject: [PATCH 062/106] Fix "Password Reset by PIN" page --- src/controllers/forgotpassword.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/controllers/forgotpassword.js b/src/controllers/forgotpassword.js index bb9489a11..ac010a9b3 100644 --- a/src/controllers/forgotpassword.js +++ b/src/controllers/forgotpassword.js @@ -12,9 +12,12 @@ define([], function() { }); if ("PinCode" == result.Action) { var msg = Globalize.translate("MessageForgotPasswordFileCreated"); - return msg += "
", msg += "
", msg += "Enter PIN here to finish Password Reset" ,msg += "
",msg += result.PinFile, msg += "
", void Dashboard.alert({ + return msg += "
", msg += "
", msg += "Enter PIN here to finish Password Reset
" ,msg += "
",msg += result.PinFile, msg += "
", void Dashboard.alert({ message: msg, - title: Globalize.translate("HeaderForgotPassword") + title: Globalize.translate("HeaderForgotPassword"), + callback: function() { + Dashboard.navigate("forgotpasswordpin.html") + } }) } } @@ -31,4 +34,4 @@ define([], function() { } view.querySelector("form").addEventListener("submit", onSubmit) } -}); \ No newline at end of file +}); From 658aedf96a4e337f7e1e3980ba9cb9d0b53095b6 Mon Sep 17 00:00:00 2001 From: Jean-Samuel Aubry-Guzzi Date: Thu, 25 Apr 2019 12:35:02 -0400 Subject: [PATCH 063/106] Change keyboard shortcuts to match youtube Use the same keyboard shortcuts than Youtube. Add shortcut tooltips in titles. Make sure tab is focused before handling gampad events. --- src/controllers/videoosd.js | 59 ++++++++++++++++++++++++++----------- src/videoosd.html | 10 +++---- 2 files changed, 47 insertions(+), 22 deletions(-) diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index c9befe03c..45a58b816 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -530,7 +530,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med view.querySelector(".btnFullscreen").setAttribute("title", globalize.translate("ExitFullscreen")); view.querySelector(".btnFullscreen i").innerHTML = ""; } else { - view.querySelector(".btnFullscreen").setAttribute("title", globalize.translate("Fullscreen")); + view.querySelector(".btnFullscreen").setAttribute("title", globalize.translate("Fullscreen") + " (f)"); view.querySelector(".btnFullscreen i").innerHTML = ""; } } @@ -713,7 +713,14 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med } function updatePlayPauseState(isPaused) { - view.querySelector(".btnPause i").innerHTML = isPaused ? "" : ""; + var button = view.querySelector(".btnPause i"); + if (isPaused) { + button.innerHTML = ""; + button.setAttribute("title", globalize.translate("ButtonPlay") + " (k)"); + } else { + button.innerHTML = ""; + button.setAttribute("title", globalize.translate("ButtonPause") + " (k)"); + } } function updatePlayerStateInternal(event, player, state) { @@ -836,10 +843,10 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med } if (isMuted) { - view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Unmute")); + view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Unmute") + " (m)"); view.querySelector(".buttonMute i").innerHTML = ""; } else { - view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Mute")); + view.querySelector(".buttonMute").setAttribute("title", globalize.translate("Mute") + " (m)"); view.querySelector(".buttonMute i").innerHTML = ""; } @@ -1013,43 +1020,61 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med } function onWindowKeyDown(e) { - if (!currentVisibleMenu && (32 === e.keyCode || 13 === e.keyCode)) { + if (!currentVisibleMenu && 32 === e.keyCode) { playbackManager.playPause(currentPlayer); return void showOsd(); } switch (e.key) { - case "f": - if (!e.ctrlKey) { - playbackManager.toggleFullscreen(currentPlayer); - } + case "k": + playbackManager.playPause(currentPlayer); + showOsd(); + break; + case "l": + case "ArrowRight": + case "Right": + playbackManager.fastForward(currentPlayer); + showOsd(); + break; + + case "j": + case "ArrowLeft": + case "Left": + playbackManager.rewind(currentPlayer); + showOsd(); + break; + + case "f": + if (!e.ctrlKey && !e.metaKey) { + playbackManager.toggleFullscreen(currentPlayer); + showOsd(); + } break; case "m": playbackManager.toggleMute(currentPlayer); + showOsd(); break; - case "ArrowLeft": - case "Left": case "NavigationLeft": case "GamepadDPadLeft": case "GamepadLeftThumbstickLeft": - if (e.shiftKey) { + // Ignores gamepad events that are always triggered, even when not focused. + if (document.hasFocus()) { playbackManager.rewind(currentPlayer); + showOsd(); } - break; - case "ArrowRight": - case "Right": case "NavigationRight": case "GamepadDPadRight": case "GamepadLeftThumbstickRight": - if (e.shiftKey) { + // Ignores gamepad events that are always triggered, even when not focused. + if (document.hasFocus()) { playbackManager.fastForward(currentPlayer); + showOsd(); } - } } diff --git a/src/videoosd.html b/src/videoosd.html index e70adbe39..aaa4b33ed 100644 --- a/src/videoosd.html +++ b/src/videoosd.html @@ -37,7 +37,7 @@ - @@ -45,7 +45,7 @@ - @@ -62,7 +62,7 @@ -
@@ -82,4 +82,4 @@
-
\ No newline at end of file +
From 8a1ea0ae5f2007be617591e1e995a914942f8e7c Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 3 May 2019 02:57:20 +0300 Subject: [PATCH 064/106] fix dashboard column --- src/css/dashboard.css | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/css/dashboard.css b/src/css/dashboard.css index e5b2c20a3..5a44c51f2 100644 --- a/src/css/dashboard.css +++ b/src/css/dashboard.css @@ -212,20 +212,6 @@ div[data-role=controlgroup] a.ui-btn-active { } } -@media all and (min-width:94em) { - .dashboardColumn-3-46 { - width: 46% - } - - .dashboardColumn-3-27 { - width: 27% - } - - .activeRecordingItems>.card { - width: 50% - } -} - .premiumBanner img { position: absolute; text-align: right; From b62f6edbc4e00c4804943eb43b537887ee529943 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 3 May 2019 02:58:37 +0300 Subject: [PATCH 065/106] update purple haze --- src/components/themes/purple-haze/theme.css | 84 +++++++++++---------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index a0432dd05..b3c3843ef 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -1,7 +1,7 @@ .skinHeader, html { - color: #ddd; - color: rgba(255, 255, 255, .8) + color: #f8f8fe; + color: rgba(248, 248, 254, 0.973) } .wizardStartForm, @@ -39,7 +39,7 @@ html { .dialog, html { - background-color: #3f2d7a + background-color: #0e0f2d } .backgroundContainer { @@ -59,7 +59,7 @@ html { } .paper-icon-button-light:focus { - color: #00a4dc; + color: #48C3C8; background-color: rgba(0,164,220, .2) } @@ -91,13 +91,13 @@ progress::-webkit-progress-value { } .button-submit { - background: #00a4dc; - color: #fff + background: #48C3C8; + color: #f8f8fe } -.button-submit:focus { - background: #0cb0e8; - color: #fff +.button-submit:hover { + background: #0ce8d6; + color: #f8f8fe } .checkboxLabel { @@ -116,7 +116,7 @@ progress::-webkit-progress-value { .inputLabelFocused, .selectLabelFocused, .textareaLabelFocused { - color: #00a4dc + color: #48C3C8 } .checkboxOutline { @@ -191,7 +191,7 @@ progress::-webkit-progress-value { .toast { background: #303030; - color: #fff; + color: #f8f8fe; color: rgba(255, 255, 255, .87) } @@ -210,16 +210,16 @@ progress::-webkit-progress-value { } .itemSelectionPanel { - border: 1px solid #00a4dc + border: 1px solid #48C3C8 } .selectionCommandsPanel { - background: #00a4dc; - color: #fff + background: #48C3C8; + color: #f8f8fe } .upNextDialog-countdownText { - color: #00a4dc + color: #48C3C8 } .alphaPickerButton { @@ -229,12 +229,12 @@ progress::-webkit-progress-value { } .alphaPickerButton-selected { - color: #fff + color: #0ce8d6 } .alphaPickerButton-tv:focus { - background-color: #00a4dc; - color: #fff !important + background: #0ce8d6; + color: #f8f8fe !important } .detailTableBodyRow-shaded:nth-child(even) { @@ -251,16 +251,16 @@ progress::-webkit-progress-value { } .progressring-spiner { - border-color: #00a4dc + border-color: #48C3C8 } .button-flat-accent, .button-link { - color: #00a4dc + color: #48C3C8 } .mediaInfoText { - color: #ddd; + color: #f8f8fe; background: rgba(170, 170, 190, .2) } @@ -280,7 +280,7 @@ progress::-webkit-progress-value { .emby-input:focus, .emby-textarea:focus { - border-color: #00a4dc + border-color: #48C3C8 } .emby-select-withcolor { @@ -291,20 +291,20 @@ progress::-webkit-progress-value { .emby-select-withcolor>option { color: inherit; - background: #222 + background: #030322d7 } .emby-select-withcolor:focus { - border-color: #00a4dc !important + border-color: #48C3C8 !important } .emby-select-tv-withcolor:focus { - background-color: #00a4dc !important; + background-color: #48C3C8 !important; color: #fff !important } .emby-checkbox:checked+span+span+.checkboxOutline { - border-color: #00a4dc + border-color: #48C3C8 } .emby-checkbox:focus+span+.emby-checkbox-focushelper { @@ -313,7 +313,7 @@ progress::-webkit-progress-value { .emby-checkbox:checked+span+span+.checkboxOutline, .itemProgressBarForeground { - background-color: #00a4dc + background-color: #48C3C8 } .itemProgressBarForeground-recording { @@ -323,7 +323,7 @@ progress::-webkit-progress-value { .countIndicator, .fullSyncIndicator, .playedIndicator { - background: #00a4dc + background: #48C3C8 } .fullSyncIndicator { @@ -331,6 +331,7 @@ progress::-webkit-progress-value { } .mainDrawer { + color: #f8f8fe; background: rgba(0, 0, 0, .5); } @@ -345,12 +346,12 @@ progress::-webkit-progress-value { .navMenuOption-selected { background: #6f0765 !important; - color: #fff + color: #f8f8fe } .emby-button-focusscale:focus { - background: #00a4dc; - color: #fff + background: #48C3C8; + color: #f8f8fe } .emby-tab-button { @@ -359,15 +360,15 @@ progress::-webkit-progress-value { } .emby-tab-button-active { - color: #fff + color: #f8f8fe } .emby-tab-button-active.emby-button-tv { - color: #fff + color: #f8f8fe } .emby-tab-button.emby-button-tv:focus { - color: #00a4dc; + color: #48C3C8; background: 0 0 } @@ -399,7 +400,7 @@ progress::-webkit-progress-value { .guide-channelHeaderCell:focus, .programCell:focus { - background-color: #00a4dc !important; + background-color: #48C3C8 !important; color: #fff !important } @@ -419,11 +420,11 @@ progress::-webkit-progress-value { .guide-date-tab-button.emby-tab-button-active, .guide-date-tab-button:focus { - color: #00a4dc + color: #48C3C8 } .guide-date-tab-button.emby-button-tv:focus { - background-color: #00a4dc; + background-color: #48C3C8; color: #fff } @@ -435,8 +436,8 @@ progress::-webkit-progress-value { } .infoBanner { - color: #ddd; - background: #111; + color: #0e0f2d; + background: #dbe6ff; padding: 1em; -webkit-border-radius: .25em; border-radius: .25em @@ -460,7 +461,7 @@ progress::-webkit-progress-value { } .card:focus .card-focuscontent { - border-color: #00a4dc + border-color: #48C3C8 } .layout-desktop ::-webkit-scrollbar { @@ -488,5 +489,6 @@ progress::-webkit-progress-value { .mediaInfoOfficialRating { border: .09em solid #583fa0; - background-color: #5a1259 + background-color: #dbe6ff; + color: #0e0f2d; } From 536eb398f955551f148ff5305e8e856b228f67ee Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 2 May 2019 17:10:02 -0700 Subject: [PATCH 066/106] remove networking info from the dashboard --- src/controllers/dashboardpage.js | 49 +++++++------------------------- src/dashboard.html | 5 ++-- src/strings/en-us.json | 2 ++ 3 files changed, 14 insertions(+), 42 deletions(-) diff --git a/src/controllers/dashboardpage.js b/src/controllers/dashboardpage.js index 33f168491..a3b11f442 100644 --- a/src/controllers/dashboardpage.js +++ b/src/controllers/dashboardpage.js @@ -180,25 +180,25 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa view.querySelector("#serverName").innerHTML = globalize.translate("DashboardServerName", systemInfo.ServerName); var localizedVersion = globalize.translate("DashboardVersionNumber", systemInfo.Version); - if (systemInfo.SystemUpdateLevel && "Release" != systemInfo.SystemUpdateLevel) { - localizedVersion += " " + globalize.translate("Option" + systemInfo.SystemUpdateLevel).toLowerCase(); + if (systemInfo.SystemUpdateLevel !== "Release") { + localizedVersion += " " + systemInfo.SystemUpdateLevel; } view.querySelector("#versionNumber").innerHTML = localizedVersion; - if (systemInfo.SupportsHttps) { - view.querySelector("#ports").innerHTML = globalize.translate("LabelRunningOnPorts", systemInfo.HttpServerPortNumber, systemInfo.HttpsPortNumber); - } else { - view.querySelector("#ports").innerHTML = globalize.translate("LabelRunningOnPort", systemInfo.HttpServerPortNumber); - } - - DashboardPage.renderUrls(view, systemInfo); - DashboardPage.renderPaths(view, systemInfo); + view.querySelector("#operatingSystem").innerHTML = globalize.translate("DashboardOperatingSystem", systemInfo.OperatingSystem); + view.querySelector("#architecture").innerHTML = globalize.translate("DashboardArchitecture", systemInfo.SystemArchitecture); if (systemInfo.CanSelfRestart) { view.querySelector("#btnRestartServer").classList.remove("hide"); } else { view.querySelector("#btnRestartServer").classList.add("hide"); } + + view.querySelector("#cachePath").innerHTML = systemInfo.CachePath; + view.querySelector("#logPath").innerHTML = systemInfo.LogPath; + view.querySelector("#transcodePath").innerHTML = systemInfo.TranscodingTempPath; + view.querySelector("#metadataPath").innerHTML = systemInfo.InternalMetadataPath; + view.querySelector("#webPath").innerHTML = systemInfo.WebPath; }); } @@ -373,13 +373,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa } window.DashboardPage = { - renderPaths: function (page, systemInfo) { - page.querySelector("#cachePath").innerHTML = systemInfo.CachePath; - page.querySelector("#logPath").innerHTML = systemInfo.LogPath; - page.querySelector("#transcodePath").innerHTML = systemInfo.TranscodingTempPath; - page.querySelector("#metadataPath").innerHTML = systemInfo.InternalMetadataPath; - page.querySelector("#webPath").innerHTML = systemInfo.WebPath; - }, startInterval: function (apiClient) { apiClient.sendMessage("SessionsStart", "0,1500"); apiClient.sendMessage("ScheduledTasksInfoStart", "0,1000"); @@ -711,28 +704,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa return null; }, systemUpdateTaskKey: "SystemUpdateTask", - renderUrls: function (page, systemInfo) { - var helpButton = '' + globalize.translate("ButtonHelp") + ""; - var localUrlElem = page.querySelector(".localUrl"); - var externalUrlElem = page.querySelector(".externalUrl"); - - if (systemInfo.LocalAddress) { - var localAccessHtml = globalize.translate("LabelLocalAccessUrl", '' + systemInfo.LocalAddress + ""); - localUrlElem.innerHTML = localAccessHtml + helpButton; - localUrlElem.classList.remove("hide"); - } else { - localUrlElem.classList.add("hide"); - } - - if (systemInfo.WanAddress) { - var externalUrl = systemInfo.WanAddress; - var remoteAccessHtml = globalize.translate("LabelRemoteAccessUrl", '' + externalUrl + ""); - externalUrlElem.innerHTML = remoteAccessHtml + helpButton; - externalUrlElem.classList.remove("hide"); - } else { - externalUrlElem.classList.add("hide"); - } - }, stopTask: function (btn, id) { var page = dom.parentWithClass(btn, "page"); ApiClient.stopScheduledTask(id).then(function () { diff --git a/src/dashboard.html b/src/dashboard.html index 71c4bf5e1..c8fcb93eb 100644 --- a/src/dashboard.html +++ b/src/dashboard.html @@ -11,9 +11,8 @@

-

-

-

+

+

diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 2bd595a33..66d3f2422 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -879,6 +879,8 @@ "LabelVersionInstalled": "{0} installed", "DashboardVersionNumber": "Version: {0}", "DashboardServerName": "Server: {0}", + "DashboardOperatingSystem": "Operating System: {0}", + "DashboardArchitecture": "Architecture: {0}", "LabelVideo": "Video:", "LabelWeb": "Web: ", "LabelXDlnaCap": "X-Dlna cap:", From 19530c4ade19298ed84105bc2f927c55f63e5472 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 2 May 2019 17:12:30 -0700 Subject: [PATCH 067/106] remove unused strings --- src/strings/ar.json | 5 ----- src/strings/bg-bg.json | 4 ---- src/strings/ca.json | 7 ------- src/strings/cs.json | 10 ---------- src/strings/da.json | 11 ----------- src/strings/de.json | 11 ----------- src/strings/el.json | 6 ------ src/strings/en-us.json | 11 ----------- src/strings/es-ar.json | 1 - src/strings/es-mx.json | 11 ----------- src/strings/es.json | 11 ----------- src/strings/fr.json | 11 ----------- src/strings/he.json | 1 - src/strings/hr.json | 5 ----- src/strings/hu.json | 11 ----------- src/strings/it.json | 11 ----------- src/strings/kk.json | 10 ---------- src/strings/ko.json | 2 -- src/strings/nb.json | 5 ----- src/strings/nl.json | 10 ---------- src/strings/pl.json | 11 ----------- src/strings/pt-br.json | 10 ---------- src/strings/pt-pt.json | 5 ----- src/strings/ru.json | 11 ----------- src/strings/sk.json | 7 ------- src/strings/sv.json | 8 -------- src/strings/zh-cn.json | 11 ----------- src/strings/zh-hk.json | 3 --- src/strings/zh-tw.json | 4 ---- 29 files changed, 224 deletions(-) diff --git a/src/strings/ar.json b/src/strings/ar.json index 4364e94b5..05830f2ab 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -46,7 +46,6 @@ "ButtonLibraryAccess": "صلاحيات المكتبة", "ButtonManualLogin": "الدخول اليدوي", "ButtonMore": "المزيد", - "ButtonMoreInformation": "المزيد من المعلومات", "ButtonNetwork": "الشبكة", "ButtonNew": "جديد", "ButtonNextTrack": "المقطوعة التالية", @@ -362,7 +361,6 @@ "LabelDidlMode": "طور didl:", "LabelDisplayMissingEpisodesWithinSeasons": "أظهر الحلقات المفقودة في مجلدات المواسم", "LabelDisplayName": "الاسم المعروض:", - "LabelDisplayPluginsFor": "أظهر الملحقات لـ:", "LabelDisplaySpecialsWithinSeasons": "أظهر الحلقات الخاصة في المواسم التي بثت فيها", "LabelDownMixAudioScale": "تعزيز الصوت عند تقليل توزيع قنوات الصوت:", "LabelDownMixAudioScaleHelp": "تعزيز الصوت عند تقليل توزيع قنوات الصوت. حدد القيمة بـ 1 للمحافظة على القيمة الأصلية للصوت.", @@ -375,7 +373,6 @@ "LabelEnableAutomaticPortMapHelp": "حاول التوفيق بين المنفذ العالمي والمنفذ المحلي آلياً باستخدام آلية UPnP. هذه الخاصية قد لا تعمل مع بعض أنواع الراوترات.", "LabelEnableBlastAliveMessages": "بث رسائل قيد التشغيل", "LabelEnableBlastAliveMessagesHelp": "فعل هذه الخاصية إذا كان الخادم لا يكتشف بكفاءة من قبل أجهزة UPnP الأخرى على شبكتك", - "LabelEnableDebugLogging": "تمكين تسيجل الأخطاء في السجل الكشفي", "LabelEnableDlnaClientDiscoveryInterval": "فترات استكشاف العملاء (بالثواني)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "يحدد الفترة بالثواني بين عمليات بحث SSDP التي يقوم بها أمبي.", "LabelEnableDlnaDebugLogging": "تفعيل خاصية كشوفات أخطاء DLNA", @@ -515,8 +512,6 @@ "LabelRecordingPathHelp": "حدد موقع افتراضي لحفظ المقاطع المسجلة، لو تركت هذه الخانة فارغة، فسيستعمل مجلد بيانات البرنامج.", "LabelReleaseDate": "تاريخ الإصدار", "LabelRemoteClientBitrateLimit": "حدد معدل البت للتشغيل التدفقي عبر الإنترنت (Mbps)", - "LabelRunningOnPort": "متصل عبر منفذ httpـ {0}", - "LabelRunningOnPorts": "متصل عبر منفذ httpـ {0}، ومنفذ httpsـ {1}.", "LabelRuntimeMinutes": "مدة التشغيل (بالدقائق):", "LabelSaveLocalMetadata": "حفظ الأعمال الفنية وواصفات البيانات فى مجلدات الوسائط", "LabelSaveLocalMetadataHelp": "حقظ الأعمال الفنية وواصفات البيانات مباشرة فى مجلدات الوسائط سيسهل عليك الوصول وعمل التعديلاات عليها.", diff --git a/src/strings/bg-bg.json b/src/strings/bg-bg.json index de817d0eb..a0058506a 100644 --- a/src/strings/bg-bg.json +++ b/src/strings/bg-bg.json @@ -331,7 +331,6 @@ "LabelDisplayMode": "Режим на показване:", "LabelDisplayName": "Показвано име:", "LabelDisplayOrder": "Ред на показване:", - "LabelDisplayPluginsFor": "Показване на приставки за:", "LabelDisplaySpecialsWithinSeasons": "Специалните епизоди да се показват в сезона, в който са излъчени", "LabelDownMixAudioScale": "Усилване на аудиото след downmixing:", "LabelDownMixAudioScaleHelp": "Усилва звука след downmixing. Въведете 1, за да се запази оригиналното ниво на звука.", @@ -340,7 +339,6 @@ "LabelDropShadow": "Сянка:", "LabelEmbedAlbumArtDidl": "Вградждане на албумно изкуство в Didl", "LabelEnableAutomaticPortMap": "Автоматично съответстване на портовете", - "LabelEnableDebugLogging": "Включване на журналите за грешки", "LabelEnableDlnaClientDiscoveryInterval": "Интервал за откриване на клиенти (секунди)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Определя времетраенето в секунди между SSDP търсения направени от Jellyfin.", "LabelEnableDlnaDebugLogging": "Включване на журналите за грешки на ДЛНА", @@ -432,8 +430,6 @@ "LabelRecordingPath": "Път за запис по подразбиране:", "LabelReleaseDate": "Дата на издаване:", "LabelRemoteClientBitrateLimit": "Ограничение на интернетното излъчване (мбит/сек):", - "LabelRunningOnPort": "Върви на порт {0} (http).", - "LabelRunningOnPorts": "Върви на порт {0} (http) и порт {1} (https).", "LabelSaveLocalMetadata": "Запазване на картините в папката на медията", "LabelSaveLocalMetadataHelp": "Запазването на картините направо в медийните папки ще ги сложи на място, където лесно могат да бъдат редактирани.", "LabelSeasonNumber": "Номер на сезона:", diff --git a/src/strings/ca.json b/src/strings/ca.json index f3a2e6bdc..fbabe27a5 100644 --- a/src/strings/ca.json +++ b/src/strings/ca.json @@ -312,14 +312,12 @@ "LabelDisplayMissingEpisodesWithinSeasons": "Mostra els episodis que manquen dins les temporades", "LabelDisplayName": "Nom a mostrar:", "LabelDisplayOrder": "Ordre de visualització:", - "LabelDisplayPluginsFor": "Mostra complements per a:", "LabelDisplaySpecialsWithinSeasons": "Mostra els especials dins les temporades en que van ser emesos", "LabelDownloadLanguages": "Descarrega idiomes:", "LabelDropImageHere": "Deixa anar la imatge aquí.", "LabelDynamicExternalId": "Identificador {0}:", "LabelEasyPinCode": "Codi pin senzill:", "LabelEnableAutomaticPortMap": "Habilita l'auto-mapatge de ports", - "LabelEnableDebugLogging": "Habilita registre de depuració", "LabelEnableDlnaDebugLoggingHelp": "Això crearà arxius de registre molt grans i només es recomana quan sigui necessari per solucionar problemes.", "LabelEnableDlnaPlayToHelp": "Jellyfin pot detectar dispositius dins de la teva xarxa i ofereix la possibilitat de controlar-los a distància.", "LabelEnableDlnaServer": "Habilita servidor DLNA", @@ -349,7 +347,6 @@ "LabelKodiMetadataEnablePathSubstitutionHelp": "Habilita la substitució de directoris emprant les opcions de substitució de directoris del servidor.", "LabelKodiMetadataSaveImagePaths": "Desa els directoris de les imatges als fitxers nfo", "LabelLanguage": "Idioma:", - "LabelLocalAccessUrl": "Accés local (LAN): {0}", "LabelLocalHttpServerPortNumber": "Port local http:", "LabelLockItemToPreventChanges": "Bloca aquest ítem per evitar canvis futurs", "LabelLoginDisclaimerHelp": "Es mostrarà al peu de la pàgina d'inici de sessió.", @@ -415,9 +412,6 @@ "LabelRecordingPath": "Directori de gravació per defecte:", "LabelRefreshMode": "Mode de refresc:", "LabelReleaseDate": "Data de publicació:", - "LabelRemoteAccessUrl": "Accés remot (WAN): {0}", - "LabelRunningOnPort": "Corrent al port http {0}.", - "LabelRunningOnPorts": "Corrent al port http {0} i al port https {1}.", "LabelSaveLocalMetadata": "Desa l'artwork i les metadades als directoris dels multimèdia", "LabelSaveLocalMetadataHelp": "Desar l'artwork i les metadades directament als directoris dels multimèdia els posarà tots en llocs on podran ser editats fàcilment.", "LabelScreensaver": "Salva pantalla:", @@ -618,7 +612,6 @@ "Played": "Reproduït", "Playlists": "Llistes de reproducció", "PleaseRestartServerName": "Reinicia el Servidor d'Jellyfin si et plau - {0}.", - "PluginTabAppClassic": "Jellyfin per a Windows Media Center", "Premiere": "Première", "Producer": "Productor", "Programs": "Programes", diff --git a/src/strings/cs.json b/src/strings/cs.json index 216c49a30..836585143 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -69,7 +69,6 @@ "ButtonLibraryAccess": "Přístup ke knihovně", "ButtonManualLogin": "Manuální přihlášení", "ButtonMore": "Více", - "ButtonMoreInformation": "Další informace", "ButtonNetwork": "Síť", "ButtonNew": "Nové", "ButtonNextTrack": "Následující stopa", @@ -516,7 +515,6 @@ "LabelDisplayMode": "Režim zobrazení:", "LabelDisplayName": "Zobrazované jméno:", "LabelDisplayOrder": "Pořadí zobrazení:", - "LabelDisplayPluginsFor": "Zobrazit zásuvné moduly pro:", "LabelDisplaySpecialsWithinSeasons": "Zobraz speciální epizody dle odvysílaných sezón", "LabelDownMixAudioScale": "Zesílení audia při downmix:", "LabelDownMixAudioScaleHelp": "Zvýšit audio při dowwmix. Nastavte na 1 pro zachování původní hlasitosti.", @@ -532,7 +530,6 @@ "LabelEnableAutomaticPortMapHelp": "Pokusí se automaticky namapovat veřejný port místního portu přes UPnP na vašem routeru. Nemusí fungovat u některých modelů routeru.", "LabelEnableBlastAliveMessages": "Vytroubit zprávu do světa", "LabelEnableBlastAliveMessagesHelp": "Povolit v případě, že server není zjistitelný jinými UPnP zařízeními v síti.", - "LabelEnableDebugLogging": "Povolit záznam pro ladění", "LabelEnableDlnaClientDiscoveryInterval": "Čas pro vyhledání klienta (sekund)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Určuje dobu trvání v sekundách mezi SSDP vyhledávání prováděných pomocí Jellyfin.", "LabelEnableDlnaDebugLogging": "Povolit DLNA protokolování (pro ladění)", @@ -599,7 +596,6 @@ "LabelLastResult": "Poslední výsledky:", "LabelLimitIntrosToUnwatchedContent": "Přehrávat trailery pouze u nezhlédnutého obsahu", "LabelLineup": "Hlavní linie:", - "LabelLocalAccessUrl": "Lokální (LAN) přístup: {0}", "LabelLocalHttpServerPortNumber": "Lokální http port:", "LabelLocalHttpServerPortNumberHelp": "Tcp port, se kterým by Jellyfin http server měl být svázán.", "LabelLockItemToPreventChanges": "Uzamknout položku pro zabránění budoucích změn", @@ -693,10 +689,7 @@ "LabelRecordingPathHelp": "Určete výchozí umístění pro uložení nahrávky. Pokud je ponecháno prázdné, budou použity složky programu na serveru (data).", "LabelRefreshMode": "Mód obnovy:", "LabelReleaseDate": "Datum vydání:", - "LabelRemoteAccessUrl": "Vzdálený (WAN) přístup: {0}", "LabelRemoteClientBitrateLimit": "Datový tok streamování do Internetu (Mbps):", - "LabelRunningOnPort": "Spuštěno na http portu {0}.", - "LabelRunningOnPorts": "Spuštěno na http portu {0} a https portu {1}.", "LabelRuntimeMinutes": "Délka (v minutách):", "LabelSaveLocalMetadata": "Uložit přebaly a metadata do složky s médii", "LabelSaveLocalMetadataHelp": "Povolíte-li uložení přebalů a metadat do složky s médii bude možné je jednoduše upravovat.", @@ -1311,7 +1304,6 @@ "DownloadsValue": "{0} ke stažení", "DvrFeatureDescription": "Naplánujte individuálně záznamy z živého vysílání TV, záznamy seriálů a jiné s Jellyfin DVR.", "EditMetadata": "Upravit metadata", - "EnableDebugLoggingHelp": "Protokolování ladění by mělo být povoleno pouze pro potřeby řešení potíží. Nadměrný přístup k souborovému systému může zabránit, aby v některých prostředích počítač přešel do režimu spánku.", "EnableExternalVideoPlayersHelp": "Při spuštění přehrávání videa se zobrazí nabídka externího přehrávače.", "EnableHardwareEncoding": "Povolit hardwarové kódování videa", "EnableNextVideoInfoOverlayHelp": "Na konci přehrávání videa se zobrazí informace o příštím videu v aktuálním seznamu skladeb.", @@ -1349,7 +1341,6 @@ "HeaderImageLogo": "Logo", "HeaderImageOptions": "Volby obrázku", "HeaderInviteWithJellyfinConnect": "Pozvat s Jellyfin Connect", - "HeaderJellyfinServer": "Jellyfin server", "HeaderKodiMetadataHelp": "Chcete-li povolit nebo zakázat Nfo metadata, upravte nastavení knihovny v sekci ukládání metadat.", "HeaderLiveTV": "Live TV", "HeaderLiveTv": "Live TV", @@ -1429,7 +1420,6 @@ "LabelUserRemoteClientBitrateLimitHelp": "Toto přepíše výchozí globální hodnotu nastavenou v nastavení přehrávání serveru.", "LabelVideo": "Video:", "LabelVideoCodec": "Video: {0}", - "LearnHowToCreateSynologyShares": "Informace o sdílení složek ve službě Synology.", "LeaveBlankToNotSetAPassword": "Volitelné - ponechat prázdné pro nastavení bez hesla", "LetterButtonAbbreviation": "A", "LinkApi": "API", diff --git a/src/strings/da.json b/src/strings/da.json index 3dc232556..02f0aa5bb 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -64,7 +64,6 @@ "ButtonLibraryAccess": "Biblioteksadgang", "ButtonManualLogin": "Manuel Login", "ButtonMore": "Mere", - "ButtonMoreInformation": "Mere information", "ButtonNetwork": "Netværk", "ButtonNew": "Ny", "ButtonNextTrack": "Næste spor", @@ -147,7 +146,6 @@ "EditSubtitles": "Rediger undertekster", "EnableCinemaMode": "Aktiver biograftilstand", "EnableColorCodedBackgrounds": "Aktiver farvekodet baggrunde", - "EnableDebugLoggingHelp": "Debug logning bør kun aktiveres til fejlfindnings formål. Den ekstra adgang til fil systemet kan forhindre serveren i at gå i Sleep tilstand i nogle miljøer.", "EnableHardwareEncoding": "Aktiver hardware indkoding", "EnablePhotos": "Aktiver fotos", "EnablePhotosHelp": "Fotos bliver opdaget og vist sammen med andre mediefiler.", @@ -455,7 +453,6 @@ "LabelDisplayMissingEpisodesWithinSeasons": "Vis manglende episoder i sæsoner", "LabelDisplayName": "Visningsnavn:", "LabelDisplayOrder": "Visningsorden:", - "LabelDisplayPluginsFor": "Vis plugins til:", "LabelDisplaySpecialsWithinSeasons": "Vis specialepisoder sammen med den sæson de blev sent i", "LabelDownMixAudioScale": "Forøg lydstyrke ved nedmiksning:", "LabelDownMixAudioScaleHelp": "Forøg lydstyrken når der nedmikses. Sæt værdien til 1 for at beholde den originale lydstyrke.", @@ -468,7 +465,6 @@ "LabelEnableAutomaticPortMapHelp": "Forsøg at mappe den offentlige port til den lokale port med uPnP. Dette virker ikke med alle routere.", "LabelEnableBlastAliveMessages": "Masseudsend 'i live' beskeder", "LabelEnableBlastAliveMessagesHelp": "Aktiver dette hvis UPnP enheder har problemer med forbindelsen til serveren.", - "LabelEnableDebugLogging": "Aktiver fejlfindingslogning", "LabelEnableDlnaClientDiscoveryInterval": "Interval for klientsøgning (sekunder)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "angiver intervallet i sekunder mellem Jellyfins SSDP søgninger.", "LabelEnableDlnaDebugLogging": "Aktiver debu logning af DLNA", @@ -530,7 +526,6 @@ "LabelLanNetworks": "LAN netwærk:", "LabelLanguage": "Sprog:", "LabelLineup": "Opstilling:", - "LabelLocalAccessUrl": "Lokal adgang (LAN): {0}", "LabelLocalHttpServerPortNumber": "Lokalt http portnummer:", "LabelLocalHttpServerPortNumberHelp": "Det portnummer Jellyfins http-server bruger.", "LabelLockItemToPreventChanges": "Lås for at undgå fremtidige ændringer", @@ -620,11 +615,8 @@ "LabelRecordingPathHelp": "Angiv standard-lokationen til at gemme afspilninger. Hvis efterladt blankt, benyttes serverens programdata-mappe.", "LabelRefreshMode": "Genopfrisk tilstand:", "LabelReleaseDate": "Udgivelsesdato:", - "LabelRemoteAccessUrl": "Fjernadgang (WAN): {0}", "LabelRemoteClientBitrateLimit": "Begrænsning på bitrate ved internet streaming (Mbps):", "LabelRemoteClientBitrateLimitHelp": "En valgfri per-stream bitrate begrændning for alle enheder ikke på netværket. Dette er praktisk til at forhindre enheder i at efterspørge højere bitrate end din internet forbindelse kan håndtere. Dette kan resultere i forhøjet CPU load på serveren for at omkode videoer til lavere bitrate on-the-fly.", - "LabelRunningOnPort": "Kører på http port {0}.", - "LabelRunningOnPorts": "Kører på http port {0}, og https port {1}.", "LabelRuntimeMinutes": "Spilletid (minutter):", "LabelSaveLocalMetadata": "Gem illustrationer og metadata i mediemapper", "LabelSaveLocalMetadataHelp": "Lagring af illustrationer og metadata i mediemapper vil placerer dem et sted hvor de nemt kan redigeres.", @@ -696,7 +688,6 @@ "LabelffmpegPathHelp": "Stien til ffmpeg applikationsfilen eller mappen indeholdende ffmpeg.", "LanNetworksHelp": "Komma separeret liste over IP adresser eller netmasker til ntværk der vil blive anset for at være lokale når der bliver påtvunget båndbredde restriktioner. Hvis sat vil alle andre IP adresser bliver set som eksterne og blive underlagt båndbredde restriktionerne. Hvis blank, er det kun serveren subnet der bliver betragtet som et lokalt netværk.", "LatestFromLibrary": "Seneste {0}", - "LearnHowToCreateSynologyShares": "Lær at dele mapper i Synology.", "LibraryAccessHelp": "Vælg hvilke mediemapper der skal deles med denne bruger. Administratorer vil kunne redigere alle mapper ved hjælp af metadata administratoren.", "LiveBroadcasts": "Live-udsending", "ManageLibrary": "Håndter bibliotek", @@ -1258,7 +1249,6 @@ "HeaderFavoritePlaylists": "Favorit Afspilningslister", "HeaderHomeScreen": "Hjemmeskærm", "HeaderImageLogo": "Logo", - "HeaderJellyfinServer": "Jellyfin Server", "HeaderLatestFrom": "Seneste fra {0}", "HeaderLibraryOrder": "Bibliotektsorden", "HeaderLinks": "Link", @@ -1464,7 +1454,6 @@ "PlaybackSettingsIntro": "For at indstille standard afspilningsindstillingerne, stop video afspilning, herefter klik på dit bruger ikon i øverste højre sektion af denne app.", "Playlists": "Afspilningslister", "PleaseSelectDeviceToSyncTo": "Vælg venligst en enhed at hente til.", - "PluginTabAppClassic": "Jellyfin til Windows Media Center", "Previous": "Forrige", "Primary": "Primær", "PrivacyPolicy": "Privatlivs politik", diff --git a/src/strings/de.json b/src/strings/de.json index 67e8db833..7366986e3 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -92,7 +92,6 @@ "ButtonLibraryAccess": "Bibliothekszugang", "ButtonManualLogin": "Manuelle Anmeldung", "ButtonMore": "Mehr", - "ButtonMoreInformation": "mehr Informationen", "ButtonNetwork": "Netzwerk", "ButtonNew": "Neu", "ButtonNextTrack": "Nächstes Stück", @@ -207,7 +206,6 @@ "EnableBackdropsHelp": "Wenn aktiviert, werden während des Browsens durch die Bibliothek auf einigen Seiten passende Hintergründe angezeigt.", "EnableCinemaMode": "Aktiviere den Kino-Modus", "EnableColorCodedBackgrounds": "Aktiviere farbige Hintergründe", - "EnableDebugLoggingHelp": "Debug-Logging sollte nur zur Fehlersuche aktiviert werden. Der Zugriff auf das Dateisystem kann das System unter Umständen daran hindern, in den Energiesparmodus zu gehen.", "EnableDisplayMirroring": "Aktiviere Display-Weiterleitung", "EnableExternalVideoPlayers": "Aktiviere externe Videoplayer", "EnableExternalVideoPlayersHelp": "Ein Menü für externe Videoplayer wird beim Start der Videowiedergabe angezeigt.", @@ -564,7 +562,6 @@ "LabelDisplayMode": "Bildschirmmodus:", "LabelDisplayName": "Anzeige Name:", "LabelDisplayOrder": "Anzeigereihenfolge:", - "LabelDisplayPluginsFor": "Zeige Plugins für:", "LabelDisplaySpecialsWithinSeasons": "Zeige Sonderinhalt innerhalb der Staffel in der er ausgestrahlt wurde", "LabelDownMixAudioScale": "Audio Verstärkung bei Downmixing:", "LabelDownMixAudioScaleHelp": "Erhöhe die Audiolautstärke beim Heruntermischen. Setzte auf 1 um die original Lautstärke zu erhalten.", @@ -578,7 +575,6 @@ "LabelEnableAutomaticPortMapHelp": "Versuche automatisch den öffentlichen Port dem lokalen Port mit Hilfe von UPnP zuzuordnen. Dies kann mit einigen Router-Modellen nicht funktionieren.", "LabelEnableBlastAliveMessages": "Erzeuge Alive Meldungen", "LabelEnableBlastAliveMessagesHelp": "Aktiviere dies, wenn der Server nicht zuverlässig von anderen UPnP Geräten in ihrem Netzwerk erkannt wird.", - "LabelEnableDebugLogging": "Aktiviere Debug Logging", "LabelEnableDlnaClientDiscoveryInterval": "Client-Entdeckungs Intervall (Sekunden)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Ermittelt die Zeit in Sekunden zwischen SSDP Suchanfragen die durch Jellyfin ausgeführt wurden.", "LabelEnableDlnaDebugLogging": "Aktiviere DLNA Debug Logging", @@ -644,7 +640,6 @@ "LabelLanNetworks": "Lokale Netzwerke:", "LabelLanguage": "Sprache:", "LabelLineup": "TV Programm:", - "LabelLocalAccessUrl": "Heimnetzwerk (LAN) Zugriff: {0}", "LabelLocalHttpServerPortNumber": "Lokale HTTP Portnummer:", "LabelLocalHttpServerPortNumberHelp": "Die TCP Port Nummer, auf die der Jellyfin http Server hört.", "LabelLockItemToPreventChanges": "Sperre diesen Eintrag um zukünftige Änderungen zu verhindern", @@ -740,11 +735,8 @@ "LabelRecordingPathHelp": "Lege das Verzeichnis für Aufnahmen fest. Lässt Du es leer, wird das Data-Verzeichnis des Servers verwendet.", "LabelRefreshMode": "Aktualisierungsmodus:", "LabelReleaseDate": "Veröffentlichungsdatum:", - "LabelRemoteAccessUrl": "Fernzugriff (WAN): {0}", "LabelRemoteClientBitrateLimit": "Limit für die Internet Streaming Datenrate (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Ein optionales Bitratenlimit pro Stream für alle Geräte außerhalb des Netzwerkes. Dies ist nützlich um zu verhindern, dass Geräte eine höhere Datenrate verwenden als die Internetverbindung erlaubt. Es kann zu erhöhter CPU-Last auf deinem Server kommen, da ggf. Videos in Echtzeit in eine niedrigere Bitrate transkodiert werden müssen.", - "LabelRunningOnPort": "Läuft über HTTP Port: {0}", - "LabelRunningOnPorts": "Läuft über HTTP Port {0} und HTTPS Port {1}.", "LabelRuntimeMinutes": "Laufzeit (Minuten):", "LabelSaveLocalMetadata": "Speichere Bildmaterial und Metadaten in den Medienverzeichnissen", "LabelSaveLocalMetadataHelp": "Durch die Speicherung von Bildmaterial und Metadaten direkt in den Medienverzeichnissen, befinden sich diese an einem Ort wo sie sehr leicht bearbeitet werden können.", @@ -828,7 +820,6 @@ "LanNetworksHelp": "Komma separierte Liste von IP Adressen oder IP Masken die als lokale Netzwerke behandelt werden sollen um Bandbreitenlimitationen auszusetzen. Wenn befüllt werden alle anderen IP Adressen als externe Netzwerke behandelt und unterliegen den Bandbreitenlimitationen für externe Verbindungen. Wenn leer, wird nur das SubNetz des Servers als Lokales Netz gesetzt-", "Large": "Groß", "LatestFromLibrary": "Neueste {0}", - "LearnHowToCreateSynologyShares": "Erfahre, wie man Verzeichnisse mit Synology teilt.", "LearnHowYouCanContribute": "Erfahre, wie du unterstützen kannst.", "LibraryAccessHelp": "Wähle die Medienverzeichnisse die du mit diesem Benutzer teilen möchtest. Administratoren können den Metadaten-Manager verwenden um alle Ordner zu bearbeiten.", "Like": "Mag ich", @@ -1095,7 +1086,6 @@ "PleaseRestartServerName": "Bitte starte Jellyfin Server - {0} neu.", "PleaseSelectTwoItems": "Bitte wähle mindestens zwei Optionen aus.", "PluginInstalledMessage": "Das Plugin wurde erfolgreich installiert. Der Jellyfin-Server muss neu gestartet werden, um die Änderungen zu übernehmen.", - "PluginTabAppClassic": "Jellyfin für Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Bevorzuge eingebettete Titel vor Dateinamen", "PreferEmbeddedTitlesOverFileNamesHelp": "Das bestimmt den Standard Displaytitel wenn keine lokale oder Internetmetadaten verfügbar sind.", "PreferredNotRequired": "Bevorzugt, aber nicht benötigt.", @@ -1328,7 +1318,6 @@ "HeaderApp": "App", "HeaderGenres": "Genres", "HeaderHttpHeaders": "HTTP-Header", - "HeaderJellyfinServer": "Jellyfin-Server", "HeaderPluginInstallation": "Plugininstallation", "HeaderStatus": "Status", "HeaderTags": "Tags", diff --git a/src/strings/el.json b/src/strings/el.json index e4fbb0f8b..47a8ffee0 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -79,7 +79,6 @@ "ButtonLibraryAccess": "Πρόσβαση στη βιβλιοθήκη", "ButtonManualLogin": "Χειροκίνητη Είσοδος", "ButtonMore": "Περισσότερα", - "ButtonMoreInformation": "Περισσότερες Πληροφορίες", "ButtonNew": "Νέο", "ButtonNextTrack": "Επομενο", "ButtonOpen": "Άνοιγμα", @@ -323,7 +322,6 @@ "HeaderInstall": "Εγκατάσταση", "HeaderInstantMix": "Άμεση Mix", "HeaderItems": "Στοιχεία", - "HeaderJellyfinServer": "Διακομιστής Jellyfin", "HeaderKeepRecording": "Συνέχισε την Εγγραφή", "HeaderKeepSeries": "Συνέχισε την Σειρά", "HeaderLatestEpisodes": "Τελευταία επεισόδια", @@ -505,7 +503,6 @@ "LabelDisplayMode": "Λειτουργία προβολής:", "LabelDisplayName": "Εμφάνιση ονόματος:", "LabelDisplayOrder": "Σειρά εμφάνισης:", - "LabelDisplayPluginsFor": "Εμφάνιση plugins για:", "LabelDownMixAudioScale": "Ενίσχυση ήχου όταν πραγματοποιείται downmixing:", "LabelDownMixAudioScaleHelp": "Ενίσχυση ήχου όταν πραγματοποιείται downmixing. Επιλέξτε 1 για την διατήρηση της αρχικής τιμής έντασης.", "LabelDownloadLanguages": "Λήψη γλωσσών:", @@ -518,7 +515,6 @@ "LabelEnableAutomaticPortMapHelp": "To UPnP επιτρέπει την αυτόματη ρύθμιση του δρομολογητή για εύκολη απομακρυσμένη πρόσβαση. Αυτή η ρύθμιση μπορεί να μην δουλέψει με κάποια μοντέλα δρομολογητών", "LabelEnableBlastAliveMessages": "Αφήστε ζωντανά μηνύματα", "LabelEnableBlastAliveMessagesHelp": "Ενεργοποιήστε το στην περίπτωση που ο διακομιστής δεν ανιχνεύεται αξιόπιστα από άλλες συσκευές UPnP στο δίκτυό σας.", - "LabelEnableDebugLogging": "Ενεργοποίηση καταγραφής σφαλμάτων", "LabelEnableDlnaClientDiscoveryInterval": "Περίοδος εντοπισμού πελάτη (δευτερόλεπτα)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Καθορίζει τη διάρκεια σε δευτερόλεπτα μεταξύ αναζητήσεων SSDP που εκτελούνται από τον Jellyfin.", "LabelEnableDlnaDebugLogging": "Ενεργοποίηση καταγραφής εντοπισμού σφαλμάτων DLNA", @@ -724,7 +720,6 @@ "LabelZipCode": "Ταχυδ/κός κώδικας:", "Large": "Μεγάλο", "LatestFromLibrary": "Τελευταία {0}", - "LearnHowToCreateSynologyShares": "Μάθετε πώς μπορείτε να κάνετε κοινή χρήση φακέλων στο Synology.", "LearnHowYouCanContribute": "Μάθετε πώς μπορείτε να συμβάλλετε.", "LibraryAccessHelp": "Επιλέξτε τους φακέλους μέσων για να το μοιραστείτε με αυτόν το χρήστη. Οι διαχειριστές θα έχουν τη δυνατότητα να επεξεργάζεστε όλα φακέλους χρησιμοποιώντας τα μεταδεδομένα manager.", "Like": "Μου αρέσει", @@ -974,7 +969,6 @@ "PleaseRestartServerName": "Κάντε επανεκκίνηση του Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Επιλέξτε τουλάχιστον δύο στοιχεία.", "PluginInstalledMessage": "Η προσθήκη έχει εγκατασταθεί με επιτυχία. Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Jellyfin για να εφαρμοστούν οι αλλαγές.", - "PluginTabAppClassic": "Jellyfin για Windows Media Center", "PreferredNotRequired": "Προτιμώμενο, αλλά δεν απαιτείται", "Premiere": "Πρεμιέρα", "Premieres": "Πρεμιέρες", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 66d3f2422..a9d0dbb92 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -91,7 +91,6 @@ "ButtonLibraryAccess": "Library access", "ButtonManualLogin": "Manual Login", "ButtonMore": "More", - "ButtonMoreInformation": "More Information", "ButtonNetwork": "Network", "ButtonNew": "New", "ButtonNextTrack": "Next track", @@ -216,7 +215,6 @@ "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "EnableCinemaMode": "Enable cinema mode", "EnableColorCodedBackgrounds": "Enable color coded backgrounds", - "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", "EnableDisplayMirroring": "Enable display mirroring", "EnableExternalVideoPlayers": "Enable external video players", "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", @@ -386,7 +384,6 @@ "HeaderInstall": "Install", "HeaderInstantMix": "Instant Mix", "HeaderItems": "Items", - "HeaderJellyfinServer": "Jellyfin Server", "HeaderKeepRecording": "Keep Recording", "HeaderKeepSeries": "Keep Series", "HeaderKodiMetadataHelp": "To enable or disable Nfo metadata, edit a library in Jellyfin library setup and locate the metadata savers section.", @@ -606,7 +603,6 @@ "LabelDisplayMode": "Display mode:", "LabelDisplayName": "Display name:", "LabelDisplayOrder": "Display order:", - "LabelDisplayPluginsFor": "Show plugins for:", "LabelDisplaySpecialsWithinSeasons": "Display specials within seasons they aired in", "LabelDownMixAudioScale": "Audio boost when downmixing:", "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", @@ -621,7 +617,6 @@ "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", "LabelEnableBlastAliveMessages": "Blast alive messages", "LabelEnableBlastAliveMessagesHelp": "Enable this if the server is not detected reliably by other UPnP devices on your network.", - "LabelEnableDebugLogging": "Enable debug logging", "LabelEnableDlnaClientDiscoveryInterval": "Client discovery interval (seconds)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Jellyfin.", "LabelEnableDlnaDebugLogging": "Enable DLNA debug logging", @@ -689,7 +684,6 @@ "LabelLanNetworks": "LAN networks:", "LabelLanguage": "Language:", "LabelLineup": "Lineup:", - "LabelLocalAccessUrl": "LAN address: {0}", "LabelLocalHttpServerPortNumber": "Local http port number:", "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Jellyfin's http server should bind to.", "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", @@ -790,11 +784,8 @@ "LabelRecordingPathHelp": "Specify the default location to save recordings. If left empty, the server's program data folder will be used.", "LabelRefreshMode": "Refresh mode:", "LabelReleaseDate": "Release date:", - "LabelRemoteAccessUrl": "WAN address: {0}", "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps):", "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", - "LabelRunningOnPort": "Running on http port {0}.", - "LabelRunningOnPorts": "Running on http port {0}, and https port {1}.", "LabelRuntimeMinutes": "Run time (minutes):", "LabelSaveLocalMetadata": "Save artwork into media folders", "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put them in a place where they can be easily edited.", @@ -898,7 +889,6 @@ "LatestFromLibrary": "Latest {0}", "LaunchWebAppOnStartup": "Launch the Jellyfin web app in my web browser when Jellyfin Server starts", "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Jellyfin Server initially starts. This will not occur when using the restart server function.", - "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", "LearnHowYouCanContribute": "Learn how you can contribute.", "LeaveBlankToNotSetAPassword": "Optional - leave blank to set no password", "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", @@ -1223,7 +1213,6 @@ "PleaseRestartServerName": "Please restart Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Please select at least two items.", "PluginInstalledMessage": "The plugin has been successfully installed. Jellyfin Server will need to be restarted for changes to take effect.", - "PluginTabAppClassic": "Jellyfin for Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", "PreferredNotRequired": "Preferred, but not required", diff --git a/src/strings/es-ar.json b/src/strings/es-ar.json index 592cb5fd8..88509e9d5 100644 --- a/src/strings/es-ar.json +++ b/src/strings/es-ar.json @@ -157,7 +157,6 @@ "ButtonManualLogin": "Inicio de sesión manual", "ButtonMenu": "Menú", "ButtonMore": "Más", - "ButtonMoreInformation": "Más información", "ButtonMute": "Silenciar", "ButtonNetwork": "Red", "ButtonNew": "Nuevo", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index c2aff48eb..270a8a1ae 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -90,7 +90,6 @@ "ButtonLibraryAccess": "Acceso a biblioteca", "ButtonManualLogin": "Inicio de Sesión Manual", "ButtonMore": "Más", - "ButtonMoreInformation": "Mas Información", "ButtonNetwork": "Red", "ButtonNew": "Nuevo", "ButtonNextTrack": "Pista siguiente", @@ -211,7 +210,6 @@ "EnableBackdropsHelp": "Al habilitarse, las imágenes de fondo serán deplegadas en el fondo de algunas páginas mientras navega en la biblioteca.", "EnableCinemaMode": "Activar modo cine", "EnableColorCodedBackgrounds": "Habilitar fondos con código de color", - "EnableDebugLoggingHelp": "El registro de depuración debería ser habilitado solamente para propósitos de solución de problemas. El incremento en el archivo de sistema podría prevenir que el servidor entre en modo suspendido bajo algunos entornos.", "EnableDisplayMirroring": "Habilitar duplicación de pantalla", "EnableExternalVideoPlayers": "Habilitar reproductores externos de video", "EnableExternalVideoPlayersHelp": "Un menú de reproductor externo se mostrara cuando inicie la reproducción de un video.", @@ -366,7 +364,6 @@ "HeaderInstall": "Instalar", "HeaderInstantMix": "Mezcla Instantánea", "HeaderItems": "Ítems", - "HeaderJellyfinServer": "Servidor Jellyfin", "HeaderKeepRecording": "Conservar Grabaciones", "HeaderKeepSeries": "Conservar Serie", "HeaderKodiMetadataHelp": "Para habilitar o deshabilitar los metadatos Nfo, edite una biblioteca en la configuracion de bibliotecas de Jellyfin y busque la sección de grabadores de metadatos.", @@ -581,7 +578,6 @@ "LabelDisplayMode": "Modo de Pantalla:", "LabelDisplayName": "Nombre a mostrar:", "LabelDisplayOrder": "Orden para mostrar:", - "LabelDisplayPluginsFor": "Mostrar complementos para:", "LabelDisplaySpecialsWithinSeasons": "Mostrar especiales dentro de las temporadas en que fueron transmitidos", "LabelDownMixAudioScale": "Fortalecimiento de audio durante el downmix:", "LabelDownMixAudioScaleHelp": "Fortalezca el audio cuando se hace down mix. Coloque 1 para preservar el valor del volumen original.", @@ -595,7 +591,6 @@ "LabelEnableAutomaticPortMapHelp": "Intentar mapear automáticamente el puerto público con el puerto local via UPnP. Esto podría no funcionar con algunos modelos de ruteadores.", "LabelEnableBlastAliveMessages": "Bombardeo de mensajes de vida", "LabelEnableBlastAliveMessagesHelp": "Habilite esto si el servidor no es detectado de manera confiable por otros dispositivos UPnP en su red.", - "LabelEnableDebugLogging": "Habilitar bitácoras de depuración", "LabelEnableDlnaClientDiscoveryInterval": "Intervalo de Detección de Clientes (segundos)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determina la duración en segundos entre búsquedas SSDP realizadas por Jellyfin.", "LabelEnableDlnaDebugLogging": "Habilitar el registro de DLNA en la bitácora", @@ -663,7 +658,6 @@ "LabelLanNetworks": "Redes LAN:", "LabelLanguage": "Idioma:", "LabelLineup": "Programación:", - "LabelLocalAccessUrl": "Acceso en casa (LAN): {0}", "LabelLocalHttpServerPortNumber": "Número de puerto http local:", "LabelLocalHttpServerPortNumberHelp": "El numero de puerto tcp con el que se deberá vincular el servidor http de Jellyfin.", "LabelLockItemToPreventChanges": "Bloquear este ítem para evitar cambios futuros", @@ -762,11 +756,8 @@ "LabelRecordingPathHelp": "Especifique la locación para guardar grabaciones. Si se deja en blanco, se usara la carpeta de datos de programa del servidor.", "LabelRefreshMode": "Modo de actualización:", "LabelReleaseDate": "Fecha de estreno:", - "LabelRemoteAccessUrl": "Acceso remoto (WAN): {0}", "LabelRemoteClientBitrateLimit": "Limite de tasa de bits para transmisión por Internet (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Un límite opcional en la tasa de bits para cada transmisión para todos los dispositivos fuera de la red local. Esto es útil para evitar que los clientes soliciten una tasa de bits mayor a la que su conexión de internet puede soportar. Puede resultar en un incremente en la carga del CPU de su servidor para poder transmitir videos al vuelo a una resolución baja.", - "LabelRunningOnPort": "Ejecutándose en el puerto http {0}.", - "LabelRunningOnPorts": "Ejecutándose en el puerto http {0} y el puerto https {1}.", "LabelRuntimeMinutes": "Duración (minutos):", "LabelSaveLocalMetadata": "Guardar ilustraciones en las carpetas de medios", "LabelSaveLocalMetadataHelp": "Guardar ilustraciones directamente en las carpetas de medios los colocará en un lugar donde se pueden editar fácilmente.", @@ -859,7 +850,6 @@ "LanNetworksHelp": "Lista separada por comas de direcciones IP/mascaras de subred para las redes que serán consideradas como locales al enforzar restricciones de ancho de banda. Si se establece, todas las demás direcciones IP serán consideradas como redes externas y estarán sujetas a restricciones de ancho de banda. Si se deja en blanco, sólo la subred del servidor será considerada como red local.", "Large": "Grande", "LatestFromLibrary": "Más recientes {0}", - "LearnHowToCreateSynologyShares": "Aprenda como compartir carpetas en Synology.", "LearnHowYouCanContribute": "Aprenda como puede contribuír.", "LibraryAccessHelp": "Seleccione las carpetas de medios para compartir con este usuario. Los administradores podrán editar todas las carpetas usando el administrador de metadatos.", "Like": "Me gusta", @@ -1150,7 +1140,6 @@ "PleaseRestartServerName": "Por favor reinicie el Servidor Jellyfin - {0}.", "PleaseSelectTwoItems": "Por favor selecciona al menos dos ítems.", "PluginInstalledMessage": "El complemento ha sido instalado exitosamente. El Servidor Jellyfin necesitará reiniciarse para que los cambios surtan efecto.", - "PluginTabAppClassic": "Jellyfin para Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Prefererir titulos embebidos por encima de los nombres de archivo", "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el titulo mostrado por defecto cuando no hay disponibles metadatos en internet o localmente.", "PreferredNotRequired": "Preferido, más no es requerido", diff --git a/src/strings/es.json b/src/strings/es.json index dfcdb094f..8bf35ad45 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -75,7 +75,6 @@ "ButtonLibraryAccess": "Acceso a la biblioteca", "ButtonManualLogin": "Acceder manualmente", "ButtonMore": "Más", - "ButtonMoreInformation": "Más información", "ButtonNetwork": "Red", "ButtonNew": "Nuevo", "ButtonNextTrack": "Pista siguiente", @@ -174,7 +173,6 @@ "EditImages": "Editar imágenes", "EditSubtitles": "Editar subtítulos", "EnableCinemaMode": "Activar modo cine", - "EnableDebugLoggingHelp": "El registro de depuración solo debe habilitarse según sea necesario para solucionar problemas. El aumento del acceso al sistema de archivos puede impedir que la máquina del servidor pueda suspenderse en algunos entornos.", "EnableDisplayMirroring": "Activar mirroring de la pantalla", "EnableExternalVideoPlayers": "Activar reproductores externos", "EnableHardwareEncoding": "Activar codificación por hardware", @@ -313,7 +311,6 @@ "HeaderInstall": "Instalar", "HeaderInstantMix": "Mix instantáneo", "HeaderItems": "Ítems", - "HeaderJellyfinServer": "Servidor Jellyfin", "HeaderKeepRecording": "Mantener Grabación", "HeaderKeepSeries": "Mantener Series", "HeaderKodiMetadataHelp": "Jellyfin incluye soporte nativo para archivos de metadatos Nfo. Para habilitar o deshabilitar los metadatos Nfo, use la pestaña Metadatos para configurar las opciones para tu tipo de contenido.", @@ -516,7 +513,6 @@ "LabelDisplayMode": "Modo de visualización:", "LabelDisplayName": "Mostrar nombre:", "LabelDisplayOrder": "Mostrar orden:", - "LabelDisplayPluginsFor": "Mostrar plugins para:", "LabelDisplaySpecialsWithinSeasons": "Mostrar episodios especiales con las temporadas que han sido emitidos", "LabelDownMixAudioScale": "Audio boost (potenciador de sonido) en downmixing:", "LabelDownMixAudioScaleHelp": "Potenciador de audio. Establecer a 1 para preservar el volumen original.", @@ -530,7 +526,6 @@ "LabelEnableAutomaticPortMapHelp": "UPnP permite la configuración del router para acceso externo de forma fácil y automática. Esto puede no funcionar en algunos modelos de routers.", "LabelEnableBlastAliveMessages": "Explotar mensajes en vivo", "LabelEnableBlastAliveMessagesHelp": "Active aquí si el servidor no es detectado correctamente por otros dispositivos UPnP en su red.", - "LabelEnableDebugLogging": "Habilitar entrada de debug", "LabelEnableDlnaClientDiscoveryInterval": "Intervalo de detección de cliente (segundos)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determina la duración in segundos entre la búsqueda SSDP hechas por Jellyfin.", "LabelEnableDlnaDebugLogging": "Activar el registro de depuración de DLNA", @@ -597,7 +592,6 @@ "LabelLanNetworks": "Redes locales:", "LabelLanguage": "Idioma:", "LabelLineup": "Reparto:", - "LabelLocalAccessUrl": "Acceso en el hogar (LAN): {0}", "LabelLocalHttpServerPortNumber": "Numero local de puerto de http:", "LabelLocalHttpServerPortNumberHelp": "Número de puerto al que el servidor de http de Jellyfin debe de ser enlazado.", "LabelLockItemToPreventChanges": "Bloquear este ítem para evitar futuros cambios", @@ -695,11 +689,8 @@ "LabelRecordingPathHelp": "Especifica la ubicación por defecto para guardar las grabaciones. Si lo dejas vacío se usará la carpeta de datos del servidor.", "LabelRefreshMode": "Modo de refresco:", "LabelReleaseDate": "Fecha de lanzamiento:", - "LabelRemoteAccessUrl": "Acceso remoto (WAN): {0}", "LabelRemoteClientBitrateLimit": "Límite de la transmisión de tasa de bits por internet (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Un límite opcional de tasa de bits para todos los dispositivos fuera de la red. Esto es útil para evitar que los dispositivos soliciten una tasa de bits más alta que la que su conexión a Internet puede manejar. Esto puede ocasionar una mayor carga de la CPU en su servidor para transcodificar vídeos sobre la marcha a una tasa de bits más baja.", - "LabelRunningOnPort": "Ejecutándose en el puerto http {0}.", - "LabelRunningOnPorts": "Ejecutándose en el puerto http {0}, y puerto https {1}.", "LabelRuntimeMinutes": "Tiempo e ejecución (minutos):", "LabelSaveLocalMetadata": "Guardar imágenes y metadata en las carpetas de medios", "LabelSaveLocalMetadataHelp": "Guardar imágenes y metadatos directamente en las carpetas de medios, permitirá colocarlas en un lugar donde se pueden editar fácilmente.", @@ -780,7 +771,6 @@ "LanNetworksHelp": "Lista de direcciones IP separadas por comas o entradas de IP / máscara de red para redes que se considerarán en la red local al imponer restricciones de ancho de banda. Si se establece, todas las demás direcciones IP se considerarán en la red externa y estarán sujetas a las restricciones de ancho de banda externo. Si se deja en blanco, solo se considera que la subred del servidor está en la red local.", "Large": "Grande", "LatestFromLibrary": "Últimas {0}", - "LearnHowToCreateSynologyShares": "Aprende a compartir carpetas en Synology", "LibraryAccessHelp": "Seleccione las carpetas de medios para compartir con este usuario. Los administradores podrán editar todas las carpetas usando el gestor de metadatos.", "Like": "Me gusta", "Live": "Directo", @@ -1053,7 +1043,6 @@ "PleaseRestartServerName": "Por favor, reinicie el Servidor de Jellyfin - {0}.", "PleaseSelectTwoItems": "Seleccione al menos dos elementos.", "PluginInstalledMessage": "El complemento se ha instalado correctamente. El servidor Jellyfin deberá reiniciarse para que los cambios surjan efecto.", - "PluginTabAppClassic": "Jellyfin para Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados sobre los nombres de archivo", "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título por defecto cuando no hay ningún metadato de internet o local.", "PreferredNotRequired": "Preferido, pero no requerido", diff --git a/src/strings/fr.json b/src/strings/fr.json index 874252039..d9cd86457 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -86,7 +86,6 @@ "ButtonLibraryAccess": "Accès à la médiathèque", "ButtonManualLogin": "Connexion manuelle", "ButtonMore": "Plus", - "ButtonMoreInformation": "Plus d'informations", "ButtonNetwork": "Réseau", "ButtonNew": "Nouveau", "ButtonNextTrack": "Piste suivante", @@ -209,7 +208,6 @@ "EnableBackdropsHelp": "Si activé, les images d'arrière-plan seront affichées sur certaines pages pendant la navigation dans la médiathèque.", "EnableCinemaMode": "Activer le mode cinéma", "EnableColorCodedBackgrounds": "Activer les fonds avec code couleur", - "EnableDebugLoggingHelp": "La journalisation du débogage ne devrait seulement être activée au besoin à des fins de dépannage. L'augmentation de l'accès au système de fichiers peut empêcher le serveur de tomber en veille sur certains environnements.", "EnableDisplayMirroring": "Activer le partage d'écran", "EnableExternalVideoPlayers": "Activer les lecteurs vidéo externes", "EnableExternalVideoPlayersHelp": "Une liste des lecteurs externes sera affichée au lancement de la lecture d'une vidéo.", @@ -361,7 +359,6 @@ "HeaderInstall": "Installer", "HeaderInstantMix": "Mix instantané", "HeaderItems": "Éléments", - "HeaderJellyfinServer": "Serveur Jellyfin", "HeaderKeepRecording": "Garder l'enregistrement", "HeaderKeepSeries": "Garder la série", "HeaderKodiMetadataHelp": "Pour activer ou désactiver les métadonnées NFO, utilisez l'onglet Métadonnées pour configurer les options pour vos types de médias.", @@ -575,7 +572,6 @@ "LabelDisplayMode": "Mode d'affichage :", "LabelDisplayName": "Nom d'affichage :", "LabelDisplayOrder": "Ordre d'affichage :", - "LabelDisplayPluginsFor": "Afficher les plugins pour :", "LabelDisplaySpecialsWithinSeasons": "Afficher les épisodes spéciaux avec leur saison de diffusion", "LabelDownMixAudioScale": "Booster l'audio lors du downmix :", "LabelDownMixAudioScaleHelp": "Augmente le volume de l'audio quand on diminue le nombre de canaux. Mettre à 1 pour préserver la valeur originale du volume.", @@ -590,7 +586,6 @@ "LabelEnableAutomaticPortMapHelp": "Essayer de mapper automatiquement le port public au port local via UPnP. Cela peut ne pas fonctionner avec certains modèles de routeurs.", "LabelEnableBlastAliveMessages": "Diffuser des message de présence", "LabelEnableBlastAliveMessagesHelp": "Activer cette option si le serveur n'est pas détecté de manière fiable par les autres appareils UPnP sur votre réseau.", - "LabelEnableDebugLogging": "Activer le débogage dans le journal d’évènements", "LabelEnableDlnaClientDiscoveryInterval": "Intervalle de découverte des clients (secondes)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Détermine la durée en secondes entre les recherches SSDP exécutées par Jellyfin.", "LabelEnableDlnaDebugLogging": "Activer le débogage DLNA dans le journal d'événements", @@ -658,7 +653,6 @@ "LabelLanNetworks": "Réseaux LAN :", "LabelLanguage": "Langue :", "LabelLineup": "Programmation :", - "LabelLocalAccessUrl": "Accès local (LAN) : {0}", "LabelLocalHttpServerPortNumber": "Numéro de port http local :", "LabelLocalHttpServerPortNumberHelp": "Le port TCP que le serveur http d'Jellyfin doit utiliser.", "LabelLockItemToPreventChanges": "Verrouiller cet élément pour éviter de futures modifications", @@ -758,11 +752,8 @@ "LabelRecordingPathHelp": "Spécifiez l'emplacement par défaut où sauvegarder les enregistrements. Sinon le dossier de données programme du serveur sera utilisé.", "LabelRefreshMode": "Mode d'actualisation :", "LabelReleaseDate": "Date de sortie :", - "LabelRemoteAccessUrl": "Accès à distance (WAN) : {0}", "LabelRemoteClientBitrateLimit": "Limite de débit de streaming Internet (Mbps) :", "LabelRemoteClientBitrateLimitHelp": "Une limite de débit optionnelle par streaming pour les connexions hors du réseau local. Utile pour éviter que les appareils ne demandent un débit supérieur à ce que votre connexion internet peu fournir. Cela peut augmenter la charge du processeur de votre serveur pour transcoder les vidéos à la volée à un débit plus faible.", - "LabelRunningOnPort": "En cours d'exécution sur le port http {0}.", - "LabelRunningOnPorts": "En cours d'exécution sur les ports http {0} et https {1}.", "LabelRuntimeMinutes": "Durée (minutes) :", "LabelSaveLocalMetadata": "Enregistrer les images dans les dossiers multimédia", "LabelSaveLocalMetadataHelp": "L'enregistrement des images dans les dossiers multimédia les placera à un endroit où elles seront facilement modifiables.", @@ -855,7 +846,6 @@ "LanNetworksHelp": "Liste des adresses IP ou des entrées IP/masque de réseau séparées par des virgules pour les réseaux qui seront considérés comme locaux lors de l'application des restrictions de bande passante. Si elle est définie, toutes les autres adresses IP seront considérées sur le réseau externe et seront soumises aux restrictions de bande passante externe. Si elle est vide, seul le sous-réseau du serveur est considéré comme se trouvant sur le réseau local.", "Large": "Grand", "LatestFromLibrary": "{0}, ajouts récents", - "LearnHowToCreateSynologyShares": "Apprenez à partager des dossiers dans Synology.", "LearnHowYouCanContribute": "Voir comment vous pouvez contribuer.", "LibraryAccessHelp": "Sélectionnez les dossiers multimédia à partager avec cet utilisateur. Les administrateurs pourront modifier tous les dossiers en utilisant le gestionnaire de métadonnées.", "Like": "J'aime", @@ -1141,7 +1131,6 @@ "PleaseRestartServerName": "Veuillez redémarrer le serveur Jellyfin - {0}.", "PleaseSelectTwoItems": "Veuillez sélectionner au moins deux éléments.", "PluginInstalledMessage": "Cette extension a été installée avec succès. Le serveur Jellyfin doit être redémarré afin que les modifications soient prises en compte.", - "PluginTabAppClassic": "Jellyfin pour Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Préférer les titres intégrés aux médias aux noms des fichiers", "PreferEmbeddedTitlesOverFileNamesHelp": "Cela détermine le titre affiché par défaut quand il n'y a pas de métadonnées en ligne ou locales disponibles.", "PreferredNotRequired": "Préférée, mais pas obligatoire", diff --git a/src/strings/he.json b/src/strings/he.json index 600c9ab7d..2d509fe65 100644 --- a/src/strings/he.json +++ b/src/strings/he.json @@ -189,7 +189,6 @@ "LabelDynamicExternalId": "{0} תעודת זהות:", "LabelEnableBlastAliveMessages": "הודעות דחיפה", "LabelEnableBlastAliveMessagesHelp": "אפשר זאת אם השרת לא מזוהה כאמין על ידי מכשירי UPnP אחרים ברשת שלך.", - "LabelEnableDebugLogging": "אפשר תיעוד פעילות לאיתור תקלות", "LabelEnableDlnaClientDiscoveryInterval": "זמן גילוי קליינטים (בשניות)", "LabelEnableDlnaDebugLogging": "אפשר ניהול רישום באגים בDLNA", "LabelEnableDlnaDebugLoggingHelp": "אפשרות זו תיצור קבצי לוג גדולים יותר ועליך להשתמש בה רק על מנת לפתור תקלות.", diff --git a/src/strings/hr.json b/src/strings/hr.json index ba5982ddc..d702f58fb 100644 --- a/src/strings/hr.json +++ b/src/strings/hr.json @@ -50,7 +50,6 @@ "ButtonLibraryAccess": "Pristup biblioteci", "ButtonManualLogin": "Ručna prijava", "ButtonMore": "Više", - "ButtonMoreInformation": "Više informacija", "ButtonNetwork": "Mreža", "ButtonNew": "Novo", "ButtonNextTrack": "Sljedeća pjesma", @@ -400,7 +399,6 @@ "LabelDisplayMissingEpisodesWithinSeasons": "Prikaži epizode koje nedostaju unutar sezone", "LabelDisplayName": "Prikaz naziva:", "LabelDisplayOrder": "Poredak prikaza:", - "LabelDisplayPluginsFor": "Prikaži dodatak za:", "LabelDisplaySpecialsWithinSeasons": "Prikaz specijalnih dodataka unutar sezona u kojima su emitirani", "LabelDownMixAudioScale": "Pojačaj zvuk kada radiš downmix:", "LabelDownMixAudioScaleHelp": "Pojačaj zvuk kada radiš downmix. Postavi na 1 ako želiš zadržati orginalnu jačinu zvuka.", @@ -412,7 +410,6 @@ "LabelEnableAutomaticPortMapHelp": "Pokušaj automatski mapirati javni port za lokalni port preko UPnP. Možda neće raditi s nekim modelima router-a.", "LabelEnableBlastAliveMessages": "Objavi poruke dostupnosti", "LabelEnableBlastAliveMessagesHelp": "Omogući ovo ako server nije prikazan kao siguran za druge UPnP uređaje na mreži.", - "LabelEnableDebugLogging": "Omogući logiranje grešaka", "LabelEnableDlnaClientDiscoveryInterval": "Interval za otkrivanje kljenata (sekunde)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Određuje trajanje u sekundama između SSDP pretraživanja obavljenih od Jellyfin-a.", "LabelEnableDlnaDebugLogging": "Omogući DLNA logiranje grešaka.", @@ -560,8 +557,6 @@ "LabelRefreshMode": "Način osvježavanja:", "LabelReleaseDate": "Datum izdavanja:", "LabelRemoteClientBitrateLimit": "Granica brzine strujanja prijenosa preko Interneta (Mbps):", - "LabelRunningOnPort": "Izvodi se na http port-u {0}.", - "LabelRunningOnPorts": "Izvodi se na http port-u {0} i na https port-u {1}.", "LabelRuntimeMinutes": "Vrijeme izvođenja (minuta):", "LabelSaveLocalMetadata": "Snimi ilustracije i metadata u medijske mape", "LabelSaveLocalMetadataHelp": "Snimljene ilustracije i metadata u medijskim mapama će biti postavljene na lokaciju gdje će se moći jednostavno mjenjati.", diff --git a/src/strings/hu.json b/src/strings/hu.json index 1440bbb56..7c708bef1 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -43,7 +43,6 @@ "ButtonLibraryAccess": "Könyvtár hozzáférés", "ButtonManualLogin": "Manuális belépés", "ButtonMore": "Tovább", - "ButtonMoreInformation": "További Információ", "ButtonNew": "Új", "ButtonNextTrack": "Következő sáv", "ButtonOff": "Ki", @@ -263,11 +262,9 @@ "LabelDisplayMissingEpisodesWithinSeasons": "Hiányzó évad epizódok megjelenítése", "LabelDisplayName": "Megjelenítendő név:", "LabelDisplayOrder": "Megjelenítési sorrend:", - "LabelDisplayPluginsFor": "Bővítmények megjelenítése:", "LabelDownloadLanguages": "Nyelvek letöltése:", "LabelEasyPinCode": "Pin kód:", "LabelEnableAutomaticPortMap": "Automatikus port mapping engedélyezése", - "LabelEnableDebugLogging": "Hibakeresési naplózás engedélyezése", "LabelEnableHardwareDecodingFor": "Hardveres dekódolás engedélyezése a következőkhöz:", "LabelEnableRealtimeMonitor": "Valós idejű figyelés engedélyezése", "LabelEnableRealtimeMonitorHelp": "A módosítások azonnal feldolgozásra kerülnek a támogatott fájlrendszereken.", @@ -284,7 +281,6 @@ "LabelImageType": "Kép típusa:", "LabelKodiMetadataDateFormat": "Megjelenési dátum formátuma:", "LabelLanguage": "Nyelv:", - "LabelLocalAccessUrl": "Helyi (LAN) hozzáférés: {0}", "LabelLogs": "Naplók:", "LabelMessageText": "Üzenet szövege:", "LabelMessageTitle": "Üzenet címe:", @@ -318,9 +314,6 @@ "LabelProfileVideoCodecs": "Videó kódekek:", "LabelRefreshMode": "Frissítési mód:", "LabelReleaseDate": "Megjelenés dátuma:", - "LabelRemoteAccessUrl": "Távoli (WAN) hozzáférés: {0}", - "LabelRunningOnPort": "A következő http porton futtatva: {0} .", - "LabelRunningOnPorts": "A következő http: {0}, és https: {1} porton futtatva.", "LabelRuntimeMinutes": "Játékidő (perc):", "LabelSeasonNumber": "Évad száma:", "LabelSelectFolderGroups": "Automatikusan csoportosítsa a következő mappák tartalmát olyan nézetekre, mint a Filmek, a Zene és a TV:", @@ -697,7 +690,6 @@ "EasyPasswordHelp": "Az egyszerű PIN kódot az offline hozzáféréshez használják a támogatott Jellyfin alkalmazásokban, valamint hálózaton belüli bejelentkezéshez is használható.", "EnableCinemaMode": "Cinema Mode engedélyezése", "EnableColorCodedBackgrounds": "Színes kódolt háttérképek engedélyezése", - "EnableDebugLoggingHelp": "A hibakeresési naplózást csak hibaelhárítás céljából engedélyezd. A megnövekedett fájlrendszer hozzáférés megakadályozhatja, hogy a szerver bizonyos környezetben aludjon.", "EnableDisplayMirroring": "Kijelző tükrözés engedélyezése", "EnableExternalVideoPlayers": "Külső videolejátszók engedélyezése", "EnableExternalVideoPlayersHelp": "A külső lejátszó menü a videó indításakor jelenik meg.", @@ -777,7 +769,6 @@ "HeaderImageOptions": "Képbeállítások", "HeaderInstantMix": "Instant Mix", "HeaderItems": "Elemek", - "HeaderJellyfinServer": "Jellyfin Szerver", "HeaderKeepRecording": "Felvétel készítése", "HeaderKodiMetadataHelp": "Az Nfo metaadatok engedélyezéséhez vagy letiltásához szerkeszd a könyvtárat a Jellyfin Médiatár beállításaiban és keresd meg a metaadat letöltő részt.", "HeaderLatestMusic": "Legújabb zene", @@ -1033,7 +1024,6 @@ "LabelffmpegPath": "FFmpeg útvonal:", "LabelffmpegPathHelp": "Az ffmpeg alkalmazásfájl elérési útja, vagy az őt tartalmazó mappa.", "Large": "Nagy", - "LearnHowToCreateSynologyShares": "Tudd meg, hogyan oszthatsz meg a mappákat a Synology-ban.", "LearnHowYouCanContribute": "Ismerd meg, hogyan járulhatsz hozzá.", "LeaveBlankToNotSetAPassword": "Választható - hagyd üresen a jelszó nélküli beállításhoz", "LibraryAccessHelp": "Válaszd ki azokat a média mappákat amelyeket megosztani kívánsz ezzel a felhasználóval. A rendszergazdák a Metaadat Manager segítségével szerkeszthetik az összes mappát.", @@ -1214,7 +1204,6 @@ "PleaseEnterNameOrId": "Kérlek adj meg egy nevet vagy egy külső ID-t.", "PleaseSelectTwoItems": "Kérlek válassz legalább két elemet.", "PluginInstalledMessage": "A bővítmény sikeresen telepítve lett. A módosítások életbelépéséhez újra kell indítani a Jellyfin Szerver programot.", - "PluginTabAppClassic": "Jellyfin for Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "A fájlnevek helyett előnyben részesíti a beépített címeket", "PreferEmbeddedTitlesOverFileNamesHelp": "Ez határozza meg az alapértelmezett megjelenítési címet, ha nem áll rendelkezésre internetes metaadat vagy helyi metaadat.", "PreferredNotRequired": "Ajánlott, de nem szükséges", diff --git a/src/strings/it.json b/src/strings/it.json index cabc14a5d..1bcfd9a2f 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -78,7 +78,6 @@ "ButtonLibraryAccess": "Accesso biblioteca", "ButtonManualLogin": "Accesso Manuale", "ButtonMore": "Altro", - "ButtonMoreInformation": "Maggiori informazioni", "ButtonNetwork": "Rete", "ButtonNew": "Nuovo", "ButtonNextTrack": "Traccia Successiva", @@ -197,7 +196,6 @@ "EnableBackdropsHelp": "Se abilitato gli sfondi verranno riprodotti mentre visualizzi la tua libreria.", "EnableCinemaMode": "Attiva modalità cinema", "EnableColorCodedBackgrounds": "Abilita sfondi a colori", - "EnableDebugLoggingHelp": "La registrazione di debug deve essere attivata solo se necessario per scopi di risoluzione dei problemi. Il costante accesso al file system può impedire al server di spegnersi in alcuni ambienti.", "EnableDisplayMirroring": "Abilita visualizzazione remota", "EnableExternalVideoPlayers": "Abilita lettori video esterni", "EnableExternalVideoPlayersHelp": "Quando viene avviata la riproduzione video, verrà visualizzato un menu del riproduttore esterno .", @@ -557,7 +555,6 @@ "LabelDisplayMode": "Modalità di visualizzazione:", "LabelDisplayName": "Nome visualizzato:", "LabelDisplayOrder": "Ordine di visualizzazione:", - "LabelDisplayPluginsFor": "Mostra plugin per:", "LabelDisplaySpecialsWithinSeasons": "Mostra gli Special all'interno delle stagioni in cui sono stati trasmessi", "LabelDownMixAudioScale": "Boost audio durante il downmix:", "LabelDownMixAudioScaleHelp": "Aumenta il volume durante il downmix. Impostalo su 1 per mantenere il volume originale", @@ -571,7 +568,6 @@ "LabelEnableAutomaticPortMapHelp": "Tenta di mappare automaticamente la porta pubblica sulla porta locale tramite UPnP. Questo potrebbe non funzionare con alcuni modelli di router.", "LabelEnableBlastAliveMessages": "Invia segnale di presenza", "LabelEnableBlastAliveMessagesHelp": "Attivare questa opzione se il server non viene rilevato in modo affidabile da altri dispositivi UPnP in rete.", - "LabelEnableDebugLogging": "Attiva la registrazione degli eventi", "LabelEnableDlnaClientDiscoveryInterval": "Intervallo di ricerca dispositivi (secondi)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determina la durata in secondi tra le ricerche SSDP effettuate da Jellyfin", "LabelEnableDlnaDebugLogging": "Abilita il debug del DLNA", @@ -638,7 +634,6 @@ "LabelLanNetworks": "Reti LAN:", "LabelLanguage": "Lingua:", "LabelLineup": "Allineare:", - "LabelLocalAccessUrl": "Accesso locale (LAN): {0}", "LabelLocalHttpServerPortNumber": "Porta HTTP locale", "LabelLocalHttpServerPortNumberHelp": "Numero di porta TCP da associare al server http di Jellyfin", "LabelLockItemToPreventChanges": "Blocca questo elemento per impedire modifiche future", @@ -734,11 +729,8 @@ "LabelRecordingPathHelp": "Indica la posizione predefinita in cui salvare le registrazioni. Se lasciata vuota, sarà usata la cartella dei dati del server.", "LabelRefreshMode": "Modalità di aggiornamento:", "LabelReleaseDate": "Data di uscita:", - "LabelRemoteAccessUrl": "Accesso remoto (WAN): {0}", "LabelRemoteClientBitrateLimit": "Bitrate limite per lo streaming via internet (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Un limite bitrate per-stream opzionale per tutti i dispositivi di rete. Ciò è utile per impedire ai dispositivi di richiedere un bitrate superiore a quello in grado di gestire la connessione a Internet. Questo può provocare un aumento del carico della CPU sul server per transcodificare i video in volo ad un bitrate inferiore.", - "LabelRunningOnPort": "In esecuzione sulla porta HTTP {0}.", - "LabelRunningOnPorts": "In esecuzione sulla porta HTTP {0}, e porta HTTPS {1}", "LabelRuntimeMinutes": "Durata (minuti):", "LabelSaveLocalMetadata": "Salva immagini nelle cartelle multimediali", "LabelSaveLocalMetadataHelp": "Il salvataggio di immagini direttamente nelle cartelle multimediali consentirà di tenerle in un posto dove possono essere facilmente modificati.", @@ -823,7 +815,6 @@ "LanNetworksHelp": "Elenco separato da virgola di indirizzi IP o voci IP / maschera di rete per reti che saranno considerate sulla rete locale quando si applicano restrizioni di larghezza di banda. Se impostato, tutti gli altri indirizzi IP verranno considerati nella rete esterna e saranno soggetti alle limitazioni della larghezza di banda esterna. Se lasciato vuoto, solo la sottorete del server viene considerata nella rete locale.", "Large": "Grande", "LatestFromLibrary": "Ultimi {0}", - "LearnHowToCreateSynologyShares": "Scopri come condividere cartelle in Synology", "LearnHowYouCanContribute": "Scopri come puoi contribuire.", "LibraryAccessHelp": "Seleziona le cartelle multimediali da condividere con questo utente. Gli amministratori saranno in grado di modificare tutte le cartelle utilizzando il gestore dei metadati.", "Like": "Mi piace", @@ -1095,7 +1086,6 @@ "PleaseRestartServerName": "Per favore riavvia Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Seleziona almeno due elementi.", "PluginInstalledMessage": "Il plugin è stato installato correttamente. Il server Jellyfin dovrà essere riavviato affinché le modifiche abbiano effetto.", - "PluginTabAppClassic": "Jellyfin per Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Preferisci titoli integrati ai nomi dei file", "PreferEmbeddedTitlesOverFileNamesHelp": "Determina il titolo predefinito usato quando non sono disponibili metadati locali o da Internet.", "PreferredNotRequired": "Preferito, ma non richiesto", @@ -1338,7 +1328,6 @@ "HeaderAudioLanguages": "Lingue Audio", "HeaderCastAndCrew": "Cast", "HeaderCastCrew": "Cast", - "HeaderJellyfinServer": "Server Jellyfin", "HeaderMedia": "Media", "HeaderPassword": "Password" } diff --git a/src/strings/kk.json b/src/strings/kk.json index c4ece469d..442003e86 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -92,7 +92,6 @@ "ButtonLibraryAccess": "Tasyǵyshhanǵa qatynaý", "ButtonManualLogin": "Qolmen kirý", "ButtonMore": "Kóbirek", - "ButtonMoreInformation": "Kóbirek aqparatqa", "ButtonNetwork": "Jeli", "ButtonNew": "Jasaý", "ButtonNextTrack": "Kelesi jolshyqqa", @@ -221,7 +220,6 @@ "EnableBackdropsHelp": "Qosylǵanda, artqy sýretter tasyǵyshhanany sholý kezinde keıbir betterde óńde beınelenedi.", "EnableCinemaMode": "Kınoteatr rejimin qosý", "EnableColorCodedBackgrounds": "Túspen belgilengen óńderdi qosý", - "EnableDebugLoggingHelp": "Aqaýlyqtardy joıý jýrnalyn tek qajet bolǵan jaǵdaıda qosý kerek. Faıldyq júıege qatynaý kóbeıýi keıbir ortalarda server kompúterine uıyqtaýǵa jol bermeıdi.", "EnableDisplayMirroring": "Beıneleýdiń telnusqasyn qosý", "EnableExternalVideoPlayers": "Syrtqy oınatqyshtardy qosý", "EnableExternalVideoPlayersHelp": "Syrtqy oınatqysh máziri beıne oınatýdy bastaǵan kezde kórsetiledi.", @@ -606,7 +604,6 @@ "LabelDisplayMode": "Beıneleý rejimi:", "LabelDisplayName": "Beınelený aty:", "LabelDisplayOrder": "Beıneleý reti:", - "LabelDisplayPluginsFor": "Osy úshin plagınderdi kórsetý:", "LabelDisplaySpecialsWithinSeasons": "Arnaıy bólimderdi efırde bolǵan maýsym ishinde beıneleý", "LabelDownMixAudioScale": "Kemitilip mıksherlengende dybys ótemi:", "LabelDownMixAudioScaleHelp": "Dybysty kemitilip mıksherlengende ótemdeý. Bastapqy deńgeı mánin ózgertpeý úshin 1 sanyn ornatyńyz..", @@ -620,7 +617,6 @@ "LabelEnableAutomaticPortMapHelp": "Jarıa portty jergilikti portqa UPnP arqyly avtomatty salǵastyrý áreketi. Bul keıbir jol josparlaǵysh ulgilerimen jumys istemeıtini múmkin.", "LabelEnableBlastAliveMessages": "Belsendilikti tekserý habarlaryn jaýdyrý", "LabelEnableBlastAliveMessagesHelp": "Eger jelidegi basqa UPnP qurylǵylarymen server nyq tabylmasa buny qosyńyz.", - "LabelEnableDebugLogging": "Kúıkeltirý jazbalaryn jurnalda qosý", "LabelEnableDlnaClientDiscoveryInterval": "Klıentterdi taýyp ashý aralyǵy, s", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Jellyfin oryndaǵan SSDP saýal salý ara uzaqtyǵyn sekýndtar arqyly anyqtaıdy.", "LabelEnableDlnaDebugLogging": "DLNA kúıkeltirý jazbalaryn jurnalda qosý", @@ -688,7 +684,6 @@ "LabelLanNetworks": "Úıdegi jeliler:", "LabelLanguage": "Til:", "LabelLineup": "Tizbek:", - "LabelLocalAccessUrl": "Úıdegi (LAN) qatynaý: {0}", "LabelLocalHttpServerPortNumber": "Jergilikti http-port nómiri:", "LabelLocalHttpServerPortNumberHelp": "Jellyfin HTTP-serveri baılastyrylýǵa tıisti TCP-port nómiri.", "LabelLockItemToPreventChanges": "Osy tarmaqty keleshek ózgertýlerden qursaýlaý", @@ -788,11 +783,8 @@ "LabelRecordingPathHelp": "Jazbalardy saqtaıtyn ádepki oryndy kórsetińiz. Bos qaldyrsańyz, serverdiń program data qaltasy paıdalanylatyn bolady.", "LabelRefreshMode": "Jańǵyrtý rejimi:", "LabelReleaseDate": "Shyǵarý kúni:", - "LabelRemoteAccessUrl": "Qashyqtan (WAN) qatynaý: {0}", "LabelRemoteClientBitrateLimit": "Internet tasymaldaný qarqynynyń shegi, Mbıt/s:", "LabelRemoteClientBitrateLimitHelp": "Barlyq jelilik qurylǵylar úshin aǵyn boıynsha tasymaldaý qarqynynyń qosymsha shegi. Bul ınternet-qosylymyńyzdyń óńdeý múmkindigine qaraǵanda qurylǵynyń joǵarylaý qarqyn saýaldaryna tyıym salý úshin paıdaly bolyp tabylady. Bul beınelerdi tómengi qarqynǵa qaıta kodtaý úshin serverińizdegi OP júktemesin arttyrýǵa ákelýi múmkin.", - "LabelRunningOnPort": "{0} http-portynda jumys isteıdi.", - "LabelRunningOnPorts": "{0} http-portynda jáne {1} https-portynda jumys isteıdi.", "LabelRuntimeMinutes": "Uzaqtyǵy, mın:", "LabelSaveLocalMetadata": "Sýrettemelerdi tasyǵysh qaltalary ishinde saqtaý", "LabelSaveLocalMetadataHelp": "Sýrettemelerdi tasyǵysh qaltalary ishinde saqtalýy olardy jeńil óńdeı alatyn orynǵa qoıady.", @@ -890,7 +882,6 @@ "LanNetworksHelp": "Ótkizý múmkindigin shekteýdi júzege asyrý kezinde jergilikti jelide qarastyrylatyn jeliler úshin útirlermen bólingen IP-mekenjaılarynyń tizbesi nemese IP/netmask jazbalar. Eger ornatylsa, barlyq basqa IP-mekenjaılary syrtqy jelide qarastyrylady jáne syrtqy ótkizý múmkindigin shekteýlerine ushyraıdy. Eger bos qaldyrylsa, serverdiń ishki jelisi tek jergilikti jelide sanalady.", "Large": "Iri", "LatestFromLibrary": "Eń keıingi {0}", - "LearnHowToCreateSynologyShares": "Synology qaltalarymen bolisýdi bilý.", "LearnHowYouCanContribute": "Qalaı úles qosýynyńyz múmkin týraly úırenińiz.", "LibraryAccessHelp": "Bul paıdalanýshymen ortaqtasý úshin tasyǵysh qaltalardy bólekteńiz. Metaderek retteýshini paıdalanyp ákimshiler barlyq qaltalardy óńdeýi múmkin.", "Like": "Unaıdy", @@ -1199,7 +1190,6 @@ "PleaseRestartServerName": "Jellyfin Server úshin qaıta iske qosyńyz - {0}.", "PleaseSelectTwoItems": "Eń keminde eki tarmaqty tańdańyz.", "PluginInstalledMessage": "Plagın sátti ornatyldy. Ózgertýler kúshine enýi úshin Jellyfin Server qaıta iske qosylý qajet.", - "PluginTabAppClassic": "WMC úshin Jellyfin", "PreferEmbeddedTitlesOverFileNames": "Faıl ataýlary ornyna endirilgen ataýlardy qalaý", "PreferEmbeddedTitlesOverFileNamesHelp": "Internettegi metaderekter nemese jergilikti metaderekter qol jetimdi bolmaǵanda bul ádepki beıneletin ataýdy anyqtaıdy.", "PreferredNotRequired": "Talap etiledi, biraq qajet emes", diff --git a/src/strings/ko.json b/src/strings/ko.json index 74486f9c5..d2a6bde38 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -42,7 +42,6 @@ "ButtonLearnMore": "더 알아보기", "ButtonManualLogin": "수동 로그인", "ButtonMore": "더 보기", - "ButtonMoreInformation": "추가 정보", "ButtonNetwork": "네트워크", "ButtonNew": "신규", "ButtonNextTrack": "다음 트랙", @@ -328,7 +327,6 @@ "LabelEasyPinCode": "간편 PIN 코드:", "LabelEmbedAlbumArtDidl": "DIDL에 앨벌 아트 삽입", "LabelEnableAutomaticPortMap": "자동 포트 맵핑 사용", - "LabelEnableDebugLogging": "디버그 로깅 사용", "LabelEnableDlnaClientDiscoveryInterval": "클라이언트 검색 간격 (초)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Jellyfin가 수행한 SSDP검색 간의 시간 간격(초)을 결정합니다.", "LabelEnableDlnaDebugLogging": "DNLA 디버그 로그 사용", diff --git a/src/strings/nb.json b/src/strings/nb.json index b6df5d1e9..b3acccdac 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -66,7 +66,6 @@ "ButtonLibraryAccess": "Bibliotektilgang", "ButtonManualLogin": "Manuell Login", "ButtonMore": "Mer", - "ButtonMoreInformation": "Mer Informasjon", "ButtonNetwork": "Nettverk", "ButtonNew": "Ny", "ButtonNextTrack": "Neste Spor", @@ -461,7 +460,6 @@ "LabelDisplayMode": "Visningsmodus:", "LabelDisplayName": "Visningsnavn:", "LabelDisplayOrder": "Visningsrekkefølge:", - "LabelDisplayPluginsFor": "Vis plugins for:", "LabelDisplaySpecialsWithinSeasons": "Vis speialiteter innfor sensongen de ble sendt i", "LabelDownMixAudioScale": "Lyd boost ved downmixing:", "LabelDownMixAudioScaleHelp": "Boost lyd når downmixing. Set til 1 for å bevare orginal volum verdi.", @@ -473,7 +471,6 @@ "LabelEnableAutomaticPortMapHelp": "Forsøk automatisk mapping av den offentlige port til den lokale port via UPnP. Dette fungerer ikke med alle rutere.", "LabelEnableBlastAliveMessages": "Spreng levende meldinger", "LabelEnableBlastAliveMessagesHelp": "Slå på hvis serveren ikke regelmessig blir oppdaget av andre UPnP-enheter på ditt nettverk.", - "LabelEnableDebugLogging": "Slå på debug logging.", "LabelEnableDlnaClientDiscoveryInterval": "Klient oppdaterings interval (Sekunder)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Bestemmer varigheten i sekunder mellom SSDP søk utført av Jellyfin.", "LabelEnableDlnaDebugLogging": "Slå på DLNA debug logging", @@ -622,8 +619,6 @@ "LabelRefreshMode": "Oppdatering modus:", "LabelReleaseDate": "Utgivelsesdato:", "LabelRemoteClientBitrateLimit": "Internett strømnings bitrate begrensing (Mbps):", - "LabelRunningOnPort": "Kjører på http port {0}.", - "LabelRunningOnPorts": "Kjører på http port {0} og https port {1}.", "LabelRuntimeMinutes": "Spilletid (minutter):", "LabelSaveLocalMetadata": "Lagre cover og metadata i medie-mappene", "LabelSaveLocalMetadataHelp": "Lagring av artwork og metadata direkte gjennom mediemapper vil legge dem et sted hvor de lett kan editeres.", diff --git a/src/strings/nl.json b/src/strings/nl.json index 759b02086..0ffcffb28 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -83,7 +83,6 @@ "ButtonLibraryAccess": "Bibliotheek toegang", "ButtonManualLogin": "Handmatige Aanmelding", "ButtonMore": "Meer", - "ButtonMoreInformation": "Meer informatie", "ButtonNetwork": "Netwerk", "ButtonNew": "Nieuw", "ButtonNextTrack": "Volgende track", @@ -200,7 +199,6 @@ "EnableBackdropsHelp": "Indien ingeschakeld, zullen achtergrondafbeeldingen tijdens het bladeren op de achtergrond worden getoond.", "EnableCinemaMode": "Cinema Mode inschakelen", "EnableColorCodedBackgrounds": "Inschakelen van kleur gecodeerde achtergronden", - "EnableDebugLoggingHelp": "Debug logging mag alleen ingeschakeld worden voor het onderzoeken van problemen. De verhoogde belasting van het bestandssysteem kan voorkomen dat de server in slaapstand gaat in sommige omgevingen.", "EnableDisplayMirroring": "Inschakelen beeld spiegelen", "EnableExternalVideoPlayers": "Externe video spelers inschakelen", "EnableExternalVideoPlayersHelp": "Een menu voor externe spelers zal worden getoond bij het afspelen van video's", @@ -552,7 +550,6 @@ "LabelDisplayMode": "Weergave mode:", "LabelDisplayName": "Weergave naam:", "LabelDisplayOrder": "Weergave volgorde:", - "LabelDisplayPluginsFor": "Plugins weergeven voor:", "LabelDisplaySpecialsWithinSeasons": "Voeg specials toe aan het seizoen waarin ze uitgezonden zijn", "LabelDownMixAudioScale": "Geluidsversterking verbeteren als er gemixt wordt:", "LabelDownMixAudioScaleHelp": "Geluid versterken als er gemixt wordt. Zet op 1 om oorspronkelijke volume te behouden.", @@ -566,7 +563,6 @@ "LabelEnableAutomaticPortMapHelp": "Probeer om de publieke poort automatisch te vertalen naar de lokale poort via UPnP. Dit werkt niet op alle routers.", "LabelEnableBlastAliveMessages": "Alive berichten zenden", "LabelEnableBlastAliveMessagesHelp": "Zet dit aan als de server niet betrouwbaar door andere UPnP-apparaten op uw netwerk wordt gedetecteerd.", - "LabelEnableDebugLogging": "Foutopsporings logboek inschakelen", "LabelEnableDlnaClientDiscoveryInterval": "Interval voor het zoeken naar clients (seconden)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Bepaalt de duur in seconden tussen SSDP zoekopdrachten uitgevoerd door Jellyfin.", "LabelEnableDlnaDebugLogging": "DLNA foutopsporings logboek inschakelen", @@ -632,7 +628,6 @@ "LabelKodiMetadataUserHelp": "Schakel dit in om kijk gegevens op te slaan in NFO-bestanden om in andere toepassingen te gebruiken.", "LabelLanNetworks": "LAN-netwerken:", "LabelLanguage": "Taal:", - "LabelLocalAccessUrl": "In-Home (LAN)-toegang: {0}", "LabelLocalHttpServerPortNumber": "Lokale http poort nummer:", "LabelLocalHttpServerPortNumberHelp": "Het tcp poort nummer waar Jellyfin's http server aan moet verbinden.", "LabelLockItemToPreventChanges": "Vergrendel dit item om toekomstige wijzigingen te voorkomen", @@ -726,11 +721,8 @@ "LabelRecordingPathHelp": "Geef de standaard locatie op om opnamen op te slaan. Indien leeg gelaten, zal de map van de server-programma gegevens worden gebruikt.", "LabelRefreshMode": "Vernieuw-modus", "LabelReleaseDate": "Uitgave datum:", - "LabelRemoteAccessUrl": "Externe (WAN) access: {0}", "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limiet (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Een optionele bitrate limiet per stream voor alle apparaten buiten het netwerk. Dit is handig om te voorkomen dat apparaten een hogere bitrate vragen dan je internetverbinding aan kan. Dit kan een verhoogde belasting van de CPU in je server veroorzaken om om videos direct te transcoderen naar een lagere bitrate.", - "LabelRunningOnPort": "Draait op http poort {0}.", - "LabelRunningOnPorts": "Draait op http poort {0} en https poort {1}.", "LabelRuntimeMinutes": "Speelduur (minuten):", "LabelSaveLocalMetadata": "Afbeeldingen opslaan in de mediamappen", "LabelSaveLocalMetadataHelp": "Door afbeeldingen op te slaan in de mediamappen kunnen ze makkelijker worden aangepast.", @@ -812,7 +804,6 @@ "LanNetworksHelp": "Komma-gescheiden lijst van IP-adressen of IP/netmask adressen voor netwerken die als lokaal gezien worden wanneer bandbreedtebeperkingen van toepassing zijn. Indien ingesteld, worden alle overige IP-adressen gezien als externe adressen en zullen worden onderworpen aan de bandbreedte-instellingen voor externe adressen. Indien blanco, zal alleen het subnet van de server als lokaal netwerk gezien worden.", "Large": "Groot", "LatestFromLibrary": "Laatste {0}", - "LearnHowToCreateSynologyShares": "Leren mappen te delen in Synology.", "LearnHowYouCanContribute": "Lees meer over hoe u kunt bijdragen.", "LibraryAccessHelp": "Selecteer de mediamappen om met deze gebruiker te delen. Beheerders kunnen alle mappen bewerken via de metadata manager.", "Like": "Leuk", @@ -1080,7 +1071,6 @@ "PleaseRestartServerName": "Herstart Jellyfin Server - {0} aub.", "PleaseSelectTwoItems": "Selecteer ten minste twee items.", "PluginInstalledMessage": "Het installeren van de plugin is gelukt. Jellyfin Server zal heropgestart moeten worden om de wijzigingen door te voeren.", - "PluginTabAppClassic": "Jellyfin voor Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Prefereer ingesloten titels boven bestandsnamen", "PreferEmbeddedTitlesOverFileNamesHelp": "Dit bepaalt de standaard weergavetitel wanneer er geen internet metagegevens of lokale metadata beschikbaar is.", "PreferredNotRequired": "Gewenst, maar niet verplicht", diff --git a/src/strings/pl.json b/src/strings/pl.json index 7b0137a8b..e5c419a9d 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -90,7 +90,6 @@ "ButtonLibraryAccess": "Dostęp do biblioteki", "ButtonManualLogin": "Logowanie manualne", "ButtonMore": "Więcej", - "ButtonMoreInformation": "Więcej Informacji", "ButtonNetwork": "Sieć", "ButtonNew": "Nowe", "ButtonNextTrack": "Następna utwór", @@ -213,7 +212,6 @@ "EnableBackdropsHelp": "Umożliwia wyświetlanie fototapet, w tle niektórych stron, podczas przeglądania biblioteki.", "EnableCinemaMode": "Włącz tryb kinowy", "EnableColorCodedBackgrounds": "Aktywuj kolorowe tła bazujące na zawartości", - "EnableDebugLoggingHelp": "Rejestrowanie informacji diagnostycznych powinno być aktywowane tylko w celu rozwiązania problemów. Zwiększona ilość operacji na systemie plików może uniemożliwiać, w przypadku niektórych środowisk, przejście maszyny serwera w tryb uśpienia.", "EnableDisplayMirroring": "Aktywuj wyświetlanie lustrzane", "EnableExternalVideoPlayers": "Aktywuj obsługę zewnętrznych odtwarzaczy", "EnableExternalVideoPlayersHelp": "Menu wyboru zewnętrznego odtwarzacza będzie wyświetlane przed rozpoczęciem odtwarzania wideo.", @@ -372,7 +370,6 @@ "HeaderInstall": "Instalacja", "HeaderInstantMix": "Szybki remiks", "HeaderItems": "Pozycje", - "HeaderJellyfinServer": "Serwer Jellyfin", "HeaderKeepRecording": "Zachowaj nagranie", "HeaderKeepSeries": "Zachowaj nagranie serialu", "HeaderKodiMetadataHelp": "W celu aktywowania lub dezaktywowania metadanych NFO, należy zmodyfikować ustawienia biblioteki w sekcji menadżerów metadanych.", @@ -590,7 +587,6 @@ "LabelDisplayMode": "Tryb wyświetlania:", "LabelDisplayName": "Nazwa wyświetlana:", "LabelDisplayOrder": "Kolejność wyświetlania:", - "LabelDisplayPluginsFor": "Pokazuj wtyczki dla:", "LabelDisplaySpecialsWithinSeasons": "Wyświetlaj odcinki specjalne wraz z sezonami, w trakcie których były emitowane", "LabelDownMixAudioScale": "Wzmocnienie dźwięku podczas miksowania w dół:", "LabelDownMixAudioScaleHelp": "Umożliwia zwiększenie głośności dźwięku podczas miksowania w dół. Ustaw 1, aby zachować oryginalną wartość głośności.", @@ -604,7 +600,6 @@ "LabelEnableAutomaticPortMapHelp": "Umożliwia automatyczne mapowanie publicznego numeru portu z lokalnym numerem portu za pomocą UPnP. Ta opcja może nie działać z niektórymi modelami ruterów.", "LabelEnableBlastAliveMessages": "Przesyłaj komunikaty o dostępności", "LabelEnableBlastAliveMessagesHelp": "Aktywuj tę funkcję, jeśli serwer nie jest odpowiednio wykrywany przez inne urządzenia UPnP w twojej sieci.", - "LabelEnableDebugLogging": "Rejestruj szczegółowe informacje diagnostyczne", "LabelEnableDlnaClientDiscoveryInterval": "Częstotliwość wykrywania klientów (sekundy)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Określa czas w sekundach, pomiędzy wyszukiwaniami SSDP, wykonywanymi przez Jellyfin.", "LabelEnableDlnaDebugLogging": "Rejestruj komunikaty diagnostyczne DLNA", @@ -671,7 +666,6 @@ "LabelLanNetworks": "Sieci lokalne:", "LabelLanguage": "Język:", "LabelLineup": "Kolejka:", - "LabelLocalAccessUrl": "Dostęp lokalny (LAN): {0}", "LabelLocalHttpServerPortNumber": "Lokalny numer portu HTTP:", "LabelLocalHttpServerPortNumberHelp": "Numer portu TCP w trybie HTTP, na którym serwer Jellyfin ma być dostępny.", "LabelLockItemToPreventChanges": "Zablokuj tę pozycję, aby zapobiec przyszłym zmianom", @@ -771,11 +765,8 @@ "LabelRecordingPathHelp": "Określ domyślną lokalizację zapisywania nagrań. Jeśli pozostanie pusta, zostaną one zapisane w folderze danych serwera.", "LabelRefreshMode": "Tryb odświeżania:", "LabelReleaseDate": "Data wydania:", - "LabelRemoteAccessUrl": "Dostęp zdalny (WAN): {0}", "LabelRemoteClientBitrateLimit": "Limit przepływności transmisji (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Opcjonalny limit przepływności transmisji dla urządzeń poza siecią domową. Używaj tej opcji, w celu zapobiegania żądaniom o wyższe przepływności, niż Twojej połączenie internetowe może obsłużyć.", - "LabelRunningOnPort": "Uruchomiony na porcie http {0}.", - "LabelRunningOnPorts": "Uruchomiony na porcie http {0} oraz na porcie https {1}.", "LabelRuntimeMinutes": "Czas (w minutach):", "LabelSaveLocalMetadata": "Zapisuj grafiki w folderach mediów", "LabelSaveLocalMetadataHelp": "Umożliwia zapisywanie grafik i bezpośrednio w folderach mediów, co umożliwia ich łatwą edycję.", @@ -866,7 +857,6 @@ "LanNetworksHelp": "Lista adresów IP lub adresów IP z maską podsieci dla całych sieci, rozdzielana przecinkami, które będą traktowane jako sieć lokalna w trakcie egzekwowania ograniczeń przepustowości. Jeśli zostanie wypełniona, wszystkie pozostałe adresy będą traktowane jako sieć zewnętrzna i będą podlegać ograniczeniom przepustowości. Jeśli zostanie pusta, tylko podsieć, w której znajduje się serwer, będzie traktowana jako sieć lokalna.", "Large": "Duży", "LatestFromLibrary": "{0} ostatnio dodane", - "LearnHowToCreateSynologyShares": "Dowiedz się jak udostępniać foldery w Synology.", "LearnHowYouCanContribute": "Dowiedz się jak możesz pomóc.", "LibraryAccessHelp": "Wybierz foldery mediów udostępniane temu użytkownikowi. Administratorzy będą mogli edytować wszystkie foldery używając menedżera metadanych.", "Like": "Lubię", @@ -1161,7 +1151,6 @@ "PleaseRestartServerName": "Proszę ponownie uruchomić serwer Jellyfin - {0}", "PleaseSelectTwoItems": "Proszę wybierz przynajmniej dwie pozycje.", "PluginInstalledMessage": "Wtyczka została poprawnie zainstalowana. Serwer Jellyfin będzie wymagała ponownego uruchomienia w celu zastosowania zmian.", - "PluginTabAppClassic": "Jellyfin dla Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Preferuj wbudowane tytuły zamiast nazw plików", "PreferEmbeddedTitlesOverFileNamesHelp": "Określa domyślnie wyświetlany tytuł, gdy brak dostępnych metadanych lokalnych i od dostawców internetowych.", "PreferredNotRequired": "Preferowane, ale niewymagane", diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index 7471a38b9..8f52a71d0 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -84,7 +84,6 @@ "ButtonLibraryAccess": "Acesso à biblioteca", "ButtonManualLogin": "Login Manual", "ButtonMore": "Mais", - "ButtonMoreInformation": "Mais informações", "ButtonNetwork": "Rede", "ButtonNew": "Novo", "ButtonNextTrack": "Faixa seguinte", @@ -203,7 +202,6 @@ "EnableBackdropsHelp": "Se ativadas, imagens de fundo serão exibidas ao fundo de algumas páginas ao navegar pela biblioteca.", "EnableCinemaMode": "Ativar modo cinema", "EnableColorCodedBackgrounds": "Habilitar cores de fundo por código", - "EnableDebugLoggingHelp": "O log de depuração só deveria estar ativo se necessário para propósitos de identificação de problemas. O aumento de acesso ao sistema de arquivos pode evitar que a máquina do servidor possa entrar em modo suspensão em alguns ambientes.", "EnableDisplayMirroring": "Ativar espelhamento de tela", "EnableExternalVideoPlayers": "Ativar reprodutores de vídeo externos", "EnableExternalVideoPlayersHelp": "Um menu do reprodutor externo será exibido ao iniciar a reprodução do vídeo.", @@ -359,7 +357,6 @@ "HeaderInstall": "Instalar", "HeaderInstantMix": "Mix Instantâneo", "HeaderItems": "Itens", - "HeaderJellyfinServer": "Servidor Jellyfin", "HeaderKeepRecording": "Continuar Gravando", "HeaderKeepSeries": "Manter Série", "HeaderKodiMetadataHelp": "Para ativar ou desativar metadados Nfo, edite uma biblioteca na configuração da Biblioteca do Jellyfin e localize a seção de gravadores de metadados.", @@ -572,7 +569,6 @@ "LabelDisplayMode": "Mode de exibição:", "LabelDisplayName": "Nome para exibição:", "LabelDisplayOrder": "Ordem de exibição:", - "LabelDisplayPluginsFor": "Exibir plugins para:", "LabelDisplaySpecialsWithinSeasons": "Exibir especiais dentro das temporadas em que são exibidos", "LabelDownMixAudioScale": "Aumento do áudio ao executar downmix:", "LabelDownMixAudioScaleHelp": "Aumentar o áudio quando executar downmix. Defina como 1 para preservar o volume original.", @@ -587,7 +583,6 @@ "LabelEnableAutomaticPortMapHelp": "Tentativa de mapear automaticamente a porta pública para a porta local através de UPnP. Isto poderá não funcionar em alguns modelos de roteadores.", "LabelEnableBlastAliveMessages": "Enviar mensagens de exploração", "LabelEnableBlastAliveMessagesHelp": "Ative esta função se o servidor não for detectado por outros dispositivos UPnP em sua rede.", - "LabelEnableDebugLogging": "Ativar log de depuração", "LabelEnableDlnaClientDiscoveryInterval": "Intervalo para descoberta do cliente (segundos)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determina a duração em segundos entre buscas SSDP executadas pelo Jellyfin.", "LabelEnableDlnaDebugLogging": "Ativar o log de depuração de DLNA", @@ -655,7 +650,6 @@ "LabelLanNetworks": "Redes LAN:", "LabelLanguage": "Idioma:", "LabelLineup": "Programação:", - "LabelLocalAccessUrl": "Acesso em Casa (LAN): {0}", "LabelLocalHttpServerPortNumber": "Número da porta local de http:", "LabelLocalHttpServerPortNumberHelp": "O número da porta tcp que o servidor http do Jellyfin deveria se conectar.", "LabelLockItemToPreventChanges": "Bloquear este item para evitar alterações futuras", @@ -752,11 +746,8 @@ "LabelRecordingPathHelp": "Defina o local padrão para salvar as gravações. Se ficar em branco, a pasta de dados do programa do servidor será usada.", "LabelRefreshMode": "Mode de atualização:", "LabelReleaseDate": "Data do lançamento:", - "LabelRemoteAccessUrl": "Acesso Remoto (WAN): {0}", "LabelRemoteClientBitrateLimit": "Limite de taxa de bits para streaming da Internet (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Um limite opcional da taxa de bits por-stream para todos os dispositivos fora da rede. Esta opção é útil para evitar que os dispositivos demandem uma taxa de bits maior que a permitida pela sua conexão. Isto pode causar um aumento na carga da CPU de seu servidor para que possa transcodificar os vídeos em tempo real para uma taxa mais baixa.", - "LabelRunningOnPort": "Executando na porta http {0}.", - "LabelRunningOnPorts": "Executando na porta http {0} e porta https {1}.", "LabelRuntimeMinutes": "Duração (minutos):", "LabelSaveLocalMetadata": "Salvar imagens dentro das pastas da mídia", "LabelSaveLocalMetadataHelp": "Salvar imagens diretamente nas pastas da mídia as deixará em um local fácil para editá-las.", @@ -844,7 +835,6 @@ "LanNetworksHelp": "Lista separada por vírgula de endereços IP ou entradas IP/máscara de rede para redes que serão consideradas como redes locais ao forçar restrições de banda. Se definida, todos os outros endereços IP serão considerados como estando em uma rede externa e estarão sujeitos a restrições de banda externa. Se deixada em branco, apenas a sub-rede do servidor é considerada como rede local.", "Large": "Grande", "LatestFromLibrary": "Mais Recentes {0}", - "LearnHowToCreateSynologyShares": "Saiba como compartilhar pastas no Sinology.", "LearnHowYouCanContribute": "Saiba como você pode contribuir.", "LibraryAccessHelp": "Selecione as pastas de mídia para compartilhar com este usuário. Administradores poderão editar todas as pastas usando o gerenciador de metadados.", "Like": "Curti", diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json index 4be86da09..86656df30 100644 --- a/src/strings/pt-pt.json +++ b/src/strings/pt-pt.json @@ -35,7 +35,6 @@ "ButtonLearnMore": "Saiba mais", "ButtonManualLogin": "Início de Sessão Manual", "ButtonMore": "Mais", - "ButtonMoreInformation": "Mais informações", "ButtonNetwork": "Rede", "ButtonNew": "Novo", "ButtonNextTrack": "Faixa seguinte", @@ -320,7 +319,6 @@ "LabelDisplayMissingEpisodesWithinSeasons": "Mostrar episódios em falta dentro das temporadas", "LabelDisplayName": "Nome para exibição:", "LabelDisplayOrder": "Ordem de exibição:", - "LabelDisplayPluginsFor": "Exibir extensões para:", "LabelDisplaySpecialsWithinSeasons": "Exibir especiais dentro das temporadas em que são exibidos", "LabelDownMixAudioScale": "Escala do aumento de áudio ao fazer downmix:", "LabelDownMixAudioScaleHelp": "Aumentar o áudio ao fazer downmix. Defina como 1 para preservar o volume original.", @@ -332,7 +330,6 @@ "LabelEnableAutomaticPortMapHelp": "Tentativa de mapear automaticamente a porta pública para a porta local através de UPnP. Isto poderá não funcionar em alguns modelos de roteadores.", "LabelEnableBlastAliveMessages": "Propagar mensagens de reconhecimento", "LabelEnableBlastAliveMessagesHelp": "Ativar isto se o servidor não é detetado convenientemente por outros dispositivos UPnP na sua rede.", - "LabelEnableDebugLogging": "Ativar log de depuração", "LabelEnableDlnaClientDiscoveryInterval": "Intervalo para a descoberta do cliente (segundos)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determina a duração em segundos entre buscas SSDP executadas pelo Jellyfin.", "LabelEnableDlnaDebugLogging": "Ativar log de depuração do DLNA", @@ -456,8 +453,6 @@ "LabelRecordingPath": "Localização predefinida das gravações:", "LabelReleaseDate": "Data do lançamento:", "LabelRemoteClientBitrateLimit": "Limite de taxa de bits para streaming da Internet (Mbps):", - "LabelRunningOnPort": "A executar na porta http {0}.", - "LabelRunningOnPorts": "A executar na porta http {0} e na porta https {1}.", "LabelRuntimeMinutes": "Duração (minutos):", "LabelSaveLocalMetadata": "Guardar imagens e metadados nas pastas multimédia", "LabelSaveLocalMetadataHelp": "Guardar imagens e metadados diretamente nas pastas multimédia, vai colocá-los num local de fácil acesso para poderem ser editados facilmente.", diff --git a/src/strings/ru.json b/src/strings/ru.json index 87f3e0826..067b8af30 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -90,7 +90,6 @@ "ButtonLibraryAccess": "Доступ к медиатеке", "ButtonManualLogin": "Войти вручную", "ButtonMore": "Ещё", - "ButtonMoreInformation": "Подробнее", "ButtonNetwork": "Сеть", "ButtonNew": "Новое", "ButtonNextTrack": "След. дорожка", @@ -214,7 +213,6 @@ "EnableBackdropsHelp": "При включении, задники будут отображаться фоном некоторых страниц при просмотре медиатеки.", "EnableCinemaMode": "Включить режим кинозала", "EnableColorCodedBackgrounds": "Включить цветовой фон", - "EnableDebugLoggingHelp": "Журналирование отладки должно включаться только при необходимости устранения неполадок. Повышенный доступ к файловой системе может помешать серверной машине переходить в состояние сна в некоторых средах.", "EnableDisplayMirroring": "Включить дублирование отображения", "EnableExternalVideoPlayers": "Включить внешние проигрыватели видео", "EnableExternalVideoPlayersHelp": "Меню внешнего проигрывателя будет показано при запуске воспроизведения видео.", @@ -591,7 +589,6 @@ "LabelDisplayMode": "Режим отображения:", "LabelDisplayName": "Отображаемое название:", "LabelDisplayOrder": "Порядок отображения:", - "LabelDisplayPluginsFor": "Показать плагины для:", "LabelDisplaySpecialsWithinSeasons": "Отображать специальные эпизоды в пределах тех сезонов, когда они выходили в эфир", "LabelDownMixAudioScale": "Коэффициент усиления при понижающем микшировании:", "LabelDownMixAudioScaleHelp": "Коэффициент компенсирующего усиления звука при понижающем до стерео микшировании. Задайте 1, чтобы не менять исходные значения уровня.", @@ -605,7 +602,6 @@ "LabelEnableAutomaticPortMapHelp": "Попытаться автоматически сопоставить публичный порт с локальным портом с помощью UPnP. Это может не сработать с некоторыми моделями маршрутизаторов.", "LabelEnableBlastAliveMessages": "Бомбардировать сообщениями проверки активности", "LabelEnableBlastAliveMessagesHelp": "Включите, если сервер надёжно не обнаруживается иными UPnP устройствами в своей сети.", - "LabelEnableDebugLogging": "Включить журналирование отладки", "LabelEnableDlnaClientDiscoveryInterval": "Интервал обнаружения клиентов", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Определяется длительность в секундах между SSDP-запросами от Jellyfin.", "LabelEnableDlnaDebugLogging": "Включить журналирование отладки DLNA", @@ -673,7 +669,6 @@ "LabelLanNetworks": "Домашние сети:", "LabelLanguage": "Язык:", "LabelLineup": "Список сопоставления:", - "LabelLocalAccessUrl": "Домашний (LAN) доступ: {0}", "LabelLocalHttpServerPortNumber": "Номер локального HTTP-порта:", "LabelLocalHttpServerPortNumberHelp": "TCP-порт, ко которому следует создать привязку HTTP-сервера Jellyfin.", "LabelLockItemToPreventChanges": "Зафиксировать данный элемент, чтобы запретить будущие правки", @@ -773,11 +768,8 @@ "LabelRecordingPathHelp": "Укажите стандартное расположение для сохранения записей. Если поле пусто, то используется папка program data сервера.", "LabelRefreshMode": "Режим обновления:", "LabelReleaseDate": "Дата выпуска:", - "LabelRemoteAccessUrl": "Удалённый (WAN) доступ: {0}", "LabelRemoteClientBitrateLimit": "Предел потоковой скорости интернет-трансляции, Мбит/с:", "LabelRemoteClientBitrateLimitHelp": "Необязательный предел скорости на поток для каждого из сетевых устройств. Это целесообразно, чтобы не допускать запрашивание устройствами более высокой скорости, чем способно пропустить интернет-соединение. Это может привести к увеличению загрузки процессора на вашем сервере, при динамическом перекодировании видео до более низкой скорости.", - "LabelRunningOnPort": "Работает на HTTP-порту {0}.", - "LabelRunningOnPorts": "Работает на HTTP-порту {0} и HTTPS-порту {1}.", "LabelRuntimeMinutes": "Длительность, мин:", "LabelSaveLocalMetadata": "Сохранять иллюстрации внутри медиапапок", "LabelSaveLocalMetadataHelp": "При сохранении иллюстраций внутри медиапапок, те помещаются в месте, где их можно легко править.", @@ -871,7 +863,6 @@ "LanNetworksHelp": "Список разделённых запятыми IP-адресов или записей IP/netmask для сетей, которые будут считаться находящимися в локальной сети, когда принудительно ограничивается пропускная способность. Если так установлено, то все остальные IP-адреса будут считаться находящимися во внешней сети и будут подлежать ограничениям внешней полосы пропускания. Если не заполнять, то считается, что только подсеть сервера находится в локальной сети.", "Large": "Крупный", "LatestFromLibrary": "Новейшее: {0}", - "LearnHowToCreateSynologyShares": "Как предоставить общий доступ к папкам в Synology.", "LearnHowYouCanContribute": "Изучите, как вы можете внести свой вклад.", "LibraryAccessHelp": "Выделите медиапапки, чтобы дать доступ этому пользователю. Администраторы могут изменять все папки с помощью «Диспетчера метаданных».", "Like": "Нравится", @@ -1170,7 +1161,6 @@ "PleaseRestartServerName": "Перезапустите Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Выберите хотя бы два элемента.", "PluginInstalledMessage": "Плагин установлен успешно. Чтобы изменения вступили в силу, будет необходимо перезапустить Jellyfin Server.", - "PluginTabAppClassic": "Jellyfin для WMC", "PreferEmbeddedTitlesOverFileNames": "Предпочитать внедрённые названия, чем имена файлов", "PreferEmbeddedTitlesOverFileNamesHelp": "Этим определяется отображаемое название по умолчанию, когда нет метаданных с интернета или локальные метаданные недоступны.", "PreferredNotRequired": "Предпочтительно, но не требуется", @@ -1406,7 +1396,6 @@ "Yesterday": "Вчера", "ChangingMetadataImageSettingsNewContent": "Изменения в настройках загрузки метаданных или иллюстраций применяются только к новому содержанию, добавляемому в медиатеку. Чтобы применить изменения к наличным произведениям, необходимо обновить их метаданные вручную.", "HeaderAudioLanguages": "Языки аудио", - "HeaderJellyfinServer": "", "LabelDynamicExternalId": "{0} Ид:", "LeaveBlankToNotSetAPassword": "Необязательно - оставьте пустым, чтобы не назначать пароль", "MessageImageFileTypeAllowed": "Поддерживаются только файлы JPEG и PNG.", diff --git a/src/strings/sk.json b/src/strings/sk.json index 9b9efd9d7..171838815 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -58,7 +58,6 @@ "ButtonLearnMore": "Zistiť viac", "ButtonManualLogin": "Manuálne prihlásenie", "ButtonMore": "Viac", - "ButtonMoreInformation": "Viac informácií", "ButtonNetwork": "Sieť", "ButtonNew": "Nové", "ButtonNextTrack": "Nasledujúca stopa", @@ -365,7 +364,6 @@ "LabelDisplayLanguage": "Jazyk rozhrania:", "LabelDisplayMissingEpisodesWithinSeasons": "Zobraziť chýbajúce epizódy v sériách", "LabelDisplayOrder": "Poradie zobrazenia:", - "LabelDisplayPluginsFor": "Zobraziť rozšírenia pre:", "LabelDownloadLanguages": "Prebrať jazyky:", "LabelDropImageHere": "Presuňte obrázok sem.", "LabelEasyPinCode": "Jednoduchý PIN kód:", @@ -408,7 +406,6 @@ "LabelKodiMetadataSaveImagePathsHelp": "Je to odporúčané ak máte obrázky s názvami, ktoré sa neriadia pravidlami Kodi.", "LabelLanNetworks": "LAN siete:", "LabelLanguage": "Jazyk:", - "LabelLocalAccessUrl": "Domáci (LAN) prístup: {0}", "LabelLocalHttpServerPortNumber": "Lokálny HTTP port:", "LabelLoginDisclaimerHelp": "Toto bude zobrazené na spodku prihlasovacej stránky.", "LabelManufacturer": "Výrobca", @@ -468,9 +465,6 @@ "LabelRecordingPath": "Predvolené umiestnenie nahrávok:", "LabelRecordingPathHelp": "Uveďte predvolené umiestnenie pre ukladanie nahrávok. Ak je ponechané prázdne, použije sa priečinok s programovými dátami servera.", "LabelReleaseDate": "Dátum vydania:", - "LabelRemoteAccessUrl": "Vzdialený (WAN) prístup: {0}", - "LabelRunningOnPort": "Beží na HTTP porte {0}.", - "LabelRunningOnPorts": "Beží na HTTP porte {0} a na HTTPS porte {1}.", "LabelRuntimeMinutes": "Dĺžka (minúty):", "LabelSaveLocalMetadata": "Uložiť obaly a metadáta do priečinka s médiami", "LabelScreensaver": "Šetrič obrazokvy:", @@ -725,7 +719,6 @@ "PleaseRestartServerName": "Prosím reštartujte Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Vyberte prosím aspoň dve položky.", "PluginInstalledMessage": "Rozšírenie bolo úspešne nainštalované. Je potrebný reštart Jellyfin Server aby sa prejavili zmeny.", - "PluginTabAppClassic": "Jellyfin pre Windows Media Center", "Premiere": "Premiéra", "Premieres": "Premiéry", "Previous": "Predchádzajúce", diff --git a/src/strings/sv.json b/src/strings/sv.json index 218801291..27294f081 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -80,7 +80,6 @@ "ButtonLibraryAccess": "Biblioteksåtkomst", "ButtonManualLogin": "Manuell inloggning:", "ButtonMore": "Mer", - "ButtonMoreInformation": "Mer information", "ButtonNetwork": "Nätverk", "ButtonNew": "Nytillkommet", "ButtonNextTrack": "Nästa spår:", @@ -543,7 +542,6 @@ "LabelDisplayMode": "Visningsläge:", "LabelDisplayName": "Visningsnamn:", "LabelDisplayOrder": "Visningsordning:", - "LabelDisplayPluginsFor": "Visa tillägg för:", "LabelDisplaySpecialsWithinSeasons": "Visa specialavsnitt i de säsonger de sändes i", "LabelDownMixAudioScale": "Höj nivån vid nedmixning av ljud", "LabelDownMixAudioScaleHelp": "Höj nivån vid nedmixning. Sätt värdet till 1 för att behålla den ursprungliga nivån.", @@ -558,7 +556,6 @@ "LabelEnableAutomaticPortMapHelp": "Automatisk länkning av publik och lokal port via UPnP. Detta kanske inte fungerar med alla routrar.", "LabelEnableBlastAliveMessages": "Skicka ut \"jag lever\"-meddelanden", "LabelEnableBlastAliveMessagesHelp": "Aktivera detta om andra UPnP-enheter på nätverket har problem att upptäcka servern.", - "LabelEnableDebugLogging": "Aktivera loggning på avlusningsnivå", "LabelEnableDlnaClientDiscoveryInterval": "Intervall för upptäckt av klienter (i sekunder)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Ange hur ofta Jellyfin Server söker efter nya DLNA-klienter med hjälp av SSDP-protokollet.", "LabelEnableDlnaDebugLogging": "Aktivera DLNA felsökningsloggning", @@ -625,7 +622,6 @@ "LabelLanNetworks": "LAN nätverk:", "LabelLanguage": "Språk:", "LabelLineup": "Uppsättning:", - "LabelLocalAccessUrl": "Hem-åtkomst(LAN): {0}", "LabelLocalHttpServerPortNumber": "Lokalt portnummer för http:", "LabelLocalHttpServerPortNumberHelp": "Den lokala tcp-port som Jellyfin Server ska lyssna på http.", "LabelLockItemToPreventChanges": "Lås det här objektet för att förhindra ändringar", @@ -721,11 +717,8 @@ "LabelRecordingPathHelp": "Ange sökvägen för att spara ner inspelningar. Om det lämnas tomt kommer serverns programdata sökväg att användas.", "LabelRefreshMode": "Uppdateringsläge:", "LabelReleaseDate": "Premiärdatum:", - "LabelRemoteAccessUrl": "Fjärråtkomst(WAN): {0}", "LabelRemoteClientBitrateLimit": "Maximal hastighet för strömning till Internet (Mbps):", "LabelRemoteClientBitrateLimitHelp": "En valfri bitfrekvensgräns för enskilda strömmar utanför det lokala nätverket. Detta är användbart för att förhindra enheter från att begära högre bitfrekvens än din internetuppkoppling kan hantera. Detta kan innebära högre processorbelastning för att omkoda videor till lägre bitfrekvens.", - "LabelRunningOnPort": "Kör http på port {0}", - "LabelRunningOnPorts": "Kör http på port {0} och https på port {1}", "LabelRuntimeMinutes": "Speltid (min):", "LabelSaveLocalMetadata": "Spara grafik till mediamapparna", "LabelSaveLocalMetadataHelp": "Om grafik sparas tillsammans med media är de enkelt åtkomliga för redigering.", @@ -1085,7 +1078,6 @@ "PleaseRestartServerName": "Vänligen starta om Jellyfin Server - {0}.", "PleaseSelectTwoItems": "Var god välj minst två objekt.", "PluginInstalledMessage": "Tillägget har installerats. Jellyfin Server behöver startas om för att verkställa ändringarna.", - "PluginTabAppClassic": "Jellyfin för Windows Media Center", "PreferEmbeddedTitlesOverFileNames": "Föredra inbäddade titlar över filnamnen", "PreferEmbeddedTitlesOverFileNamesHelp": "Det här bestämmer visningstiteln när ingen internet metadata eller lokal metadata finns att tillgå.", "Premiere": "Premiär", diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 7e6490e25..f51e138e5 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -84,7 +84,6 @@ "ButtonLibraryAccess": "媒体库访问", "ButtonManualLogin": "手动登录", "ButtonMore": "更多", - "ButtonMoreInformation": "更多信息", "ButtonNetwork": "网络", "ButtonNew": "新增", "ButtonNextTrack": "下一音轨", @@ -195,7 +194,6 @@ "EnableBackdrops": "启用背景图", "EnableBackdropsHelp": "如果启用,当浏览媒体库时背景图将作为一些页面的背景显示。", "EnableCinemaMode": "启用影院模式", - "EnableDebugLoggingHelp": "调试日志应该仅在需要进行故障检修时启用。开启调试日志增加的对系统文件的访问可能会在某些环境下组织服务器机器进入休眠状态。", "EnableDisplayMirroring": "开启显示镜像", "EnableExternalVideoPlayers": "启用外部播放器", "EnableExternalVideoPlayersHelp": "当你开始播放视频时,将会显示一个外部播放器菜单。", @@ -344,7 +342,6 @@ "HeaderInstall": "安装", "HeaderInstantMix": "速成合辑", "HeaderItems": "项目", - "HeaderJellyfinServer": "Jellyfin 服务器", "HeaderKodiMetadataHelp": "要启用或禁用 Nfo 元数据, 请在 Jellyfin 库安装程序中编辑库, 然后找到“元数据储户”部分。", "HeaderLatestEpisodes": "最新剧集", "HeaderLatestMedia": "最新媒体", @@ -550,7 +547,6 @@ "LabelDisplayMode": "显示模式:", "LabelDisplayName": "显示名称:", "LabelDisplayOrder": "显示顺序:", - "LabelDisplayPluginsFor": "显示以下插件:", "LabelDisplaySpecialsWithinSeasons": "显示季中所播出的特集", "LabelDownMixAudioScale": "缩混音频增强:", "LabelDownMixAudioScaleHelp": "缩混音频增强。设置为1,将保留原来的音量·。", @@ -565,7 +561,6 @@ "LabelEnableAutomaticPortMapHelp": "勾选以通过 UPnP 自动映射公共端口到本地端口。这个选项在某些不支持的路由器上可能不起作用。", "LabelEnableBlastAliveMessages": "爆发活动信号", "LabelEnableBlastAliveMessagesHelp": "如果该服务器不能被网络中的其他UPnP设备检测到,请启用此选项。", - "LabelEnableDebugLogging": "启用调试日志", "LabelEnableDlnaClientDiscoveryInterval": "客户端搜寻时间间隔(秒)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "确定由 Jellyfin 执行的 SSDP 搜索之间的持续时间 (以秒为单位)。", "LabelEnableDlnaDebugLogging": "启用 DLNA 调试日志", @@ -632,7 +627,6 @@ "LabelLanNetworks": "LAN网络:", "LabelLanguage": "语言:", "LabelLineup": "排队", - "LabelLocalAccessUrl": "家庭 (局域网) 访问:{0}", "LabelLocalHttpServerPortNumber": "本地 HTTP 端口号:", "LabelLocalHttpServerPortNumberHelp": "Jellyfin HTTP 服务器监听的 TCP 端口。", "LabelLockItemToPreventChanges": "锁定此项目防止改动", @@ -731,11 +725,8 @@ "LabelRecordingPathHelp": "指定一个默认位置用于存储转码文件。如果该位置留空,服务器的程序数据文件夹将被使用。", "LabelRefreshMode": "刷新模式:", "LabelReleaseDate": "发行日期:", - "LabelRemoteAccessUrl": "远程 (公网) 访问:{0}", "LabelRemoteClientBitrateLimit": "互联网流媒体传输比特率限制(Mbps):", "LabelRemoteClientBitrateLimitHelp": "所有网络设备都有一个可选的每流比特率限制。这对于防止设备请求比 internet 连接所能处理的更高的比特率非常有用。这可能会导致服务器上的 CPU 负载增加, 以便将视频转码到较低的比特率。", - "LabelRunningOnPort": "正运行于 HTTP 端口 {0}.", - "LabelRunningOnPorts": "正运行于HTTP端口 {0},和 HTTPS 端口{1}.", "LabelRuntimeMinutes": "播放时长(分钟):", "LabelSaveLocalMetadata": "将媒体图像保存到媒体所在文件夹", "LabelSaveLocalMetadataHelp": "直接将媒体图像保存到媒体所在文件夹以方便编辑。", @@ -826,7 +817,6 @@ "LanNetworksHelp": "在强制带宽限制时, 将在本地网络上考虑的网络的 ip 地址或 ip/网络掩码条目的逗号分隔列表。如果设置, 所有其他 IP 地址将被视为在外部网络上, 并且将受到外部带宽限制。如果保留为空, 则只将服务器的子网视为本地网络。", "Large": "大", "LatestFromLibrary": "最新的{0}", - "LearnHowToCreateSynologyShares": "了解如何在Synology NAS中共享文件夹。", "LearnHowYouCanContribute": "学习如何构建。", "LibraryAccessHelp": "选择共享给此用户的媒体文件夹。管理员能使用媒体资料管理器来编辑所有文件夹。", "Like": "喜欢", @@ -1117,7 +1107,6 @@ "PleaseRestartServerName": "请重启 Jellyfin 服务器 - {0}。", "PleaseSelectTwoItems": "请至少选择2个项目。", "PluginInstalledMessage": "这个插件已经被成功安装。Jellyfin 服务器需要重启以使该插件生效。", - "PluginTabAppClassic": "Jellyfin for Windows Media Center 版本", "PreferEmbeddedTitlesOverFileNames": "优先使用内置的标题而不是文件名", "PreferEmbeddedTitlesOverFileNamesHelp": "这将在没有 internet 元数据或本地元数据可用时确定默认显示标题。", "PreferredNotRequired": "首选,但不是必需的", diff --git a/src/strings/zh-hk.json b/src/strings/zh-hk.json index 6c5dcad1b..176a60ee4 100644 --- a/src/strings/zh-hk.json +++ b/src/strings/zh-hk.json @@ -109,7 +109,6 @@ "LabelDisplaySpecialsWithinSeasons": "顯示劇集季度中的特集", "LabelEnableAutomaticPortMap": "啟用自動連接埠映射", "LabelEnableAutomaticPortMapHelp": "自動嘗試映射公共連接埠到 UPnP 本地連接埠。這可能無法用於某些路由器。", - "LabelEnableDebugLogging": "啟用記錄除錯日誌", "LabelEnableDlnaClientDiscoveryInterval": "尋找客戶端時間間隔(秒)", "LabelEnableDlnaClientDiscoveryIntervalHelp": "由 Jellyfin 決定進行 SSDP 搜索之間以秒計的持續時間。", "LabelEnableDlnaDebugLogging": "記錄 DLNA 除錯信息到日誌", @@ -167,8 +166,6 @@ "LabelPublicHttpsPort": "公共 https 連接埠號碼:", "LabelPublicHttpsPortHelp": "公共連接埠號碼應映射到本地 https 連接埠。", "LabelReadHowYouCanContribute": "了解如何作出貢獻。", - "LabelRunningOnPort": "運行於 http 連接埠 {0}.", - "LabelRunningOnPorts": "運行於 http 連接埠 {0}, 和 https 連接埠 {1}.", "LabelSaveLocalMetadata": "儲存媒體圖片和資料屬性到媒體所屬的文件夾", "LabelSaveLocalMetadataHelp": "直接儲存媒體圖片和資料到媒體文件夾,讓編輯工作更容易。", "LabelSelectUsers": "選擇用戶:", diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index 27933a0ab..d1ddadc23 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -116,7 +116,6 @@ "LabelCurrentPassword": "當前的密碼:", "LabelDay": "日:", "LabelDisplayMissingEpisodesWithinSeasons": "顯示節目季度內缺少的單元", - "LabelEnableDebugLogging": "記錄除錯信息到日誌", "LabelEnableDlnaClientDiscoveryInterval": "尋找客戶端時間間隔(秒)", "LabelEnableDlnaDebugLogging": "記錄DLNA除錯信息到日誌", "LabelEnableDlnaDebugLoggingHelp": "這將創建一個非常大的日誌文件,建議只需要進行故障排除時啟動。", @@ -381,7 +380,6 @@ "ButtonLibraryAccess": "媒體庫存取", "ButtonManualLogin": "手動登入", "ButtonMore": "更多", - "ButtonMoreInformation": "更多資訊", "ButtonNetwork": "網路", "ButtonNextTrack": "下一首", "ButtonOff": "關", @@ -491,7 +489,6 @@ "EnableBackdropsHelp": "若啟用,當瀏覽媒體庫時背景圖將作為一些頁面的背景。", "EnableCinemaMode": "啟用影院模式", "EnableColorCodedBackgrounds": "啟用色彩背景", - "EnableDebugLoggingHelp": "Debug logging只能在偵錯過程時啟用。增加的文件系統存取有時會使一些裝置無法進入睡眠模式。", "EnableDisplayMirroring": "啟用雙螢幕", "EnableExternalVideoPlayers": "啟用外接影片播放器", "EnableExternalVideoPlayersHelp": "當你開始播放影片時,將會顯示一個外接播放器目錄。", @@ -704,7 +701,6 @@ "HeaderItems": "項目", "HeaderJellyfinAccountAdded": "Jellyfin 帳戶已添加", "HeaderJellyfinAccountRemoved": "已移除 Jellyfin 帳戶", - "HeaderJellyfinServer": "Jellyfin 伺服器", "HeaderKeepRecording": "繼續錄製", "HeaderKeepSeries": "保存系列", "HeaderKodiMetadataHelp": "要啟用或禁用 Nfo 數據, 請在 Jellyfin 媒體庫安裝程序中編輯媒體庫, 然後找到“數據儲存”部分。", From efa3ff17306b2c0e0eaeed9cd1f9c15a43f13902 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Mon, 1 Apr 2019 23:50:09 +0100 Subject: [PATCH 068/106] module appSettings renamed --- src/components/{appsettings.js => appSettings.js} | 0 src/scripts/site.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/components/{appsettings.js => appSettings.js} (100%) diff --git a/src/components/appsettings.js b/src/components/appSettings.js similarity index 100% rename from src/components/appsettings.js rename to src/components/appSettings.js diff --git a/src/scripts/site.js b/src/scripts/site.js index 32c154b52..9f5007fa7 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -844,7 +844,7 @@ var AppInfo = {}; define("toast", [componentsPath + "/toast/toast"], returnFirstDependency); define("scrollHelper", [componentsPath + "/scrollhelper"], returnFirstDependency); define("touchHelper", [componentsPath + "/touchhelper"], returnFirstDependency); - define("appSettings", [componentsPath + "/appsettings"], returnFirstDependency); + define("appSettings", [componentsPath + "/appSettings"], returnFirstDependency); define("userSettings", [componentsPath + "/usersettings/usersettings"], returnFirstDependency); define("userSettingsBuilder", [componentsPath + "/usersettings/usersettingsbuilder", "layoutManager", "browser"], getSettingsBuilder); define("material-icons", ["css!css/material-icons/style"], returnFirstDependency); From b293f6e0f974900329794f3f0121e80f0d688b70 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 2 Apr 2019 00:01:33 +0100 Subject: [PATCH 069/106] multiple modules resolution --- .../{credentials.js => credentialprovider.js} | 0 .../cardbuilder/{cardbuilder.js => cardBuilder.js} | 0 src/components/cardbuilder/roundcard.css | 7 ------- src/components/{focusmanager.js => focusManager.js} | 0 src/components/viewManager/viewManager.js | 10 +++++----- src/scripts/site.js | 10 ++++------ 6 files changed, 9 insertions(+), 18 deletions(-) rename src/bower_components/apiclient/{credentials.js => credentialprovider.js} (100%) rename src/components/cardbuilder/{cardbuilder.js => cardBuilder.js} (100%) delete mode 100644 src/components/cardbuilder/roundcard.css rename src/components/{focusmanager.js => focusManager.js} (100%) diff --git a/src/bower_components/apiclient/credentials.js b/src/bower_components/apiclient/credentialprovider.js similarity index 100% rename from src/bower_components/apiclient/credentials.js rename to src/bower_components/apiclient/credentialprovider.js diff --git a/src/components/cardbuilder/cardbuilder.js b/src/components/cardbuilder/cardBuilder.js similarity index 100% rename from src/components/cardbuilder/cardbuilder.js rename to src/components/cardbuilder/cardBuilder.js diff --git a/src/components/cardbuilder/roundcard.css b/src/components/cardbuilder/roundcard.css deleted file mode 100644 index d0bd95097..000000000 --- a/src/components/cardbuilder/roundcard.css +++ /dev/null @@ -1,7 +0,0 @@ -.card-round:focus > .cardBox-focustransform { - transform: scale(1.26, 1.26); -} - -.cardImageContainer-round, .cardImage-round { - border-radius: 1000px; -} diff --git a/src/components/focusmanager.js b/src/components/focusManager.js similarity index 100% rename from src/components/focusmanager.js rename to src/components/focusManager.js diff --git a/src/components/viewManager/viewManager.js b/src/components/viewManager/viewManager.js index 606c7e98c..f594e446a 100644 --- a/src/components/viewManager/viewManager.js +++ b/src/components/viewManager/viewManager.js @@ -1,10 +1,10 @@ -define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], function (viewcontainer, focusManager, queryString, layoutManager) { +define(['viewContainer', 'focusManager', 'queryString', 'layoutManager'], function (viewContainer, focusManager, queryString, layoutManager) { 'use strict'; var currentView; var dispatchPageEvents; - viewcontainer.setOnBeforeChange(function (newView, isRestored, options) { + viewContainer.setOnBeforeChange(function (newView, isRestored, options) { var lastView = currentView; if (lastView) { @@ -125,7 +125,7 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi function resetCachedViews() { // Reset all cached views whenever the skin changes - viewcontainer.reset(); + viewContainer.reset(); } document.addEventListener('skinunload', resetCachedViews); @@ -146,7 +146,7 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi return; } - viewcontainer.loadView(options).then(function (view) { + viewContainer.loadView(options).then(function (view) { onViewChange(view, options); }); @@ -163,7 +163,7 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi currentView.activeElement = document.activeElement; } - return viewcontainer.tryRestoreView(options).then(function (view) { + return viewContainer.tryRestoreView(options).then(function (view) { onViewChanging(); onViewChange(view, options, true); diff --git a/src/scripts/site.js b/src/scripts/site.js index 9f5007fa7..84a87223e 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -687,7 +687,7 @@ var AppInfo = {}; humanedate: "components/humanedate", libraryBrowser: "scripts/librarybrowser", events: apiClientBowerPath + "/events", - credentialprovider: apiClientBowerPath + "/credentials", + credentialprovider: apiClientBowerPath + "/credentialprovider", connectionManagerFactory: bowerPath + "/apiclient/connectionmanager", visibleinviewport: componentsPath + "/visibleinviewport", browserdeviceprofile: componentsPath + "/browserdeviceprofile", @@ -696,7 +696,7 @@ var AppInfo = {}; qualityoptions: componentsPath + "/qualityoptions", hammer: bowerPath + "/hammerjs/hammer.min", page: "thirdparty/page", - focusManager: componentsPath + "/focusmanager", + focusManager: componentsPath + "/focusManager", datetime: componentsPath + "/datetime", globalize: componentsPath + "/globalize", itemHelper: componentsPath + "/itemhelper", @@ -784,9 +784,8 @@ var AppInfo = {}; define("refreshDialog", [componentsPath + "/refreshdialog/refreshdialog"], returnFirstDependency); define("backdrop", [componentsPath + "/backdrop/backdrop"], returnFirstDependency); define("fetchHelper", [componentsPath + "/fetchhelper"], returnFirstDependency); - define("roundCardStyle", ["cardStyle", "css!" + componentsPath + "/cardbuilder/roundcard"], returnFirstDependency); define("cardStyle", ["css!" + componentsPath + "/cardbuilder/card"], returnFirstDependency); - define("cardBuilder", [componentsPath + "/cardbuilder/cardbuilder"], returnFirstDependency); + define("cardBuilder", [componentsPath + "/cardbuilder/cardBuilder"], returnFirstDependency); define("peoplecardbuilder", [componentsPath + "/cardbuilder/peoplecardbuilder"], returnFirstDependency); define("chaptercardbuilder", [componentsPath + "/cardbuilder/chaptercardbuilder"], returnFirstDependency); define("flexStyles", ["css!" + componentsPath + "/flexstyles"], returnFirstDependency); @@ -831,7 +830,6 @@ var AppInfo = {}; define("viewSettings", [componentsPath + "/viewsettings/viewsettings"], returnFirstDependency); define("filterMenu", [componentsPath + "/filtermenu/filtermenu"], returnFirstDependency); define("sortMenu", [componentsPath + "/sortmenu/sortmenu"], returnFirstDependency); - define("connectionmanager", [apiClientBowerPath + "/connectionmanager"]); define("serversync", [apiClientBowerPath + "/sync/serversync"], returnFirstDependency); define("multiserversync", [apiClientBowerPath + "/sync/multiserversync"], returnFirstDependency); define("mediasync", [apiClientBowerPath + "/sync/mediasync"], returnFirstDependency); @@ -854,7 +852,7 @@ var AppInfo = {}; define("imageUploader", [componentsPath + "/imageuploader/imageuploader"], returnFirstDependency); define("navdrawer", ["components/navdrawer/navdrawer"], returnFirstDependency); define("htmlMediaHelper", [componentsPath + "/htmlMediaHelper"], returnFirstDependency); - define("viewcontainer", ["components/viewContainer"], returnFirstDependency); + define("viewContainer", ["components/viewContainer"], returnFirstDependency); define("queryString", [bowerPath + "/query-string/index"], function () { return queryString; }); From 12f8cf10d56ea91f6954724a06d6948d4127bff9 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 2 Apr 2019 22:10:22 +0100 Subject: [PATCH 070/106] deuglify viewContainer.js module --- src/components/viewContainer.js | 278 +++++++++++++++++++++++++------- 1 file changed, 216 insertions(+), 62 deletions(-) diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index 4c02ba3c6..67277ddca 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -1,121 +1,275 @@ -define(["browser", "dom", "layoutManager", "css!components/viewManager/viewContainer"], function(browser, dom, layoutManager) { +define(["browser", "dom", "layoutManager", "css!components/viewManager/viewContainer"], function (browser, dom, layoutManager) { "use strict"; function setControllerClass(view, options) { - if (options.controllerFactory) return Promise.resolve(); + if (options.controllerFactory) { + return Promise.resolve(); + } + var controllerUrl = view.getAttribute("data-controller"); - return controllerUrl ? (0 === controllerUrl.indexOf("__plugin/") && (controllerUrl = controllerUrl.substring("__plugin/".length)), controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl), getRequirePromise([controllerUrl]).then(function(ControllerFactory) { - options.controllerFactory = ControllerFactory - })) : Promise.resolve() + + if (controllerUrl) { + if (0 === controllerUrl.indexOf("__plugin/")) { + controllerUrl = controllerUrl.substring("__plugin/".length); + } + + controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl); + return getRequirePromise([controllerUrl]).then(function (ControllerFactory) { + options.controllerFactory = ControllerFactory; + }); + } + + return Promise.resolve(); } function getRequirePromise(deps) { - return new Promise(function(resolve, reject) { - require(deps, resolve) - }) + return new Promise(function (resolve, reject) { + require(deps, resolve); + }); } function loadView(options) { if (!options.cancel) { - var selected = selectedPageIndex, - previousAnimatable = -1 === selected ? null : allPages[selected], - pageIndex = selected + 1; - pageIndex >= pageContainerCount && (pageIndex = 0); - var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage"), - newViewInfo = normalizeNewView(options, isPluginpage), - newView = newViewInfo.elem, - dependencies = "string" == typeof newView ? null : newView.getAttribute("data-require"); - return dependencies = dependencies ? dependencies.split(",") : [], isPluginpage && dependencies.push("legacy/dashboard"), newViewInfo.hasjQuerySelect && dependencies.push("legacy/selectmenu"), newViewInfo.hasjQueryChecked && dependencies.push("fnchecked"), newViewInfo.hasjQuery && dependencies.push("jQuery"), (isPluginpage || newView.classList && newView.classList.contains("type-interior")) && dependencies.push("dashboardcss"), new Promise(function(resolve, reject) { + var selected = selectedPageIndex; + var previousAnimatable = -1 === selected ? null : allPages[selected]; + var pageIndex = selected + 1; + + if (pageIndex >= pageContainerCount) { + pageIndex = 0; + } + + var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage"); + var newViewInfo = normalizeNewView(options, isPluginpage); + var newView = newViewInfo.elem; + var dependencies = "string" == typeof newView ? null : newView.getAttribute("data-require"); + dependencies = dependencies ? dependencies.split(",") : []; + + if (isPluginpage) { + dependencies.push("legacy/dashboard"); + } + + if (newViewInfo.hasjQuerySelect) { + dependencies.push("legacy/selectmenu"); + } + + if (newViewInfo.hasjQueryChecked) { + dependencies.push("fnchecked"); + } + + if (newViewInfo.hasjQuery) { + dependencies.push("jQuery"); + } + + if (isPluginpage || newView.classList && newView.classList.contains("type-interior")) { + dependencies.push("dashboardcss"); + } + + return new Promise(function (resolve, reject) { dependencies.join(","); - require(dependencies, function() { + + require(dependencies, function () { var currentPage = allPages[pageIndex]; - currentPage && triggerDestroy(currentPage); + + if (currentPage) { + triggerDestroy(currentPage); + } + var view = newView; - "string" == typeof view && (view = document.createElement("div"), view.innerHTML = newView), view.classList.add("mainAnimatedPage"), currentPage ? newViewInfo.hasScript && window.$ ? (view = $(view).appendTo(mainAnimatedPages)[0], mainAnimatedPages.removeChild(currentPage)) : mainAnimatedPages.replaceChild(view, currentPage) : newViewInfo.hasScript && window.$ ? view = $(view).appendTo(mainAnimatedPages)[0] : mainAnimatedPages.appendChild(view), options.type && view.setAttribute("data-type", options.type); + + if ("string" == typeof view) { + view = document.createElement("div"); + view.innerHTML = newView; + } + + view.classList.add("mainAnimatedPage"); + + if (currentPage) { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + mainAnimatedPages.removeChild(currentPage); + } else { + mainAnimatedPages.replaceChild(view, currentPage); + } + } else { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + } else { + mainAnimatedPages.appendChild(view); + } + } + + if (options.type) { + view.setAttribute("data-type", options.type); + } + var properties = []; - options.fullscreen && properties.push("fullscreen"), properties.length && view.setAttribute("data-properties", properties.join(",")); - allPages[pageIndex] = view, setControllerClass(view, options).then(function() { - onBeforeChange && onBeforeChange(view, !1, options), beforeAnimate(allPages, pageIndex, selected), selectedPageIndex = pageIndex, currentUrls[pageIndex] = options.url, !options.cancel && previousAnimatable && afterAnimate(allPages, pageIndex), window.$ && ($.mobile = $.mobile || {}, $.mobile.activePage = view), resolve(view) - }) - }) - }) + + if (options.fullscreen) { + properties.push("fullscreen"); + } + + if (properties.length) { + view.setAttribute("data-properties", properties.join(",")); + } + + allPages[pageIndex] = view; + setControllerClass(view, options).then(function () { + if (onBeforeChange) { + onBeforeChange(view, false, options); + } + + beforeAnimate(allPages, pageIndex, selected); + selectedPageIndex = pageIndex; + currentUrls[pageIndex] = options.url; + + if (!options.cancel && previousAnimatable) { + afterAnimate(allPages, pageIndex); + } + + if (window.$) { + $.mobile = $.mobile || {}; + $.mobile.activePage = view; + } + + resolve(view); + }); + }); + }); } } function replaceAll(str, find, replace) { - return str.split(find).join(replace) + return str.split(find).join(replace); } function parseHtml(html, hasScript) { - hasScript && (html = replaceAll(html, "\x3c!----\x3e", "<\/script>")); + if (hasScript) { + html = replaceAll(html, "\x3c!----\x3e", "<\/script>"); + } + var wrapper = document.createElement("div"); - return wrapper.innerHTML = html, wrapper.querySelector('div[data-role="page"]') + wrapper.innerHTML = html; + return wrapper.querySelector('div[data-role="page"]'); } function normalizeNewView(options, isPluginpage) { var viewHtml = options.view; - if (-1 === viewHtml.indexOf('data-role="page"')) return viewHtml; - var hasScript = -1 !== viewHtml.indexOf(" Date: Tue, 2 Apr 2019 23:14:16 +0100 Subject: [PATCH 071/106] deuglify dlnaprofile.js --- src/scripts/dlnaprofile.js | 850 ++++++++++++++++++++++++++++--------- 1 file changed, 654 insertions(+), 196 deletions(-) diff --git a/src/scripts/dlnaprofile.js b/src/scripts/dlnaprofile.js index 026c228d2..530e45601 100644 --- a/src/scripts/dlnaprofile.js +++ b/src/scripts/dlnaprofile.js @@ -1,371 +1,829 @@ -define(["jQuery", "loading", "fnchecked", "emby-select", "emby-button", "emby-input", "emby-checkbox", "listViewStyle", "emby-button"], function($, loading) { +define(["jQuery", "loading", "fnchecked", "emby-select", "emby-button", "emby-input", "emby-checkbox", "listViewStyle", "emby-button"], function ($, loading) { "use strict"; function loadProfile(page) { loading.show(); - var promise1 = getProfile(), - promise2 = ApiClient.getUsers(); - Promise.all([promise1, promise2]).then(function(responses) { - currentProfile = responses[0], renderProfile(page, currentProfile, responses[1]), loading.hide() - }) + var promise1 = getProfile(); + var promise2 = ApiClient.getUsers(); + Promise.all([promise1, promise2]).then(function (responses) { + currentProfile = responses[0]; + renderProfile(page, currentProfile, responses[1]); + loading.hide(); + }); } function getProfile() { - var id = getParameterByName("id"), - url = id ? "Dlna/Profiles/" + id : "Dlna/Profiles/Default"; - return ApiClient.getJSON(ApiClient.getUrl(url)) + var id = getParameterByName("id"); + var url = id ? "Dlna/Profiles/" + id : "Dlna/Profiles/Default"; + return ApiClient.getJSON(ApiClient.getUrl(url)); } function renderProfile(page, profile, users) { - $("#txtName", page).val(profile.Name), $(".chkMediaType", page).each(function() { - this.checked = -1 != (profile.SupportedMediaTypes || "").split(",").indexOf(this.getAttribute("data-value")) - }), $("#chkEnableAlbumArtInDidl", page).checked(profile.EnableAlbumArtInDidl), $("#chkEnableSingleImageLimit", page).checked(profile.EnableSingleAlbumArtLimit), renderXmlDocumentAttributes(page, profile.XmlRootAttributes || []); + $("#txtName", page).val(profile.Name); + $(".chkMediaType", page).each(function () { + this.checked = -1 != (profile.SupportedMediaTypes || "").split(",").indexOf(this.getAttribute("data-value")); + }); + $("#chkEnableAlbumArtInDidl", page).checked(profile.EnableAlbumArtInDidl); + $("#chkEnableSingleImageLimit", page).checked(profile.EnableSingleAlbumArtLimit); + renderXmlDocumentAttributes(page, profile.XmlRootAttributes || []); var idInfo = profile.Identification || {}; - renderIdentificationHeaders(page, idInfo.Headers || []), renderSubtitleProfiles(page, profile.SubtitleProfiles || []), $("#txtInfoFriendlyName", page).val(profile.FriendlyName || ""), $("#txtInfoModelName", page).val(profile.ModelName || ""), $("#txtInfoModelNumber", page).val(profile.ModelNumber || ""), $("#txtInfoModelDescription", page).val(profile.ModelDescription || ""), $("#txtInfoModelUrl", page).val(profile.ModelUrl || ""), $("#txtInfoManufacturer", page).val(profile.Manufacturer || ""), $("#txtInfoManufacturerUrl", page).val(profile.ManufacturerUrl || ""), $("#txtInfoSerialNumber", page).val(profile.SerialNumber || ""), $("#txtIdFriendlyName", page).val(idInfo.FriendlyName || ""), $("#txtIdModelName", page).val(idInfo.ModelName || ""), $("#txtIdModelNumber", page).val(idInfo.ModelNumber || ""), $("#txtIdModelDescription", page).val(idInfo.ModelDescription || ""), $("#txtIdModelUrl", page).val(idInfo.ModelUrl || ""), $("#txtIdManufacturer", page).val(idInfo.Manufacturer || ""), $("#txtIdManufacturerUrl", page).val(idInfo.ManufacturerUrl || ""), $("#txtIdSerialNumber", page).val(idInfo.SerialNumber || ""), $("#txtIdDeviceDescription", page).val(idInfo.DeviceDescription || ""), $("#txtAlbumArtPn", page).val(profile.AlbumArtPn || ""), $("#txtAlbumArtMaxWidth", page).val(profile.MaxAlbumArtWidth || ""), $("#txtAlbumArtMaxHeight", page).val(profile.MaxAlbumArtHeight || ""), $("#txtIconMaxWidth", page).val(profile.MaxIconWidth || ""), $("#txtIconMaxHeight", page).val(profile.MaxIconHeight || ""), $("#chkIgnoreTranscodeByteRangeRequests", page).checked(profile.IgnoreTranscodeByteRangeRequests), $("#txtMaxAllowedBitrate", page).val(profile.MaxStreamingBitrate || ""), $("#txtMusicStreamingTranscodingBitrate", page).val(profile.MusicStreamingTranscodingBitrate || ""), $("#chkRequiresPlainFolders", page).checked(profile.RequiresPlainFolders), $("#chkRequiresPlainVideoItems", page).checked(profile.RequiresPlainVideoItems), $("#txtProtocolInfo", page).val(profile.ProtocolInfo || ""), $("#txtXDlnaCap", page).val(profile.XDlnaCap || ""), $("#txtXDlnaDoc", page).val(profile.XDlnaDoc || ""), $("#txtSonyAggregationFlags", page).val(profile.SonyAggregationFlags || ""), profile.DirectPlayProfiles = profile.DirectPlayProfiles || [], profile.TranscodingProfiles = profile.TranscodingProfiles || [], profile.ContainerProfiles = profile.ContainerProfiles || [], profile.CodecProfiles = profile.CodecProfiles || [], profile.ResponseProfiles = profile.ResponseProfiles || []; - var usersHtml = "" + users.map(function(u) { - return '" + renderIdentificationHeaders(page, idInfo.Headers || []); + renderSubtitleProfiles(page, profile.SubtitleProfiles || []); + $("#txtInfoFriendlyName", page).val(profile.FriendlyName || ""); + $("#txtInfoModelName", page).val(profile.ModelName || ""); + $("#txtInfoModelNumber", page).val(profile.ModelNumber || ""); + $("#txtInfoModelDescription", page).val(profile.ModelDescription || ""); + $("#txtInfoModelUrl", page).val(profile.ModelUrl || ""); + $("#txtInfoManufacturer", page).val(profile.Manufacturer || ""); + $("#txtInfoManufacturerUrl", page).val(profile.ManufacturerUrl || ""); + $("#txtInfoSerialNumber", page).val(profile.SerialNumber || ""); + $("#txtIdFriendlyName", page).val(idInfo.FriendlyName || ""); + $("#txtIdModelName", page).val(idInfo.ModelName || ""); + $("#txtIdModelNumber", page).val(idInfo.ModelNumber || ""); + $("#txtIdModelDescription", page).val(idInfo.ModelDescription || ""); + $("#txtIdModelUrl", page).val(idInfo.ModelUrl || ""); + $("#txtIdManufacturer", page).val(idInfo.Manufacturer || ""); + $("#txtIdManufacturerUrl", page).val(idInfo.ManufacturerUrl || ""); + $("#txtIdSerialNumber", page).val(idInfo.SerialNumber || ""); + $("#txtIdDeviceDescription", page).val(idInfo.DeviceDescription || ""); + $("#txtAlbumArtPn", page).val(profile.AlbumArtPn || ""); + $("#txtAlbumArtMaxWidth", page).val(profile.MaxAlbumArtWidth || ""); + $("#txtAlbumArtMaxHeight", page).val(profile.MaxAlbumArtHeight || ""); + $("#txtIconMaxWidth", page).val(profile.MaxIconWidth || ""); + $("#txtIconMaxHeight", page).val(profile.MaxIconHeight || ""); + $("#chkIgnoreTranscodeByteRangeRequests", page).checked(profile.IgnoreTranscodeByteRangeRequests); + $("#txtMaxAllowedBitrate", page).val(profile.MaxStreamingBitrate || ""); + $("#txtMusicStreamingTranscodingBitrate", page).val(profile.MusicStreamingTranscodingBitrate || ""); + $("#chkRequiresPlainFolders", page).checked(profile.RequiresPlainFolders); + $("#chkRequiresPlainVideoItems", page).checked(profile.RequiresPlainVideoItems); + $("#txtProtocolInfo", page).val(profile.ProtocolInfo || ""); + $("#txtXDlnaCap", page).val(profile.XDlnaCap || ""); + $("#txtXDlnaDoc", page).val(profile.XDlnaDoc || ""); + $("#txtSonyAggregationFlags", page).val(profile.SonyAggregationFlags || ""); + profile.DirectPlayProfiles = profile.DirectPlayProfiles || []; + profile.TranscodingProfiles = profile.TranscodingProfiles || []; + profile.ContainerProfiles = profile.ContainerProfiles || []; + profile.CodecProfiles = profile.CodecProfiles || []; + profile.ResponseProfiles = profile.ResponseProfiles || []; + var usersHtml = "" + users.map(function (u__w) { + return '"; }).join(""); - $("#selectUser", page).html(usersHtml).val(profile.UserId || ""), renderSubProfiles(page, profile) + $("#selectUser", page).html(usersHtml).val(profile.UserId || ""); + renderSubProfiles(page, profile); } function renderIdentificationHeaders(page, headers) { - var index = 0, - html = '
' + headers.map(function(h) { - var li = '
'; - return li += 'info', li += '
', li += '

' + h.Name + ": " + (h.Value || "") + "

", li += '
' + (h.Match || "") + "
", li += "
", li += '', li += "
", index++, li - }).join("") + "
", - elem = $(".httpHeaderIdentificationList", page).html(html).trigger("create"); - $(".btnDeleteIdentificationHeader", elem).on("click", function() { + var index = 0; + var html = '
' + headers.map(function (h__e) { + var li = '
'; + li += 'info'; + li += '
'; + li += '

' + h__e.Name + ": " + (h__e.Value || "") + "

"; + li += '
' + (h__e.Match || "") + "
"; + li += "
"; + li += ''; + li += "
"; + index++; + return li; + }).join("") + "
"; + var elem = $(".httpHeaderIdentificationList", page).html(html).trigger("create"); + $(".btnDeleteIdentificationHeader", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - currentProfile.Identification.Headers.splice(itemIndex, 1), renderIdentificationHeaders(page, currentProfile.Identification.Headers) - }) + currentProfile.Identification.Headers.splice(itemIndex, 1); + renderIdentificationHeaders(page, currentProfile.Identification.Headers); + }); } function openPopup(elem) { - elem.classList.remove("hide") + elem.classList.remove("hide"); } function closePopup(elem) { - elem.classList.add("hide") + elem.classList.add("hide"); } function editIdentificationHeader(page, header) { - isSubProfileNew = null == header, header = header || {}, currentSubProfile = header; + isSubProfileNew = null == header; + header = header || {}; + currentSubProfile = header; var popup = $("#identificationHeaderPopup", page); - $("#txtIdentificationHeaderName", popup).val(header.Name || ""), $("#txtIdentificationHeaderValue", popup).val(header.Value || ""), $("#selectMatchType", popup).val(header.Match || "Equals"), openPopup(popup[0]) + $("#txtIdentificationHeaderName", popup).val(header.Name || ""); + $("#txtIdentificationHeaderValue", popup).val(header.Value || ""); + $("#selectMatchType", popup).val(header.Match || "Equals"); + openPopup(popup[0]); } function saveIdentificationHeader(page) { - currentSubProfile.Name = $("#txtIdentificationHeaderName", page).val(), currentSubProfile.Value = $("#txtIdentificationHeaderValue", page).val(), currentSubProfile.Match = $("#selectMatchType", page).val(), isSubProfileNew && (currentProfile.Identification = currentProfile.Identification || {}, currentProfile.Identification.Headers = currentProfile.Identification.Headers || [], currentProfile.Identification.Headers.push(currentSubProfile)), renderIdentificationHeaders(page, currentProfile.Identification.Headers), currentSubProfile = null, closePopup($("#identificationHeaderPopup", page)[0]) + currentSubProfile.Name = $("#txtIdentificationHeaderName", page).val(); + currentSubProfile.Value = $("#txtIdentificationHeaderValue", page).val(); + currentSubProfile.Match = $("#selectMatchType", page).val(); + + if (isSubProfileNew) { + currentProfile.Identification = currentProfile.Identification || {}; + currentProfile.Identification.Headers = currentProfile.Identification.Headers || []; + currentProfile.Identification.Headers.push(currentSubProfile); + } + + renderIdentificationHeaders(page, currentProfile.Identification.Headers); + currentSubProfile = null; + closePopup($("#identificationHeaderPopup", page)[0]); } function renderXmlDocumentAttributes(page, attribute) { - var html = '
' + attribute.map(function(h) { - var li = '
'; - return li += 'info', li += '
', li += '

' + h.Name + " = " + (h.Value || "") + "

", li += "
", li += '', li += "
" - }).join("") + "
", - elem = $(".xmlDocumentAttributeList", page).html(html).trigger("create"); - $(".btnDeleteXmlAttribute", elem).on("click", function() { + var html = '
' + attribute.map(function (h__r) { + var li = '
'; + li += 'info'; + li += '
'; + li += '

' + h__r.Name + " = " + (h__r.Value || "") + "

"; + li += "
"; + li += ''; + return li += "
"; + }).join("") + "
"; + var elem = $(".xmlDocumentAttributeList", page).html(html).trigger("create"); + $(".btnDeleteXmlAttribute", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - currentProfile.XmlRootAttributes.splice(itemIndex, 1), renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes) - }) + currentProfile.XmlRootAttributes.splice(itemIndex, 1); + renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes); + }); } function editXmlDocumentAttribute(page, attribute) { - isSubProfileNew = null == attribute, attribute = attribute || {}, currentSubProfile = attribute; + isSubProfileNew = null == attribute; + attribute = attribute || {}; + currentSubProfile = attribute; var popup = $("#xmlAttributePopup", page); - $("#txtXmlAttributeName", popup).val(attribute.Name || ""), $("#txtXmlAttributeValue", popup).val(attribute.Value || ""), openPopup(popup[0]) + $("#txtXmlAttributeName", popup).val(attribute.Name || ""); + $("#txtXmlAttributeValue", popup).val(attribute.Value || ""); + openPopup(popup[0]); } function saveXmlDocumentAttribute(page) { - currentSubProfile.Name = $("#txtXmlAttributeName", page).val(), currentSubProfile.Value = $("#txtXmlAttributeValue", page).val(), isSubProfileNew && currentProfile.XmlRootAttributes.push(currentSubProfile), renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes), currentSubProfile = null, closePopup($("#xmlAttributePopup", page)[0]) + currentSubProfile.Name = $("#txtXmlAttributeName", page).val(); + currentSubProfile.Value = $("#txtXmlAttributeValue", page).val(); + + if (isSubProfileNew) { + currentProfile.XmlRootAttributes.push(currentSubProfile); + } + + renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes); + currentSubProfile = null; + closePopup($("#xmlAttributePopup", page)[0]); } function renderSubtitleProfiles(page, profiles) { - var index = 0, - html = '
' + profiles.map(function(h) { - var li = '
'; - return li += 'info', li += '
', li += '

' + (h.Format || "") + "

", li += "
", li += '', li += "
", index++, li - }).join("") + "
", - elem = $(".subtitleProfileList", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + var index = 0; + var html = '
' + profiles.map(function (h__t) { + var li = '
'; + li += 'info'; + li += '
'; + li += '

' + (h__t.Format || "") + "

"; + li += "
"; + li += ''; + li += "
"; + index++; + return li; + }).join("") + "
"; + var elem = $(".subtitleProfileList", page).html(html).trigger("create"); + $(".btnDeleteProfile", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - currentProfile.SubtitleProfiles.splice(itemIndex, 1), renderSubtitleProfiles(page, currentProfile.SubtitleProfiles) - }), $(".lnkEditSubProfile", elem).on("click", function() { + currentProfile.SubtitleProfiles.splice(itemIndex, 1); + renderSubtitleProfiles(page, currentProfile.SubtitleProfiles); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - editSubtitleProfile(page, currentProfile.SubtitleProfiles[itemIndex]) - }) + editSubtitleProfile(page, currentProfile.SubtitleProfiles[itemIndex]); + }); } function editSubtitleProfile(page, profile) { - isSubProfileNew = null == profile, profile = profile || {}, currentSubProfile = profile; + isSubProfileNew = null == profile; + profile = profile || {}; + currentSubProfile = profile; var popup = $("#subtitleProfilePopup", page); - $("#txtSubtitleProfileFormat", popup).val(profile.Format || ""), $("#selectSubtitleProfileMethod", popup).val(profile.Method || ""), $("#selectSubtitleProfileDidlMode", popup).val(profile.DidlMode || ""), openPopup(popup[0]) + $("#txtSubtitleProfileFormat", popup).val(profile.Format || ""); + $("#selectSubtitleProfileMethod", popup).val(profile.Method || ""); + $("#selectSubtitleProfileDidlMode", popup).val(profile.DidlMode || ""); + openPopup(popup[0]); } function saveSubtitleProfile(page) { - currentSubProfile.Format = $("#txtSubtitleProfileFormat", page).val(), currentSubProfile.Method = $("#selectSubtitleProfileMethod", page).val(), currentSubProfile.DidlMode = $("#selectSubtitleProfileDidlMode", page).val(), isSubProfileNew && currentProfile.SubtitleProfiles.push(currentSubProfile), renderSubtitleProfiles(page, currentProfile.SubtitleProfiles), currentSubProfile = null, closePopup($("#subtitleProfilePopup", page)[0]) + currentSubProfile.Format = $("#txtSubtitleProfileFormat", page).val(); + currentSubProfile.Method = $("#selectSubtitleProfileMethod", page).val(); + currentSubProfile.DidlMode = $("#selectSubtitleProfileDidlMode", page).val(); + + if (isSubProfileNew) { + currentProfile.SubtitleProfiles.push(currentSubProfile); + } + + renderSubtitleProfiles(page, currentProfile.SubtitleProfiles); + currentSubProfile = null; + closePopup($("#subtitleProfilePopup", page)[0]); } function renderSubProfiles(page, profile) { - renderDirectPlayProfiles(page, profile.DirectPlayProfiles), renderTranscodingProfiles(page, profile.TranscodingProfiles), renderContainerProfiles(page, profile.ContainerProfiles), renderCodecProfiles(page, profile.CodecProfiles), renderResponseProfiles(page, profile.ResponseProfiles) + renderDirectPlayProfiles(page, profile.DirectPlayProfiles); + renderTranscodingProfiles(page, profile.TranscodingProfiles); + renderContainerProfiles(page, profile.ContainerProfiles); + renderCodecProfiles(page, profile.CodecProfiles); + renderResponseProfiles(page, profile.ResponseProfiles); } function saveDirectPlayProfile(page) { - currentSubProfile.Type = $("#selectDirectPlayProfileType", page).val(), currentSubProfile.Container = $("#txtDirectPlayContainer", page).val(), currentSubProfile.AudioCodec = $("#txtDirectPlayAudioCodec", page).val(), currentSubProfile.VideoCodec = $("#txtDirectPlayVideoCodec", page).val(), isSubProfileNew && currentProfile.DirectPlayProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#popupEditDirectPlayProfile", page)[0]) + currentSubProfile.Type = $("#selectDirectPlayProfileType", page).val(); + currentSubProfile.Container = $("#txtDirectPlayContainer", page).val(); + currentSubProfile.AudioCodec = $("#txtDirectPlayAudioCodec", page).val(); + currentSubProfile.VideoCodec = $("#txtDirectPlayVideoCodec", page).val(); + + if (isSubProfileNew) { + currentProfile.DirectPlayProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#popupEditDirectPlayProfile", page)[0]); } function renderDirectPlayProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".directPlayProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteDirectPlayProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteDirectPlayProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editDirectPlayProfile(page, currentProfile.DirectPlayProfiles[index]) - }) + editDirectPlayProfile(page, currentProfile.DirectPlayProfiles[index]); + }); } function deleteDirectPlayProfile(page, index) { - currentProfile.DirectPlayProfiles.splice(index, 1), renderDirectPlayProfiles(page, currentProfile.DirectPlayProfiles) + currentProfile.DirectPlayProfiles.splice(index, 1); + renderDirectPlayProfiles(page, currentProfile.DirectPlayProfiles); } function editDirectPlayProfile(page, directPlayProfile) { - isSubProfileNew = null == directPlayProfile, directPlayProfile = directPlayProfile || {}, currentSubProfile = directPlayProfile; + isSubProfileNew = null == directPlayProfile; + directPlayProfile = directPlayProfile || {}; + currentSubProfile = directPlayProfile; var popup = $("#popupEditDirectPlayProfile", page); - $("#selectDirectPlayProfileType", popup).val(directPlayProfile.Type || "Video").trigger("change"), $("#txtDirectPlayContainer", popup).val(directPlayProfile.Container || ""), $("#txtDirectPlayAudioCodec", popup).val(directPlayProfile.AudioCodec || ""), $("#txtDirectPlayVideoCodec", popup).val(directPlayProfile.VideoCodec || ""), openPopup(popup[0]) + $("#selectDirectPlayProfileType", popup).val(directPlayProfile.Type || "Video").trigger("change"); + $("#txtDirectPlayContainer", popup).val(directPlayProfile.Container || ""); + $("#txtDirectPlayAudioCodec", popup).val(directPlayProfile.AudioCodec || ""); + $("#txtDirectPlayVideoCodec", popup).val(directPlayProfile.VideoCodec || ""); + openPopup(popup[0]); } function renderTranscodingProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".transcodingProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteTranscodingProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteTranscodingProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editTranscodingProfile(page, currentProfile.TranscodingProfiles[index]) - }) + editTranscodingProfile(page, currentProfile.TranscodingProfiles[index]); + }); } function editTranscodingProfile(page, transcodingProfile) { - isSubProfileNew = null == transcodingProfile, transcodingProfile = transcodingProfile || {}, currentSubProfile = transcodingProfile; + isSubProfileNew = null == transcodingProfile; + transcodingProfile = transcodingProfile || {}; + currentSubProfile = transcodingProfile; var popup = $("#transcodingProfilePopup", page); - $("#selectTranscodingProfileType", popup).val(transcodingProfile.Type || "Video").trigger("change"), $("#txtTranscodingContainer", popup).val(transcodingProfile.Container || ""), $("#txtTranscodingAudioCodec", popup).val(transcodingProfile.AudioCodec || ""), $("#txtTranscodingVideoCodec", popup).val(transcodingProfile.VideoCodec || ""), $("#selectTranscodingProtocol", popup).val(transcodingProfile.Protocol || "Http"), $("#chkEnableMpegtsM2TsMode", popup).checked(transcodingProfile.EnableMpegtsM2TsMode || !1), $("#chkEstimateContentLength", popup).checked(transcodingProfile.EstimateContentLength || !1), $("#chkReportByteRangeRequests", popup).checked("Bytes" == transcodingProfile.TranscodeSeekInfo), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectTranscodingProfileType", popup).val(transcodingProfile.Type || "Video").trigger("change"); + $("#txtTranscodingContainer", popup).val(transcodingProfile.Container || ""); + $("#txtTranscodingAudioCodec", popup).val(transcodingProfile.AudioCodec || ""); + $("#txtTranscodingVideoCodec", popup).val(transcodingProfile.VideoCodec || ""); + $("#selectTranscodingProtocol", popup).val(transcodingProfile.Protocol || "Http"); + $("#chkEnableMpegtsM2TsMode", popup).checked(transcodingProfile.EnableMpegtsM2TsMode || false); + $("#chkEstimateContentLength", popup).checked(transcodingProfile.EstimateContentLength || false); + $("#chkReportByteRangeRequests", popup).checked("Bytes" == transcodingProfile.TranscodeSeekInfo); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function deleteTranscodingProfile(page, index) { - currentProfile.TranscodingProfiles.splice(index, 1), renderTranscodingProfiles(page, currentProfile.TranscodingProfiles) + currentProfile.TranscodingProfiles.splice(index, 1); + renderTranscodingProfiles(page, currentProfile.TranscodingProfiles); } function saveTranscodingProfile(page) { - currentSubProfile.Type = $("#selectTranscodingProfileType", page).val(), currentSubProfile.Container = $("#txtTranscodingContainer", page).val(), currentSubProfile.AudioCodec = $("#txtTranscodingAudioCodec", page).val(), currentSubProfile.VideoCodec = $("#txtTranscodingVideoCodec", page).val(), currentSubProfile.Protocol = $("#selectTranscodingProtocol", page).val(), currentSubProfile.Context = "Streaming", currentSubProfile.EnableMpegtsM2TsMode = $("#chkEnableMpegtsM2TsMode", page).checked(), currentSubProfile.EstimateContentLength = $("#chkEstimateContentLength", page).checked(), currentSubProfile.TranscodeSeekInfo = $("#chkReportByteRangeRequests", page).checked() ? "Bytes" : "Auto", isSubProfileNew && currentProfile.TranscodingProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#transcodingProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectTranscodingProfileType", page).val(); + currentSubProfile.Container = $("#txtTranscodingContainer", page).val(); + currentSubProfile.AudioCodec = $("#txtTranscodingAudioCodec", page).val(); + currentSubProfile.VideoCodec = $("#txtTranscodingVideoCodec", page).val(); + currentSubProfile.Protocol = $("#selectTranscodingProtocol", page).val(); + currentSubProfile.Context = "Streaming"; + currentSubProfile.EnableMpegtsM2TsMode = $("#chkEnableMpegtsM2TsMode", page).checked(); + currentSubProfile.EstimateContentLength = $("#chkEstimateContentLength", page).checked(); + currentSubProfile.TranscodeSeekInfo = $("#chkReportByteRangeRequests", page).checked() ? "Bytes" : "Auto"; + + if (isSubProfileNew) { + currentProfile.TranscodingProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#transcodingProfilePopup", page)[0]); } function renderContainerProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".containerProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteContainerProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteContainerProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editContainerProfile(page, currentProfile.ContainerProfiles[index]) - }) + editContainerProfile(page, currentProfile.ContainerProfiles[index]); + }); } function deleteContainerProfile(page, index) { - currentProfile.ContainerProfiles.splice(index, 1), renderContainerProfiles(page, currentProfile.ContainerProfiles) + currentProfile.ContainerProfiles.splice(index, 1); + renderContainerProfiles(page, currentProfile.ContainerProfiles); } function editContainerProfile(page, containerProfile) { - isSubProfileNew = null == containerProfile, containerProfile = containerProfile || {}, currentSubProfile = containerProfile; + isSubProfileNew = null == containerProfile; + containerProfile = containerProfile || {}; + currentSubProfile = containerProfile; var popup = $("#containerProfilePopup", page); - $("#selectContainerProfileType", popup).val(containerProfile.Type || "Video").trigger("change"), $("#txtContainerProfileContainer", popup).val(containerProfile.Container || ""), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectContainerProfileType", popup).val(containerProfile.Type || "Video").trigger("change"); + $("#txtContainerProfileContainer", popup).val(containerProfile.Container || ""); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function saveContainerProfile(page) { - currentSubProfile.Type = $("#selectContainerProfileType", page).val(), currentSubProfile.Container = $("#txtContainerProfileContainer", page).val(), isSubProfileNew && currentProfile.ContainerProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#containerProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectContainerProfileType", page).val(); + currentSubProfile.Container = $("#txtContainerProfileContainer", page).val(); + + if (isSubProfileNew) { + currentProfile.ContainerProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#containerProfilePopup", page)[0]); } function renderCodecProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".codecProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteCodecProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteCodecProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editCodecProfile(page, currentProfile.CodecProfiles[index]) - }) + editCodecProfile(page, currentProfile.CodecProfiles[index]); + }); } function deleteCodecProfile(page, index) { - currentProfile.CodecProfiles.splice(index, 1), renderCodecProfiles(page, currentProfile.CodecProfiles) + currentProfile.CodecProfiles.splice(index, 1); + renderCodecProfiles(page, currentProfile.CodecProfiles); } function editCodecProfile(page, codecProfile) { - isSubProfileNew = null == codecProfile, codecProfile = codecProfile || {}, currentSubProfile = codecProfile; + isSubProfileNew = null == codecProfile; + codecProfile = codecProfile || {}; + currentSubProfile = codecProfile; var popup = $("#codecProfilePopup", page); - $("#selectCodecProfileType", popup).val(codecProfile.Type || "Video").trigger("change"), $("#txtCodecProfileCodec", popup).val(codecProfile.Codec || ""), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectCodecProfileType", popup).val(codecProfile.Type || "Video").trigger("change"); + $("#txtCodecProfileCodec", popup).val(codecProfile.Codec || ""); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function saveCodecProfile(page) { - currentSubProfile.Type = $("#selectCodecProfileType", page).val(), currentSubProfile.Codec = $("#txtCodecProfileCodec", page).val(), isSubProfileNew && currentProfile.CodecProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#codecProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectCodecProfileType", page).val(); + currentSubProfile.Codec = $("#txtCodecProfileCodec", page).val(); + + if (isSubProfileNew) { + currentProfile.CodecProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#codecProfilePopup", page)[0]); } function renderResponseProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".mediaProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteResponseProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteResponseProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editResponseProfile(page, currentProfile.ResponseProfiles[index]) - }) + editResponseProfile(page, currentProfile.ResponseProfiles[index]); + }); } function deleteResponseProfile(page, index) { - currentProfile.ResponseProfiles.splice(index, 1), renderResponseProfiles(page, currentProfile.ResponseProfiles) + currentProfile.ResponseProfiles.splice(index, 1); + renderResponseProfiles(page, currentProfile.ResponseProfiles); } function editResponseProfile(page, responseProfile) { - isSubProfileNew = null == responseProfile, responseProfile = responseProfile || {}, currentSubProfile = responseProfile; + isSubProfileNew = null == responseProfile; + responseProfile = responseProfile || {}; + currentSubProfile = responseProfile; var popup = $("#responseProfilePopup", page); - $("#selectResponseProfileType", popup).val(responseProfile.Type || "Video").trigger("change"), $("#txtResponseProfileContainer", popup).val(responseProfile.Container || ""), $("#txtResponseProfileAudioCodec", popup).val(responseProfile.AudioCodec || ""), $("#txtResponseProfileVideoCodec", popup).val(responseProfile.VideoCodec || ""), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectResponseProfileType", popup).val(responseProfile.Type || "Video").trigger("change"); + $("#txtResponseProfileContainer", popup).val(responseProfile.Container || ""); + $("#txtResponseProfileAudioCodec", popup).val(responseProfile.AudioCodec || ""); + $("#txtResponseProfileVideoCodec", popup).val(responseProfile.VideoCodec || ""); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function saveResponseProfile(page) { - currentSubProfile.Type = $("#selectResponseProfileType", page).val(), currentSubProfile.Container = $("#txtResponseProfileContainer", page).val(), currentSubProfile.AudioCodec = $("#txtResponseProfileAudioCodec", page).val(), currentSubProfile.VideoCodec = $("#txtResponseProfileVideoCodec", page).val(), isSubProfileNew && currentProfile.ResponseProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#responseProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectResponseProfileType", page).val(); + currentSubProfile.Container = $("#txtResponseProfileContainer", page).val(); + currentSubProfile.AudioCodec = $("#txtResponseProfileAudioCodec", page).val(); + currentSubProfile.VideoCodec = $("#txtResponseProfileVideoCodec", page).val(); + + if (isSubProfileNew) { + currentProfile.ResponseProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#responseProfilePopup", page)[0]); } function saveProfile(page, profile) { updateProfile(page, profile); var id = getParameterByName("id"); - id ? ApiClient.ajax({ - type: "POST", - url: ApiClient.getUrl("Dlna/Profiles/" + id), - data: JSON.stringify(profile), - contentType: "application/json" - }).then(function() { - require(["toast"], function(toast) { - toast("Settings saved.") - }) - }, Dashboard.processErrorResponse) : ApiClient.ajax({ - type: "POST", - url: ApiClient.getUrl("Dlna/Profiles"), - data: JSON.stringify(profile), - contentType: "application/json" - }).then(function() { - Dashboard.navigate("dlnaprofiles.html") - }, Dashboard.processErrorResponse), loading.hide() + + if (id) { + ApiClient.ajax({ + type: "POST", + url: ApiClient.getUrl("Dlna/Profiles/" + id), + data: JSON.stringify(profile), + contentType: "application/json" + }).then(function () { + require(["toast"], function (toast) { + toast("Settings saved."); + }); + }, Dashboard.processErrorResponse); + } else { + ApiClient.ajax({ + type: "POST", + url: ApiClient.getUrl("Dlna/Profiles"), + data: JSON.stringify(profile), + contentType: "application/json" + }).then(function () { + Dashboard.navigate("dlnaprofiles.html"); + }, Dashboard.processErrorResponse); + } + + loading.hide(); } function updateProfile(page, profile) { - profile.Name = $("#txtName", page).val(), profile.EnableAlbumArtInDidl = $("#chkEnableAlbumArtInDidl", page).checked(), profile.EnableSingleAlbumArtLimit = $("#chkEnableSingleImageLimit", page).checked(), profile.SupportedMediaTypes = $(".chkMediaType:checked", page).get().map(function(c) { - return c.getAttribute("data-value") - }).join(","), profile.Identification = profile.Identification || {}, profile.FriendlyName = $("#txtInfoFriendlyName", page).val(), profile.ModelName = $("#txtInfoModelName", page).val(), profile.ModelNumber = $("#txtInfoModelNumber", page).val(), profile.ModelDescription = $("#txtInfoModelDescription", page).val(), profile.ModelUrl = $("#txtInfoModelUrl", page).val(), profile.Manufacturer = $("#txtInfoManufacturer", page).val(), profile.ManufacturerUrl = $("#txtInfoManufacturerUrl", page).val(), profile.SerialNumber = $("#txtInfoSerialNumber", page).val(), profile.Identification.FriendlyName = $("#txtIdFriendlyName", page).val(), profile.Identification.ModelName = $("#txtIdModelName", page).val(), profile.Identification.ModelNumber = $("#txtIdModelNumber", page).val(), profile.Identification.ModelDescription = $("#txtIdModelDescription", page).val(), profile.Identification.ModelUrl = $("#txtIdModelUrl", page).val(), profile.Identification.Manufacturer = $("#txtIdManufacturer", page).val(), profile.Identification.ManufacturerUrl = $("#txtIdManufacturerUrl", page).val(), profile.Identification.SerialNumber = $("#txtIdSerialNumber", page).val(), profile.Identification.DeviceDescription = $("#txtIdDeviceDescription", page).val(), profile.AlbumArtPn = $("#txtAlbumArtPn", page).val(), profile.MaxAlbumArtWidth = $("#txtAlbumArtMaxWidth", page).val(), profile.MaxAlbumArtHeight = $("#txtAlbumArtMaxHeight", page).val(), profile.MaxIconWidth = $("#txtIconMaxWidth", page).val(), profile.MaxIconHeight = $("#txtIconMaxHeight", page).val(), profile.RequiresPlainFolders = $("#chkRequiresPlainFolders", page).checked(), profile.RequiresPlainVideoItems = $("#chkRequiresPlainVideoItems", page).checked(), profile.IgnoreTranscodeByteRangeRequests = $("#chkIgnoreTranscodeByteRangeRequests", page).checked(), profile.MaxStreamingBitrate = $("#txtMaxAllowedBitrate", page).val(), profile.MusicStreamingTranscodingBitrate = $("#txtMusicStreamingTranscodingBitrate", page).val(), profile.ProtocolInfo = $("#txtProtocolInfo", page).val(), profile.XDlnaCap = $("#txtXDlnaCap", page).val(), profile.XDlnaDoc = $("#txtXDlnaDoc", page).val(), profile.SonyAggregationFlags = $("#txtSonyAggregationFlags", page).val(), profile.UserId = $("#selectUser", page).val() + profile.Name = $("#txtName", page).val(); + profile.EnableAlbumArtInDidl = $("#chkEnableAlbumArtInDidl", page).checked(); + profile.EnableSingleAlbumArtLimit = $("#chkEnableSingleImageLimit", page).checked(); + profile.SupportedMediaTypes = $(".chkMediaType:checked", page).get().map(function (c__f) { + return c__f.getAttribute("data-value"); + }).join(","); + profile.Identification = profile.Identification || {}; + profile.FriendlyName = $("#txtInfoFriendlyName", page).val(); + profile.ModelName = $("#txtInfoModelName", page).val(); + profile.ModelNumber = $("#txtInfoModelNumber", page).val(); + profile.ModelDescription = $("#txtInfoModelDescription", page).val(); + profile.ModelUrl = $("#txtInfoModelUrl", page).val(); + profile.Manufacturer = $("#txtInfoManufacturer", page).val(); + profile.ManufacturerUrl = $("#txtInfoManufacturerUrl", page).val(); + profile.SerialNumber = $("#txtInfoSerialNumber", page).val(); + profile.Identification.FriendlyName = $("#txtIdFriendlyName", page).val(); + profile.Identification.ModelName = $("#txtIdModelName", page).val(); + profile.Identification.ModelNumber = $("#txtIdModelNumber", page).val(); + profile.Identification.ModelDescription = $("#txtIdModelDescription", page).val(); + profile.Identification.ModelUrl = $("#txtIdModelUrl", page).val(); + profile.Identification.Manufacturer = $("#txtIdManufacturer", page).val(); + profile.Identification.ManufacturerUrl = $("#txtIdManufacturerUrl", page).val(); + profile.Identification.SerialNumber = $("#txtIdSerialNumber", page).val(); + profile.Identification.DeviceDescription = $("#txtIdDeviceDescription", page).val(); + profile.AlbumArtPn = $("#txtAlbumArtPn", page).val(); + profile.MaxAlbumArtWidth = $("#txtAlbumArtMaxWidth", page).val(); + profile.MaxAlbumArtHeight = $("#txtAlbumArtMaxHeight", page).val(); + profile.MaxIconWidth = $("#txtIconMaxWidth", page).val(); + profile.MaxIconHeight = $("#txtIconMaxHeight", page).val(); + profile.RequiresPlainFolders = $("#chkRequiresPlainFolders", page).checked(); + profile.RequiresPlainVideoItems = $("#chkRequiresPlainVideoItems", page).checked(); + profile.IgnoreTranscodeByteRangeRequests = $("#chkIgnoreTranscodeByteRangeRequests", page).checked(); + profile.MaxStreamingBitrate = $("#txtMaxAllowedBitrate", page).val(); + profile.MusicStreamingTranscodingBitrate = $("#txtMusicStreamingTranscodingBitrate", page).val(); + profile.ProtocolInfo = $("#txtProtocolInfo", page).val(); + profile.XDlnaCap = $("#txtXDlnaCap", page).val(); + profile.XDlnaDoc = $("#txtXDlnaDoc", page).val(); + profile.SonyAggregationFlags = $("#txtSonyAggregationFlags", page).val(); + profile.UserId = $("#selectUser", page).val(); } - var currentProfile, currentSubProfile, isSubProfileNew, allText = Globalize.translate("LabelAll"); - $(document).on("pageinit", "#dlnaProfilePage", function() { + + var currentProfile; + var currentSubProfile; + var isSubProfileNew; + var allText = Globalize.translate("LabelAll"); + + $(document).on("pageinit", "#dlnaProfilePage", function () { var page = this; - $(".radioTabButton", page).on("click", function() { - $(this).siblings().removeClass("ui-btn-active"), $(this).addClass("ui-btn-active"); - var value = "A" == this.tagName ? this.getAttribute("data-value") : this.value, - elem = $("." + value, page); - elem.siblings(".tabContent").hide(), elem.show() - }), $("#selectDirectPlayProfileType", page).on("change", function() { - "Video" == this.value ? $("#fldDirectPlayVideoCodec", page).show() : $("#fldDirectPlayVideoCodec", page).hide(), "Photo" == this.value ? $("#fldDirectPlayAudioCodec", page).hide() : $("#fldDirectPlayAudioCodec", page).show() - }), $("#selectTranscodingProfileType", page).on("change", function() { - "Video" == this.value ? ($("#fldTranscodingVideoCodec", page).show(), $("#fldTranscodingProtocol", page).show(), $("#fldEnableMpegtsM2TsMode", page).show()) : ($("#fldTranscodingVideoCodec", page).hide(), $("#fldTranscodingProtocol", page).hide(), $("#fldEnableMpegtsM2TsMode", page).hide()), "Photo" == this.value ? ($("#fldTranscodingAudioCodec", page).hide(), $("#fldEstimateContentLength", page).hide(), $("#fldReportByteRangeRequests", page).hide()) : ($("#fldTranscodingAudioCodec", page).show(), $("#fldEstimateContentLength", page).show(), $("#fldReportByteRangeRequests", page).show()) - }), $("#selectResponseProfileType", page).on("change", function() { - "Video" == this.value ? $("#fldResponseProfileVideoCodec", page).show() : $("#fldResponseProfileVideoCodec", page).hide(), "Photo" == this.value ? $("#fldResponseProfileAudioCodec", page).hide() : $("#fldResponseProfileAudioCodec", page).show() - }), $(".btnAddDirectPlayProfile", page).on("click", function() { - editDirectPlayProfile(page) - }), $(".btnAddTranscodingProfile", page).on("click", function() { - editTranscodingProfile(page) - }), $(".btnAddContainerProfile", page).on("click", function() { - editContainerProfile(page) - }), $(".btnAddCodecProfile", page).on("click", function() { - editCodecProfile(page) - }), $(".btnAddResponseProfile", page).on("click", function() { - editResponseProfile(page) - }), $(".btnAddIdentificationHttpHeader", page).on("click", function() { - editIdentificationHeader(page) - }), $(".btnAddXmlDocumentAttribute", page).on("click", function() { - editXmlDocumentAttribute(page) - }), $(".btnAddSubtitleProfile", page).on("click", function() { - editSubtitleProfile(page) - }), $(".dlnaProfileForm").off("submit", DlnaProfilePage.onSubmit).on("submit", DlnaProfilePage.onSubmit), $(".editDirectPlayProfileForm").off("submit", DlnaProfilePage.onDirectPlayFormSubmit).on("submit", DlnaProfilePage.onDirectPlayFormSubmit), $(".transcodingProfileForm").off("submit", DlnaProfilePage.onTranscodingProfileFormSubmit).on("submit", DlnaProfilePage.onTranscodingProfileFormSubmit), $(".containerProfileForm").off("submit", DlnaProfilePage.onContainerProfileFormSubmit).on("submit", DlnaProfilePage.onContainerProfileFormSubmit), $(".codecProfileForm").off("submit", DlnaProfilePage.onCodecProfileFormSubmit).on("submit", DlnaProfilePage.onCodecProfileFormSubmit), $(".editResponseProfileForm").off("submit", DlnaProfilePage.onResponseProfileFormSubmit).on("submit", DlnaProfilePage.onResponseProfileFormSubmit), $(".identificationHeaderForm").off("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit).on("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit), $(".xmlAttributeForm").off("submit", DlnaProfilePage.onXmlAttributeFormSubmit).on("submit", DlnaProfilePage.onXmlAttributeFormSubmit), $(".subtitleProfileForm").off("submit", DlnaProfilePage.onSubtitleProfileFormSubmit).on("submit", DlnaProfilePage.onSubtitleProfileFormSubmit) - }).on("pageshow", "#dlnaProfilePage", function() { + $(".radioTabButton", page).on("click", function () { + $(this).siblings().removeClass("ui-btn-active"); + $(this).addClass("ui-btn-active"); + var value = "A" == this.tagName ? this.getAttribute("data-value") : this.value; + var elem = $("." + value, page); + elem.siblings(".tabContent").hide(); + elem.show(); + }); + $("#selectDirectPlayProfileType", page).on("change", function () { + if ("Video" == this.value) { + $("#fldDirectPlayVideoCodec", page).show(); + } else { + $("#fldDirectPlayVideoCodec", page).hide(); + } + + if ("Photo" == this.value) { + $("#fldDirectPlayAudioCodec", page).hide(); + } else { + $("#fldDirectPlayAudioCodec", page).show(); + } + }); + $("#selectTranscodingProfileType", page).on("change", function () { + if ("Video" == this.value) { + $("#fldTranscodingVideoCodec", page).show(); + $("#fldTranscodingProtocol", page).show(); + $("#fldEnableMpegtsM2TsMode", page).show(); + } else { + $("#fldTranscodingVideoCodec", page).hide(); + $("#fldTranscodingProtocol", page).hide(); + $("#fldEnableMpegtsM2TsMode", page).hide(); + } + + if ("Photo" == this.value) { + $("#fldTranscodingAudioCodec", page).hide(); + $("#fldEstimateContentLength", page).hide(); + $("#fldReportByteRangeRequests", page).hide(); + } else { + $("#fldTranscodingAudioCodec", page).show(); + $("#fldEstimateContentLength", page).show(); + $("#fldReportByteRangeRequests", page).show(); + } + }); + $("#selectResponseProfileType", page).on("change", function () { + if ("Video" == this.value) { + $("#fldResponseProfileVideoCodec", page).show(); + } else { + $("#fldResponseProfileVideoCodec", page).hide(); + } + + if ("Photo" == this.value) { + $("#fldResponseProfileAudioCodec", page).hide(); + } else { + $("#fldResponseProfileAudioCodec", page).show(); + } + }); + $(".btnAddDirectPlayProfile", page).on("click", function () { + editDirectPlayProfile(page); + }); + $(".btnAddTranscodingProfile", page).on("click", function () { + editTranscodingProfile(page); + }); + $(".btnAddContainerProfile", page).on("click", function () { + editContainerProfile(page); + }); + $(".btnAddCodecProfile", page).on("click", function () { + editCodecProfile(page); + }); + $(".btnAddResponseProfile", page).on("click", function () { + editResponseProfile(page); + }); + $(".btnAddIdentificationHttpHeader", page).on("click", function () { + editIdentificationHeader(page); + }); + $(".btnAddXmlDocumentAttribute", page).on("click", function () { + editXmlDocumentAttribute(page); + }); + $(".btnAddSubtitleProfile", page).on("click", function () { + editSubtitleProfile(page); + }); + $(".dlnaProfileForm").off("submit", DlnaProfilePage.onSubmit).on("submit", DlnaProfilePage.onSubmit); + $(".editDirectPlayProfileForm").off("submit", DlnaProfilePage.onDirectPlayFormSubmit).on("submit", DlnaProfilePage.onDirectPlayFormSubmit); + $(".transcodingProfileForm").off("submit", DlnaProfilePage.onTranscodingProfileFormSubmit).on("submit", DlnaProfilePage.onTranscodingProfileFormSubmit); + $(".containerProfileForm").off("submit", DlnaProfilePage.onContainerProfileFormSubmit).on("submit", DlnaProfilePage.onContainerProfileFormSubmit); + $(".codecProfileForm").off("submit", DlnaProfilePage.onCodecProfileFormSubmit).on("submit", DlnaProfilePage.onCodecProfileFormSubmit); + $(".editResponseProfileForm").off("submit", DlnaProfilePage.onResponseProfileFormSubmit).on("submit", DlnaProfilePage.onResponseProfileFormSubmit); + $(".identificationHeaderForm").off("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit).on("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit); + $(".xmlAttributeForm").off("submit", DlnaProfilePage.onXmlAttributeFormSubmit).on("submit", DlnaProfilePage.onXmlAttributeFormSubmit); + $(".subtitleProfileForm").off("submit", DlnaProfilePage.onSubtitleProfileFormSubmit).on("submit", DlnaProfilePage.onSubtitleProfileFormSubmit); + }).on("pageshow", "#dlnaProfilePage", function () { var page = this; - $("#radioInfo", page).trigger("click"), loadProfile(page) - }), window.DlnaProfilePage = { - onSubmit: function() { - return loading.show(), saveProfile($(this).parents(".page"), currentProfile), !1 + $("#radioInfo", page).trigger("click"); + loadProfile(page); + }); + window.DlnaProfilePage = { + onSubmit: function () { + loading.show(); + saveProfile($(this).parents(".page"), currentProfile); + return false; }, - onDirectPlayFormSubmit: function() { - return saveDirectPlayProfile($(this).parents(".page")), !1 + onDirectPlayFormSubmit: function () { + saveDirectPlayProfile($(this).parents(".page")); + return false; }, - onTranscodingProfileFormSubmit: function() { - return saveTranscodingProfile($(this).parents(".page")), !1 + onTranscodingProfileFormSubmit: function () { + saveTranscodingProfile($(this).parents(".page")); + return false; }, - onContainerProfileFormSubmit: function() { - return saveContainerProfile($(this).parents(".page")), !1 + onContainerProfileFormSubmit: function () { + saveContainerProfile($(this).parents(".page")); + return false; }, - onCodecProfileFormSubmit: function() { - return saveCodecProfile($(this).parents(".page")), !1 + onCodecProfileFormSubmit: function () { + saveCodecProfile($(this).parents(".page")); + return false; }, - onResponseProfileFormSubmit: function() { - return saveResponseProfile($(this).parents(".page")), !1 + onResponseProfileFormSubmit: function () { + saveResponseProfile($(this).parents(".page")); + return false; }, - onIdentificationHeaderFormSubmit: function() { - return saveIdentificationHeader($(this).parents(".page")), !1 + onIdentificationHeaderFormSubmit: function () { + saveIdentificationHeader($(this).parents(".page")); + return false; }, - onXmlAttributeFormSubmit: function() { - return saveXmlDocumentAttribute($(this).parents(".page")), !1 + onXmlAttributeFormSubmit: function () { + saveXmlDocumentAttribute($(this).parents(".page")); + return false; }, - onSubtitleProfileFormSubmit: function() { - return saveSubtitleProfile($(this).parents(".page")), !1 + onSubtitleProfileFormSubmit: function () { + saveSubtitleProfile($(this).parents(".page")); + return false; } - } -}); \ No newline at end of file + }; +}); From 315cbb1fc6d4b4a4e3749f3218303b0598ab95f8 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 2 Apr 2019 23:17:03 +0100 Subject: [PATCH 072/106] refactor strange var names in viewContainer --- src/components/viewContainer.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index 67277ddca..ed2bf461b 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -187,17 +187,17 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta } function beforeAnimate(allPages, newPageIndex, oldPageIndex) { - for (var i__q = 0, length = allPages.length; i__q < length; i__q++) { - if (newPageIndex !== i__q && oldPageIndex !== i__q) { - allPages[i__q].classList.add("hide"); + for (var index = 0, length = allPages.length; index < length; index++) { + if (newPageIndex !== index && oldPageIndex !== index) { + allPages[index].classList.add("hide"); } } } function afterAnimate(allPages, newPageIndex) { - for (var i__w = 0, length = allPages.length; i__w < length; i__w++) { - if (newPageIndex !== i__w) { - allPages[i__w].classList.add("hide"); + for (var index = 0, length = allPages.length; index < length; index++) { + if (newPageIndex !== index) { + allPages[index].classList.add("hide"); } } } From ede8b3397d815965968fe08f56dd065bd2c6e994 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 00:12:02 +0100 Subject: [PATCH 073/106] cleanup data-require in views --- src/addplugin.html | 2 +- src/components/viewManager/viewManager.js | 2 +- src/{scripts => controllers}/dlnaprofile.js | 0 src/{scripts => controllers}/dlnaprofiles.js | 1 + src/{scripts => controllers}/dlnasettings.js | 0 src/controllers/edititemmetadata.js | 2 +- .../encodingsettings.js | 1 + .../livetvguideprovider.js | 0 .../livetvsettings.js | 0 src/{scripts => controllers}/livetvstatus.js | 0 .../medialibrarypage.js | 0 .../metadataimagespage.js | 0 src/{scripts => controllers}/metadatanfo.js | 0 .../notificationsetting.js | 0 .../playbackconfiguration.js | 0 .../serversecurity.js | 0 .../streamingsettings.js | 0 src/{scripts => controllers}/useredit.js | 0 .../userlibraryaccess.js | 0 src/{scripts => controllers}/usernew.js | 0 .../userparentalcontrol.js | 0 .../userprofilespage.js | 0 src/dlnaprofile.html | 2 +- src/dlnaprofiles.html | 2 +- src/dlnasettings.html | 2 +- src/edititemmetadata.html | 2 +- src/encodingsettings.html | 2 +- src/index.html | 2 + src/library.html | 2 +- src/livetvguideprovider.html | 2 +- src/livetvsettings.html | 2 +- src/livetvstatus.html | 2 +- src/metadataimages.html | 2 +- src/metadatanfo.html | 2 +- src/notificationsetting.html | 2 +- src/playbackconfiguration.html | 2 +- src/scripts/routes.js | 64 +++++++++++++------ src/serversecurity.html | 2 +- src/streamingsettings.html | 2 +- src/wizardlibrary.html | 2 +- 40 files changed, 66 insertions(+), 40 deletions(-) rename src/{scripts => controllers}/dlnaprofile.js (100%) rename src/{scripts => controllers}/dlnaprofiles.js (99%) rename src/{scripts => controllers}/dlnasettings.js (100%) rename src/{scripts => controllers}/encodingsettings.js (99%) rename src/{scripts => controllers}/livetvguideprovider.js (100%) rename src/{scripts => controllers}/livetvsettings.js (100%) rename src/{scripts => controllers}/livetvstatus.js (100%) rename src/{scripts => controllers}/medialibrarypage.js (100%) rename src/{scripts => controllers}/metadataimagespage.js (100%) rename src/{scripts => controllers}/metadatanfo.js (100%) rename src/{scripts => controllers}/notificationsetting.js (100%) rename src/{scripts => controllers}/playbackconfiguration.js (100%) rename src/{scripts => controllers}/serversecurity.js (100%) rename src/{scripts => controllers}/streamingsettings.js (100%) rename src/{scripts => controllers}/useredit.js (100%) rename src/{scripts => controllers}/userlibraryaccess.js (100%) rename src/{scripts => controllers}/usernew.js (100%) rename src/{scripts => controllers}/userparentalcontrol.js (100%) rename src/{scripts => controllers}/userprofilespage.js (100%) diff --git a/src/addplugin.html b/src/addplugin.html index adbf9aa0b..33a418346 100644 --- a/src/addplugin.html +++ b/src/addplugin.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/components/viewManager/viewManager.js b/src/components/viewManager/viewManager.js index f594e446a..23612d5a1 100644 --- a/src/components/viewManager/viewManager.js +++ b/src/components/viewManager/viewManager.js @@ -21,7 +21,7 @@ define(['viewContainer', 'focusManager', 'queryString', 'layoutManager'], functi if (!newView.initComplete) { newView.initComplete = true; - if (options.controllerFactory) { + if (typeof options.controllerFactory === 'function') { // Use controller method var controller = new options.controllerFactory(newView, eventDetail.detail.params); diff --git a/src/scripts/dlnaprofile.js b/src/controllers/dlnaprofile.js similarity index 100% rename from src/scripts/dlnaprofile.js rename to src/controllers/dlnaprofile.js diff --git a/src/scripts/dlnaprofiles.js b/src/controllers/dlnaprofiles.js similarity index 99% rename from src/scripts/dlnaprofiles.js rename to src/controllers/dlnaprofiles.js index b77b31e3b..95350120c 100644 --- a/src/scripts/dlnaprofiles.js +++ b/src/controllers/dlnaprofiles.js @@ -54,6 +54,7 @@ define(["jQuery", "globalize", "loading", "libraryMenu", "listViewStyle", "emby- name: globalize.translate("TabProfiles") }] } + $(document).on("pageshow", "#dlnaProfilesPage", function() { libraryMenu.setTabs("dlna", 1, getTabs), loadProfiles(this) }) diff --git a/src/scripts/dlnasettings.js b/src/controllers/dlnasettings.js similarity index 100% rename from src/scripts/dlnasettings.js rename to src/controllers/dlnasettings.js diff --git a/src/controllers/edititemmetadata.js b/src/controllers/edititemmetadata.js index c77c947da..bb5e70695 100644 --- a/src/controllers/edititemmetadata.js +++ b/src/controllers/edititemmetadata.js @@ -1,4 +1,4 @@ -define(["loading"], function(loading) { +define(["loading", "scripts/editorsidebar"], function(loading) { "use strict"; function reload(context, itemId) { diff --git a/src/scripts/encodingsettings.js b/src/controllers/encodingsettings.js similarity index 99% rename from src/scripts/encodingsettings.js rename to src/controllers/encodingsettings.js index 13b48151b..20ca44ffa 100644 --- a/src/scripts/encodingsettings.js +++ b/src/controllers/encodingsettings.js @@ -69,6 +69,7 @@ define(["jQuery", "loading", "globalize", "dom"], function($, loading, globalize -1 === c.getAttribute("data-types").split(",").indexOf(value) ? dom.parentWithTag(c, "LABEL").classList.add("hide") : (dom.parentWithTag(c, "LABEL").classList.remove("hide"), any = !0) }), any ? context.querySelector(".decodingCodecsList").classList.remove("hide") : context.querySelector(".decodingCodecsList").classList.add("hide") } + $(document).on("pageinit", "#encodingSettingsPage", function() { var page = this; page.querySelector("#selectVideoDecoder").addEventListener("change", function() { diff --git a/src/scripts/livetvguideprovider.js b/src/controllers/livetvguideprovider.js similarity index 100% rename from src/scripts/livetvguideprovider.js rename to src/controllers/livetvguideprovider.js diff --git a/src/scripts/livetvsettings.js b/src/controllers/livetvsettings.js similarity index 100% rename from src/scripts/livetvsettings.js rename to src/controllers/livetvsettings.js diff --git a/src/scripts/livetvstatus.js b/src/controllers/livetvstatus.js similarity index 100% rename from src/scripts/livetvstatus.js rename to src/controllers/livetvstatus.js diff --git a/src/scripts/medialibrarypage.js b/src/controllers/medialibrarypage.js similarity index 100% rename from src/scripts/medialibrarypage.js rename to src/controllers/medialibrarypage.js diff --git a/src/scripts/metadataimagespage.js b/src/controllers/metadataimagespage.js similarity index 100% rename from src/scripts/metadataimagespage.js rename to src/controllers/metadataimagespage.js diff --git a/src/scripts/metadatanfo.js b/src/controllers/metadatanfo.js similarity index 100% rename from src/scripts/metadatanfo.js rename to src/controllers/metadatanfo.js diff --git a/src/scripts/notificationsetting.js b/src/controllers/notificationsetting.js similarity index 100% rename from src/scripts/notificationsetting.js rename to src/controllers/notificationsetting.js diff --git a/src/scripts/playbackconfiguration.js b/src/controllers/playbackconfiguration.js similarity index 100% rename from src/scripts/playbackconfiguration.js rename to src/controllers/playbackconfiguration.js diff --git a/src/scripts/serversecurity.js b/src/controllers/serversecurity.js similarity index 100% rename from src/scripts/serversecurity.js rename to src/controllers/serversecurity.js diff --git a/src/scripts/streamingsettings.js b/src/controllers/streamingsettings.js similarity index 100% rename from src/scripts/streamingsettings.js rename to src/controllers/streamingsettings.js diff --git a/src/scripts/useredit.js b/src/controllers/useredit.js similarity index 100% rename from src/scripts/useredit.js rename to src/controllers/useredit.js diff --git a/src/scripts/userlibraryaccess.js b/src/controllers/userlibraryaccess.js similarity index 100% rename from src/scripts/userlibraryaccess.js rename to src/controllers/userlibraryaccess.js diff --git a/src/scripts/usernew.js b/src/controllers/usernew.js similarity index 100% rename from src/scripts/usernew.js rename to src/controllers/usernew.js diff --git a/src/scripts/userparentalcontrol.js b/src/controllers/userparentalcontrol.js similarity index 100% rename from src/scripts/userparentalcontrol.js rename to src/controllers/userparentalcontrol.js diff --git a/src/scripts/userprofilespage.js b/src/controllers/userprofilespage.js similarity index 100% rename from src/scripts/userprofilespage.js rename to src/controllers/userprofilespage.js diff --git a/src/dlnaprofile.html b/src/dlnaprofile.html index ded82999e..93c7207e4 100644 --- a/src/dlnaprofile.html +++ b/src/dlnaprofile.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/dlnaprofiles.html b/src/dlnaprofiles.html index cbf4d3b69..ef1c353d4 100644 --- a/src/dlnaprofiles.html +++ b/src/dlnaprofiles.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/dlnasettings.html b/src/dlnasettings.html index 5eb5cd452..c93aeb226 100644 --- a/src/dlnasettings.html +++ b/src/dlnasettings.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/edititemmetadata.html b/src/edititemmetadata.html index 86712a24f..2fe57813d 100644 --- a/src/edititemmetadata.html +++ b/src/edititemmetadata.html @@ -1,4 +1,4 @@ -
+
+ +
diff --git a/src/library.html b/src/library.html index 23d83044d..6db2e3933 100644 --- a/src/library.html +++ b/src/library.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/livetvguideprovider.html b/src/livetvguideprovider.html index 52dfbdd33..86bf3ea7d 100644 --- a/src/livetvguideprovider.html +++ b/src/livetvguideprovider.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/livetvsettings.html b/src/livetvsettings.html index 6e91d1ce5..40c93fb25 100644 --- a/src/livetvsettings.html +++ b/src/livetvsettings.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/livetvstatus.html b/src/livetvstatus.html index f2e2b4c4b..e5250c11d 100644 --- a/src/livetvstatus.html +++ b/src/livetvstatus.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/metadataimages.html b/src/metadataimages.html index e2529f30f..825057201 100644 --- a/src/metadataimages.html +++ b/src/metadataimages.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/metadatanfo.html b/src/metadatanfo.html index a493677ba..7263952b4 100644 --- a/src/metadatanfo.html +++ b/src/metadatanfo.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/notificationsetting.html b/src/notificationsetting.html index ffce9edbe..661793ada 100644 --- a/src/notificationsetting.html +++ b/src/notificationsetting.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/playbackconfiguration.html b/src/playbackconfiguration.html index 66d1a29f1..98e302a5c 100644 --- a/src/playbackconfiguration.html +++ b/src/playbackconfiguration.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/scripts/routes.js b/src/scripts/routes.js index c96fa0fb6..31121b2c1 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -1,4 +1,5 @@ define([ + "jQuery", "emby-button", "emby-input", "scripts/livetvcomponents", @@ -10,7 +11,8 @@ define([ "emby-checkbox", "emby-slider", "listViewStyle", - "dashboardcss"], function () { + "dashboardcss", + "detailtablecss"], function () { function defineRoute(newRoute) { var path = newRoute.path; @@ -76,17 +78,20 @@ define([ defineRoute({ path: "/dlnaprofile.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "dlnaprofile" }); defineRoute({ path: "/dlnaprofiles.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "dlnaprofiles" }); defineRoute({ path: "/dlnasettings.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "dlnasettings" }); defineRoute({ path: "/edititemmetadata.html", @@ -96,7 +101,8 @@ define([ defineRoute({ path: "/encodingsettings.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "encodingsettings" }); defineRoute({ path: "/forgotpassword.html", @@ -138,7 +144,8 @@ define([ defineRoute({ path: "/library.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "medialibrarypage" }); defineRoute({ path: "/librarydisplay.html", @@ -161,16 +168,19 @@ define([ defineRoute({ path: "/livetvguideprovider.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "livetvguideprovider" }); defineRoute({ path: "/livetvsettings.html", - autoFocus: false + autoFocus: false, + controller: "livetvsettings" }); defineRoute({ path: "/livetvstatus.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "livetvstatus" }); defineRoute({ path: "/livetvtuner.html", @@ -198,12 +208,14 @@ define([ defineRoute({ path: "/metadataimages.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "metadataimagespage" }); defineRoute({ path: "/metadatanfo.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "metadatanfo" }); defineRoute({ path: "/movies.html", @@ -256,7 +268,8 @@ define([ defineRoute({ path: "/notificationsetting.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "notificationsetting" }); defineRoute({ path: "/notificationsettings.html", @@ -276,7 +289,8 @@ define([ defineRoute({ path: "/playbackconfiguration.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "playbackconfiguration" }); defineRoute({ path: "/availableplugins.html", @@ -322,12 +336,14 @@ define([ defineRoute({ path: "/serversecurity.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "serversecurity" }); defineRoute({ path: "/streamingsettings.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "streamingsettings" }); defineRoute({ path: "/support.html", @@ -343,22 +359,26 @@ define([ defineRoute({ path: "/useredit.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "useredit" }); defineRoute({ path: "/userlibraryaccess.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "userlibraryaccess" }); defineRoute({ path: "/usernew.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "usernew" }); defineRoute({ path: "/userparentalcontrol.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "userparentalcontrol" }); defineRoute({ path: "/userpassword.html", @@ -368,7 +388,8 @@ define([ defineRoute({ path: "/userprofiles.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "userprofilespage" }); defineRoute({ path: "/wizardremoteaccess.html", @@ -385,7 +406,8 @@ define([ defineRoute({ path: "/wizardlibrary.html", autoFocus: false, - anonymous: true + anonymous: true, + controller: "medialibrarypage" }); defineRoute({ path: "/wizardsettings.html", diff --git a/src/serversecurity.html b/src/serversecurity.html index 2712875b1..4df33acc6 100644 --- a/src/serversecurity.html +++ b/src/serversecurity.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/streamingsettings.html b/src/streamingsettings.html index 07a0dfba5..7130480be 100644 --- a/src/streamingsettings.html +++ b/src/streamingsettings.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/wizardlibrary.html b/src/wizardlibrary.html index 16dd9488a..71ec0ab9b 100644 --- a/src/wizardlibrary.html +++ b/src/wizardlibrary.html @@ -1,4 +1,4 @@ -
+
From 6502446f886832eff592939cb88f7504871b63c0 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 00:14:49 +0100 Subject: [PATCH 074/106] cleanup remaining data-requires in views --- src/useredit.html | 2 +- src/userlibraryaccess.html | 2 +- src/usernew.html | 2 +- src/userparentalcontrol.html | 2 +- src/userprofiles.html | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/useredit.html b/src/useredit.html index 1efaff555..76bead82f 100644 --- a/src/useredit.html +++ b/src/useredit.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/userlibraryaccess.html b/src/userlibraryaccess.html index 2a21c2f41..8cf609826 100644 --- a/src/userlibraryaccess.html +++ b/src/userlibraryaccess.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/usernew.html b/src/usernew.html index 55eda8ea7..f53bc60b9 100644 --- a/src/usernew.html +++ b/src/usernew.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/userparentalcontrol.html b/src/userparentalcontrol.html index d1c9c3350..665965120 100644 --- a/src/userparentalcontrol.html +++ b/src/userparentalcontrol.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/userprofiles.html b/src/userprofiles.html index aee6e9f2c..669afb047 100644 --- a/src/userprofiles.html +++ b/src/userprofiles.html @@ -1,4 +1,4 @@ -
+
From ce51c8012ddbc0557123bfd95c46710fa320ea4a Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 00:20:09 +0100 Subject: [PATCH 075/106] cleanup data-require from viewContainer --- src/components/viewContainer.js | 127 ++++++++++++++------------------ 1 file changed, 57 insertions(+), 70 deletions(-) diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index ed2bf461b..e33922467 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -41,98 +41,85 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage"); var newViewInfo = normalizeNewView(options, isPluginpage); var newView = newViewInfo.elem; - var dependencies = "string" == typeof newView ? null : newView.getAttribute("data-require"); - dependencies = dependencies ? dependencies.split(",") : []; + if (isPluginpage) { - dependencies.push("legacy/dashboard"); + require(["legacy/dashboard"]); } if (newViewInfo.hasjQuerySelect) { - dependencies.push("legacy/selectmenu"); + require(["legacy/selectmenu"]); } if (newViewInfo.hasjQueryChecked) { - dependencies.push("fnchecked"); + require(["fnchecked"]); } - if (newViewInfo.hasjQuery) { - dependencies.push("jQuery"); - } + return new Promise(function (resolve) { + var currentPage = allPages[pageIndex]; - if (isPluginpage || newView.classList && newView.classList.contains("type-interior")) { - dependencies.push("dashboardcss"); - } + if (currentPage) { + triggerDestroy(currentPage); + } - return new Promise(function (resolve, reject) { - dependencies.join(","); + var view = newView; - require(dependencies, function () { - var currentPage = allPages[pageIndex]; + if ("string" == typeof view) { + view = document.createElement("div"); + view.innerHTML = newView; + } - if (currentPage) { - triggerDestroy(currentPage); - } + view.classList.add("mainAnimatedPage"); - var view = newView; - - if ("string" == typeof view) { - view = document.createElement("div"); - view.innerHTML = newView; - } - - view.classList.add("mainAnimatedPage"); - - if (currentPage) { - if (newViewInfo.hasScript && window.$) { - view = $(view).appendTo(mainAnimatedPages)[0]; - mainAnimatedPages.removeChild(currentPage); - } else { - mainAnimatedPages.replaceChild(view, currentPage); - } + if (currentPage) { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + mainAnimatedPages.removeChild(currentPage); } else { - if (newViewInfo.hasScript && window.$) { - view = $(view).appendTo(mainAnimatedPages)[0]; - } else { - mainAnimatedPages.appendChild(view); - } + mainAnimatedPages.replaceChild(view, currentPage); + } + } else { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + } else { + mainAnimatedPages.appendChild(view); + } + } + + if (options.type) { + view.setAttribute("data-type", options.type); + } + + var properties = []; + + if (options.fullscreen) { + properties.push("fullscreen"); + } + + if (properties.length) { + view.setAttribute("data-properties", properties.join(",")); + } + + allPages[pageIndex] = view; + setControllerClass(view, options).then(function () { + if (onBeforeChange) { + onBeforeChange(view, false, options); } - if (options.type) { - view.setAttribute("data-type", options.type); + beforeAnimate(allPages, pageIndex, selected); + selectedPageIndex = pageIndex; + currentUrls[pageIndex] = options.url; + + if (!options.cancel && previousAnimatable) { + afterAnimate(allPages, pageIndex); } - var properties = []; - - if (options.fullscreen) { - properties.push("fullscreen"); + if (window.$) { + $.mobile = $.mobile || {}; + $.mobile.activePage = view; } - if (properties.length) { - view.setAttribute("data-properties", properties.join(",")); - } - - allPages[pageIndex] = view; - setControllerClass(view, options).then(function () { - if (onBeforeChange) { - onBeforeChange(view, false, options); - } - - beforeAnimate(allPages, pageIndex, selected); - selectedPageIndex = pageIndex; - currentUrls[pageIndex] = options.url; - - if (!options.cancel && previousAnimatable) { - afterAnimate(allPages, pageIndex); - } - - if (window.$) { - $.mobile = $.mobile || {}; - $.mobile.activePage = view; - } - - resolve(view); - }); + resolve(view); }); }); } From 1da48cd36357e967135251c3c3d9af7f19cb9701 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 22:27:57 +0100 Subject: [PATCH 076/106] removed all vibrant references (dead module) --- src/components/favoriteitems.js | 3 +- src/components/images/imageLoader.js | 131 +-------------------------- src/controllers/favorites.js | 1 - src/controllers/musicrecommended.js | 3 - src/scripts/livetvrecordings.js | 1 - src/scripts/livetvschedule.js | 1 - src/scripts/moviecollections.js | 6 +- src/scripts/moviegenres.js | 2 - src/scripts/movietrailers.js | 6 +- src/scripts/musicgenres.js | 6 +- src/scripts/musicplaylists.js | 3 +- src/scripts/playlists.js | 6 +- src/scripts/site.js | 1 - src/scripts/tvgenres.js | 2 - src/scripts/tvlatest.js | 1 - src/scripts/tvupcoming.js | 1 - 16 files changed, 11 insertions(+), 163 deletions(-) diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js index e50bc1c53..396d4d3c2 100644 --- a/src/components/favoriteitems.js +++ b/src/components/favoriteitems.js @@ -132,8 +132,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad overlayMoreButton: section.overlayMoreButton && !cardLayout, action: section.action, allowBottomPadding: !enableScrollX(), - cardLayout: cardLayout, - vibrant: supportsImageAnalysis && cardLayout + cardLayout: cardLayout }), html += "
" } elem.innerHTML = html, imageLoader.lazyChildren(elem) diff --git a/src/components/images/imageLoader.js b/src/components/images/imageLoader.js index 106de3a69..2a77daa21 100644 --- a/src/components/images/imageLoader.js +++ b/src/components/images/imageLoader.js @@ -30,9 +30,7 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', function fillImageElement(elem, source, enableEffects) { imageFetcher.loadImage(elem, source).then(function () { - var fillingVibrant = false;//fillVibrant(elem, source); - - if (enableFade && enableEffects !== false && !fillingVibrant) { + if (enableFade && enableEffects !== false) { fadeIn(elem); } @@ -40,131 +38,6 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', }); } - function fillVibrant(img, url, canvas, canvasContext) { - - var vibrantElement = img.getAttribute('data-vibrant'); - if (!vibrantElement) { - return false; - } - - if (window.Vibrant) { - fillVibrantOnLoaded(img, url, vibrantElement, canvas, canvasContext); - return true; - } - - require(['vibrant'], function () { - fillVibrantOnLoaded(img, url, vibrantElement, canvas, canvasContext); - }); - return true; - } - - function fillVibrantOnLoaded(img, url, vibrantElement) { - - vibrantElement = document.getElementById(vibrantElement); - if (!vibrantElement) { - return; - } - - requestIdleCallback(function () { - - //var now = new Date().getTime(); - getVibrantInfoFromElement(img, url).then(function (vibrantInfo) { - - var swatch = vibrantInfo.split('|'); - //console.log('vibrant took ' + (new Date().getTime() - now) + 'ms'); - if (swatch.length) { - - var index = 0; - var style = vibrantElement.style; - style.backgroundColor = swatch[index]; - style.color = swatch[index + 1]; - - var classList = vibrantElement.classList; - - if (classList.contains('cardFooter')) { - classList.add('cardFooter-vibrant'); - } else { - classList.add('vibrant'); - } - } - }); - }); - /* - * Results into: - * Vibrant #7a4426 - * Muted #7b9eae - * DarkVibrant #348945 - * DarkMuted #141414 - * LightVibrant #f3ccb4 - */ - } - - function getVibrantInfoFromElement(elem, url) { - - return new Promise(function (resolve, reject) { - - require(['vibrant'], function () { - - if (elem.tagName === 'IMG') { - resolve(getVibrantInfo(elem, url)); - return; - } - - var img = new Image(); - img.onload = function () { - resolve(getVibrantInfo(img, url)); - }; - img.src = url; - }); - }); - } - - function getSettingsKey(url) { - - var parts = url.split('://'); - url = parts[parts.length - 1]; - - url = url.substring(url.indexOf('/') + 1); - - url = url.split('?')[0]; - - var cacheKey = 'vibrant31'; - //cacheKey = 'vibrant' + new Date().getTime(); - return cacheKey + url; - } - - function getCachedVibrantInfo(url) { - - return appSettings.get(getSettingsKey(url)); - } - - function getVibrantInfo(img, url) { - - var value = getCachedVibrantInfo(url); - if (value) { - return value; - } - - var vibrant = new Vibrant(img); - var swatches = vibrant.swatches(); - - value = ''; - var swatch = swatches.DarkVibrant; - value += getSwatchString(swatch); - - appSettings.set(getSettingsKey(url), value); - - return value; - } - - function getSwatchString(swatch) { - - if (swatch) { - return swatch.getHex() + '|' + swatch.getBodyTextColor() + '|' + swatch.getTitleTextColor(); - } - return '||'; - } - function fadeIn(elem) { var cssClass = 'lazy-image-fadein'; @@ -248,8 +121,6 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', self.lazyImage = fillImage; self.lazyChildren = lazyChildren; self.getPrimaryImageAspectRatio = getPrimaryImageAspectRatio; - self.getCachedVibrantInfo = getCachedVibrantInfo; - self.getVibrantInfoFromElement = getVibrantInfoFromElement; return self; }); \ No newline at end of file diff --git a/src/controllers/favorites.js b/src/controllers/favorites.js index 096a78275..3bb8b3b29 100644 --- a/src/controllers/favorites.js +++ b/src/controllers/favorites.js @@ -167,7 +167,6 @@ define(["appRouter", "cardBuilder", "dom", "globalize", "connectionManager", "ap action: section.action, allowBottomPadding: !enableScrollX(), cardLayout: cardLayout, - vibrant: supportsImageAnalysis && cardLayout, leadingButtons: leadingButtons, lines: lines }) diff --git a/src/controllers/musicrecommended.js b/src/controllers/musicrecommended.js index e0b5a6a9a..a3a14b51c 100644 --- a/src/controllers/musicrecommended.js +++ b/src/controllers/musicrecommended.js @@ -41,7 +41,6 @@ define(["browser", "layoutManager", "userSettings", "inputManager", "loading", " overlayPlayButton: !supportsImageAnalysis, allowBottomPadding: !enableScrollX(), cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, coverImage: !0 }), imageLoader.lazyChildren(elem), loading.hide() }) @@ -78,7 +77,6 @@ define(["browser", "layoutManager", "userSettings", "inputManager", "loading", " overlayMoreButton: !supportsImageAnalysis, allowBottomPadding: !enableScrollX(), cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, coverImage: !0 }), imageLoader.lazyChildren(itemsContainer) }) @@ -115,7 +113,6 @@ define(["browser", "layoutManager", "userSettings", "inputManager", "loading", " overlayMoreButton: !supportsImageAnalysis, allowBottomPadding: !enableScrollX(), cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, coverImage: !0 }), imageLoader.lazyChildren(itemsContainer) }) diff --git a/src/scripts/livetvrecordings.js b/src/scripts/livetvrecordings.js index aac880ebd..f82b150a2 100644 --- a/src/scripts/livetvrecordings.js +++ b/src/scripts/livetvrecordings.js @@ -15,7 +15,6 @@ define(["layoutManager", "loading", "cardBuilder", "apphost", "imageLoader", "sc coverImage: !0, cardLayout: !1, centerText: !0, - vibrant: !1, allowBottomPadding: !scrollX, preferThumb: "auto", overlayText: !1 diff --git a/src/scripts/livetvschedule.js b/src/scripts/livetvschedule.js index 8b31d4907..24ece42db 100644 --- a/src/scripts/livetvschedule.js +++ b/src/scripts/livetvschedule.js @@ -19,7 +19,6 @@ define(["layoutManager", "cardBuilder", "apphost", "imageLoader", "loading", "sc coverImage: !0, cardLayout: cardLayout, centerText: !cardLayout, - vibrant: cardLayout && supportsImageAnalysis, allowBottomPadding: !enableScrollX(), preferThumb: "auto" }, cardOptions || {})), imageLoader.lazyChildren(recordingItems) diff --git a/src/scripts/moviecollections.js b/src/scripts/moviecollections.js index ee59475e2..1e83f11f3 100644 --- a/src/scripts/moviecollections.js +++ b/src/scripts/moviecollections.js @@ -80,8 +80,7 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB context: "movies", lazy: !0, cardLayout: !0, - showTitle: !0, - vibrant: !0 + showTitle: !0 }) : "Banner" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "banner", @@ -98,8 +97,7 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB context: "movies", showTitle: !0, centerText: !1, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, shape: "auto", diff --git a/src/scripts/moviegenres.js b/src/scripts/moviegenres.js index b3a313a06..78fd601fd 100644 --- a/src/scripts/moviegenres.js +++ b/src/scripts/moviegenres.js @@ -80,7 +80,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "PosterCard" == viewStyle ? cardBuilder.buildCards(result.Items, { itemsContainer: elem, @@ -89,7 +88,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "Poster" == viewStyle && cardBuilder.buildCards(result.Items, { itemsContainer: elem, diff --git a/src/scripts/movietrailers.js b/src/scripts/movietrailers.js index 268ddba93..d014511ea 100644 --- a/src/scripts/movietrailers.js +++ b/src/scripts/movietrailers.js @@ -67,8 +67,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "movies", cardLayout: !0, showTitle: !0, - showYear: !0, - vibrant: !0 + showYear: !0 }) : "Banner" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "banner", @@ -84,8 +83,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "movies", showTitle: !0, showYear: !0, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, shape: "portrait", diff --git a/src/scripts/musicgenres.js b/src/scripts/musicgenres.js index eb6160864..f66afcdb2 100644 --- a/src/scripts/musicgenres.js +++ b/src/scripts/musicgenres.js @@ -49,15 +49,13 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f preferThumb: !0, context: "music", cardLayout: !0, - showTitle: !0, - vibrant: !0 + showTitle: !0 }) : "PosterCard" == viewStyle ? html = cardBuilder.getCardsHtml({ items: result.Items, shape: "auto", context: "music", cardLayout: !0, - showTitle: !0, - vibrant: !0 + showTitle: !0 }) : "Poster" == viewStyle && (html = cardBuilder.getCardsHtml({ items: result.Items, shape: "auto", diff --git a/src/scripts/musicplaylists.js b/src/scripts/musicplaylists.js index 649ce4403..511ace73a 100644 --- a/src/scripts/musicplaylists.js +++ b/src/scripts/musicplaylists.js @@ -43,8 +43,7 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f centerText: !0, overlayPlayButton: !0, allowBottomPadding: !0, - cardLayout: !1, - vibrant: !1 + cardLayout: !1 }); var elem = context.querySelector("#items"); elem.innerHTML = html, imageLoader.lazyChildren(elem), libraryBrowser.saveQueryValues(getSavedQueryKey(), query), loading.hide() diff --git a/src/scripts/playlists.js b/src/scripts/playlists.js index bb5ea1fd0..ee9fac6c5 100644 --- a/src/scripts/playlists.js +++ b/src/scripts/playlists.js @@ -69,8 +69,7 @@ define(["loading", "listView", "cardBuilder", "libraryMenu", "libraryBrowser", " shape: "square", coverImage: !0, showTitle: !0, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : "Thumb" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "backdrop", @@ -83,8 +82,7 @@ define(["loading", "listView", "cardBuilder", "libraryMenu", "libraryBrowser", " shape: "backdrop", showTitle: !0, preferThumb: !0, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, shape: "square", diff --git a/src/scripts/site.js b/src/scripts/site.js index 84a87223e..718dbbb0a 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -673,7 +673,6 @@ var AppInfo = {}; var componentsPath = "components"; var paths = { velocity: bowerPath + "/velocity/velocity.min", - vibrant: bowerPath + "/vibrant/dist/vibrant", ironCardList: "components/ironcardlist/ironcardlist", scrollThreshold: "components/scrollthreshold", playlisteditor: "components/playlisteditor/playlisteditor", diff --git a/src/scripts/tvgenres.js b/src/scripts/tvgenres.js index 8a5d76996..e9559155e 100644 --- a/src/scripts/tvgenres.js +++ b/src/scripts/tvgenres.js @@ -80,7 +80,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "PosterCard" == viewStyle ? cardBuilder.buildCards(result.Items, { itemsContainer: elem, @@ -89,7 +88,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "Poster" == viewStyle && cardBuilder.buildCards(result.Items, { itemsContainer: elem, diff --git a/src/scripts/tvlatest.js b/src/scripts/tvlatest.js index 2f0c4a51a..006f41e6c 100644 --- a/src/scripts/tvlatest.js +++ b/src/scripts/tvlatest.js @@ -34,7 +34,6 @@ define(["loading", "components/groupedcards", "cardBuilder", "apphost", "imageLo centerText: !0, lazy: !0, overlayPlayButton: !0, - vibrant: !1, lines: 2 }); var elem = context.querySelector("#latestEpisodes"); diff --git a/src/scripts/tvupcoming.js b/src/scripts/tvupcoming.js index bb760a1a1..9d6a79a5e 100644 --- a/src/scripts/tvupcoming.js +++ b/src/scripts/tvupcoming.js @@ -73,7 +73,6 @@ define(["layoutManager", "loading", "datetime", "libraryBrowser", "cardBuilder", overlayText: !1, allowBottomPadding: allowBottomPadding, cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, overlayMoreButton: !0, missingIndicator: !1 }), html += "
", html += "
" From 3377042ad31b0123a904821c4954956850125563 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 22:33:50 +0100 Subject: [PATCH 077/106] multiple modules resolution --- src/components/{inputmanager.js => inputManager.js} | 0 src/components/{layoutmanager.js => layoutManager.js} | 0 src/components/{pluginmanager.js => pluginManager.js} | 0 src/scripts/site.js | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) rename src/components/{inputmanager.js => inputManager.js} (100%) rename src/components/{layoutmanager.js => layoutManager.js} (100%) rename src/components/{pluginmanager.js => pluginManager.js} (100%) diff --git a/src/components/inputmanager.js b/src/components/inputManager.js similarity index 100% rename from src/components/inputmanager.js rename to src/components/inputManager.js diff --git a/src/components/layoutmanager.js b/src/components/layoutManager.js similarity index 100% rename from src/components/layoutmanager.js rename to src/components/layoutManager.js diff --git a/src/components/pluginmanager.js b/src/components/pluginManager.js similarity index 100% rename from src/components/pluginmanager.js rename to src/components/pluginManager.js diff --git a/src/scripts/site.js b/src/scripts/site.js index 718dbbb0a..2832d6997 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -691,7 +691,7 @@ var AppInfo = {}; visibleinviewport: componentsPath + "/visibleinviewport", browserdeviceprofile: componentsPath + "/browserdeviceprofile", browser: componentsPath + "/browser", - inputManager: componentsPath + "/inputmanager", + inputManager: componentsPath + "/inputManager", qualityoptions: componentsPath + "/qualityoptions", hammer: bowerPath + "/hammerjs/hammer.min", page: "thirdparty/page", @@ -703,7 +703,7 @@ var AppInfo = {}; playQueueManager: componentsPath + "/playback/playqueuemanager", autoPlayDetect: componentsPath + "/playback/autoplaydetect", nowPlayingHelper: componentsPath + "/playback/nowplayinghelper", - pluginManager: componentsPath + "/pluginmanager", + pluginManager: componentsPath + "/pluginManager", packageManager: componentsPath + "/packagemanager" }; paths.hlsjs = bowerPath + "/hlsjs/dist/hls.min"; @@ -777,7 +777,7 @@ var AppInfo = {}; define("homescreenSettings", [componentsPath + "/homescreensettings/homescreensettings"], returnFirstDependency); define("homescreenSettingsDialog", [componentsPath + "/homescreensettings/homescreensettingsdialog"], returnFirstDependency); define("playbackManager", [componentsPath + "/playback/playbackmanager"], getPlaybackManager); - define("layoutManager", [componentsPath + "/layoutmanager", "apphost"], getLayoutManager); + define("layoutManager", [componentsPath + "/layoutManager", "apphost"], getLayoutManager); define("homeSections", [componentsPath + "/homesections/homesections"], returnFirstDependency); define("playMenu", [componentsPath + "/playmenu"], returnFirstDependency); define("refreshDialog", [componentsPath + "/refreshdialog/refreshdialog"], returnFirstDependency); From 0785e6b36c96e4f9068dbe4d26a4894f7cb196f5 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Thu, 4 Apr 2019 22:56:43 +0100 Subject: [PATCH 078/106] removed wrongly added scripts in index.html --- src/index.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/index.html b/src/index.html index 362c1eeda..c27740295 100644 --- a/src/index.html +++ b/src/index.html @@ -55,9 +55,6 @@ width: 10px; } - - -
From ec387c524601310a08b081a2efd4b52f6995edce Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Sun, 28 Apr 2019 11:38:30 +0100 Subject: [PATCH 079/106] webpack config and package.json for yarn --- package.json | 9 ++ webpack.config.js | 35 +++++ yarn.lock | 324 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 365 insertions(+), 3 deletions(-) create mode 100644 webpack.config.js diff --git a/package.json b/package.json index 1816b6ea9..23adabfde 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,16 @@ "repository": "https://github.com/jellyfin/jellyfin-web", "license": "GPL-2", "devDependencies": { + "connect": "^3.6.6", + "css-loader": "^2.1.0", + "file-loader": "^3.0.1", + "serve-static": "^1.13.2", + "style-loader": "^0.23.1", "webpack": "^4.29.5", "webpack-cli": "^3.2.3" + }, + "dependencies": { + "howler": "^2.1.1", + "jstree": "^3.3.7" } } diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 000000000..75f6b80d1 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,35 @@ +const path = require('path'); + +module.exports = { + context: __dirname + '/src', + entry: './scripts/site.js', + output: { + filename: 'main.js', + path: path.resolve(__dirname, 'dist') + }, + + resolve: { + modules: [ + path.resolve(__dirname, 'src/scripts'), + path.resolve(__dirname, 'src/components'), + path.resolve(__dirname, 'src/components/playback'), + path.resolve(__dirname, 'src/components/emby-button'), + path.resolve(__dirname, 'src/components/usersettings'), + path.resolve(__dirname, 'src/components/images'), + path.resolve(__dirname, 'src/bower_components'), + path.resolve(__dirname, 'src/bower_components/apiclient'), + path.resolve(__dirname, 'src/bower_components/apiclient/sync'), + path.resolve(__dirname, 'src/components/cardbuilder'), + 'node_modules' + ] + }, + + module: { + rules: [ + { + test: /\.css$/, + use: ['style-loader', 'css-loader'] + } + ] + } +}; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index a5cd7a677..cfd56139a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -477,7 +477,7 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -chalk@^2.4.1: +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -599,6 +599,16 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +connect@^3.6.6: + version "3.6.6" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" + integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + dependencies: + debug "2.6.9" + finalhandler "1.1.0" + parseurl "~1.3.2" + utils-merge "1.0.1" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -697,6 +707,36 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" +css-loader@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.0.tgz#42952ac22bca5d076978638e9813abce49b8f0cc" + integrity sha512-MoOu+CStsGrSt5K2OeZ89q3Snf+IkxRfAIt9aAKg4piioTrhtP1iEFPu+OVn3Ohz24FO6L+rw9UJxBILiSBw5Q== + dependencies: + icss-utils "^4.0.0" + loader-utils "^1.2.1" + lodash "^4.17.11" + postcss "^7.0.6" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.3" + postcss-modules-scope "^2.0.0" + postcss-modules-values "^2.0.0" + postcss-value-parser "^3.3.0" + schema-utils "^1.0.0" + +css-selector-tokenizer@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= + cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -707,7 +747,7 @@ date-now@^0.1.4: resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -756,6 +796,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -764,6 +809,11 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -798,6 +848,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + elliptic@^6.0.0: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" @@ -816,6 +871,11 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +encodeurl@~1.0.1, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" @@ -839,6 +899,11 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -864,6 +929,11 @@ estraverse@^4.1.0, estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" @@ -949,11 +1019,24 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== +file-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== + dependencies: + loader-utils "^1.0.2" + schema-utils "^1.0.0" + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -964,6 +1047,19 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + find-cache-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" @@ -1010,6 +1106,11 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -1197,6 +1298,21 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +howler@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.1.tgz#b8ae44b83f4b8a5b5ef354030ed0927314d8a996" + integrity sha512-9nwyDCGxhAGMmNXDfMLv0M/uS/WUg2//jG6t96D8DqbbsVZgXQzsP/ZMItbWO/Fqg7Gg69kOv3xVSDzJdd7aqA== + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -1209,6 +1325,18 @@ iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.0.0.tgz#d52cf4bcdcfa1c45c2dbefb4ffdf6b00ef608098" + integrity sha512-bA/xGiwWM17qjllIs9X/y0EjsB7e0AV08F3OL8UPsoNkNRibIuu8f1eKTnQ8QO1DteKKTxTUAn+IEWUToIwGOA== + dependencies: + postcss "^7.0.5" + ieee754@^1.1.4: version "1.1.12" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" @@ -1424,6 +1552,16 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +jquery@>=1.9.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" + integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -1441,6 +1579,13 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +jstree@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/jstree/-/jstree-3.3.7.tgz#41df485d66148836ac389603a3e12f4574b06251" + integrity sha512-yzzalO1TbZ4HdPezO43LesGI4Wv2sB0Nl+4GfwO0YYvehGws5qtTAhlBISxfur9phMLwCtf9GjHlRx2ZLXyRnw== + dependencies: + jquery ">=1.9.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -1477,7 +1622,7 @@ loader-runner@^2.3.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@^1.1.0: +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.1: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -1494,6 +1639,11 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lodash@^4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -1585,6 +1735,11 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -1849,6 +2004,13 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -1953,6 +2115,11 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -2011,6 +2178,52 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.5.tgz#7f387f68f5555598068e4d6d1ea0b7d6fa984272" + integrity sha512-iFgxlCAVLno5wIJq+4hyuOmc4VjZEZxzpdeuZcBytLNWEK5Bx2oRF9PPcAz5TALbaFvrZm8sJYtJ3hV+tMSEIg== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^7.0.6" + postcss-value-parser "^3.3.1" + +postcss-modules-scope@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.0.1.tgz#2c0f2394cde4cd09147db054c68917e38f6d43a4" + integrity sha512-7+6k9c3/AuZ5c596LJx9n923A/j3nF3ormewYBF1RrIQvjvjXe1xE8V8A1KFyFwXbvnshT6FBZFX0k/F1igneg== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^7.0.6" + +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^7.0.6" + +postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss@^7.0.5, postcss@^7.0.6: + version "7.0.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5" + integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" @@ -2108,6 +2321,11 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -2140,6 +2358,11 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -2148,6 +2371,27 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -2261,11 +2505,40 @@ semver@^5.3.0, semver@^5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + serialize-javascript@^1.4.0: version "1.6.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== +serve-static@^1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -2296,6 +2569,11 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -2412,6 +2690,21 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -2499,6 +2792,14 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +style-loader@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -2506,6 +2807,13 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + tapable@^1.0.0, tapable@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" @@ -2631,6 +2939,11 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -2688,6 +3001,11 @@ util@^0.11.0: dependencies: inherits "2.0.3" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + v8-compile-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" From 55fd49bbca1313e1852ba833219227185eea9de6 Mon Sep 17 00:00:00 2001 From: DrPandemic Date: Sun, 5 May 2019 12:09:55 -0400 Subject: [PATCH 080/106] Redirect home when video player fails --- src/controllers/videoosd.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index 2bfd39582..5a31c4ed2 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -1227,16 +1227,22 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med Emby.Page.setTransparency("full"); }); view.addEventListener("viewshow", function (e) { - events.on(playbackManager, "playerchange", onPlayerChange); - bindToPlayer(playbackManager.getCurrentPlayer()); - dom.addEventListener(document, window.PointerEvent ? "pointermove" : "mousemove", onPointerMove, { - passive: true - }); - showOsd(); - inputManager.on(window, onInputCommand); - dom.addEventListener(window, "keydown", onWindowKeyDown, { - passive: true - }); + try { + events.on(playbackManager, "playerchange", onPlayerChange); + bindToPlayer(playbackManager.getCurrentPlayer()); + dom.addEventListener(document, window.PointerEvent ? "pointermove" : "mousemove", onPointerMove, { + passive: true + }); + showOsd(); + inputManager.on(window, onInputCommand); + dom.addEventListener(window, "keydown", onWindowKeyDown, { + passive: true + }); + } catch(e) { + require(['appRouter'], function(appRouter) { + appRouter.showDirect('/'); + }); + } }); view.addEventListener("viewbeforehide", function () { if (statsOverlay) { From 747201a6c7f7a5e0acf4ab34448410d4402e0285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Sun, 5 May 2019 23:55:42 +0200 Subject: [PATCH 081/106] Various fixes for webOS 3.3 --- src/bower_components/alameda/alameda.js | 3 +- src/bower_components/fetch/fetch.js | 263 +++++++++++++++++++++++ src/components/appRouter.js | 2 - src/components/fullscreenManager.js | 6 +- src/components/playback/mediasession.js | 8 +- src/components/polyfills/objectassign.js | 23 ++ src/controllers/loginpage.js | 4 +- src/scripts/site.js | 11 +- 8 files changed, 306 insertions(+), 14 deletions(-) create mode 100644 src/bower_components/fetch/fetch.js create mode 100644 src/components/polyfills/objectassign.js diff --git a/src/bower_components/alameda/alameda.js b/src/bower_components/alameda/alameda.js index 4f2a80525..caffa7d0b 100644 --- a/src/bower_components/alameda/alameda.js +++ b/src/bower_components/alameda/alameda.js @@ -239,6 +239,7 @@ var requirejs, require, define; } function delayedError(e) { + console.log(e.stack); return setTimeout(function() { e.dynaId && trackedErrors[e.dynaId] || (trackedErrors[e.dynaId] = !0, req.onError(e)) }), e @@ -415,4 +416,4 @@ var requirejs, require, define; baseUrl: subPath })), topReq([dataMain]))) } -}(this, "undefined" != typeof Promise ? Promise : void 0); \ No newline at end of file +}(this, "undefined" != typeof Promise ? Promise : void 0); diff --git a/src/bower_components/fetch/fetch.js b/src/bower_components/fetch/fetch.js new file mode 100644 index 000000000..cd40b3ed2 --- /dev/null +++ b/src/bower_components/fetch/fetch.js @@ -0,0 +1,263 @@ +! function(self) { + "use strict"; + + function normalizeName(name) { + if ("string" != typeof name && (name = String(name)), /[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) throw new TypeError("Invalid character in header field name"); + return name.toLowerCase() + } + + function normalizeValue(value) { + return "string" != typeof value && (value = String(value)), value + } + + function iteratorFor(items) { + var iterator = { + next: function() { + var value = items.shift(); + return { + done: void 0 === value, + value: value + } + } + }; + return support.iterable && (iterator[Symbol.iterator] = function() { + return iterator + }), iterator + } + + function Headers(headers) { + this.map = {}, headers instanceof Headers ? headers.forEach(function(value, name) { + this.append(name, value) + }, this) : headers && Object.getOwnPropertyNames(headers).forEach(function(name) { + this.append(name, headers[name]) + }, this) + } + + function consumed(body) { + if (body.bodyUsed) return Promise.reject(new TypeError("Already read")); + body.bodyUsed = !0 + } + + function fileReaderReady(reader) { + return new Promise(function(resolve, reject) { + reader.onload = function() { + resolve(reader.result) + }, reader.onerror = function() { + reject(reader.error) + } + }) + } + + function readBlobAsArrayBuffer(blob) { + var reader = new FileReader, + promise = fileReaderReady(reader); + return reader.readAsArrayBuffer(blob), promise + } + + function readBlobAsText(blob) { + var reader = new FileReader, + promise = fileReaderReady(reader); + return reader.readAsText(blob), promise + } + + function readArrayBufferAsText(buf) { + for (var view = new Uint8Array(buf), chars = new Array(view.length), i = 0; i < view.length; i++) chars[i] = String.fromCharCode(view[i]); + return chars.join("") + } + + function bufferClone(buf) { + if (buf.slice) return buf.slice(0); + var view = new Uint8Array(buf.byteLength); + return view.set(new Uint8Array(buf)), view.buffer + } + + function Body() { + return this.bodyUsed = !1, this._initBody = function(body) { + if (this._bodyInit = body, body) + if ("string" == typeof body) this._bodyText = body; + else if (support.blob && Blob.prototype.isPrototypeOf(body)) this._bodyBlob = body; + else if (support.formData && FormData.prototype.isPrototypeOf(body)) this._bodyFormData = body; + else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) this._bodyText = body.toString(); + else if (support.arrayBuffer && support.blob && isDataView(body)) this._bodyArrayBuffer = bufferClone(body.buffer), this._bodyInit = new Blob([this._bodyArrayBuffer]); + else { + if (!support.arrayBuffer || !ArrayBuffer.prototype.isPrototypeOf(body) && !isArrayBufferView(body)) throw new Error("unsupported BodyInit type"); + this._bodyArrayBuffer = bufferClone(body) + } else this._bodyText = ""; + this.headers.get("content-type") || ("string" == typeof body ? this.headers.set("content-type", "text/plain;charset=UTF-8") : this._bodyBlob && this._bodyBlob.type ? this.headers.set("content-type", this._bodyBlob.type) : support.searchParams && URLSearchParams.prototype.isPrototypeOf(body) && this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8")) + }, support.blob && (this.blob = function() { + var rejected = consumed(this); + if (rejected) return rejected; + if (this._bodyBlob) return Promise.resolve(this._bodyBlob); + if (this._bodyArrayBuffer) return Promise.resolve(new Blob([this._bodyArrayBuffer])); + if (this._bodyFormData) throw new Error("could not read FormData body as blob"); + return Promise.resolve(new Blob([this._bodyText])) + }, this.arrayBuffer = function() { + return this._bodyArrayBuffer ? consumed(this) || Promise.resolve(this._bodyArrayBuffer) : this.blob().then(readBlobAsArrayBuffer) + }), this.text = function() { + var rejected = consumed(this); + if (rejected) return rejected; + if (this._bodyBlob) return readBlobAsText(this._bodyBlob); + if (this._bodyArrayBuffer) return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)); + if (this._bodyFormData) throw new Error("could not read FormData body as text"); + return Promise.resolve(this._bodyText) + }, support.formData && (this.formData = function() { + return this.text().then(decode) + }), this.json = function() { + return this.text().then(JSON.parse) + }, this + } + + function normalizeMethod(method) { + var upcased = method.toUpperCase(); + return methods.indexOf(upcased) > -1 ? upcased : method + } + + function Request(input, options) { + options = options || {}; + var body = options.body; + if ("string" == typeof input) this.url = input; + else { + if (input.bodyUsed) throw new TypeError("Already read"); + this.url = input.url, this.credentials = input.credentials, options.headers || (this.headers = new Headers(input.headers)), this.method = input.method, this.mode = input.mode, body || null == input._bodyInit || (body = input._bodyInit, input.bodyUsed = !0) + } + if (this.credentials = options.credentials || this.credentials || "omit", !options.headers && this.headers || (this.headers = new Headers(options.headers)), this.method = normalizeMethod(options.method || this.method || "GET"), this.mode = options.mode || this.mode || null, this.referrer = null, ("GET" === this.method || "HEAD" === this.method) && body) throw new TypeError("Body not allowed for GET or HEAD requests"); + this._initBody(body) + } + + function decode(body) { + var form = new FormData; + return body.trim().split("&").forEach(function(bytes) { + if (bytes) { + var split = bytes.split("="), + name = split.shift().replace(/\+/g, " "), + value = split.join("=").replace(/\+/g, " "); + form.append(decodeURIComponent(name), decodeURIComponent(value)) + } + }), form + } + + function parseHeaders(rawHeaders) { + var headers = new Headers; + return rawHeaders.split("\r\n").forEach(function(line) { + var parts = line.split(":"), + key = parts.shift().trim(); + if (key) { + var value = parts.join(":").trim(); + headers.append(key, value) + } + }), headers + } + + function Response(bodyInit, options) { + options || (options = {}), this.type = "default", this.status = "status" in options ? options.status : 200, this.ok = this.status >= 200 && this.status < 300, this.statusText = "statusText" in options ? options.statusText : "OK", this.headers = new Headers(options.headers), this.url = options.url || "", this._initBody(bodyInit) + } + if (!self.fetch) { + var support = { + searchParams: "URLSearchParams" in self, + iterable: "Symbol" in self && "iterator" in Symbol, + blob: "FileReader" in self && "Blob" in self && function() { + try { + return new Blob, !0 + } catch (e) { + return !1 + } + }(), + formData: "FormData" in self, + arrayBuffer: "ArrayBuffer" in self + }; + if (support.arrayBuffer) var viewClasses = ["[object Int8Array]", "[object Uint8Array]", "[object Uint8ClampedArray]", "[object Int16Array]", "[object Uint16Array]", "[object Int32Array]", "[object Uint32Array]", "[object Float32Array]", "[object Float64Array]"], + isDataView = function(obj) { + return obj && DataView.prototype.isPrototypeOf(obj) + }, + isArrayBufferView = ArrayBuffer.isView || function(obj) { + return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 + }; + Headers.prototype.append = function(name, value) { + name = normalizeName(name), value = normalizeValue(value); + var list = this.map[name]; + list || (list = [], this.map[name] = list), list.push(value) + }, Headers.prototype.delete = function(name) { + delete this.map[normalizeName(name)] + }, Headers.prototype.get = function(name) { + var values = this.map[normalizeName(name)]; + return values ? values[0] : null + }, Headers.prototype.getAll = function(name) { + return this.map[normalizeName(name)] || [] + }, Headers.prototype.has = function(name) { + return this.map.hasOwnProperty(normalizeName(name)) + }, Headers.prototype.set = function(name, value) { + this.map[normalizeName(name)] = [normalizeValue(value)] + }, Headers.prototype.forEach = function(callback, thisArg) { + Object.getOwnPropertyNames(this.map).forEach(function(name) { + this.map[name].forEach(function(value) { + callback.call(thisArg, value, name, this) + }, this) + }, this) + }, Headers.prototype.keys = function() { + var items = []; + return this.forEach(function(value, name) { + items.push(name) + }), iteratorFor(items) + }, Headers.prototype.values = function() { + var items = []; + return this.forEach(function(value) { + items.push(value) + }), iteratorFor(items) + }, Headers.prototype.entries = function() { + var items = []; + return this.forEach(function(value, name) { + items.push([name, value]) + }), iteratorFor(items) + }, support.iterable && (Headers.prototype[Symbol.iterator] = Headers.prototype.entries); + var methods = ["DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT"]; + Request.prototype.clone = function() { + return new Request(this, { + body: this._bodyInit + }) + }, Body.call(Request.prototype), Body.call(Response.prototype), Response.prototype.clone = function() { + return new Response(this._bodyInit, { + status: this.status, + statusText: this.statusText, + headers: new Headers(this.headers), + url: this.url + }) + }, Response.error = function() { + var response = new Response(null, { + status: 0, + statusText: "" + }); + return response.type = "error", response + }; + var redirectStatuses = [301, 302, 303, 307, 308]; + Response.redirect = function(url, status) { + if (-1 === redirectStatuses.indexOf(status)) throw new RangeError("Invalid status code"); + return new Response(null, { + status: status, + headers: { + location: url + } + }) + }, self.Headers = Headers, self.Request = Request, self.Response = Response, self.fetch = function(input, init) { + return new Promise(function(resolve, reject) { + var request = new Request(input, init), + xhr = new XMLHttpRequest; + xhr.onload = function() { + var options = { + status: xhr.status, + statusText: xhr.statusText, + headers: parseHeaders(xhr.getAllResponseHeaders() || "") + }; + options.url = "responseURL" in xhr ? xhr.responseURL : options.headers.get("X-Request-URL"); + var body = "response" in xhr ? xhr.response : xhr.responseText; + resolve(new Response(body, options)) + }, xhr.onerror = function() { + reject(new TypeError("Network request failed")) + }, xhr.ontimeout = function() { + reject(new TypeError("Network request failed")) + }, xhr.open(request.method, request.url, !0), "include" === request.credentials && (xhr.withCredentials = !0), "responseType" in xhr && support.blob && (xhr.responseType = "blob"), request.headers.forEach(function(value, name) { + xhr.setRequestHeader(name, value) + }), xhr.send(void 0 === request._bodyInit ? null : request._bodyInit) + }) + }, self.fetch.polyfill = !0 + } +}("undefined" != typeof self ? self : this); \ No newline at end of file diff --git a/src/components/appRouter.js b/src/components/appRouter.js index f9761d4d6..66c149b99 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -329,7 +329,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM events.on(appHost, 'resume', onAppResume); connectionManager.connect({ - enableAutoLogin: appSettings.enableAutoLogin() }).then(function (result) { @@ -343,7 +342,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM hashbang: options.hashbang !== false, enableHistory: enableHistory() }); - }).finally(function () { loading.hide(); }); } diff --git a/src/components/fullscreenManager.js b/src/components/fullscreenManager.js index 079267a6c..360986cc5 100644 --- a/src/components/fullscreenManager.js +++ b/src/components/fullscreenManager.js @@ -79,10 +79,10 @@ define(['events', 'dom', 'apphost', 'browser'], function (events, dom, appHost, passive: true }); + function isTargetValid(target) { + return !dom.parentWithTag(target, ['BUTTON', 'INPUT', 'TEXTAREA']); + } if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) { - function isTargetValid(target) { - return !dom.parentWithTag(target, ['BUTTON', 'INPUT', 'TEXTAREA']); - } dom.addEventListener(window, 'dblclick', function (e) { diff --git a/src/components/playback/mediasession.js b/src/components/playback/mediasession.js index b92e581b2..63e0bde6c 100644 --- a/src/components/playback/mediasession.js +++ b/src/components/playback/mediasession.js @@ -273,11 +273,11 @@ define(['playbackManager', 'nowPlayingHelper', 'events', 'connectionManager'], f events.on(currentPlayer, 'timeupdate', onGeneralEvent); } + function execute(name) { + playbackManager[name](currentPlayer); + } if (navigator.mediaSession) { - function execute(name) { - playbackManager[name](currentPlayer); - } navigator.mediaSession.setActionHandler('previoustrack', function () { execute('previousTrack'); @@ -310,4 +310,4 @@ define(['playbackManager', 'nowPlayingHelper', 'events', 'connectionManager'], f }); bindToPlayer(playbackManager.getCurrentPlayer()); -}); \ No newline at end of file +}); diff --git a/src/components/polyfills/objectassign.js b/src/components/polyfills/objectassign.js new file mode 100644 index 000000000..bf8d7118a --- /dev/null +++ b/src/components/polyfills/objectassign.js @@ -0,0 +1,23 @@ +if (typeof Object.assign != 'function') { + (function () { + Object.assign = function (target) { + 'use strict'; + if (target === undefined || target === null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + + var output = Object(target); + for (var index = 1; index < arguments.length; index++) { + var source = arguments[index]; + if (source !== undefined && source !== null) { + for (var nextKey in source) { + if (source.hasOwnProperty(nextKey)) { + output[nextKey] = source[nextKey]; + } + } + } + } + return output; + }; + })(); +} diff --git a/src/controllers/loginpage.js b/src/controllers/loginpage.js index 2f396ff5e..b87eca9f9 100644 --- a/src/controllers/loginpage.js +++ b/src/controllers/loginpage.js @@ -156,8 +156,6 @@ define(["apphost", "appSettings", "dom", "connectionManager", "loading", "cardSt view.querySelector("#txtManualName").value = ""; showManualForm(view, false, false); } - - }).finally(function () { loading.hide(); }); @@ -166,4 +164,4 @@ define(["apphost", "appSettings", "dom", "connectionManager", "loading", "cardSt }); }); } -}); \ No newline at end of file +}); diff --git a/src/scripts/site.js b/src/scripts/site.js index 6ca850a0f..383cca1cb 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -467,6 +467,13 @@ var AppInfo = {}; define("buttonenabled", ["legacy/buttonenabled"], returnFirstDependency); var promises = []; + if (!window.fetch) { + promises.push(require(["fetch"])); + } + if ("function" != typeof Object.assign) { + promises.push(require(["objectassign"])); + } + Promise.all(promises).then(function () { createConnectionManager().then(function () { console.log("initAfterDependencies promises resolved"); @@ -820,6 +827,8 @@ var AppInfo = {}; define("jstree", ["thirdparty/jstree/jstree", "css!thirdparty/jstree/themes/default/style.css"], returnFirstDependency); define("dashboardcss", ["css!css/dashboard"], returnFirstDependency); define("slideshow", [componentsPath + "/slideshow/slideshow"], returnFirstDependency); + define("fetch", [bowerPath + "/fetch/fetch"], returnFirstDependency); + define("objectassign", [componentsPath + "/polyfills/objectassign"], returnFirstDependency); define("clearButtonStyle", ["css!" + componentsPath + "/clearbutton"], returnFirstDependency); define("userdataButtons", [componentsPath + "/userdatabuttons/userdatabuttons"], returnFirstDependency); define("emby-playstatebutton", [componentsPath + "/userdatabuttons/emby-playstatebutton"], returnFirstDependency); @@ -1138,7 +1147,7 @@ var AppInfo = {}; })(); require(["css!css/site"]); - + return require(["browser"], onWebComponentsReady); }(); pageClassOn("viewshow", "standalonePage", function () { From 3167c7dbb9c2257effe113b6fd0aa5ce56b7db33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Mon, 6 May 2019 22:21:20 +0200 Subject: [PATCH 082/106] Additional fixes to get jf-web loading in webOS 3.0 emulator. Can't seem to get any audio/video playing in the emulator, so I'm not sure if the emulator supports multimedia playback. --- src/bower_components/alameda/alameda.js | 2 +- src/components/alert.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/bower_components/alameda/alameda.js b/src/bower_components/alameda/alameda.js index caffa7d0b..4ac0f7496 100644 --- a/src/bower_components/alameda/alameda.js +++ b/src/bower_components/alameda/alameda.js @@ -266,7 +266,7 @@ var requirejs, require, define; trackedErrors = obj(), urlFetched = obj(), bundlesMap = obj(), - asyncResolve = Promise.resolve(); + asyncResolve = Promise.resolve(undefined); return load = "function" == typeof importScripts ? function(map) { var url = map.url; urlFetched[url] || (urlFetched[url] = !0, getDefer(map.id), importScripts(url), takeQueue(map.id)) diff --git a/src/components/alert.js b/src/components/alert.js index 0e8c16501..6cf7fea75 100644 --- a/src/components/alert.js +++ b/src/components/alert.js @@ -1,6 +1,11 @@ define(['browser', 'dialog', 'globalize'], function (browser, dialog, globalize) { 'use strict'; + function replaceAll(originalString, strReplace, strWith) { + var reg = new RegExp(strReplace, 'ig'); + return originalString.replace(reg, strWith); + } + return function (text, title) { var options; From 7bd0db6b2ffda7ed27c744449fb4a9b718fd2b31 Mon Sep 17 00:00:00 2001 From: Simon Caron Date: Sat, 4 May 2019 00:28:26 -0400 Subject: [PATCH 083/106] Updated PWA Manifest Values --- src/manifest.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/manifest.json b/src/manifest.json index 0ff87a92e..3a6823ef5 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -3,10 +3,12 @@ "name": "Jellyfin", "description": "Jellyfin: the Free Software Media System.", "lang": "en-US", - "display": "minimal-ui", - "short_name": "Emby", + "short_name": "Jellyfin", "start_url": "/web/index.html", "theme_color": "#101010", + "background_color": "#101010", + "display": "fullscreen", + "orientation": "any", "icons": [{ "sizes": "72x72", "src": "touchicon72.png", From 0d00b6cfd71077b3ade90bc3ab8fde2be5104d85 Mon Sep 17 00:00:00 2001 From: Simon Caron Date: Sat, 4 May 2019 15:38:27 -0400 Subject: [PATCH 084/106] Added 512 px icon for Android PWA Requirements --- src/manifest.json | 8 ++++++-- src/touchicon512.png | Bin 0 -> 38341 bytes 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 src/touchicon512.png diff --git a/src/manifest.json b/src/manifest.json index 3a6823ef5..a438ba9cc 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -7,8 +7,7 @@ "start_url": "/web/index.html", "theme_color": "#101010", "background_color": "#101010", - "display": "fullscreen", - "orientation": "any", + "display": "standalone", "icons": [{ "sizes": "72x72", "src": "touchicon72.png", @@ -23,6 +22,11 @@ "sizes": "144x144", "src": "touchicon144.png", "type": "image/png" + }, + { + "sizes": "512x512", + "src": "touchicon512.png", + "type": "image/png" } ], "related_applications": [{ diff --git a/src/touchicon512.png b/src/touchicon512.png new file mode 100644 index 0000000000000000000000000000000000000000..954bc25003ef5efc4a93e8357dde44bac4267781 GIT binary patch literal 38341 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 literal 0 HcmV?d00001 From 4818a7782d01dfa275c1f02fd39f979ca5ddde5b Mon Sep 17 00:00:00 2001 From: Simon Caron Date: Sat, 4 May 2019 23:08:02 -0400 Subject: [PATCH 085/106] Adde iOS Launch Screens for PWA --- src/index.html | 41 ++++++++++++++++++++- src/splashscreens/ipad_splash.png | Bin 0 -> 44353 bytes src/splashscreens/ipad_splash_l.png | Bin 0 -> 44006 bytes src/splashscreens/ipadpro1_splash.png | Bin 0 -> 48759 bytes src/splashscreens/ipadpro1_splash_l.png | Bin 0 -> 46324 bytes src/splashscreens/ipadpro2_splash.png | Bin 0 -> 58190 bytes src/splashscreens/ipadpro2_splash_l.png | Bin 0 -> 53247 bytes src/splashscreens/ipadpro3_splash.png | Bin 0 -> 50458 bytes src/splashscreens/ipadpro3_splash_l.png | Bin 0 -> 47044 bytes src/splashscreens/iphone5_splash.png | Bin 0 -> 27006 bytes src/splashscreens/iphone5_splash_l.png | Bin 0 -> 32486 bytes src/splashscreens/iphone6_splash.png | Bin 0 -> 29236 bytes src/splashscreens/iphone6_splash_l.png | Bin 0 -> 34037 bytes src/splashscreens/iphoneplus_splash.png | Bin 0 -> 42934 bytes src/splashscreens/iphoneplus_splash_l.png | Bin 0 -> 42309 bytes src/splashscreens/iphonex_splash.png | Bin 0 -> 42405 bytes src/splashscreens/iphonex_splash_l.png | Bin 0 -> 44968 bytes src/splashscreens/iphonexr_splash.png | Bin 0 -> 31989 bytes src/splashscreens/iphonexr_splash_l.png | Bin 0 -> 36913 bytes src/splashscreens/iphonexsmax_splash.png | Bin 0 -> 46402 bytes src/splashscreens/iphonexsmax_splash_l.png | Bin 0 -> 44271 bytes 21 files changed, 40 insertions(+), 1 deletion(-) create mode 100755 src/splashscreens/ipad_splash.png create mode 100644 src/splashscreens/ipad_splash_l.png create mode 100755 src/splashscreens/ipadpro1_splash.png create mode 100644 src/splashscreens/ipadpro1_splash_l.png create mode 100755 src/splashscreens/ipadpro2_splash.png create mode 100644 src/splashscreens/ipadpro2_splash_l.png create mode 100755 src/splashscreens/ipadpro3_splash.png create mode 100644 src/splashscreens/ipadpro3_splash_l.png create mode 100755 src/splashscreens/iphone5_splash.png create mode 100644 src/splashscreens/iphone5_splash_l.png create mode 100755 src/splashscreens/iphone6_splash.png create mode 100644 src/splashscreens/iphone6_splash_l.png create mode 100755 src/splashscreens/iphoneplus_splash.png create mode 100644 src/splashscreens/iphoneplus_splash_l.png create mode 100755 src/splashscreens/iphonex_splash.png create mode 100644 src/splashscreens/iphonex_splash_l.png create mode 100755 src/splashscreens/iphonexr_splash.png create mode 100644 src/splashscreens/iphonexr_splash_l.png create mode 100755 src/splashscreens/iphonexsmax_splash.png create mode 100644 src/splashscreens/iphonexsmax_splash_l.png diff --git a/src/index.html b/src/index.html index 889021a39..f9dc7aed0 100644 --- a/src/index.html +++ b/src/index.html @@ -20,7 +20,46 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/splashscreens/ipad_splash.png b/src/splashscreens/ipad_splash.png new file mode 100755 index 0000000000000000000000000000000000000000..0faca927b753e9d6fccc35e8ff132c4c175bf27a GIT binary patch literal 44353 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 literal 0 HcmV?d00001 diff --git a/src/splashscreens/ipadpro1_splash.png b/src/splashscreens/ipadpro1_splash.png new file mode 100755 index 0000000000000000000000000000000000000000..9e7fdb7f6ce019d91498406c42a623475c59af02 GIT binary patch literal 48759 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

@A?+Li)u_6FKmVst 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 literal 0 HcmV?d00001 diff --git a/src/splashscreens/ipadpro1_splash_l.png b/src/splashscreens/ipadpro1_splash_l.png new file mode 100644 index 0000000000000000000000000000000000000000..cffad337c811429b1f2523f3668eb606e892f969 GIT binary patch literal 46324 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 }7S_n<6b=h)2J) zr;9rUX;h;b+BRnKa40l(CFqbD+G~c#UlSC2|C@CUn!)xu9*~#7`Sb-PCVt7)Tn1t^ zyU^sI*hH%RlSzq$D;G1@c-F;_kvi0_roEfjSe=|%zjR5VvsuqNwy~#>#9CKQ9b~t) zGDapV2bjFq<&<^y11` zT1_hq@MH`rj&X@C;Wp122w|>-n->PlaF(8@4-Qm{Z&@0$aCAk}`7soIF!&|tJF)oD z4^!Bv3e9V6MQ0boolhxZpldN;kdGfcn2uZ5qFbq&W~24M*2hGN)biII1jA7iAis!n z`Mol8Kla{*QW+rfi%&pl|_fEw|=)mMXkvAF%W3nb|#xQa~V(WS^0*McsA_zxOi z$(R9CxIW%8@{A{>!mTS6E!OI}Sj_mA@+lVVIe@=LuKpFxsJb8YhE^9CWn>tTfT8!2 zR$}JO0l0i{KA}lj*qVFRR4cv@V#ub^{+XrJZ6=UFKjpbK+MIP9pi|7)CMle3QL)5Y zi+qp@u@2v*)m2)k#04+#ovzvsQ%8G|u|UC+{E*D~3dt zAFEpO0&|5D*5?GWn6>VNNzUvR59mD2xD&X~sH`VX+zIprVqxeH1Bj9gx=_%y&QWT7 zLS0=9F#lom{yivR(b>TY=tga1&a9XoPuv$1yw%DP3-%nxQxDOq(kfOH$~~Nu&^nr= zkgQzWUQ?*Oa3lcDEPo4e7#MyV6UD4Sr{`X!hLOkTm_~A@x3siiQc1E-P!R^QLbL`J zz{rv3F@tz_rGqYz#%P0+f$X9Y#!+u~N6xTrt!h}`Tqs*DYFdQ?wlTN4BDalF$p|y( zBh`uj0+duD%T9Hzr(M;7^yB`WbAWm0INoCWWMv&l&{+GgwjJ}k#NDos@K}2^8??2X zbXw2IP47ID;(Vg32#hjCWdHW7pS}%|fDQn~;n8aTBaTvMGuFv&MLjN!*(2NF9(2m> zQ}J%sn@i4I()zoF*Q31ojio&o^wf9&xA1P~+{+3EOy(o~m!e^@=pyFTu&0*6IesO- zKqAuS@b$_RxCB=-CuYbKEZJ&np32%kbV+jmeH1XQf->CC%pWjqS)GnuB#-$pUN_r< z-{+7&Kx)Mw&BkGG>UGDAwt0?bbAu)QI&TpYjPoq@n_o|nFV;(yta1F)$X{$gdEX_N z4Vb=x?dJ@LGae`0r;@!zwo*1zwRya@`!YbYi;jDQJjdj*QekE96uafw7`E?SZJ?jD zz5dcFiLM0&R=>z_Gk-6c0e7(z$W807Fg90qxSl zNV-D?c{4WKNalc1+j^?;rh z2S7E8XtdAr+I}rbDFIK%uTm3QIglq?7BL;y!+w3K22T!)a*vc0neyH*WbARgx%3y; z8UJXEC>QO%szt@-I+g;W^6}TI2_EX|ikaIH8iJPFgglsdrBz6!)!DKnEZ*8UF$%N? zb>av?MTed*bO30~+>}84>h7^AJm-?*a3a0TtSi8_O2kI?6x^ z;2%Y82-xlR#nxzG;M%@jYCv~l(eO!=g4g=DK@4bToZt@1Wbnd(KV*+>EC%La08@Mf zL=P>MA82(;H)d>24_|vgX+#I6kDme=rnu~tiZq)$Sz!hZ*c)pmkC{V$2)Z6c376eV z;sxA>PQ*EZ8UTUm`r<_-`znmPNy^GV*c*RLHJGUZ+mHTQ4g}YhMs;rJv|;`-S;hhq zQ5o{`^G3r6iI!=Na_pVDh%c+OC?V*tjw&cEdFKI;)_k4)J_DUyi08PV|7Pt`J8!nX zL7YXh_7crA#K1h14&tVzQEc(ikEo^KC zrdz3TS2@o822jNNY^Vj4wsUiU|D`fQ*h1JO(K`eBG`-O;S2ho;6FOsWBf?UONXU_P zdeX_qThi1eY3_LhkDOtAjydYUlxvw0O#beepv7tq&^BYsSMXY)w2%xueF*rCygqc9 ziG;6OL0J)?fJ+_mr@jo!^fIZwS@nLqRka3GF80^xzzygm5~SE+4bUlOrqN~ZsKUrp zVEt3h&9LyiIku2f$B>A7)ix)6_M>9=EjZb#Gv4j+@WWKrVe{b6M@G)P8`K&5Z$DdK zW1uo9X3BXWsJ|rbOq=mXICndrt=-C4h@Md5k?&CmkG zDLrj)Ytn0!lp2^LP<=#*=kHR?I0LQmXfGOFzeaU!1M)8Vp2D!{{gLsGMh36`Jl}zL zb?<*iRL{rV?_wkaILWuC%&svi&M&AB8^LN1l(ch;wU!Q|o=j~AH=DzLGs+#X7U7B& zyTl5Vqwa_oESnxwZiASC(D$9<-{%>WwY25K0=iiH<@!{}fesHX5WE1>GkXUdZPU|} z;rZ2&$vWX#1DNcOlLt|pMG(Dx#=%dhVb8x9wGISo!hE-^E*9;tz-nqst3MMzogwo* z8$eNZk|3xyS~n5O@!;glqARUK5VOc}bql!Ba1Y=h^N7zupm8j@PP{bG7N4NYo7cdg z+oW)NC^)sU8FAEsV}(AkrCrLXKe{xNDeS2KZc+c$8Zhhn3NR747d!rRGl z>uIv^rDR|6pK}G$ZSa-;aOAxrD5K$X0P=FNvLoOm$&@pz|8^+1ev7mI`1D%__vFR8 zh_xbSNeIv-X|@JxktQcws_3+4@2}CLEA77?KT_1e3hx7Ru7ojr_DKEO3!_cDveRRd ztiBFWEn8oa68<}n8zGy=L8%rLT#{mkSG;(qMq1Ze1}6Z}5okR3A5K8F=W4WH2275* zu|VUD^|~CsYeKNHyQOF0zT&OHmJQF)Po*ZC9d1Q9DeB!&U#yQ<6OKBq(sE$B5~@%< zU%3Z=bx^kIINM>j-6Q6-VjgEGR<2+ny z?<=njRCyNpnHDX^bw{#{8uwc>L7s1tWvI-7^rp47l^KpX!%J`7yz}_A{00aEel%3O zGhMc1l4c|c(EE3h`x;OKL8oE&KV4zWm98M|xYo!ZV7CY|Mqqq=BmA{g89Ae>AG_naRM6W+tqGK;+j=+f~e7I53jw zis{0*;{UJqzWb}GENpjXoDoMv#!&%5V3bj$iAqx`(NRP|dgvu;q?ZUt34ufhJ58iX zM;PBe0SaNU$|@Oa_EQw^q`F9XN4&zGqL+u$Cr8fuy7a;{#9ZolYe^K!G<-=? ztEio>yJm*vTP=>J#@VN-pYZ*pBBI5uN)(mMg16N@XU~AMR&_1@|0;c!YL3|GCP{ zO7#NupB$r?cUrNseqk(7KFk+1#@{Erb)8}8~@6^o!XnTsD-5E~IL2aQxzP}6)>pV7o>-Rw?fVW`8Q zE3ptfR8ju|2-I=GrC*zSqOp0O=G~i$eV0}(hJkB2W4~j@rA{ffqDBfnJ%87>892|$ zwKYc0JrGB~@eW_OJcnRia`Xn}-PXNhMCe%%E@Yu)>ft#zS5)}Fllw4y=G zVxsDzVbMcDZv%h$-C!i3!LdrVN);%-UHUNMYDg(C0_LmrLf!8GHO>`OO4%}aorMWs z>HY;0soOY&YcDZ>HYAcYlJjq_HAuIQ+9P~3FA#UMLBdWMwe^$ZV3WH9DI9zJ`QK}c z7*IbZO0Ir44r!=H7^o@9mIwBPV;mg~K6jjX&dmBIbohv&^Y^5B=1bSS7cwQ@2gr?x zJ-}d1VE&sXNREWk6PK{{m_kOmaM9k}PjB^02D00H4^&kKb-w$$E3Z;8?$ozafcWmH z?mM6SXzmGJe4Wf#S9>0NUI{E>Ad)@)mM3hYijfGrIOpSnaW=VbWg@e;=d{w1zB?!P zLUPv&9dh*(`L?3lrNTuve)YvwdD@J)*rXH&yJKC|OOJd_1oxT*>f9eI*APDQ8H1he zAlNh9QI~m)x+;dr%j6p>a)+`et^GPaTp8M-RdCDxX^HYb+gX+O<6{+1X zUp@%?aweek+A$MaXTdjH1GO)w@2H*9zViXZ+Iaibus_Q^wWxfHmknyOJt3}mE0=Z*+oPt9l2g_z--Du zHMo3MNIe|B_1Z%B6cdLVv=^?gX{fEO0)(FsFCd|7Rw!?hYatQ4&T=kRT~M3c7JqmU z^tT!9fedeB|6TU*fqooR^DA<`BtaQ*6#?T&oGg|>29_iUCd=z`WT0zkGP7LT(SM1v zMnQB!74Z{mk8;DzYcYyJ2zwe1C!mERB+NCy3+H!?$fJ(CUSrC5m9+h@o}(yEvipF0 zMBHzh7L?|T)A z^_I4zyQz#o`7&_#As!6ke+M%;lN(ormq}zrveFgLua=`3i%~=O%4=^P(gf6SMgHbq{M$F{JC9{bSV;DT8HYbPWvcgswb}#rl?22p|6pey%5)Zc8+ifFTztn`UfGpb@g$&| zau;rzRM-nzr$10iKzXhGC}WUc1npHs<-j8ED|-4mS5q@tC9+cT`TYjftQ0&{+}W6mTECB$`Ee;Zrf zBS%$0mA)3qkw>%o{kikEv=XsXD0gWL+*V={N*GWr66nTmt)7%ft1dbM1PRpb=5man))Qd{>* zLJgUnOBIu&T(;nRce*vYXg-S#-`2Ir+~Xjnj$U)&y>0p?zP_<5M2AH+LaW^=^>N`> z@BZ1^`FaA#w-xE~l$rFmIMC)p#^>C+M82zB@#$U^Xc4o2J73pO7M)5-KrQhddMSY* z3u#!fx4AYS46$%NGGiAYpjZ87r+^%D>{FEMtLr1eB$h^8v9T~GJ>ceJz*VdfUGNeNW-i_^-ww!=A!G9BEbv${8qXsDh5v8sML9f4sKX+4(aq6av6XTs%6hS9s*_kiU6?Emx2M5OIF=Zp-V51bTltF zA{oK*JHm#y$x&=8_u0$AeQRj{=_cS9+4 zN^3AFwR+5Y(hI|*#uJyxHN##{#~8|lxS*$IL@ovWs&*)Q_{3c9|kWevKA2ejS8ASX!IB+Nz5YHnq%4LQ5K z5|4@5)k8tuW3JVzk`I@yDmm#NacTB~zWm#esjsE6v$Au7mA(J0^4&h5^<##VjU;+4 ztEmc%A3LA-A4-7vhOwGKTG7`zQ|+-1MdhK_UuOpnxEtbMxq#ulGW=(_ANJ?o*A^Oz#r&tMBuPp$lp`MEhcft{F*qPd^*`H@Xz{3i zoD`T$VS^#L-UIF}q;T?y6Z3bcmkE)g^mnywEuurCNhyQnd8dLTY_3~bZymrw$UuMg zoyk!IZBQ}P7U+eat>4~UwARN=NsOQ-A?q>_$+sxPU2D)pdCixWd@eUCcl~gT!qz>)VF_smx-TE!!qWO{e1MW-+lNgt&b8#=~l#1a?av{ue;4ee` z8KCSfP^Ba0u6gGSGF;7QN?<~{)x1vxtOx@8DCJ za4*VCR3ydTmNn+WbV)A9Zf0ms0B+Jnlx*QC~|=Fm5SQP?m1W zYg08UcD>c-=I&hu2D>vQ{(g^h({x#cs24DJutlUy9hI>YBxT-2E6nGVObX zY6r5Y^t)Zga_6T@b1o+(3KvOMJvExO8&OyKUCnIlr87@L``yfTUOjA2)C6EtH@eoK4>?gwqL6f{=B2{C+yrZv8RWM zV}p7wltqj-Wc(I`J;;GUxShK5CAgRDxKj)ww9kW4{DDh|6{c7laxw9MA5O3!)SrL4 zIegkB*w?_(_7teGgLYvp1~^1E0gNDK79{H(Uvn$l8(GpmF|fS!^@w>W=)Hn~F-nb% zoX2q2*xHU~#jC&IG6?fgS_8xdyD{c_t$#jGqOzyxjc;TUk!wbK$^w%s%ZP7wr09Q> zZ_Uu(Q_4a?2hSbTK}DVE($LZYmNPl~N$e7aOGRDtmZf%O)aIYck=#l>L~q0u=_hL0 z6kJZy9W12}U;hQSo?ehpSZ;5;wt2RCzs_dkL4*Adrvd2scIZe&HO;G$xHWEwR!uN4 z-P=2oJ9MyTtl>`U{IRv9FdDb~o~0!%otb}Q&G+z99^RreF+zZz7m5UitrctLbR!DxTgTv^mn8xgWP$+AQL`CW4`lMMaW=P%k zS=QB7efRq1x5r>6@clQzoh$IEX?>k^FqG9v<)Yb#%4Fp6c%xnomN7dr@ z9qy*ap3sMrrydaQ4E|d!5=1x!?DW5kmBeZLV3S2Hst6Hjwzmn1mpUDS9=g&qp|e*? zB0dw9h2y(!HoW~8OoHw?)+P*P!*J3{Yk=grpm|kNP_zjXk^4*l^7hWFzn;jjO+Sy_ zbm(*H#c6hwqJQ`Js$)c{H!hdUyu|A~j_Qb3E#GCeTl z=*73H597x_ShaN?mhrdINoLvO^q~^wnq03Rl-7WR=C_=p&)pQXHbBp;1x`gkq>@;}4J?*erFq%*WT&Igp@>yt95n{SG z#jmIFy<0dKP}!Q5i=v#_y?#8UV!g{pv+`2 z(^CAYZ-nMrgwFn#<`>qtM0clXZH?(&@U(eWg8PSu`8N$TUE1{x_M*ET(B1r5i`x9v<*7zq&l9f~`=YUWPeIaG zSM%z1wXNA&;p^?cK@AgrCKDp-Wm#je3Fdkx5^)B-UpLtM);~6Z9=EzLS%Mtdi}Wcn z#=LBfSkcx3Xn4j@P+h|M*oSVfmtVN`R7`&pd*G;l^7gFm@5henq3@CwL^bLk6f|!2 z#qsCFAuG#runYdHTQ@iUerOr8tPZA<&1p|7Kxe9($d%uqwTujBq}#=V=9xO^Z&(z6 za~rb#jMu|IUq9#{@_j@$Qzz^V!`~v-dMF1Mp+M#o%L@Mn2SxvsQg8dW=$%%D=qH2a z<>k*@z{}nEnL$}!(N{~}(Cuc;Hi8is&jU%4!uswhz=O&lrv?pN-uWJ4p1a-HNXka7 zl#{ZyX4?|v-8${Y!E{m=0ZhW@emXIcW3;!&w?j&J1O9rH(^mT0Ls=f#Ufgnr6iY`@ zTTo5QpN9C0OY(m6x=5WHzZha`0_WMAzm@FHvW0;x`KndTu~tjq+-5{jW=9tz!vEC< zUo*XA=zFjc9Nnv5K)1FYychZUYiP~urPsx>#_}g#f2Y6QzBElpIl0yFF8a!o;E4!^ z>|_KZJEQvESbI{+Y3;>-=heg?{fQDirfojPQ2^udmy^I8&*8Ow6UT9}(xbfb^1`KY z-hc|CVfpJP=Wo#OU-N16!=GUcyJ+?#*jUA_4i zde4hrHQ(N#-)XpU?jY$%?6spRhfc&NUf*oR*5F*c>a|3zotasI{JC)}Yx*PNcDPK~ zb7x{xM0eTP{n_vp?Kve3a)!Abyy8)L7DN)M0)tA3;L#DA7aI*74|%G4(5HThXm0Fy zUP+z|pIc?>rT1?|i=1}iCJ2l3|Hf9n+Zt#~P|ZHiYB@+Ez6)J<>YcY4ioAyQ9nEQv zJ4}86I-Xcv2-%|6*6M0a8$C9w9b02_n!nZh1mXm%)j@xai`9m3<|4OkX!mOPf%0MG ztL@M09JyHaeeinXoz~fui>es!dy=T|X`<;*28Xsv{W6{i!pG_tz>=aMJ zkh0~j4IwO!kY1#a7kp+Z$#{|&Fwdzcs%hwAwmy%@8FU}j3kY`G{{EUZ(_djQH=E)v zsuEJ@*8h-Z-e^CrSN*h_q`6dHK2cYPo?~Yw#c3@$HCC`!CZtmQV8l=+TPW`Ht_PdG zya`5^4l4i`mv}fqt0)*<5mxbTC3z%bY9T$)pf59B=pqPmzHT1`k>kyO@tM5tWr)|z z)!wCcR0m-S&j?>H6gt0Y@UfL$R+7zKr^!R4`GW)N-0|_%f%Shv+=9c{cSC4j20F)~ zh$bzyp-h)k&($>|LJMOLH+HX&Z)T5*{JF4Dq99_asHrt56j`->^G$8_TXaZJ;7s@6 z>|)Hun4@=%)}RgeJA}aWO>)C+vv=1_@@ASRSwmJv^$VASqHM6!p=LAAe{{6!@%0gP zYomw_ehcLM78v08iJ7!hQ|Gp)BD8d#xb-D5BgUtF+;u%(^tH~8J~G1uKKZ$UwEX~wB5uUk;6s^1M*(}zMw+~ly%==v_GmR z+wOeANgX>ZcOaRqlAET)P_Qm)Fk=#Frh zxB_;11YaOWf|Llxx|R+K%pi?BYDJ94G_>0hQ!DkMmGzfkk{oIw0c!8^eA5H>;T>rtuIu?2X!2e*$`nR1X`{#d)1UL*8-4dS8v!|FskzR&R#! zyi0G3%mhoji}_vP?-p#q&12Ad{dmj%B<9%!e1murfvi1bv*e`v<@e>`?|7Gq2G&Zq zykd>az;Y38)ef!e;c+j@<4(>R8?ngvELhzY!Ri`JdwHv=h=PGPG8UEft1bghNPM(4 zz5(`*y@`&?B=xc%)mTR4mxennkc_;R{t!sM zHPhK7LjEGxz>BW)R zpy+frdkUxkoIy%dQG-9#PHI{1A`r@vvU%;#IcV5MRbD0HSD-2jTFxIa16$hM4 zJ!a^;orQEgbD@f?B%~)QBj;$V8qIf`$iubzA?zCMoto`%`{?L5Jw&}%FbW@3CVpZj z2;g!ApS69B7k2fmM16}*yAx7%R4?j85^1S%t9{XIGl;HJQ0*6E3Lay2LwAo3Q7LIB@PF_#<>Npw^pEz;6JtBwXI2$#2-Ks+9 zA`tRlxBmd|lS3o-Pbxo;@0g5983=^y*DEpfyONlRmZRVCvh=@0k8WrU8t7Rx%R4WA zuIZ$Ond>jUwQw!Ju5j2hEO`0j&?agNsPl-w1^Fd%i99ixC^z^y?8}z(R|hAgS#bch z5nX!fBCBKVi^Ig?#5IT6Ww}?x##4CK& zEY!<|M5>M&d*Zazv;*%DS;Pst%{hS_+UsMPn<}I ziv+9s&&3&KUD)iqhtPCA-nG2jX=dR-vCetVsN7-R2{H@`%g{#Ws7;;i*A2MMv3a5* zYn{~UCuS=xBVDrZPW98^d&yZ68RtWC)C5$tE<@T>`)+ z>3A_bpvRyGURn`~gC1oR0}FVVZ13V)qFhIgSqu-;y#{zpMt5g@4R@zEGV#~sOsGS- z1=NA)q@9B&PY}IB=*0)|i*vt*I+;K?N%t6T{wgxoNuWCkS8IQ}>#c=nPU!XmM@MjE zO$P*i$D=?S1#ZS$S$tx+aG;hj4)z*`RJAlx)#YWH_UgVLSq@D_QhONT))i5jXjF}} zhT~Q8d|LfqHZ@Oo_h5p|!DRl=KYi_;#^mk#>HU{LQq#b~y5;Ct*wy)D`+DLmprarr z11FJx@6PscN)}6)b3sG~qNW<*P5TxY89&FPe}>?2R51%&Y?8?HMAo-L^;g z8CVN=cko1LNnQgqc&a)2G_apM-lwFCyT$w_uJd)u@Sto`88Pg zIOWV_KpL12R74!G-u--qFurie^F`m+aqq}j`J3RE%3T%km$bWhw#xI~6Ir+W!ailS z(f}F8TH`+=;&lDjM=)z4+na%A=m@jIE1~^8m_XJfuinb6@uelMG+m<#Tyo?5M^xvc zh-2(xTB>njmUj@indbej-ptI*h+z`gk+_F|jy9v@i7y|gG(^!UW=46o@1tl&=G1l+ zl2I5ORpdu^QA(qAHHB|$nJGg;R{CoO2NBZrtE_P)u~^yd3I6xbux;k^kt+%{Osfbe z*~7o|YJ0%O$eJCF#}(D%`p-4jh~5KpJn!8NcGfeA-o$6P=!7tc&kHu5#&6^R$4(~D z#4Ox=LXoih)^d>+P2?>B4Ikv!RNM{KLg zXgy;;&bc1f>DIcWtLrgsM_4tSGr)x2w*r1d&$#hP1X$y8(fJzgKR6m`ti&b>X3+=8J0~%u(V>i7LOUhQcdEaJMk;n!*ShtQFRvvyKLH0mJ)(=O%Tp zJF)W4HS~Xt<>uiYqaaCy&gJiKEk=Sx(#|J8S0AoT0gVgG*9AQI7dCM=Y^~#oDTRYy ztq4DPHEot~`<`-)NOZZ7^?rY#pkVP^GT|ww+)HJky&*X zciyzCX{)Suh~L*~Omw+dw-H~!vaqhLfA0!NFYvtQNRhuX_OelAe~(C=RmRb)6sJ?ORp)rj`AQ)7C!#AWdO%3a~4P=<%!IdVv$&>%N)_bfh}EnIE$7KRNM73X z8;NVrar;lVa5qZewGU`>e9HHJ*bM<6>PQOQ*mVW0m9TqFjqIp1vIlXXDty~qF$N&T zmSl-61!cW2ui^NHWo=dBvbG~HM%Wg;JVn(4_g8*Mikp<#H(tHaOHNJA4qG)=n{&yI z*evOHhn>DSaapk%^Ccm<^SNexLGJA4WBmf1s-q>MP@YxKy#-THIt_jEKM&6fl($*~ zZmIlZjX*q2&U%Meqt)Oae`EKSEI0T1h0u!CU=gdGwpK<`j^45n+|8B_NCS5zPLI8{ zShbO!8cF>?Q_0NITkE4+;k&X>jUhDQ;{FK^kQA1;_4=Sgk%}}x=H99BY%Uj)aGUuP zyTd&YBM;2(j~$s}Y1FYMZ@^UXsy?+D%r6&%H+!?MqzbQB!BcHb$(P6rT^Sd6qx1cE z5lbU||3GTHye(#XMIOTc)(@tq*5^W&oQ%g2`n|eg!J7k7{e{`t7kDl6YO43a`!-L~+IMbnsZ7XE>G^hry$Oj4m7S#Dwa18l=z0PUc6rlLPNfl9tzbh4jn3JmS z_$zJ-_T^~Nepx-_)^gk096EyI7_vlp7re+@(1N@}Z-@{1h2LFc3)T2Jx5+9k9-1ho z^vb)NW@PL6qiLU5#c(q-S%~d=fz??qbU>qFG`)d37}<_l7`}_t6(B*KpmP`{WvqZ5 zfP{Iyc%FtD0`68cQ9$g3>DTUi%?^bS-BQI5l3Hk!E7(H|vW7@L*q zqNi4MFF0(zZK>DF${_1{rm2yq`9K3pL3U3_YwKWS0K6*uLA*GgqFnA-dhW|s5snQ$ zXr4F5-&5eeJBsvND*KKp&~pD{K%`l-DquHsxxV}X+NPg|EoE)t@(Jc(Tp~Q&$ly&nR3%u2xke(@Na)v7{8`Oi^Xs!JG4umNj>h zc}3CEm*Rhirp6h0>K5f*FyDyFTof4C@}3=blh$3o+73fb_J@7?Ec=SfeQo1-l|`%r zQ>k}O^W0B=5g$qL;vY?$PkmIJ`Unf}*=K2?`{6hU1MTZkGu>roLxYIYiN;!FNRTgY zbCykGkJ4Jf&xxe27&3@S7Zz%S(ia@lLjs?0FCEek32V|;o18Zdaucho5S~bFZX9{k zO`j^RZEorO2eElKWa;z3Yiu`n75p5S_sjM%X)ZyoDZ!JnEoz%?u#2J_X8q(!F;HvV z5%0ZFA@9_r-u7D2SV$@*LM`wqa7&RV1bWlq)kPg{+^Fz+OBM+4V0V2=!xG9T2z}nM zi@bqota|X_Cfq59SSqYmKZj=0vr#a&UnNUXn(rZTil`5wY)8Q>drNuO2o*yle0<9% zB=Zw57Edw|e&ZCG1%$7U@3@J=hLxm`Z=#VUqFP&{3aEe)Ic@xSD$TUV4@1-rEc$*= zNC8W^f!CTy)g4bwQwi%YX3w08h+wF+^P(-C^NX7tHe$R=Rhv^NbD2L$9q;<=?^gX3 z2N_t2GguU}Xs)$&30k_o1QvB)$VA|4)wO~`Ex~-GGg1`$JbDeW=eg~2cd3w3s@;a%O>@Ba)tJyr4Yy^od2$b!8ciDPvwy@njXTr_| zsTg-S2u`)ldZRz^7LJYQRTw_N1^b+-c@Y7IR=@uIKf(JGgqxRURnw*H*4>+-RNWzW z$(pCD@FZCJaT7P)qTBV3;bISPY-@Oq*HNhmYP;bgU(CHWq$+*3S&^hVC>WH@}%D_WhL z-U8N%rwsc1)8XkLqR>M=Ju(nS&bUdfN^eypAsN+fGmI-#iB-h*@C9-v$1Y!C6;3XW z&k11h(PL8wQru8;v|NcOcIm_5?oG2d828fkW-|=?shdJf1|_FIEHypyU`lRSjJe zn~2$=NQYQgxvqRdAGjPWUxCOfo>wzRvbgmQ$Tl{i`T-6NF8>TYwBtjTN+&4`D&4rD zb*psYbvT^kD00L(*i*u|*e|LGjA%CoxH1Z@W5au!A`=wehh9FJ=`#A8I0BLmdsrB<}v4O z?zEn>rIajO)_^Oh*+i_|4p*+Z{1W+7r`~ZB{Rv0);fS)f2a18H#zbvq>!m7Po5m{+ zv-u9OCi|hg5)sa{}14`fk9icd0J7% z^)M|Eb_)PeWhZjPk5DP;y$323y5GdF)TzR2m$gO65;-9)JgUN}p#4{zAv|fuCnUWd z6r0ktAl7DQFh6;ItS#&uwlnG!!X<-f=wPXgd;BWHYt|gptuP4p4KKl|{k&tKaemG> zI8GvMK7@hTBy!8Mg6mc+jhYXEh`%aipt|=H!PN*JRg#v@_~PH8@XM~mn)BWVigwf` zP2k%C_LU9ZHj+)c&5iiXBdgRr9R;$;%^xnC7TiFRP7MZ z*8f4FZz9G~9MRy&n`pD87%yDju%$T0n7D`>soguNo@}Xz7qWg*Ax~zDxoeah(@!VN zs^lh1mpD{Nwp(=&l54h+!9HMBzg9m^Kf*d@AR& z4SQ?X{YYv+Uw`f0F(e}e9z9PBJPw82ZPpz2=_XwxitjKDL=TUY2;;sa$%>{*wrokelrKmUgl zd7herrI8ha+f2VK&@Wj6{i1-q$7)3}(A;L-vd5Lfxe_k@vLI`O2a$wJxN6Cx#RrMQBOr0 zC3mXc;YfFxkag_qa(LC2yCra03?doDHz4l<@srG-0^$kg_8_)1w{L#&i_8aMdOG>V zc-J(*>l2dy{Yx6bKNUMk8^NhLeYc~E{7bubTc5O|`uQi9*mD|MMn2b%9`ZaHw|J~C zTKXS9pHepsp9727DJlf3FWFRbFgeD{a(cLyDHNHCS%$g6z;zd)rvz$x*ng!}o8Qy3 zo$_qqK$1!_TOitcSH;|YZLfIwiD@aAR~_}P5WvP$yPEI546U&{huLUs%oc;!?z$cn zU*IoD;S$uUQ{0yafcoTnUPxBl#R-F2&&y4$vp{;IAF~eGKyS*Y_6zuYXQ7X`hh(=i zL-e*Q*ecIwl^Al(^+Zzum`WM-)oB&ds(~HlxT5q`-flydo#^_$tmCMq=3S?Z;6lPs zR9(x+^#ZRwP!*EH#5CSRTXS<7B??WI^`lbNG!`yB@H#(;oa0pRXE5 zTaOM0p4#AZoa*-4TvjOW^Y{wz9la4z#{;Vx!wq$7^ufJLW#i}5W=wuea}Gq zb__k6+TBPV9yT~(dsNB4{8XcJ)dSqAi$rekIEE*CZ;$Mx{ zNdnn;vt8PbN;*R-_3wC|ZC6YsbhgNCaOt9@KNc=mq zQol0AHIF7{Y!c+5Jt$FBO+4NA@RGH(w^Nj7g+6p312slybG$0|WFVlFU2a1Juk{wr z+(d(5SXfsh-p!{}$6hPhJ2h3vXwlQ>UQ`j&0E1a#Y|FQ_ItXZdC*k(3k<-hBG_khT z1U@>JZP=3yAo6+D>Z+lc_Wb*ClXg(rw_G~ z9*q{!3i2AdElGNe&luyh#kl%0lB3i)l2Y2MeX>O&P^$REj99Nsa?CZeZ?lE{7zQMh zN8&r5Jr(g2;2(o0f(@wBt7C05(JW5KTA``3UM2uGC}pUhv+2^&Am7@WjOqEBsxufC zRpitFiby~X_S+!?wAOCyg)X*QBIB`sBc~P{L}P#{CU2@IuR@rE9oNXy8e&C{;V~i2 zC9z-`R0{bqfgoq5AhJ7>B1P2VOmaz$qUe``L$D)MR<6H^1H2>?G-uktu7|NgOl2Z8 zvFb&zs5VM|2{P&wBzbk=ay=|A`7yVJow!?nj4)+r;vhOY@yt_0^O$)|VpeZL+PdCA z%QJ5M=ouSbW*eLwQiWy|hF5YVJC0f|Ir~av|g6DqletNEJJi z{39sYRq`=NGR8LD^v%Su9i>QWY(HFtcT&xUXVV2<1-zVVD~>_?Y>>P3t2{uEXeGMz z-BvII!$+Vnn>~sgTi{;hj0Ju`_mt%dt#*VZuuw4zZ^AD!+kb;9Qiz2sr-R&xVMb(?ssaRJ?em zsbq)F49q?96Qvc`brV!gEvaDLL8l~lS?ldFX%HUIYPBrZ0e1b7(j(J)jY1#<;xnM> zgw^^q8hWXW1pIGT8nlZf2j)hkPDZKQ!IYZ#94pN7WC&!v^sk?O+Hw-q8E*3T_oxup z*F#(&{E38)9<#k_V=#tOKjLUfauzQR3yO1zzyFDnlG4s^j5cW!9^W)J*$drpyz1GI zQhB7LTu9oZlq_bk7-qhiU_FO~FcKVsEVp;De+Ly>PMa?keNa1m_}j!MIiMQczfWjX-xIC!x_Uv!KsC3&1qX1u*O$h`^%s z)buTMP;6URD9y1alQqhHjdJz)rWk&OI6|_MG*j592`PzF-+*JA&wm%QxH5YL^1+Bw zbm0TLKASq2fAUePCB$1B7*jvzg>3pCMP8)GLSN1#w_=u9=`A9n^B>Ln&9;j;vyg@G zWgEaMzX($AUz^TXhb{@bH*L}rCeN>Z>d4GZnBaIKQ8k3?{gpBU0m>q%)^8g*&q5y5 zGdEbLXFFK#Rwk!iK`eC-Z_d+L-_+H1Dsg%$%#{Xuru`RmDOSJO9( zcEm|DS>CxuCU3n0VhTa!y^D|&kb{U|g)*^nYx3P0;TxR?@mYE+tG(F5=ccOUhpF*+ z`N`kPFAg5^+^p6gcqaz#N%z!FJ~xpIuDHlXdUaSW5aMfcSrM;7#ou+>ZU0IVuwiHI z9Hl(%5}DZeQZLkdIZCTvm2#9jE!5IF0pO^UEKn<EZDwz;}y0CmKarx7V zxb{SG;R9J;MM2k#50ms{s$$1FU;OA2q z*G4)MWTlWwX=Z1%HQ!Z?61i*Jk7}NaPRfKYCwwqq90qm79W`oThSv`CVR4^P#p5zV zmxg=Y#p84?=;}^}i@#GZ-Jd-rW?=#H4RF-xajy%S0hVM*b@aa`@G5EVxiSyE505+5 z!X#8keZlK#4f^VvvvaMxd1yYZWt+;xufEY~Y^q(I$J<1hg<( zzOQun9-~3$RUQSmF@T#j ziRc>4;%z?d39m$)lZ_rG274~AaCjxMVv&oWf8l#W!Y3%5uUQ8JpTu^l=$zHU z(7$k3$GL5_k7g>?NTAUq=wc(`y4o#WkU`z-{B%amA#77E`J~RB9k)TN7(XtVuMRRy z6Ln2hVc-)?d1dL@>$ZBMb!gW&tDgK>YMGR5Vg1hYb~;PG`h)KFGuo(oVSb)&o1f_) zSJ&yi#i?=?!W|V)Vokf0O?y-}-NfrAiV4>Rkf_y%R_OKvZ5J$v^Ot{e@HwDyCkvDo zy#pID?pO?Sa4^$5a!gCp7Vlf`Bt70lAqJKa1FA3!ql1eJJjbD^Ud7%ASp=c{5U}W2jTWwtMSW1mso#A7MOAirB_vY1?q%VZ@4Ym$urbotTJBHX+FHuJ8 z0t4@cU@;*<3*AN--=Mo8u5SpNsSSb-GiJKLe~xSE_ointOnMGa%rC8n8-bjc9>^M+ zh7`C7DS(`wRiWd(i<$E*Xue-ab^qdiOIl&#QW^P>mD(oQ&_?SP69XPQPqK|lozw(W?DGb&<4R8)qj$Sf4z7H~#HMMQ}c z(25$ANkAxtRwfk$l}QK)hzKE!A&{ibw@)SX?Y_V7`|DfpAMaYQRv>*%ojPZqy`TN; zXP?SFvtj+pk*bqb34$28de!fn2x2I_RedycF#NInHugM0OeI$TzI2P{&F1p?V~DAv zU(TEPf{dT~pOg2(ruhsy{_ZXQB>th3b`Md!BZ%%1eeXu^>3io-sPw)4X=2~IsW1E9 z5d-=LB8JZE`yVa*2lTxi*gs^yEs1_7B8dLzA^Ks1=*LUQRsD&gKSL5kKQ$owsX;$A z0H)ke4f?48xIup@)lUrwqMsV{Qv(2lernK94f?48Sm6H~HK>kr%wB;1?LWQANkO%@ z2N5s*@qaQuDg*o8jlilX^D}R%@=gB-`_0qm3jI#eX9=R;Df&#&?-YHO=y!_#^r7^H z{_NV%DU`0zkB|Rv!pGi|d(QNo1?b1~emw8TbA<)^`EDPI_2YS;CHnEPA0PYiu^%6? z1^)j~4lSB15An9v-_olNws2ORb7}SR8K=kove)9TVcO%yEdBQM`qFPd|MdI4uTz#^ zm^r(0!0#XKldDs$x>sw**hl;_&fxU2C55iLH!R=!I9*&`@N3}K#2?;A)A{mdc?&7< z7(iU{SL_h{?tiN=MZX>T?a&_#N?7O*hW=pa4~G6=_N9o8!_|Xx)CCtMhznpoK=YK?Wz0t1Wo+wD5*Ry!aE_XBh zlDU_)wes^X29dUYX0rVD+L{teO0`0(lGUQsvHd&e&>WcvKV+geiW%s8eXsT8tb57t zM~arnvyU8Xe2QOs*=Qe8&AG->qjtb3sXd;azAdb*k2VK}W9imn7*pF==(|geJOWC1 zvYAtMd(WBTVoI}i?nDxS79nx#XlvaFue@Svcr8CIxwQb#{x}bQ5k%*2)}to=9GSx9 zNIY|&eyk-Q6Bgxd=-#)_t+C@97O-14O5JR>l1gcq2Q8UzjJba|w`(*<*%U$Kl<{ht&i)#o`%M6*7of(o;i?VGm zqHKd06e>g=+34GkT6FU2J&mm+)5ITkV$|@$KPu-RJ0|IRL7lQP2u4SR=wU5+ zON{ilB?WRG9UjSo7k_S#>+|~5+yDySYeNLS7ty)FBiMVP%>5OLWYgNr1m8BI$wKtD z7Uj8SBeiXbf!)@(hKd%D<6EW}K5hltOAtlF@U<3d3*6p@*3<@&{3UcrIBhkU*c**P z2l&JCQizv6vFlHHSZfX6{O0|yGGF+-|6#>kv({2>ehZ&{k8REUYVTHohJan)*{Tp5 zi_sY|lEP)(+jv8z*1VyjCx=I>UF7VNnBu$ID(`9_P5Rc__|?8K8(kNZb)BREu|X;k zc+=Q-N~zx8Jsq|>dP*+V2TaOnMG)Snd&Yhauu^BmP9na0%h=Zz$$3tQ$EF(& zB9BN~bV5dYbe(B!xiPlpmXUVm=FsGEvi}a%0F7QY1`t z9^juSIAyYprRGu9=~*Mf53l)NWiB4KC-2Xo%#Z*w*afljifL}k6ykIQZ3RQbAk!g4 z)lTU;Pq%j^cFo_V!$}TY^ZgvN&T0b}G zKQSBCBthTGxtS478N>AXGN0#-+M&Zq2Rw|Ua+uVklF}nbS~zJ_kmDd?ly(K01Y?NN zO0RNMc^!LMc`)K8cpZH$$jqrRnLt;;)rDb9=)K%;@bzqLR*;o^+KHq;={Cw2?^b~s z-mUDl2*wg6Jus2;Mi4JDS|Z|HbE%+Le?0kBRtf%fn?D*`z(4=?gQq$#x+FENWq0|p z707b&Kw>_#ipWL)w%dn$*(;^!F~mqoiSO9m9JJ2US#DAjz9=Zu|4nqJfCYo}4#W;i zJpb$0kyqpFe?)+*o))85;I6LT#8lT_YK4>}tHdbvBJr}xdAH+m;zcSQ5hr4bB1flnIt4HFgf(gF1@pAIMMxRBy+9*FMyP%Wwky7SF99M2)S6-ZKwl<>>--HA0AyL$ z(!?6EQeBolmpJmsl9<|uL%~j{WC@)d$-}$wLkoLvZY|Q)SRbffqBY$932&FA8%N9j zS@4S>!d`YQhN&lueHeICt`h|weign`rL(+ z-1)sW6PN5eUL(K=ekFt%YS+F$hU}hHMYeaedP&>Jjj~SinVh#s&bcS&Ip94eO_Jo) zlf}da$6j=G{Q&&6Xts)#!c`KNa^d7D$l~l)05nv3ua)!Bd*UZf;%*QRUk!*cOSo~;XN6T4& zLL-QefS+7cVur`;{&WbT=J3!O2Mw#hbd8-^b4|=PNV;))**}dLMg3LRGMAx48sv!; zLbOaMMCV}zQY34mz&jMHfeiz1c{YQ%WJa@H4PHENyQvwAv`4TOKWr6Yv*uYaL+KUX zezUZuQhUiTo_=rYW@0L0?5fB(qbq2RttRoOshsySkz*(qq{z|NH=#8F#*XS*BUL6x zs3I*KH^~aG8UBGk&CCNuoT(+s}I;upA}7%gO)h%=~<$*mFbET1Te z=x3OV_aa5a5LUr96Z}ftWn494O1i(8{Kh~Z4m~NVEM-E*LfnaOA(T)a#SdC#(VOkQ z3OiI0CO5ZD6q9jD?RsdM8Ph>0LzH;Q_=gdzz=?qX6~ZV6%_v7Wq{S$sYfLdR8b}l* z4|Xb^kYf_Ea{q~#&SdyXz<=8atAJt21v)Yx z@GSo-MQj|K=<`XlrnrX_oq%c;WB}6$QUQD|o#YxOP++yc{f=R$wb_sp6jJhKo1}Xr zOekI9<-eyMdwHp~<}LfLL=<-XC*p1l+B}fhiXo7MBydrTY<37ySK|PGNT)D*c^g^s zZF5b^+?dQ8_2dYZA)|hk`2a`pulfxJC5XM9jziO0NJE)RP03b;hf7g4nAPklA$2f+Mte_9JyWQ`}nc?i48e5w`7u$W1{c-2colO!ZV|W`dF_aVM{`DeoH$z7i?+6XQ%Sa+b80%SNU!*Cu!3!Wy#gm#7P~43`FDbgQ(;dZ8eP8!f<1_(XC)K*TyQy*=GHzrYC9ft%5-?PUjYd z=kF~YpOwWuAYXYxO0Hf>Og(^C2e^VaU>ySJ6YMVblNAW)f}1oj-e4wC*_1m8+!sIE z-NUkb>HjJKEr9`VYh%P9{OxZj>)PGrgq7=cw4=vGR9lwd93*^d?;OvLS6{bO~!bCC);Oo zNuS43ArBj?ZvHYq!@ zLdyQCtPlR3m)9e>Atro6qz)L6e0(JFF@hFNAxcx_$FG} zTjDVVrIpd_n@$MI07bk4%3Z_`Q~mgn81?RiM8gynk;YvyC{~3?yohYd*Gd}iX8voi zWy_u)l{`OkoDMUpKr10MEsHBqIH0Uz3xvqSzJdwY55-7lfd9i<^roD_;`c5Is3I6e zB=bf!nfPi3j?%D|h;Xgqtzc8VFW#)N_jKqDInlQ-e-pC1a>3C)&w-$3_+IkwNysGm z=CBBx_oq^Zs|5xIuBidPCx~Bez%L-YRcCoFqbQEVZ7UOVO6U1vM2t3Kc!e2FCH`oN z6QAkM%JP__=5gL@=9ik^E-YC)f~PN8`Hl&~E(r^KoZ0llECeRv>!ayrMqZZBpEdrt!SgDFV6hK1ImLS{ zxqCoLa@I;o`x4@1l}j?JW%d@FY@M3~?GJm4rHgE<>&i z#(Q+3AaYnonC8f<1kg+HQB7S z8TGj?RF)(nI-oM2o??XSF6vT@oQi@lVnAS(ISm_CVCM7wFC9l!WQ$j_QL&QH*}DuE z$y{DpYvO7TUA{mAEaJP&H+ScEY5wc7J`cAC7$SZN?~W<2u-A)F|p^PtaSY%mOp@699bj^;iU zqH7n$P9(pGDK1A;o(lbI%Tsb8kqtd-tBZtRuupfoK^ zL2#j{z%+)0gTJAwyxN*7n*-`}U~*;W!P2xlMu`ksIHBZ(Gt3tJScj66QAtAh(^eA( zmxEyZBM%tY+2Gxg&3^!#urK@mpFfmL z$^>rHrgG%y?x(RWImIpWW+qch=@~JbxyJe9C5^0@j*LG6x2kA%5hNuBNvC?rc;JdP zqOjwlzs3W|1G~a7P=PekKG0k?&G&Aph})MhSXNveJDg<0OrKw2;^&vAYf8Iw_zyuK z3r3TmDuG)49R$SV8tX-1m=^NRkQbcPMzxkTkc-T4LUd$YuPL@13AQC8o~b&qz3WSI z&4)!Ib=n=9Ku2MMorc^U8$5bZ{POJ7p9mms5E6<^o&fmQ$U3zqYLi6zY1^>j4t}FQ z(ZM&EyniKG&NGk;{A8T6Z-F*3UH({)@wZ$C0~7w6CRZJITWHq6w}pb(39*1NZ|>s; zfU;X1OAQ<13m3HJfq^4WUic&H$MTi;m=C08Bca3LzTE%-KHHEna=5YFXvB-Xt7@2B z74{!|4`d?&17`b{cQ!d@!g7d|YNZGP?3RjS# zJrD~i49y|;J3jBeRu(|ndR$H=iM>H+TlG%xkqZd3GgApL@#Cp$$J@Z7sh? zojHhBPC)=1n;EAYQht01EwYjD><$)xGOrfuU5q}tEUSDx3Q5BfEl3(G*JB~$ePDeW zXvJZ|B^uXSmS||*l{Hdn( zCWU?O!Xc!;PO&`)k;6K~_Lg4G6bLtkFF3lRQW@)eoB^Fdq5~UTHh0KszJN3*4;iH= ztAx?2e^X?xCiCu>5tWXp;UCnL^T=sr6U$e7L8mTVsTUO!c|!Y%Tu}6Z4vwU)4j~6C zRN{j4%Uq4;RJj_jJ>ld~!(|q~Mlnt2b}Oy#$7D)=@n7w?D;jZbbZ5^ySbYi4H0|rz zX?9%?QSmHdgSng~V2Xjk1W4P?LL??$X4=MN!gFWi8HM)9G(`?igw$LkpTzqFHOXKM z6%Z&n%>Dxs@9wa!i4O4quM5jhoWWJIF-|@J{IK2`iJFIE4GI$Op=|Wp=Y8OEc&)sl z7UVaJa{y+2`-^h;2^TmKV8#$mL+-bKN&bo{MB_ zOjtr1pHFdJuP{d?Bam6}kH4#K$_zNs0p3B^_>(uF-A3oq&g&Q#adKy5XERB^66L4>+^bFWeOf0H2EU2D19N^ z@|viySH}LgnE&&rgBtv*B&|R)B7IPm9qDFhq*}3H6qn8PFPl>f3)iQ-XJ@ zdT`iAt{6-d)wLl5ZBVrryqAP+IP~W@`hfY?s7=EwmfCsv;d)_Y@BbY0u?CF~QILApTTQh=d zF+^%H3jUJuytVtsT))LBDVD^ZO3;H8Kt23N0%}O`>U}NB?5cGbNAHFSZV1NHB+SbT zb)TpPMbehgQ1ORns^}Hm zLH^NNtr!-R4K(xeYdZS(lTZ^Q+69561i1*L2hyQYz2?WXd#WVA>RaBOlAx;*C}feG z>P>kv!2eIC#TIa@0{0UuDv%W=vAr(;+HLn`nZ|GutA#n!@q8_U-I`9f)pQI(r-9Ws z{Y*fi1YiRoF{1*po&c}E7{QVFbZr|ud#-ROQFoK(R=FjCV9(?WC=Y!WG&ZRZi6D50q%kPgAqez(fa_As{ zG9F*P_GX8>nkSy>Dn`q)2=2_euDzM50`Hysst^yEW!ANksGSOO4657?Q+3Z;@nzyR z7w$X2bf(U10^UD}@Dux9@A>Lc^Kd@2gP2iqr49xt{#ZJ0iT4jdS_#c5g4&dcmiD!X zwY_X|^aajtiO<#7_kBv-h7tQ%D82%n+gyPJAXhbMBHm#`H#rr6>wXc|p;jv#YGHoM zm+R0J0`dzOqwE5Iyg>`hn^rL$?)1F7n;x8s2_rx6XA~+%P0&B>jHuEv#6cb=!Uax- zhl^yHg5faiWkq_}_(b!BuVi19;0IH@0R(`2!Zasamv&g&b)G&NKv|cae|})s_7Cmr zk{Lh-L9`iH8uOg9!|W`IA@$(_7b{R}rB@4W0;_S0!F`sX^1eP;Pc4Yf=+PMsRWkP3 z4cQUPFrYLb#pySHq4^9(cr2o05)ki1aigLv2E24vpS(5GBF4up)IGkM=cF9zczUNh(KL z>ACN1=td#Br>J&d3@a^EV&1;3hWp8SZA8b?KFq_k2!wMF8TmCzlr>hLWCaGN#I`2G zKKlm_RxH^6qTs0PPAhEl0u0Ud>lo znIkt_t1~O@bY|jj+yPvDI&@Iy529=|71ps z%AwnmTz@l$SI&Ze8Bcp;ADn!`ZF`(N))jgejp#X}6&VnhjOBtVn#8M3u=X38{QirL z#0J|MC_MaZI6Z8JXbq6kzQPfg@o?UN9rw)Wi$^}NiCW209yF|8LRQ_{PUj_ zZ5Re!g_(PM+39k!ZXk0N95ZM*pfzIT$g4mdB58<<{qdtt!AcKkq2hsrX;P%BrTU2} zgGWu-B5C-O|8q27vH&`nw%$^9Hq*%Pm7$Cu62T&(^?L>@^OhyMc>ot+)q*n<-}UAG z?(f%Q3@Q*PhW`)%8jBGNj*hIjFcD1hY4d{-BhEQwsEb_|?}(RkIwVy6meQwP$35Mf z8sqk~aDTI}_0MEmna_9VyH*R`aWYYqodR`Phlxgr-#BZbgBMx#rHK z$WieJTGZ0*+Nz&q^Y}Mt{wL)L4c-fXF`D5#`!Sl+*`!#mV7g+tU7gSOgF^+3VN`6~ z-DVmPXd~36iGz^#0wb|(wJcjyp|$&} z&N!`twh`Pcoo4nz6m;a1Fc@4C?$tS$iJM))| zN`r|U{IgTG9B0csg;D83g`J&~WFJZ@Cy5_PQy=z;T2M=H zpN^^n+}jhJ-8t@N{uW5mEFv~5-} zry<;=jd9*WPG0Xjp#}g88!b=q{lBW;@avUODHQ&?^y_Aj1Tt@KT zp=ZAm8@eStpphRT|3a=`BSq;@K3J_&?5eQ3IyZ=D&;#0j2`d@B+H$H zIrGh&IBkM(<=SpnwUHfSLp#^}@VLD~GALT>%O2K|*M+TH^24?c@W)!27RsNtTlfqUF?rbmfr|L63yo1G1I~%UYYAuf{oj z);DE>rVbY+RIP+u?Bud&tZ`!aq6T%4W$y~^CfUr^&j(xpQvHC@oOst_HBe`oQb!`C7p^&^_vOWhihXMT5aJS~GjI|C_hn}VWab_Uy8E2Gy zv+-x5wDj2Qwb!3RS@Y+EO~Z;Kdp1A8^2JoQUT6!$q_Cl1IQJN~Xj=p4t`k+AE}dsKV~bIp%UQ z6=+Wzv_~pGf1Y>ZuXh2I<=h$E@bWQ)=hGR)yx6$}sIY7Xkf9bNZ*P_&x`Z6jole_N zOzTX~6u`3m+nK&>^<~f2K<)oSgX3C0B&(7!JAb{pW_x^fPLG)U*hxb5#}t>MV>0fd zv5{Wln=$Gv)sg0&^J}VRvFZ;aYZjsak#R8|j9ZA{V?Mj3(?)2yIVkMCNMY{}TPOco zBiCLM3rYsllRj=vv+|h=qkx4rmm`rrS~+o1U0|l*;kBUId_3kqnp}#JM?#-#Y|CLi zneXA0_Jkm`+o{ep7RLKLwbWU1Ken`5W#eD z`9C9BUr%=Hu-B3H8*nR-1(?DgA6)~XH&xRiQ*y?UC12j@&G2oK*( zy+6O%%;Dz7rJ6s5+^z26ETJ^Ya^GisPW;@v%QRs3t5bmf}AI(OURc#Hp#EyUpn#2_O(6BOy8)J%Erx zvGOq1;9fLom3eus4Jy8$>~d=ktVe+ig!9zCvq5n zE;l}c=E(67?1O3qj3`Y&D#2)FQ!uh(rOj2@-D|bl@eUb^Z|(mXEQ5cl?`$_Xcq>NE zS}f-dBX${ApaI3`fE4|49w7L8)MWFUWHeEu>NoRzS{YYEik6 zll!%c3VZwLOOD_}bW?SiSWMO8wI2zmS!3CBu<=DSqgFL2;mcNh7M8GR`VId93h&fY zCaf=#u>%uO7rrICRl+KwxeIA-M3+mQsLtW@U*&bRRJ5FziN`Bki_PNJCML7m$aP<7K7f2(Y|#cI~^k|jPOE6l!{GP2R~)}nK-ya@z?)=&HRJQ+OdT= zkwb|;W6<0IL_wP%M$Xx0FumR5S!21Ef3qL`kSpaF%0(q~33JcFMiR~j9gtc-JCJR? z>1mg%PIIYgdv}6Pi^p4TxgV(=Lj0NYYHUB7ykv9|m-=Ah_%Vw6Ey!apg#_7>yj@?|PND`p`zNI?+DE!>vD;rL_&WBBmbc1tai|%RHPA*9n+jjf6A4 z#G(3Tj^Ig?eVI0 zu&p~)2=Eag`LjS&SYAx{qfT_gL2V_y-gr^jpl5DfyiY<>P)psFix$zk&?}D=!8ME~k=^N(}O4Oa>C&_AiBFJ?>|uph{;+8 zJuXinHmt+w5gLrTgy@cTOU@-Qz>!k$2Zj?AE>?QjLdyqo%501xIEk=E)Unlie@(Ie z3fSfJ)Qf9wU_&#m&H=Y6+133M0l_*~h^lLm^|QkbBX^{9=<57fJhQz!Nr&e%^@W_2 zTwA;Lj$C9Q=O&?`zpgqXi=v_(3g3FpD3{Q|PI9VV?8v~86XJYKK)THXhz<$4w}&%R zKg}0h`)pM9KKbSDWdIC>e}ja75T!Ap{IU^UB3?d(rGLsd*;fxQ@7F$;uT7ArMLZjR zc7IW%{uT^HB%JOM*!5C}h&`>b9{1%(FzqL;v65IKku2<-^dl=Lw=w5Pmq`y|s{0qfOa7J@WeEXcN zzL4f@v|$m~Q6_Jep{{njXiuKroDhd@TPsy!?fD_Z0(cUJu*hlSe4tH&kqRe$hDuY* zs#muk^qJuA+2p>>xt#osPUcFH?>Z?NkS>Q1gW14k4G*8>ef?kq@E)OK&q+u?LdI!) zRGBR|B;xd7%K?PANS~iRE&nigRnPUr5OPRFdry!IPVQY+As{9Ui9KvOC>ag;Tp2RJ z&EtN_IqHn;0%MEELlh40pZCbmva%dqgz=$p?nNg)ZC#Z3!(QiY)07_5aMfd``S0Dx z4kpb{6Qaq^Qfl@G+S&?E529Da=#>!dKRVoz*4wctAcR!gygqxA*8ybRR!jNd1P6KM zw_vnxAffW3Wz}w~tE$^hrA&%+EZpyj$rvYMYbmUa^fRqAT49Lx>i>LGXF0s?a@N{um!>E zM9b+Fc=i6D`{3>4m8uTK&|MP#A*74%@-pRN?6K&tqD@;0jldzsfAa_}|6!$}LZoeW zK}{G^(d-g268}zEFe^L}jM|{9?aW)f-Y+JHI;Ru!XN;L^YjmnIgJx}VLSZG9S7~k0 z8W&MWpAG7jP&0I#WpHkII4YV*484WZ(B)vn8w?Chh~Cta7E-dl)D{~-rZZ$&1XN8&o2C)^Wy)rsSkaM7_P9;M~$~!3& zV)SA;RiCO&jP{nP9YoeC3CK4ZX+YQBqw>n@G;ZFd2Nl!N5@VHX)VGgH+6^r5jF?2B z9#Mkav`xE?8nl}*ye+|r5jzMXV}<*z>I#OH3DG&-aSX^-v>~V0+MB)rrwSNk8?>A*o zJjzC?b+se~6X8~xT>g~eQHS*hf;gC>#QzhTH#!5MPG7S}isD}?iQ1NRWQq+|YvB;@$BknHNDqU0Ci+hW-5Cm0@x19G(LRXovU2*a2A*VKgOkqvV_q3y9HXpqSJ<6eZdV zfJuH_!ry+lguHtgNwqN4i#kb9DdipOhxwJFFo2`7fwjmLX7I(Cw`yCOIE2*S>=%5e zS4?Fo={t8a@!j`p^gj3RKlhk2fV6YAf=CmwVcIw2{c)mpA@9z&nNF@i zX`2;!7mg`D5hCFkplWym&l%u`V~uNi3?rta-Nt`BtU4NrnL<{A5G{tiBV{5D>jmBQ zIReJug$7Ex;dxy5`!tj);ifi{mPGZlGFt6AzD|9d5F=8QN82S>{S{vE>fO6hGHeV~ zOHhUVlWwUBQPf#6xeU7EV#@MB+KU`2;z68fAq?lfiFoOXlPG3pghf^xRq!CKsN;Ls z<&e#z`z)ZPv_SB>d+xxH{!zI=Vz4=|>$L2G)9ef7SD290!7C-0QgFLE7xCQ=Bf+Ju zrf%SsLKF=Ww~tHSf6Psy3clyTG~QiO_iOq>TP>j>u2$nJlbJw6r>)M-7fbqr!Auzp ztILyhFY6Zg-UkI4==et_U&8YTz*&xTp8-tL(KTF|^n{L2R3e?xQ3Wb5mIFNTj~zl0 z*{Hk~$I3kUYqeSC6VAz`;fqH`Q~=a57V`~8V5#sZxd5in=-d0`N(+j;@33z+m_K(>3K0FXd??UIhNku`KA-u=0{dnGuto)s%kO_-!Lu%>K-r) zoV=O>m8vFEZ%)za=&rirqT;ZEmYeOJKPf|Q)kl}(v~W2tX`{Lu(~6opZF4me=k;P0 z6#AOKD6MhfnPEk)X$R>LPA4ZL{(S`is}TIHwpWkJC;U#Y*E-br%&v@kc_48T;|6*R z(98v<$&a8xe^yi%W^}d+QSiu@-OD|=(I8_Dl#-AmnKDs`>G%<=)E1dV(ax93a2Ta< z2LBcD(z&13A&?IA0qAsZ3?`oBX+T1@zDDmhu&HkLqIMVj$<)mLIBp?L^2G^Aj`NuX z*v1N;+9(#2Ii2J(DM?pF7;r@;MNf}!uM>Q@5^_s_hS=6w88tw$F}A^3g&~A@WQw*h zk9S5{fX(gW4EJMVEa#ZdZa9F_qU7ihI5j}xh>{2SAUxh+Mn<=DNC*vr;tI%s`RRkN%@)(B69Cin93OxEnM}NNYGh z^%LQJGevtxluBRioo}I-(A37p#$$WS_ghJkJgOHHa|J|0)M6jmZ||{^USaGyyXA8- z(u_v(feMNir}s%r9m7)s7Cv`?e~L8Y+JMbTD`<1)UOo2JaYP&oxe3t#aHej9a%BGX z?5|DJNhV)f{C(>`&aM0oL};uM3XU*!n60T8O2f4~cBDM>eTSf+farwI-T#(Jm>(miI`yK&hq2GRdV6pV|L#91gP}41fI{q}#8gI~ z;XHzKeTi=o1WJ6j?_Arwm=(0GbDoKOC%D640&?diG3C}PD5CYvZTNdyE-Ep6wBpba z(R#hJN}>+my;kyt6< z-=ZNYO-%gSl|#j@`*6A^Lx@0~vBcaMwy66czN?Q_Dlc8zHrQ9MaYu@h!c5(%z=`Vl z)<#a25+-v#xFcuH!#B~uIEPLyM>!k^OXtIglFQPYURo_e*v3$Lk*`)pzyE4mD! z6b9+q=OV`Z%7@e%mu*XNA^rN<{)!*e%tV~&sxUV}*P4Liy~E&*lSs+zA;dMjOH)w9 zU}CmQPw4&ZomD@UZS!-O)SEX_pbY4+fFv{)yVdQ+Hmbt0`+k#S_sm#9sZvlFt*JD~ z^EH-Xp@sse)?NVP=f@>0g_xz;s06C6ykXM2r1m*FefFCQBxcHMbEvhLG`~IUH>D)N z&?tXMLI-wjJuTEjWKk?cKM1rE@Oeyiqn^b=h~6_lhms)3W9P3 zhNXy?WuL6092%BlivMEukjxmgtQ>kJVsafgBgj$-=#LomM+M4%Bt#J>mF3?&dsMP% ziKBI$pe*{f(@m)TZ)1e(c0^&o=F>9Vtx|8MYfpNe-iJ{O6twcC{oxWr?OT}bqvh+Q z)bvGIvLPS;c-VXs#X@Y(o{)d#u_L?P`EOcBWhk-pB#t}u6;wXgt3otMN?ki+gXT0g z&J|GuR#{qwwQG_?M-T@wvGMPg@VUrj3bNcS-L?i^suM(gD&7Yrd)`psY#2RFvOn~obZsVzO6)2V2h1^6rW!~p&eX1T1@CYsBFh#O6nkCt( z>N6r(=2LMz^7&`b^sZy$nKKz7*HN%0H-#J35nD3LJZ5UUBDI@&_qk_+yTrIbOt!Zn zOzq?40#BJWeD}g*$+?95w>Xo1TU*|wOmGmeK%TKs?S!oVH(Vj5sDJ`$Q$+UWhmhQe z^EXEsNOG*ZveDRHCa;n*H7>G&jNq$l`~FjY_?AgZ+Nbq5dgZ=*d-dFK^l>Ipy##~D zW5)13pmTnGYKmpX?Q>=uInq;r$JzCfT_H+bFGL#84#!mBuu(J_{$R?XVzn=qhZ&KV z6DG7)Id4PYrLav2yfimDki%sM6?%=s%A(P73QBJr$ zU6P2a>g7_{A@8VLd03n%x_sxt|Icy^1Wq@lL?t*P<4p)FfjUP}Ihzvw^172smU93D zDed(4GlvkMiLD@RL!!RC!`QfQd;UgLSEusVZy0J1V%)Af*Xiy@q`rIbG>oR8$<*T+cSf zNd-&4N3l7tY%fQz8#1oGZ=kNqj2x5^^zzzQ+CS6je+l3&y#T>S z9=3~$mc(oZY*i0+ZlZq-!wr?cYqauWx|@gZ&yZA55K*0&lu3AdrR0xS-u9f{Wy2+6 z_ZNZxurDAt_+Y1XghvH={E|jl@?}GN`~NeU>H4M|J$84PCsF-B0(nv`0*u>V ziR-pd-uvagpZau52x-wmoYQwPsKKbH1x3*6fFf`+Y*X`pzUELAZ+Da6>Pa`K?Ywc) z2We3gb_iMsn|IaRL01#DgWSmkvgh9@x7VGjhj;*9$linFlyd~WLL?YDY~x&=W*!Mp zBpcCe8b4pDS1VW{)Ar(n)awW;hb449cn#%rcQ|f-SS|9jTzu8)qD(5)nKIw1lI~{H zQpg*@pkAW8&)>cZg|Ni#@$%kMrI!pj)VRr{!+NzckExl_L4f4ZsNhM)ulzYEbl+dk z?vlE!+7(aYlhJ0zA0QoIVJ}LIM(#-5Y=T37875r{k(b?5Jy%E5W>Qag_t^ZrYkom& zs}v>+7u_e_VE09n60Dnx)qyk{AC%#|nj39q$7qMpY zPuzu^#bguPEcoUW_>O8msa@uJxNnox6kT^B;ixcvczxbo)a8sgs}&uA!NiMf6npGQ z%gO}6WmVR4j4k8EE_J!yIs60?vGojok_!FWw_mTW5NAz_oZMQq>W-Y+)0vbb(0P01 zsL>B5Whhj4bF8tT8=$-spZ;0T9h0*CWF?BnPL>v{ zJcChJBYTMIbjnlZ)VJ zqZ-lKZ1zjLhpOS9$VmWS2!$JZlp=&VPdip@V&qV!P&g~5P$vb>*8b|RHnQlB%_g&b z?sWq8+TDT=|7cvRz-jMUgNS31Y?d+!`fXQav7wuNL{T zN?6D$P!oxanO->V+K9=GAc}!u?pG&rXPQ&?b@)sfK}c$tXGI8q<44CzCwP$$K;v>k zL)IhkL!)90Dxm@PJLwnShw~u%6=wl_{&==KbYI1rSm4OeW>vDs!`K;cSjQ;)+wwD* zZLnV#(Y)s<^>{OKsuS48dbTZvzR&ULN_d(Dl^<}aitPPXJ2d+YwNPoO3wh`F=SFm} zTa!>2@O1`5s+n3C&T$mS@>f%rH-=DG&qbQQ$r-2P17u**FCyASAz{`;S&ShKV^Pq z5c2=T_4DrGIuW+II~ENJAsws_g_jjcuj+#q|GAOe-*;L-6AiDDtXI`Lp*<<;kLk>r zD&nQu9}167*l0TY<|tbcZ`rH}ElM<^h;aBw2mdZuV@&-O~1`dFwG7B6HYU}7=WoX}#&C%JJ|#nZ{y zpc%8xea?sKgnH!Pcqr&$;UgYD;8Tp&e~8IS0Mnq~!FdD=`1*w7y=3z_)+)gyeM>uj z$mIz=CMOoQuY9je5EW?oQM+O^NF7+;i`0Tya}7<~lbI=*o#+d<8^u75@xCQ9LElgd zbtN=4Za8kT?mAPqFF7OJI{eb*st$N{3xWvA;Wtl_0%nM~2laFwaScbTw|sbnpD z{mxGW?Bmmr_`ZG2QtArjw`&dQGL!%EP~d9@a?<;qk=LR3X(3ecz00?5=~k{;nV+-K zaesS)%CkLf%Xiqy)njmoaq9nz3Q*$nQbf^f%iC9arGC|%w9qlQbIRsvn%*PAO6@-` z6z%M=5n$j|G%lc%-wn^7KilnT+Q&=#tad?XZgT|SFLSg3+R1`Knw|db##^n7`R&PP zcecr&Wx4T`4XK(17BJvJgxcJ9O!&(N$(8b{NHM_L6ojzm`qL&HI^lx zk9{#GYr@S-CyPDS@SkoiiaPNSpBgxy{k>2WbMXBrSP@j0m!THzmViFiklu5v?j|+2 z(M$7hqbbR1`StzFj3El&)>3fZamOB|XaF6r+5!HX9hI4OtK+50Cl-s3H_v@NYgv>d ze|}LcI^JmNd1r*Dchm??>5KC>x6HWb&>TA7usheVqp2=@P}gidvl*e+(m#DKoBc-5 zOvhgRb8cyXc75ZbmHX?ODytN>)VmBZ|$xzJvL0X)KVN9BMRT#jFf9Y zxE<|<6E=JhO#Y0<{py&{yFzQnvn;m_&fb@>5kR8juaPmzrpYO$qn*O_(_X}_3Tu8$ zou%f5@jRCgt~Uny1>r( zN;*`43lcAd9hRC$Iu8&Hk{vlV#A@q0+#M)rV?%AU1p6o8_P*xc?i~Ec0h~!|?aOR? z_cV+-15Z{fG}mFchXhF+M5u#^x65^%YRBT0^zN5xI`@1V;PeZV`W4560ED3Jo|fEV zDYogJ_4v7U9rL&r;kmFcB|LT6_ZTwy(SW^}Fep0QTyJ=QqFF738sGZMaZ`y2?C4*7 zIa$S4o-wFM4_`<-P;Q*P@g^&nBf*4!P#>TVnDlgQN?djK1tHRf)ToeRx+Nk3%`xrT z2lqEqz4bZ$4j1t(M-e|+VQKGkEgB^4B#Q})HyLVw2MJ_r{8R3~^!1Eo6)0>M^q$wL z5RBXaU)Rao<+JWv@Pjk5bpMrij=VRvQs$de>ygbs0=QNgw=(Pzto(BYUOBYz7`o7R z6s&OYmJx!((0^BUd;C!wIt=I5<`VPlsxRjVhI@`{&z|dX7^y4I3#kyGguhJ|Svq;U z{hzUJMs{#Ng9r(tGNUN!KTkm8i;;H8?$Ff4lKU@??_w4%%*zg9VcLdWDd2bb#;>Px zUXR!}x3q^J!hEA9al1#kGrA@5adQB>fXgtT58MIHiy1u8(;~j_D%EW_QPB!`yFMyo zfd6Gr+_nOgZi+$ja+Fj{euE{8za?MZR=5a0hpo6kO&Lw~6GrXSMKAtwWCzfyI-G_c zZOP;G*=6CNm`-Y4wQpb4M`fS&1e|bLBIjwcX_F*WTQqylMfx2cl6dzU^M}}(l2xo9 zn1qdkekqGQATfZj$nl6mDET{P`X^S0C!e# zTTzJC!kKy>JS2VLzC(N=v+T!{l&gOoeQhqNXPh;6u!v*@07LSq~%RCY#->jPWbC-?OJ6?EWBwa3Lz)P5d7KrZ)Do+E+A z#%=h9ShczbuAJ37=gesDW(?bRB<*ow+>=^!A+iL~$RCHQ!oM&Ks}R|ref6?GlX_O& zoY6fR1KIa)PTTxRh^9MB(SJ;cOA){oTxHxMn*0H_sKfWDS~de()OhOf1yJ~>Q1$VY zw!6?*al-l}2pb&$A(J5+eU}Ip5OEHlc=wn2h2;pwNS4;AuWmbu4lzyxl5{tojiT2@ zw&U?%gT0&AePF(@i+I@=8UYvIdKMVS`HqSffTAc`2#3Xk-#GiVSYM8?9o=IyP;Kk_ zjB(Ch>;&bBpbj{c77HgUej*}EkIw3a^D*$Va0dPjezA79`^jCq#b@9f`}$ZIIG)vE z_)4U)1N^PO8tZ#=RCf%t&q>VVEq7f8SBp`xJ7MeIBA|N0tgP{ROh{&V} zZK6>S6l_pN0R_}X5Co(dy8FI!Z&d*%?_2L%>-~5uZ*{MQEE2S zqR_W4T;O1DDo-G90e}?0V#8F690btq90;PmXr@7^6bCuuNlbolV_|&y3;y!z9nfVO z_U)3a{h@;V^Fqtg(zo5|EQ!xjH{#D!t+PceY@fHr@IDSPH zfle|F7n;D6TmWm)D44Bz!uFdwfxBbPoHohe^>-^ggZ~KA5>%G^?7vS7p|ZoxCni0M zi4dXo=(dQ(@|+JpPx-fRf7(k5(jgR}{nf_gctHRJlrT@Oeo4N5q%peDw6Xn~m3NO< zUfwP!(g*Et3lMC286bLpcaPYkGuqwf;ZW*ye~HUb20-}f>Ml5`wMsZjW=Qt%Iqt(H z?5Y-O0&|871vD6ByTi!4dSeZ$GQ6Fdw|w~gE~$!JZMUv{X+@C3+u1&X3w}YlHRBv- zT;Jm9By>!6_j|7`-q#r|!&+fo5u}B^gQy#f00%0=hzYs6%D$g<`;d3;TUHI-%O4NJnK}jfZ5^YFA?!R?>3oR2FPt=0|WllNZfgR zjE>J@iy*)0#*eB(MYAQKu-nJdjC=zu({f>m0O&30&N4n}x4viNzI|dJuav^p*FpkO zOc)Iyl{$I%kdB`P+ zm+VHi0~7nj#R*yZ08$BaaqB+qM=BMVfeGhxTr+kN=bXY{6-(_NocJ^*FQwZhw=A*L zT#__JE#ZC?!b-(e$cPa(aMJECqYKfnvW$+ki~%s zP-())i8uRTr_dS8y-~YmO}?(S@?tq7HSfQysJ5FqME(?e7T;rBvBEI~zyjD9T*lDy z8}~7lrt3RhSJ)cgbo_F8>(QBZUFlY1Wd}Om&R^(OvFC_1>%2qmj2U6l&DRC(2aH8q z-q2=H{|d152g_c@mugR-hB6!@!)OxbHA7ZYk2Q&Q7Q4X5B9gSVUyYcI@Kke{g~5jG zVbO4t<34REKi58&KErU4NqF^tIyf!d6%?{E|-3i zm;Yu=cg9`iXqXllgb^|0d#ClZ5E=I}E>M5Jb*4@A2Dv8?$HcTUrx}eQhzrI5d`=CWhl#p{ zFrn+L@RYOeQ<&*-@5!w$I#$m&5!ks#=l3x(s zG)pFs6|EI{^=uWda$V=`EaQvmrbDMnp9Qypx{h9tHFiz*W$$WuxS;1Eh6W7e>8l+8 zI4M)o`m2T^;S&O+w&b|7O%@aF$MLaCw&3gnI%+1SYC&&6nJ6_mNsmkC1hiwL#V6Fp zV?M5y*$-{ylXQ1>A2vdNB&J+>k)gM{+9~pDr^FGeIm^8}y;d1`G-^k#oga+G8(BjO zN^^?vdVToFus=5M7VK>tBF?G*LfkIpSqe9(=f&35S?QqX4&<;8G zLeHsYTdKR-+$G1fR+x*=trKUro$9D;)mB~8tD@>%e`ti^KHEdA4`Gt)&vsW!_ex=M zOFH?jsZKx7KT%sySUY%mh0C!q5esz2XLUqK zM?TZk&iL7WYlEpgBVkm4`BrNmr_%Fh>pdDZyPq94+g!eP`d3DlH;=EIu|X>-B6@a) zdGcT-!OrgK)9rebMtHsB*_R~+Ig|t^J79NNW0|v8Pnol-s{RZ3(^Z;2B4~%VR5F}p zI6+CoDY*tTsuLmlf)0syLz*pZi~RF3$|j}23N9&qNA{Pz{=aYU?!d zYS>nyT{!sBaliw6pQW+Pf_{G@Sui8XZCm!S%$0^NxtAhbavx-3Pe4Q3`|v+?u4Ydf zo-W_;GN&uJprXqs^5)A7J%@+M4sDH+hR6n&ykGEFm`h$}gNl90uc3O|ADer5KQ>pr zR(pCxRJPrrN7cGNZ)=HIINQU#`_vix*&cbZH+mh4s$_bb-tJRPuRk>+a9m2$xe>{} ziI0n)pviG_rKZue7B+v)tWGs+IqBz{ArtkmJfa~FH~s*lY4*OJD-pm7q5>}$!s zQ?_jEHod1NGc{Gu)`<(MPU6Ycufmfw22&>hJS+q(1@jm%DcbT}B= zV+iH(?4+hECt&_H^VN$l-(Jj^xJzE`-QEfEw7Qo~m-P*IJ(YXUuG^}1L0@)TC-O`E z_nWe(yM`)1IXgzubl$eD>A9^rj?c*KMOTXob_hZPglP;A^#KqjP{fn}a1!WCVIHpQ zlq2ORuc4(utHn=OxMt1h?iTzg1j^(vi5gVusIWMX9(5GfOrtvV0>*Z&vQ1k?;voV}pCTlz7j1Rd8< z!~SgB1wHO)*SZo5p-hdQIa}IPDIRAgU|kU;g^@R zw0+uF-ooY0n@|Gc$Q?*Y4HG44uFwBR*%4e;F({Y#AG$l3Po7fLNdvRRiJnRK0Nvum z6+oMSRsnTow=`^92|DXuCA^+RTv>a!@p0BU)&qtF@DPORaV#$YO2$ArId30&KFEG7 zhCZlVFtPp^lui7PS&9$;`onCC#^#)TJ*ZgF%6Vs_7 zTMl*>bZV-_EO3M*NJ`j0p(=QF4|Jd0E=rd1s=)_O?4C@qQeD@la5~SaLz87O2@LR3 zT8f|m+?V6)Sx=_OQ~e30V8V)cFrN*gK!VZAc0G6knEP)vl4`Ps-aG+}*aBF|$ugO% zggoL%045To-`dh@*&4?a+sT9r%luDHGW{>?2|4C8n zj^;!izEp``0o4j^PheDtADH3P{u)2R{#!xQ9iSg8Q7B-?DI5z(XTpS;J_#bDU7jyj zN@pxB43=Rek1zmPhWM-H{OH#_gEoMJ@bYJMd5)TH*N4|%4U2)N(*W;H+O;H1jNHYL zA^*;CGC<y{V>2?q%1?t`q96oE)= z;Rlq`ffK<9s7rYD!Os+zP9G3M5}zNvyi#r#GZb^$aMtiGz<(W69dYUN@T+r`yhldv40S3$`kmn$9~AVvt$T}epJBG4FwYDc4LyHG19KGm?`KP zlj0bog#Rl0ydx0+H955(zJ^Y8emmJDL(j<}Hj_^C(M}T?~o{v>i$(x<7VfN}v-}fgBtf^u)IfiP4j2bC^yg(Ls3z^w|PA zEqP)V$nt^KfLj9O9DTEmwsZJ-AEyOq`#$D*FnUX_t%Czx*Zq19f_nsd0+*nYrY- z=uRctcOR*%_rQu7k`;sE6~Brebi7_OD>=DmMJX#Pgd!P~&;CUGL4v@*ka3X}3cJM><|q=>PnKrWhFdb>(~C0tyH(94(D4Grc7FlP ze+mR6BSZj82Dtr`SQk2TXv~dpm!FFlj354!38a96e<$XbRJffl!*XHV1%9#aTodgv z0e=d%-WvzxXJH3KbF_C^udo8Dcp_q8g5y+cD4~eA19tRE_@FpBcH+RtMszW5-?!>S zo?g_;>%g=ds5T*qIh=1sKB6~PZg|cBxF#5w;R}w#O3vQYWsTq$k$e0CslKhkUYY*`>2 ze4-6zqQxX|y~cgGkH!Z3t7GXc>ly>^;98L=o z-!mfpW`Z|iMg)k2V@TFSCt3MqGCWbvEESLAhfC_WgZH^Ys)X-HJgtN-Jzo ziQ5V=gYbs^P2G?f8;u=WmLw-h#pwn23TU5-U8bCk?Vv&k)E?Co3VX~YT9D_s< z@xgmRTw6q%%v*7&i-;OwD6erQqP_jaxch)x7mFrSCrg2XfL|fKhL4(ICi}jLyvm;} zqG!Aw+uiadUa8vWlkhi+a$W|)!Ia(d_YvpePbl`@}VYcvOIU`TFv-*EPPCNbBib0*T4TWN;rbaVGhE%-~c|Sn)Dt!U7OS ztCq2G^yz?L!6XN;T|!)ul|Zn7naEB|tcM-%;*2U2(e=9fXy#!YY(NZ#il+!e?G_l@ zfUT^BIO1y$FJzXiB6E$mRrFg!+jQN%H5X;bg3B2Lq)&{?nFZ9)6WRzpA)*XrGEd!x z3dFb&;em$&8DLZ>j>%sCAV2^FIa`c)m9iaPZg;;OiSYZkj-AL{Mo@4{Qk-D>x+pcf z_DHgC)j+`aI2cHLkJJ8H?lU9JDg&Yj%3=~OY63J!Xn4W>o65nDS(9nYrKl=1FQ_(O3 zQ@J4tp?g`#aC=Kq<`%oiIgN|Uv)hzmO~|>ynb5_W+pi=>gXa<;CrF5ko$-!l?74^( zui)D@j+oknCHvckb>SR_pFVlWrQf?ukSL2*5u;ob2+9WgFQh~2}#6#j^bY)iLs z@HG+_Jh~vp`&EvS*X!@Rwm+F)^~fN#W!87Sg<<7|O~DWI zkv6nV3Htm3>x=tJVRD!lvkyR00zqJ!2P9<1ax%c>^S6laz&=>k+2hI zEJ(ophrJjEMi)^25Wk5zU=Hg5W>v6tbW_2eqfgcccX-)q_|<-5p8qINTJsH#JF)Ml zFyUwK>y+8;0zo^aDx#CD&i=Mxm9ZpgXH9D)2%R`+PBx1$1(KNN(n=U*36@%(824vz z+Q*0wlO-QaUN}!&77RN;4yy`eUX@!P`B%Y{5uZjTYixOytm)Ui@o1orwJ57I6bw4> za2R+Mbuu&}Wi)DSY3K%@QuL_pU{k~i`0Z1?sX?@Lk?yz=&lZ| zy-tCi7bb;B)v4@a+AB1Ib{8paA$|^mXUkb3p({T{nbwFLR})e&*id8cj|q2=-CTkn zQ~|Hnu8H^?MIBj@4T{%=$Z*Q=b_tq?FO#tKX2bJ!!q zEQU8B5@2Q(99$+>F@z_aYnl%>T28u0f?*6TPp=;@S9i*I=bY!eE7AVAkM)nnN|pw* z<@f^pk1(i~N;R9`Y+&XjF4l7_+O6kN6`<$$@|(3cn~q(%DmQz^a!mt|bs~~z;UvIB z%OF?&x_dj-Ohy`Bg5uM?#I+VDgPJIU5=oHs#=WAM;Yt4 zB#6S*E*9e7g_ao=%JKP@Etc3R*) zGPiCC4tWx9r8g|gY^I@Bn+vImO?E6|uG)Wz&X=KA&UJ>^u9@t$*f`#=bfGBc%|vmD z&vExgW7A{#Q!VmttBM?IM~D~r2D_`@SYfe5Cn9?EQ_I3_Pc382buG$Ez7iXznR@fD z23Hr4>M2MH+t=P{DfCi`uetT}^0_Usr*!5`^Ba-<@@?>h*%_MCqi$@l*tRPo$!4xa z#L+iz0+UZ!$3<8?zMv`EoNFci+CE{-DgLQjDXt+ko~P>F)ivfnQ!@8Rj1GBrEz7<> zHKOBq!D|rV!OQ>tXUs-r*S~^dK?L)2>PHOi%l==-K@3;I{#Z1G-BHZXv7b(4{|EVI zGR|b+kN$K02mVMoQ;IhpxFG+FrLINWN>4c9f9#X@F3!sL7Y_ITsBdwH^xeU+eRpe< z3HQ#5UsNm)yB8FjLUCr;t)Pe$iulN`fFgZxTR{;Y74cCKAISqO!3@QKJ4o>X`4- uo9;tVAOCLt{lXQBGp;z}|IjnOpSoL{G%sPUycmA~^TpQRCoS4^;J*NcO*NJP literal 0 HcmV?d00001 diff --git a/src/splashscreens/ipadpro2_splash_l.png b/src/splashscreens/ipadpro2_splash_l.png new file mode 100644 index 0000000000000000000000000000000000000000..588902a2b11e245b70891f8ab006bfe66e1c28fa GIT binary patch literal 53247 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 A3IG5A literal 0 HcmV?d00001 diff --git a/src/splashscreens/ipadpro3_splash_l.png b/src/splashscreens/ipadpro3_splash_l.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b6c569044fcd00d5c61210c5c13bd2de528137 GIT binary patch literal 47044 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 literal 0 HcmV?d00001 diff --git a/src/splashscreens/iphone5_splash_l.png b/src/splashscreens/iphone5_splash_l.png new file mode 100644 index 0000000000000000000000000000000000000000..28fa8838e12158ec07a6912c1ae2ab97f77a2da9 GIT binary patch literal 32486 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%0D(mI=mwEfO2f~}pD&Gp%eQw3wy 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 z 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 QHwx_sdiM*|pS}M70PjWv0ssI2 literal 0 HcmV?d00001 diff --git a/src/splashscreens/iphonex_splash.png b/src/splashscreens/iphonex_splash.png new file mode 100755 index 0000000000000000000000000000000000000000..2d9698c287839593b723dac5d25f721ada9e4edc GIT binary patch literal 42405 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ÐYy9 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 literal 0 HcmV?d00001 diff --git a/src/splashscreens/iphonexr_splash.png b/src/splashscreens/iphonexr_splash.png new file mode 100755 index 0000000000000000000000000000000000000000..0f911eb2e889de75b9eb81da45f898655ff10708 GIT binary patch literal 31989 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 Date: Wed, 8 May 2019 07:17:30 +0200 Subject: [PATCH 086/106] Implement `.finally` as `.catch().then` as suggested. --- src/components/appRouter.js | 1 + src/controllers/loginpage.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 66c149b99..d79f3544a 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -342,6 +342,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM hashbang: options.hashbang !== false, enableHistory: enableHistory() }); + }).catch().then(function() { loading.hide(); }); } diff --git a/src/controllers/loginpage.js b/src/controllers/loginpage.js index b87eca9f9..a7acb9713 100644 --- a/src/controllers/loginpage.js +++ b/src/controllers/loginpage.js @@ -156,6 +156,7 @@ define(["apphost", "appSettings", "dom", "connectionManager", "loading", "cardSt view.querySelector("#txtManualName").value = ""; showManualForm(view, false, false); } + }).catch().then(function() { loading.hide(); }); From d641543ff6f160576ee14619e5673e87633cd46a Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 8 May 2019 14:14:32 -0700 Subject: [PATCH 087/106] always show the start task button --- src/controllers/scheduledtaskspage.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/controllers/scheduledtaskspage.js b/src/controllers/scheduledtaskspage.js index 0f0fc715f..4ca89b92d 100644 --- a/src/controllers/scheduledtaskspage.js +++ b/src/controllers/scheduledtaskspage.js @@ -50,8 +50,8 @@ define(["jQuery", "loading", "events", "globalize", "serverNotifications", "huma html += "

"; if (task.State === "Running") { html += ''; - } else { - html += ''; + } else if (task.State === "Idle") { + html += ''; } html += "
"; } @@ -106,13 +106,11 @@ define(["jQuery", "loading", "events", "globalize", "serverNotifications", "huma if (state === "Running") { elem.classList.remove("btnStartTask"); elem.classList.add("btnStopTask"); - elem.classList.remove("hide"); elem.querySelector("i").innerHTML = "stop"; elem.title = globalize.translate("ButtonStop"); - } else { + } else if (state === "Idle") { elem.classList.add("btnStartTask"); elem.classList.remove("btnStopTask"); - elem.classList.add("hide"); elem.querySelector("i").innerHTML = "play_arrow"; elem.title = globalize.translate("ButtonStart"); } From 8bd840bedcab9cae6f53418400efd4799374bc2c Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 2 May 2019 16:03:52 -0700 Subject: [PATCH 088/106] add some error checking to indicators --- src/components/indicators/indicators.js | 58 +++---------------------- 1 file changed, 5 insertions(+), 53 deletions(-) diff --git a/src/components/indicators/indicators.js b/src/components/indicators/indicators.js index 3b6e6baf7..d9c7af1ab 100644 --- a/src/components/indicators/indicators.js +++ b/src/components/indicators/indicators.js @@ -2,7 +2,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun 'use strict'; function enableProgressIndicator(item) { - if (item.MediaType === 'Video') { if (item.Type !== 'TvChannel') { return true; @@ -17,9 +16,7 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function getProgressHtml(pct, options) { - var containerClass = 'itemProgressBar'; - if (options) { if (options.containerClass) { containerClass += ' ' + options.containerClass; @@ -30,9 +27,7 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function getAutoTimeProgressHtml(pct, options, isRecording, start, end) { - var containerClass = 'itemProgressBar'; - if (options) { if (options.containerClass) { containerClass += ' ' + options.containerClass; @@ -40,7 +35,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } var foregroundClass = 'itemProgressBarForeground'; - if (isRecording) { foregroundClass += ' itemProgressBarForeground-recording'; } @@ -49,39 +43,26 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function getProgressBarHtml(item, options) { - var pct; - if (enableProgressIndicator(item) && item.Type !== "Recording") { - var userData = options ? (options.userData || item.UserData) : item.UserData; if (userData) { pct = userData.PlayedPercentage; - if (pct && pct < 100) { - return getProgressHtml(pct, options); } } } if ((item.Type === 'Program' || item.Type === 'Timer' || item.Type === 'Recording') && item.StartDate && item.EndDate) { - var startDate = 0; var endDate = 1; try { - startDate = datetime.parseISO8601Date(item.StartDate).getTime(); - - } catch (err) { - } - - try { - endDate = datetime.parseISO8601Date(item.EndDate).getTime(); - } catch (err) { + console.log(err); } var now = new Date().getTime(); @@ -89,9 +70,7 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun pct = 100 * ((now - startDate) / total); if (pct > 0 && pct < 100) { - var isRecording = item.Type === 'Timer' || item.Type === 'Recording' || item.TimerId; - return getAutoTimeProgressHtml(pct, options, isRecording, startDate, endDate); } } @@ -100,16 +79,12 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function enablePlayedIndicator(item) { - return itemHelper.canMarkPlayed(item); } function getPlayedIndicator(item) { - if (enablePlayedIndicator(item)) { - var userData = item.UserData || {}; - if (userData.UnplayedItemCount) { return '
' + userData.UnplayedItemCount + '
'; } @@ -123,14 +98,11 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function getCountIndicatorHtml(count) { - return '
' + count + '
'; } function getChildCountIndicatorHtml(item, options) { - var minCount = 0; - if (options) { minCount = options.minCount || minCount; } @@ -148,21 +120,15 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun if (item.Type === 'SeriesTimer') { return ''; - } - else if (item.TimerId || item.SeriesTimerId) { - + } else if (item.TimerId || item.SeriesTimerId) { status = item.Status || 'Cancelled'; - } - else if (item.Type === 'Timer') { - + } else if (item.Type === 'Timer') { status = item.Status; - } - else { + } else { return ''; } if (item.SeriesTimerId) { - if (status !== 'Cancelled') { return ''; } @@ -174,7 +140,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function getSyncIndicator(item) { - if (item.SyncPercent === 100) { return '
'; } else if (item.SyncPercent != null) { @@ -185,41 +150,31 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function getTypeIndicator(item) { - if (item.Type === 'Video') { - return '
'; } if (item.Type === 'Folder' || item.Type === 'PhotoAlbum') { - return '
'; } if (item.Type === 'Photo') { - return '
'; - //return '
'; } return ''; } function getMissingIndicator(item) { - if (item.Type === 'Episode' && item.LocationType === 'Virtual') { - if (item.PremiereDate) { try { - var premiereDate = datetime.parseISO8601Date(item.PremiereDate).getTime(); - if (premiereDate > new Date().getTime()) { return '
Unaired
'; } - } catch (err) { + console.log(err); } } - return '
Missing
'; } @@ -229,7 +184,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun var ProgressBarPrototype = Object.create(HTMLDivElement.prototype); function onAutoTimeProgress() { - var start = parseInt(this.getAttribute('data-starttime')); var end = parseInt(this.getAttribute('data-endtime')); @@ -245,7 +199,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } ProgressBarPrototype.attachedCallback = function () { - if (this.timeInterval) { clearInterval(this.timeInterval); } @@ -256,7 +209,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun }; ProgressBarPrototype.detachedCallback = function () { - if (this.timeInterval) { clearInterval(this.timeInterval); this.timeInterval = null; From 073f82f7dea79b368c3cd7e5ac84e4db97c7e512 Mon Sep 17 00:00:00 2001 From: Anthony Lavado Date: Fri, 10 May 2019 00:24:22 -0400 Subject: [PATCH 089/106] Correct the naming of iPad and iPhone Fixes #310. --- src/components/apphost.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/apphost.js b/src/components/apphost.js index 4106cac28..775fc9c7d 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -107,10 +107,10 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet deviceName = browser.tizen ? "Samsung Smart TV" : browser.web0s ? "LG Smart TV" : browser.operaTv ? "Opera TV" : browser.xboxOne ? "Xbox One" : browser.ps4 ? "Sony PS4" : browser.chrome ? "Chrome" : browser.edge ? "Edge" : browser.firefox ? "Firefox" : browser.msie ? "Internet Explorer" : browser.opera ? "Opera" : "Web Browser"; if (browser.ipad) { - deviceName += " Ipad"; + deviceName += " iPad"; } else { if (browser.iphone) { - deviceName += " Iphone"; + deviceName += " iPhone"; } else { if (browser.android) { deviceName += " Android"; From 5fc92c915fb7eb8c632ed2e07d11ad419a175c83 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 6 May 2019 17:26:18 -0700 Subject: [PATCH 090/106] deminify all library related pages --- .../libraryoptionseditor.js | 492 +++++++++++++----- .../libraryoptionseditor.template.html | 5 + .../medialibraryeditor/medialibraryeditor.js | 155 ++++-- src/controllers/medialibrarypage.js | 192 ++++--- 4 files changed, 600 insertions(+), 244 deletions(-) diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.js b/src/components/libraryoptionseditor/libraryoptionseditor.js index 2a12cb3bc..055691adb 100644 --- a/src/components/libraryoptionseditor/libraryoptionseditor.js +++ b/src/components/libraryoptionseditor/libraryoptionseditor.js @@ -3,146 +3,258 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct function populateLanguages(parent) { return ApiClient.getCultures().then(function(languages) { - populateLanguagesIntoSelect(parent.querySelector("#selectLanguage"), languages), populateLanguagesIntoList(parent.querySelector(".subtitleDownloadLanguages"), languages) - }) + populateLanguagesIntoSelect(parent.querySelector("#selectLanguage"), languages); + populateLanguagesIntoList(parent.querySelector(".subtitleDownloadLanguages"), languages); + }); } function populateLanguagesIntoSelect(select, languages) { var html = ""; html += ""; - for (var i = 0, length = languages.length; i < length; i++) { + for (var i = 0; i < languages.length; i++) { var culture = languages[i]; - html += "" + html += ""; } - select.innerHTML = html + select.innerHTML = html; } function populateLanguagesIntoList(element, languages) { - for (var html = "", i = 0, length = languages.length; i < length; i++) { + var html = ""; + for (var i = 0; i < languages.length; i++) { var culture = languages[i]; - html += '" + html += '"; } - element.innerHTML = html + element.innerHTML = html; } function populateCountries(select) { return ApiClient.getCountries().then(function(allCountries) { var html = ""; html += ""; - for (var i = 0, length = allCountries.length; i < length; i++) { + for (var i = 0; i < allCountries.length; i++) { var culture = allCountries[i]; - html += "" + html += ""; } - select.innerHTML = html + select.innerHTML = html; }) } function populateRefreshInterval(select) { var html = ""; - html += "", html += [30, 60, 90].map(function(val) { - return "" - }).join(""), select.innerHTML = html + html += ""; + html += [30, 60, 90].map(function(val) { + return ""; + }).join(""); + select.innerHTML = html; } function renderMetadataReaders(page, plugins) { - var html = "", - elem = page.querySelector(".metadataReaders"); + var html = ""; + var elem = page.querySelector(".metadataReaders"); + if (plugins.length < 1) return elem.innerHTML = "", elem.classList.add("hide"), !1; - html += '

' + globalize.translate("LabelMetadataReaders") + "

", html += '
'; - for (var i = 0, length = plugins.length; i < length; i++) { + html += '

' + globalize.translate("LabelMetadataReaders") + "

"; + html += '
'; + for (var i = 0; i < plugins.length; i++) { var plugin = plugins[i]; - html += '
', html += 'live_tv', html += '
', html += '

', html += plugin.Name, html += "

", html += "
", i > 0 ? html += '' : plugins.length > 1 && (html += ''), html += "
" + html += '
'; + html += 'live_tv'; + html += '
'; + html += '

'; + html += plugin.Name; + html += "

"; + html += "
"; + if (i > 0) { + html += ''; + } else if (plugins.length > 1) { + html += ''; + } + html += "
"; } - return html += "
", html += '
' + globalize.translate("LabelMetadataReadersHelp") + "
", plugins.length < 2 ? elem.classList.add("hide") : elem.classList.remove("hide"), elem.innerHTML = html, !0 + html += "
"; + html += '
' + globalize.translate("LabelMetadataReadersHelp") + "
"; + if (plugins.length < 2) { + elem.classList.add("hide"); + } else { + elem.classList.remove("hide"); + } + elem.innerHTML = html; + return true; } function renderMetadataSavers(page, metadataSavers) { - var html = "", - elem = page.querySelector(".metadataSavers"); - if (!metadataSavers.length) return elem.innerHTML = "", elem.classList.add("hide"), !1; - html += '

' + globalize.translate("LabelMetadataSavers") + "

", html += '
'; - for (var i = 0, length = metadataSavers.length; i < length; i++) { + var html = ""; + var elem = page.querySelector(".metadataSavers"); + if (!metadataSavers.length) return elem.innerHTML = "", elem.classList.add("hide"), false; + html += '

' + globalize.translate("LabelMetadataSavers") + "

"; + html += '
'; + for (var i = 0; i < metadataSavers.length; i++) { var plugin = metadataSavers[i]; - html += '" + html += '"; } - return html += "
", html += '
' + globalize.translate("LabelMetadataSaversHelp") + "
", elem.innerHTML = html, elem.classList.remove("hide"), !0 + html += "
"; + html += '
' + globalize.translate("LabelMetadataSaversHelp") + "
"; + elem.innerHTML = html; + elem.classList.remove("hide"); + return true; } function getMetadataFetchersForTypeHtml(availableTypeOptions, libraryOptionsForType) { - var html = "", - plugins = availableTypeOptions.MetadataFetchers; - if (plugins = getOrderedPlugins(plugins, libraryOptionsForType.MetadataFetcherOrder || []), !plugins.length) return html; - html += '
', html += '

' + globalize.translate("LabelTypeMetadataDownloaders", availableTypeOptions.Type) + "

", html += '
'; - for (var i = 0, length = plugins.length; i < length; i++) { + var html = ""; + var plugins = availableTypeOptions.MetadataFetchers; + + plugins = getOrderedPlugins(plugins, libraryOptionsForType.MetadataFetcherOrder || []); + if (!plugins.length) return html; + + html += '
'; + html += '

' + globalize.translate("LabelTypeMetadataDownloaders", availableTypeOptions.Type) + "

"; + html += '
'; + for (var i = 0; i < plugins.length; i++) { var plugin = plugins[i]; html += '
'; - var isChecked = libraryOptionsForType.MetadataFetchers ? -1 !== libraryOptionsForType.MetadataFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled, - checkedHtml = isChecked ? ' checked="checked"' : ""; - html += '", html += '
', html += '

', html += plugin.Name, html += "

", html += "
", i > 0 ? html += '' : plugins.length > 1 && (html += ''), html += "
" + var isChecked = libraryOptionsForType.MetadataFetchers ? -1 !== libraryOptionsForType.MetadataFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled; + var checkedHtml = isChecked ? ' checked="checked"' : ""; + html += '"; + html += '
'; + html += '

'; + html += plugin.Name; + html += "

"; + html += "
"; + i > 0 ? html += '' : plugins.length > 1 && (html += ''), html += "
" } - return html += "
", html += '
' + globalize.translate("LabelMetadataDownloadersHelp") + "
", html += "
" + html += "
"; + html += '
' + globalize.translate("LabelMetadataDownloadersHelp") + "
"; + html += "
"; + return html; } function getTypeOptions(allOptions, type) { - for (var allTypeOptions = allOptions.TypeOptions || [], i = 0, length = allTypeOptions.length; i < length; i++) { + var allTypeOptions = allOptions.TypeOptions || []; + for (var i = 0; i < allTypeOptions.length; i++) { var typeOptions = allTypeOptions[i]; - if (typeOptions.Type === type) return typeOptions + if (typeOptions.Type === type) return typeOptions; } - return null + return null; } function renderMetadataFetchers(page, availableOptions, libraryOptions) { - for (var html = "", elem = page.querySelector(".metadataFetchers"), i = 0, length = availableOptions.TypeOptions.length; i < length; i++) { + var html = ""; + var elem = page.querySelector(".metadataFetchers"); + for (var i = 0; i < availableOptions.TypeOptions.length; i++) { var availableTypeOptions = availableOptions.TypeOptions[i]; - html += getMetadataFetchersForTypeHtml(availableTypeOptions, getTypeOptions(libraryOptions, availableTypeOptions.Type) || {}) + html += getMetadataFetchersForTypeHtml(availableTypeOptions, getTypeOptions(libraryOptions, availableTypeOptions.Type) || {}); } - return elem.innerHTML = html, html ? (elem.classList.remove("hide"), page.querySelector(".fldAutoRefreshInterval").classList.remove("hide"), page.querySelector(".fldMetadataLanguage").classList.remove("hide"), page.querySelector(".fldMetadataCountry").classList.remove("hide")) : (elem.classList.add("hide"), page.querySelector(".fldAutoRefreshInterval").classList.add("hide"), page.querySelector(".fldMetadataLanguage").classList.add("hide"), page.querySelector(".fldMetadataCountry").classList.add("hide")), !0 + elem.innerHTML = html; + if (html) { + elem.classList.remove("hide"); + page.querySelector(".fldAutoRefreshInterval").classList.remove("hide"); + page.querySelector(".fldMetadataLanguage").classList.remove("hide"); + page.querySelector(".fldMetadataCountry").classList.remove("hide"); + } else { + elem.classList.add("hide"); + page.querySelector(".fldAutoRefreshInterval").classList.add("hide"); + page.querySelector(".fldMetadataLanguage").classList.add("hide"); + page.querySelector(".fldMetadataCountry").classList.add("hide"); + } + return true; } function renderSubtitleFetchers(page, availableOptions, libraryOptions) { - try { - var html = "", - elem = page.querySelector(".subtitleFetchers"), - html = "", - plugins = availableOptions.SubtitleFetchers; - if (plugins = getOrderedPlugins(plugins, libraryOptions.SubtitleFetcherOrder || []), !plugins.length) return html; - html += '

' + globalize.translate("LabelSubtitleDownloaders") + "

", html += '
'; - for (var i = 0, length = plugins.length; i < length; i++) { - var plugin = plugins[i]; - html += '
'; - var isChecked = libraryOptions.DisabledSubtitleFetchers ? -1 === libraryOptions.DisabledSubtitleFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled, - checkedHtml = isChecked ? ' checked="checked"' : ""; - html += '", html += '
', html += '

', html += plugin.Name, html += "

", "Open Subtitles" === plugin.Name && (html += '
', html += globalize.translate("OpenSubtitleInstructions"), html += "
"), html += "
", i > 0 ? html += '' : plugins.length > 1 && (html += ''), html += "
" + var html = ""; + var elem = page.querySelector(".subtitleFetchers"); + + var plugins = availableOptions.SubtitleFetchers; + plugins = getOrderedPlugins(plugins, libraryOptions.SubtitleFetcherOrder || []); + if (!plugins.length) return html; + + html += '

' + globalize.translate("LabelSubtitleDownloaders") + "

"; + html += '
'; + for (var i = 0; i < plugins.length; i++) { + var plugin = plugins[i]; + html += '
'; + var isChecked = libraryOptions.DisabledSubtitleFetchers ? -1 === libraryOptions.DisabledSubtitleFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled; + var checkedHtml = isChecked ? ' checked="checked"' : ""; + html += '"; + html += '
'; + html += '

'; + html += plugin.Name; + html += "

"; + if (plugin.Name === "Open Subtitles") { + html += '
'; + html += globalize.translate("OpenSubtitleInstructions"); + html += "
"; } - html += "
", html += '
' + globalize.translate("SubtitleDownloadersHelp") + "
", elem.innerHTML = html - } catch (err) { - alert(err) + html += "
"; + if (i > 0) { + html += ''; + } else if (plugins.length > 1) { + html += ''; + } + html += "
"; } + html += "
"; + html += '
' + globalize.translate("SubtitleDownloadersHelp") + "
"; + elem.innerHTML = html; } function getImageFetchersForTypeHtml(availableTypeOptions, libraryOptionsForType) { - var html = "", - plugins = availableTypeOptions.ImageFetchers; - if (plugins = getOrderedPlugins(plugins, libraryOptionsForType.ImageFetcherOrder || []), !plugins.length) return html; - html += '
', html += '
', html += '

' + globalize.translate("HeaderTypeImageFetchers", availableTypeOptions.Type) + "

"; + var html = ""; + var plugins = availableTypeOptions.ImageFetchers; + + plugins = getOrderedPlugins(plugins, libraryOptionsForType.ImageFetcherOrder || []); + if (!plugins.length) return html; + + html += '
'; + html += '
'; + html += '

' + globalize.translate("HeaderTypeImageFetchers", availableTypeOptions.Type) + "

"; var supportedImageTypes = availableTypeOptions.SupportedImageTypes || []; - (supportedImageTypes.length > 1 || 1 === supportedImageTypes.length && "Primary" !== supportedImageTypes[0]) && (html += '"), html += "
", html += '
'; - for (var i = 0, length = plugins.length; i < length; i++) { + if (supportedImageTypes.length > 1 || 1 === supportedImageTypes.length && "Primary" !== supportedImageTypes[0]) { + html += '"; + } + html += "
"; + html += '
'; + for (var i = 0; i < plugins.length; i++) { var plugin = plugins[i]; html += '
'; - var isChecked = libraryOptionsForType.ImageFetchers ? -1 !== libraryOptionsForType.ImageFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled, - checkedHtml = isChecked ? ' checked="checked"' : ""; - html += '", html += '
', html += '

', html += plugin.Name, html += "

", html += "
", i > 0 ? html += '' : plugins.length > 1 && (html += ''), html += "
" + var isChecked = libraryOptionsForType.ImageFetchers ? -1 !== libraryOptionsForType.ImageFetchers.indexOf(plugin.Name) : plugin.DefaultEnabled; + var checkedHtml = isChecked ? ' checked="checked"' : ""; + html += '"; + html += '
'; + html += '

'; + html += plugin.Name; + html += "

"; + html += "
"; + if (i > 0) { + html += ''; + } else if (plugins.length > 1) { + html += ''; + } + html += "
"; } - return html += "
", html += '
' + globalize.translate("LabelImageFetchersHelp") + "
", html += "
" + html += "
"; + html += '
' + globalize.translate("LabelImageFetchersHelp") + "
"; + html += "
"; + return html; } function renderImageFetchers(page, availableOptions, libraryOptions) { - for (var html = "", elem = page.querySelector(".imageFetchers"), i = 0, length = availableOptions.TypeOptions.length; i < length; i++) { + var html = ""; + var elem = page.querySelector(".imageFetchers"); + for (var i = 0; i < availableOptions.TypeOptions.length; i++) { var availableTypeOptions = availableOptions.TypeOptions[i]; - html += getImageFetchersForTypeHtml(availableTypeOptions, getTypeOptions(libraryOptions, availableTypeOptions.Type) || {}) + html += getImageFetchersForTypeHtml(availableTypeOptions, getTypeOptions(libraryOptions, availableTypeOptions.Type) || {}); } - return elem.innerHTML = html, html ? (elem.classList.remove("hide"), page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.remove("hide"), page.querySelector(".chkSaveLocalContainer").classList.remove("hide")) : (elem.classList.add("hide"), page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.add("hide"), page.querySelector(".chkSaveLocalContainer").classList.add("hide")), !0 + elem.innerHTML = html; + if (html) { + elem.classList.remove("hide"); + page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.remove("hide"); + page.querySelector(".chkSaveLocalContainer").classList.remove("hide"); + } else { + elem.classList.add("hide"); + page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.add("hide"); + page.querySelector(".chkSaveLocalContainer").classList.add("hide"); + } + return true; } function populateMetadataSettings(parent, contentType, isNewLibrary) { @@ -151,15 +263,30 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct LibraryContentType: contentType, IsNewLibrary: isNewLibrary })).then(function(availableOptions) { - currentAvailableOptions = availableOptions, parent.availableOptions = availableOptions, renderMetadataSavers(parent, availableOptions.MetadataSavers), renderMetadataReaders(parent, availableOptions.MetadataReaders), renderMetadataFetchers(parent, availableOptions, {}), renderSubtitleFetchers(parent, availableOptions, {}), renderImageFetchers(parent, availableOptions, {}), availableOptions.SubtitleFetchers.length ? parent.querySelector(".subtitleDownloadSettings").classList.remove("hide") : parent.querySelector(".subtitleDownloadSettings").classList.add("hide") + currentAvailableOptions = availableOptions; + parent.availableOptions = availableOptions; + renderMetadataSavers(parent, availableOptions.MetadataSavers); + renderMetadataReaders(parent, availableOptions.MetadataReaders); + renderMetadataFetchers(parent, availableOptions, {}); + renderSubtitleFetchers(parent, availableOptions, {}); + renderImageFetchers(parent, availableOptions, {}); + availableOptions.SubtitleFetchers.length ? parent.querySelector(".subtitleDownloadSettings").classList.remove("hide") : parent.querySelector(".subtitleDownloadSettings").classList.add("hide") }).catch(function() { - return Promise.resolve() + return Promise.resolve(); }) } function adjustSortableListElement(elem) { var btnSortable = elem.querySelector(".btnSortable"); - elem.previousSibling ? (btnSortable.classList.add("btnSortableMoveUp"), btnSortable.classList.remove("btnSortableMoveDown"), btnSortable.querySelector("i").innerHTML = "keyboard_arrow_up") : (btnSortable.classList.remove("btnSortableMoveUp"), btnSortable.classList.add("btnSortableMoveDown"), btnSortable.querySelector("i").innerHTML = "keyboard_arrow_down") + if (elem.previousSibling) { + btnSortable.classList.add("btnSortableMoveUp"); + btnSortable.classList.remove("btnSortableMoveDown"); + btnSortable.querySelector("i").innerHTML = "keyboard_arrow_up"; + } else { + btnSortable.classList.remove("btnSortableMoveUp"); + btnSortable.classList.add("btnSortableMoveDown"); + btnSortable.querySelector("i").innerHTML = "keyboard_arrow_down"; + } } function showImageOptionsForType(type) { @@ -176,16 +303,16 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct function onImageFetchersContainerClick(e) { var btnImageOptionsForType = dom.parentWithClass(e.target, "btnImageOptionsForType"); if (btnImageOptionsForType) { - return void showImageOptionsForType(dom.parentWithClass(btnImageOptionsForType, "imageFetcher").getAttribute("data-type")) + return void showImageOptionsForType(dom.parentWithClass(btnImageOptionsForType, "imageFetcher").getAttribute("data-type")); } - onSortableContainerClick.call(this, e) + onSortableContainerClick.call(this, e); } function onSortableContainerClick(e) { var btnSortable = dom.parentWithClass(e.target, "btnSortable"); if (btnSortable) { - var li = dom.parentWithClass(btnSortable, "sortableOption"), - list = dom.parentWithClass(li, "paperList"); + var li = dom.parentWithClass(btnSortable, "sortableOption"); + var list = dom.parentWithClass(li, "paperList"); if (btnSortable.classList.contains("btnSortableMoveDown")) { var next = li.nextSibling; next && (li.parentNode.removeChild(li), next.parentNode.insertBefore(li, next.nextSibling)) @@ -198,35 +325,78 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct } function bindEvents(parent) { - parent.querySelector(".metadataReaders").addEventListener("click", onSortableContainerClick), parent.querySelector(".subtitleFetchers").addEventListener("click", onSortableContainerClick), parent.querySelector(".metadataFetchers").addEventListener("click", onSortableContainerClick), parent.querySelector(".imageFetchers").addEventListener("click", onImageFetchersContainerClick) + parent.querySelector(".metadataReaders").addEventListener("click", onSortableContainerClick); + parent.querySelector(".subtitleFetchers").addEventListener("click", onSortableContainerClick); + parent.querySelector(".metadataFetchers").addEventListener("click", onSortableContainerClick); + parent.querySelector(".imageFetchers").addEventListener("click", onImageFetchersContainerClick); } function embed(parent, contentType, libraryOptions) { currentLibraryOptions = { TypeOptions: [] - }, currentAvailableOptions = null; - var isNewLibrary = null == libraryOptions; - return isNewLibrary && parent.classList.add("newlibrary"), new Promise(function(resolve, reject) { + }; + currentAvailableOptions = null; + var isNewLibrary = null === libraryOptions; + isNewLibrary && parent.classList.add("newlibrary"); + return new Promise(function(resolve, reject) { var xhr = new XMLHttpRequest; - xhr.open("GET", "components/libraryoptionseditor/libraryoptionseditor.template.html", !0), xhr.onload = function(e) { + xhr.open("GET", "components/libraryoptionseditor/libraryoptionseditor.template.html", true); + xhr.onload = function(e) { var template = this.response; - parent.innerHTML = globalize.translateDocument(template), populateRefreshInterval(parent.querySelector("#selectAutoRefreshInterval")); + parent.innerHTML = globalize.translateDocument(template); + populateRefreshInterval(parent.querySelector("#selectAutoRefreshInterval")); var promises = [populateLanguages(parent), populateCountries(parent.querySelector("#selectCountry"))]; Promise.all(promises).then(function() { return setContentType(parent, contentType).then(function() { - libraryOptions && setLibraryOptions(parent, libraryOptions), bindEvents(parent), resolve() - }) - }) - }, xhr.send() - }) + libraryOptions && setLibraryOptions(parent, libraryOptions); + bindEvents(parent); + resolve(); + }); + }); + }; + xhr.send(); + }); } function setAdvancedVisible(parent, visible) { - for (var elems = parent.querySelectorAll(".advanced"), i = 0, length = elems.length; i < length; i++) visible ? elems[i].classList.remove("advancedHide") : elems[i].classList.add("advancedHide") + var elems = parent.querySelectorAll(".advanced"); + for (var i = 0; i < elems.length; i++) { + visible ? elems[i].classList.remove("advancedHide") : elems[i].classList.add("advancedHide"); + } } function setContentType(parent, contentType) { - return "homevideos" === contentType || "photos" === contentType ? parent.querySelector(".chkEnablePhotosContainer").classList.remove("hide") : parent.querySelector(".chkEnablePhotosContainer").classList.add("hide"), "tvshows" !== contentType && "movies" !== contentType && "homevideos" !== contentType && "musicvideos" !== contentType && "mixed" !== contentType && contentType ? parent.querySelector(".chapterSettingsSection").classList.add("hide") : parent.querySelector(".chapterSettingsSection").classList.remove("hide"), "tvshows" === contentType ? (parent.querySelector(".chkImportMissingEpisodesContainer").classList.remove("hide"), parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.remove("hide"), parent.querySelector(".fldSeasonZeroDisplayName").classList.remove("hide"), parent.querySelector("#txtSeasonZeroName").setAttribute("required", "required")) : (parent.querySelector(".chkImportMissingEpisodesContainer").classList.add("hide"), parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.add("hide"), parent.querySelector(".fldSeasonZeroDisplayName").classList.add("hide"), parent.querySelector("#txtSeasonZeroName").removeAttribute("required")), "books" === contentType || "boxsets" === contentType || "playlists" === contentType || "music" === contentType ? parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.add("hide") : parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.remove("hide"), populateMetadataSettings(parent, contentType) + if (contentType === "homevideos" || contentType === "photos") { + parent.querySelector(".chkEnablePhotosContainer").classList.remove("hide"); + } else { + parent.querySelector(".chkEnablePhotosContainer").classList.add("hide"); + } + + if (contentType !== "tvshows" && contentType !== "movies" && contentType !== "homevideos" && contentType !== "musicvideos" && contentType !== "mixed") { + parent.querySelector(".chapterSettingsSection").classList.add("hide"); + } else { + parent.querySelector(".chapterSettingsSection").classList.remove("hide"); + } + + if (contentType === "tvshows") { + parent.querySelector(".chkImportMissingEpisodesContainer").classList.remove("hide"); + parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.remove("hide"); + parent.querySelector(".fldSeasonZeroDisplayName").classList.remove("hide"); + parent.querySelector("#txtSeasonZeroName").setAttribute("required", "required"); + } else { + parent.querySelector(".chkImportMissingEpisodesContainer").classList.add("hide"); + parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.add("hide"); + parent.querySelector(".fldSeasonZeroDisplayName").classList.add("hide"); + parent.querySelector("#txtSeasonZeroName").removeAttribute("required"); + } + + if (contentType === "books" || contentType === "boxsets" || contentType === "playlists" || contentType === "music") { + parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.add("hide"); + } else { + parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.remove("hide"); + } + + return populateMetadataSettings(parent, contentType); } function setSubtitleFetchersIntoOptions(parent, options) { @@ -234,64 +404,87 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct return !elem.checked }), function(elem) { return elem.getAttribute("data-pluginname") - }), options.SubtitleFetcherOrder = Array.prototype.map.call(parent.querySelectorAll(".subtitleFetcherItem"), function(elem) { + }); + + options.SubtitleFetcherOrder = Array.prototype.map.call(parent.querySelectorAll(".subtitleFetcherItem"), function(elem) { return elem.getAttribute("data-pluginname") - }) + }); } function setMetadataFetchersIntoOptions(parent, options) { - for (var sections = parent.querySelectorAll(".metadataFetcher"), i = 0, length = sections.length; i < length; i++) { - var section = sections[i], - type = section.getAttribute("data-type"), - typeOptions = getTypeOptions(options, type); - typeOptions || (typeOptions = { - Type: type - }, options.TypeOptions.push(typeOptions)), typeOptions.MetadataFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll(".chkMetadataFetcher"), function(elem) { - return elem.checked + var sections = parent.querySelectorAll(".metadataFetcher"); + for (var i = 0; i < sections.length; i++) { + var section = sections[i]; + var type = section.getAttribute("data-type"); + var typeOptions = getTypeOptions(options, type); + if (!typeOptions) { + typeOptions = { + Type: type + }; + options.TypeOptions.push(typeOptions); + } + typeOptions.MetadataFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll(".chkMetadataFetcher"), function(elem) { + return elem.checked; }), function(elem) { - return elem.getAttribute("data-pluginname") - }), typeOptions.MetadataFetcherOrder = Array.prototype.map.call(section.querySelectorAll(".metadataFetcherItem"), function(elem) { - return elem.getAttribute("data-pluginname") - }) + return elem.getAttribute("data-pluginname"); + }); + + typeOptions.MetadataFetcherOrder = Array.prototype.map.call(section.querySelectorAll(".metadataFetcherItem"), function(elem) { + return elem.getAttribute("data-pluginname"); + }); } } function setImageFetchersIntoOptions(parent, options) { - for (var sections = parent.querySelectorAll(".imageFetcher"), i = 0, length = sections.length; i < length; i++) { - var section = sections[i], - type = section.getAttribute("data-type"), - typeOptions = getTypeOptions(options, type); - typeOptions || (typeOptions = { - Type: type - }, options.TypeOptions.push(typeOptions)), typeOptions.ImageFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll(".chkImageFetcher"), function(elem) { + var sections = parent.querySelectorAll(".imageFetcher"); + for (var i = 0; i < sections.length; i++) { + var section = sections[i]; + var type = section.getAttribute("data-type"); + var typeOptions = getTypeOptions(options, type); + if (!typeOptions) { + typeOptions = { + Type: type + }; + options.TypeOptions.push(typeOptions); + } + + typeOptions.ImageFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll(".chkImageFetcher"), function(elem) { return elem.checked }), function(elem) { return elem.getAttribute("data-pluginname") - }), typeOptions.ImageFetcherOrder = Array.prototype.map.call(section.querySelectorAll(".imageFetcherItem"), function(elem) { + }); + + typeOptions.ImageFetcherOrder = Array.prototype.map.call(section.querySelectorAll(".imageFetcherItem"), function(elem) { return elem.getAttribute("data-pluginname") - }) + }); } } function setImageOptionsIntoOptions(parent, options) { - for (var originalTypeOptions = (currentLibraryOptions || {}).TypeOptions || [], i = 0, length = originalTypeOptions.length; i < length; i++) { - var originalTypeOption = originalTypeOptions[i], - typeOptions = getTypeOptions(options, originalTypeOption.Type); - typeOptions || (typeOptions = { - Type: type - }, options.TypeOptions.push(typeOptions)), originalTypeOption.ImageOptions && (typeOptions.ImageOptions = originalTypeOption.ImageOptions) + var originalTypeOptions = (currentLibraryOptions || {}).TypeOptions || []; + for (var i = 0; i < originalTypeOptions.length; i++) { + var originalTypeOption = originalTypeOptions[i]; + var typeOptions = getTypeOptions(options, originalTypeOption.Type); + + if (!typeOptions) { + typeOptions = { + Type: type + }; + options.TypeOptions.push(typeOptions); + } + originalTypeOption.ImageOptions && (typeOptions.ImageOptions = originalTypeOption.ImageOptions); } } function getLibraryOptions(parent) { var options = { - EnableArchiveMediaFiles: !1, + EnableArchiveMediaFiles: false, EnablePhotos: parent.querySelector(".chkEnablePhotos").checked, EnableRealtimeMonitor: parent.querySelector(".chkEnableRealtimeMonitor").checked, ExtractChapterImagesDuringLibraryScan: parent.querySelector(".chkExtractChaptersDuringLibraryScan").checked, EnableChapterImageExtraction: parent.querySelector(".chkExtractChapterImages").checked, DownloadImagesInAdvance: parent.querySelector("#chkDownloadImagesInAdvance").checked, - EnableInternetProviders: !0, + EnableInternetProviders: true, ImportMissingEpisodes: parent.querySelector("#chkImportMissingEpisodes").checked, SaveLocalMetadata: parent.querySelector("#chkSaveLocal").checked, EnableAutomaticSeriesGrouping: parent.querySelector(".chkAutomaticallyGroupSeries").checked, @@ -311,29 +504,66 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct }), TypeOptions: [] }; - return options.LocalMetadataReaderOrder = Array.prototype.map.call(parent.querySelectorAll(".localReaderOption"), function(elem) { + + options.LocalMetadataReaderOrder = Array.prototype.map.call(parent.querySelectorAll(".localReaderOption"), function(elem) { return elem.getAttribute("data-pluginname") - }), options.SubtitleDownloadLanguages = Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll(".chkSubtitleLanguage"), function(elem) { + }); + options.SubtitleDownloadLanguages = Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll(".chkSubtitleLanguage"), function(elem) { return elem.checked }), function(elem) { return elem.getAttribute("data-lang") - }), setSubtitleFetchersIntoOptions(parent, options), setMetadataFetchersIntoOptions(parent, options), setImageFetchersIntoOptions(parent, options), setImageOptionsIntoOptions(parent, options), options + }); + setSubtitleFetchersIntoOptions(parent, options); + setMetadataFetchersIntoOptions(parent, options); + setImageFetchersIntoOptions(parent, options); + setImageOptionsIntoOptions(parent, options); + + return options; } function getOrderedPlugins(plugins, configuredOrder) { - return plugins = plugins.slice(0), plugins.sort(function(a, b) { + plugins = plugins.slice(0); + plugins.sort(function(a, b) { return a = configuredOrder.indexOf(a.Name), b = configuredOrder.indexOf(b.Name), a < b ? -1 : a > b ? 1 : 0 - }), plugins + }); + return plugins; } function setLibraryOptions(parent, options) { - currentLibraryOptions = options, currentAvailableOptions = parent.availableOptions, parent.querySelector("#selectLanguage").value = options.PreferredMetadataLanguage || "", parent.querySelector("#selectCountry").value = options.MetadataCountryCode || "", parent.querySelector("#selectAutoRefreshInterval").value = options.AutomaticRefreshIntervalDays || "0", parent.querySelector("#txtSeasonZeroName").value = options.SeasonZeroDisplayName || "Specials", parent.querySelector(".chkEnablePhotos").checked = options.EnablePhotos, parent.querySelector(".chkEnableRealtimeMonitor").checked = options.EnableRealtimeMonitor, parent.querySelector(".chkExtractChaptersDuringLibraryScan").checked = options.ExtractChapterImagesDuringLibraryScan, parent.querySelector(".chkExtractChapterImages").checked = options.EnableChapterImageExtraction, parent.querySelector("#chkDownloadImagesInAdvance").checked = options.DownloadImagesInAdvance, parent.querySelector("#chkSaveLocal").checked = options.SaveLocalMetadata, parent.querySelector("#chkImportMissingEpisodes").checked = options.ImportMissingEpisodes, parent.querySelector(".chkAutomaticallyGroupSeries").checked = options.EnableAutomaticSeriesGrouping, parent.querySelector("#chkEnableEmbeddedTitles").checked = options.EnableEmbeddedTitles, parent.querySelector("#chkSkipIfGraphicalSubsPresent").checked = options.SkipSubtitlesIfEmbeddedSubtitlesPresent, parent.querySelector("#chkSaveSubtitlesLocally").checked = options.SaveSubtitlesWithMedia, parent.querySelector("#chkSkipIfAudioTrackPresent").checked = options.SkipSubtitlesIfAudioTrackMatches, parent.querySelector("#chkRequirePerfectMatch").checked = options.RequirePerfectSubtitleMatch, Array.prototype.forEach.call(parent.querySelectorAll(".chkMetadataSaver"), function(elem) { + currentLibraryOptions = options; + currentAvailableOptions = parent.availableOptions; + parent.querySelector("#selectLanguage").value = options.PreferredMetadataLanguage || ""; + parent.querySelector("#selectCountry").value = options.MetadataCountryCode || ""; + parent.querySelector("#selectAutoRefreshInterval").value = options.AutomaticRefreshIntervalDays || "0"; + parent.querySelector("#txtSeasonZeroName").value = options.SeasonZeroDisplayName || "Specials"; + parent.querySelector(".chkEnablePhotos").checked = options.EnablePhotos; + parent.querySelector(".chkEnableRealtimeMonitor").checked = options.EnableRealtimeMonitor; + parent.querySelector(".chkExtractChaptersDuringLibraryScan").checked = options.ExtractChapterImagesDuringLibraryScan; + parent.querySelector(".chkExtractChapterImages").checked = options.EnableChapterImageExtraction; + parent.querySelector("#chkDownloadImagesInAdvance").checked = options.DownloadImagesInAdvance; + parent.querySelector("#chkSaveLocal").checked = options.SaveLocalMetadata; + parent.querySelector("#chkImportMissingEpisodes").checked = options.ImportMissingEpisodes; + parent.querySelector(".chkAutomaticallyGroupSeries").checked = options.EnableAutomaticSeriesGrouping; + parent.querySelector("#chkEnableEmbeddedTitles").checked = options.EnableEmbeddedTitles; + parent.querySelector("#chkSkipIfGraphicalSubsPresent").checked = options.SkipSubtitlesIfEmbeddedSubtitlesPresent; + parent.querySelector("#chkSaveSubtitlesLocally").checked = options.SaveSubtitlesWithMedia; + parent.querySelector("#chkSkipIfAudioTrackPresent").checked = options.SkipSubtitlesIfAudioTrackMatches; + parent.querySelector("#chkRequirePerfectMatch").checked = options.RequirePerfectSubtitleMatch; + Array.prototype.forEach.call(parent.querySelectorAll(".chkMetadataSaver"), function(elem) { elem.checked = options.MetadataSavers ? -1 !== options.MetadataSavers.indexOf(elem.getAttribute("data-pluginname")) : "true" === elem.getAttribute("data-defaultenabled") - }), Array.prototype.forEach.call(parent.querySelectorAll(".chkSubtitleLanguage"), function(elem) { + }); + Array.prototype.forEach.call(parent.querySelectorAll(".chkSubtitleLanguage"), function(elem) { elem.checked = !!options.SubtitleDownloadLanguages && -1 !== options.SubtitleDownloadLanguages.indexOf(elem.getAttribute("data-lang")) - }), renderMetadataReaders(parent, getOrderedPlugins(parent.availableOptions.MetadataReaders, options.LocalMetadataReaderOrder || [])), renderMetadataFetchers(parent, parent.availableOptions, options), renderImageFetchers(parent, parent.availableOptions, options), renderSubtitleFetchers(parent, parent.availableOptions, options) + }); + renderMetadataReaders(parent, getOrderedPlugins(parent.availableOptions.MetadataReaders, options.LocalMetadataReaderOrder || [])); + renderMetadataFetchers(parent, parent.availableOptions, options); + renderImageFetchers(parent, parent.availableOptions, options); + renderSubtitleFetchers(parent, parent.availableOptions, options); } - var currentLibraryOptions, currentAvailableOptions; + + var currentLibraryOptions; + var currentAvailableOptions; + return { embed: embed, setContentType: setContentType, diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.template.html b/src/components/libraryoptionseditor/libraryoptionseditor.template.html index 8a53ee556..ebfdacaa1 100644 --- a/src/components/libraryoptionseditor/libraryoptionseditor.template.html +++ b/src/components/libraryoptionseditor/libraryoptionseditor.template.html @@ -39,16 +39,21 @@
+
+
${MessageEnablingOptionLongerScans}
+
+
+
', "") + return globalize.translate(text, '', ""); } function getCollectionTypeOptions() { @@ -236,31 +253,81 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl case "channels": case "playlists": default: - return "folder" + return "folder"; } } function getVirtualFolderHtml(page, virtualFolder, index) { - var html = "", - style = ""; - page.classList.contains("wizardPage") && (style += "min-width:33.3%;"), html += '
', html += '
', html += '
', html += '
', html += '
'; + var html = ""; + var style = ""; + page.classList.contains("wizardPage") && (style += "min-width:33.3%;"); + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += '
'; var imgUrl = ""; - virtualFolder.PrimaryImageItemId && (imgUrl = ApiClient.getScaledImageUrl(virtualFolder.PrimaryImageItemId, { - type: "Primary" - })); + if (virtualFolder.PrimaryImageItemId) { + imgUrl = ApiClient.getScaledImageUrl(virtualFolder.PrimaryImageItemId, { + type: "Primary" + }); + } var hasCardImageContainer; - if (imgUrl ? (html += '
", hasCardImageContainer = !0) : virtualFolder.showNameWithIcon || (html += '
', html += '' + (virtualFolder.icon || getIcon(virtualFolder.CollectionType)) + "", hasCardImageContainer = !0), hasCardImageContainer) { + if (imgUrl) { + html += '
"; + hasCardImageContainer = true; + } else if (!virtualFolder.showNameWithIcon) { + html += '
'; + html += '' + (virtualFolder.icon || getIcon(virtualFolder.CollectionType)) + ""; + hasCardImageContainer = true; + } + if (hasCardImageContainer) { html += '
'; - html += '
', html += "
", html += "
" + html += '
'; + html += "
"; + html += "
"; } - if (!imgUrl && virtualFolder.showNameWithIcon && (html += '

', html += '' + (virtualFolder.icon || getIcon(virtualFolder.CollectionType)) + "", virtualFolder.showNameWithIcon && (html += '
', html += virtualFolder.Name, html += "
"), html += "

"), html += "
", html += "
", html += '
', !1 !== virtualFolder.showMenu) { - html += '
', html += '', html += "
" + if (!imgUrl && virtualFolder.showNameWithIcon) { + html += '

'; + html += '' + (virtualFolder.icon || getIcon(virtualFolder.CollectionType)) + ""; + virtualFolder.showNameWithIcon && (html += '
', html += virtualFolder.Name, html += "
"); + html += "

"; } - html += "
", virtualFolder.showNameWithIcon ? html += " " : html += virtualFolder.Name, html += "
"; + html += "
"; + html += "
"; + html += '
'; + if (virtualFolder.showMenu === true) { + html += '
'; + html += ''; + html += "
"; + } + html += "
"; + virtualFolder.showNameWithIcon ? html += " " : html += virtualFolder.Name; + html += "
"; var typeName = getCollectionTypeOptions().filter(function(t) { return t.value == virtualFolder.CollectionType })[0]; - return typeName = typeName ? typeName.name : globalize.translate("FolderTypeUnset"), html += "
", !1 === virtualFolder.showType ? html += " " : html += typeName, html += "
", !1 === virtualFolder.showLocations ? (html += "
", html += " ", html += "
") : virtualFolder.Locations.length && 1 == virtualFolder.Locations.length ? (html += "
", html += virtualFolder.Locations[0], html += "
") : (html += "
", html += globalize.translate("NumLocationsValue", virtualFolder.Locations.length), html += "
"), html += "
", html += "
", html += "
" + typeName = typeName ? typeName.name : globalize.translate("FolderTypeUnset"); + html += "
"; + virtualFolder.showType === false ? html += " " : html += typeName; + html += "
"; + if (virtualFolder.showLocations === false) { + html += "
"; + html += " "; + html += "
"; + } else if (virtualFolder.Locations.length && virtualFolder.Locations.length === 1) { + html += "
"; + html += virtualFolder.Locations[0]; + html += "
"; + } else { + html += "
"; + html += globalize.translate("NumLocationsValue", virtualFolder.Locations.length); + html += "
"; + } + html += "
"; + html += "
"; + html += "
"; + return html; } function getTabs() { @@ -285,9 +352,11 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl next: function() { Dashboard.navigate("wizardsettings.html") } - }, pageClassOn("pageshow", "mediaLibraryPage", function() { - reloadLibrary(this) - }), pageIdOn("pageshow", "mediaLibraryPage", function() { + }; + pageClassOn("pageshow", "mediaLibraryPage", function() { + reloadLibrary(this); + }); + pageIdOn("pageshow", "mediaLibraryPage", function() { libraryMenu.setTabs("librarysetup", 0, getTabs); var page = this; taskButton({ @@ -295,14 +364,15 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl progressElem: page.querySelector(".refreshProgress"), taskKey: "RefreshLibrary", button: page.querySelector(".btnRefresh") - }) - }), pageIdOn("pagebeforehide", "mediaLibraryPage", function() { + }); + }); + pageIdOn("pagebeforehide", "mediaLibraryPage", function() { var page = this; taskButton({ mode: "off", progressElem: page.querySelector(".refreshProgress"), taskKey: "RefreshLibrary", button: page.querySelector(".btnRefresh") - }) - }) + }); + }); }); From fa27a839f3fdce40c4edee7db3fb61b5db6eab76 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 6 May 2019 18:22:53 -0700 Subject: [PATCH 091/106] fix issue with the library context menu --- src/controllers/medialibrarypage.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/controllers/medialibrarypage.js b/src/controllers/medialibrarypage.js index 10a710743..c8b1f8b47 100644 --- a/src/controllers/medialibrarypage.js +++ b/src/controllers/medialibrarypage.js @@ -296,7 +296,9 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl html += "
"; html += "
"; html += '
'; - if (virtualFolder.showMenu === true) { + + // always show menu unless explicitly hidden + if (virtualFolder.showMenu !== false) { html += '
'; html += ''; html += "
"; From e833225ab370743d162ef06eac2a32de0d5fddc9 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 6 May 2019 19:47:02 -0700 Subject: [PATCH 092/106] minor code cleanup --- .../medialibrarycreator.js | 108 ++++++++++-------- .../medialibrarycreator.template.html | 10 +- .../medialibraryeditor.template.html | 2 +- src/controllers/medialibrarypage.js | 11 +- 4 files changed, 74 insertions(+), 57 deletions(-) diff --git a/src/components/medialibrarycreator/medialibrarycreator.js b/src/components/medialibrarycreator/medialibrarycreator.js index d02f0940c..80f95dc85 100644 --- a/src/components/medialibrarycreator/medialibrarycreator.js +++ b/src/components/medialibrarycreator/medialibrarycreator.js @@ -14,30 +14,31 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed type: "error" }) }); - } else { - isCreating = true; - loading.show(); - - var form = this, - dlg = $(form).parents(".dialog")[0], - name = $("#txtValue", form).val(), - type = $("#selectCollectionType", form).val(); - if (type == "mixed") type = null; - var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions")); - libraryOptions.PathInfos = pathInfos; - ApiClient.addVirtualFolder(name, type, currentOptions.refresh, libraryOptions).then(function() { - hasChanges = true; - isCreating = false; - loading.hide(); - dialogHelper.close(dlg); - }, function() { - require(["toast"], function(toast) { - toast(Globalize.translate("ErrorAddingMediaPathToVirtualFolder")) - }) - isCreating = false; - loading.hide(); - }); + return false; } + + isCreating = true; + loading.show(); + + var form = this; + var dlg = $(form).parents(".dialog")[0]; + var name = $("#txtValue", form).val(); + var type = $("#selectCollectionType", form).val(); + if (type == "mixed") type = null; + var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions")); + libraryOptions.PathInfos = pathInfos; + ApiClient.addVirtualFolder(name, type, currentOptions.refresh, libraryOptions).then(function() { + hasChanges = true; + isCreating = false; + loading.hide(); + dialogHelper.close(dlg); + }, function() { + require(["toast"], function(toast) { + toast(Globalize.translate("ErrorAddingMediaPathToVirtualFolder")) + }) + isCreating = false; + loading.hide(); + }); return false; } @@ -49,13 +50,14 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed function initEditor(page, collectionTypeOptions) { $("#selectCollectionType", page).html(getCollectionTypeOptionsHtml(collectionTypeOptions)).val("").on("change", function() { - var value = this.value, - dlg = $(this).parents(".dialog")[0]; + var value = this.value; + var dlg = $(this).parents(".dialog")[0]; libraryoptionseditor.setContentType(dlg.querySelector(".libraryOptions"), value == "mixed" ? "" : value); - if (value) + if (value) { dlg.querySelector(".libraryOptions").classList.remove("hide"); - else + } else { dlg.querySelector(".libraryOptions").classList.add("hide"); + } if (value != "mixed") { var index = this.selectedIndex; @@ -73,7 +75,7 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed function onToggleAdvancedChange() { var dlg = dom.parentWithClass(this, "dlg-librarycreator"); - libraryoptionseditor.setAdvancedVisible(dlg.querySelector(".libraryOptions"), this.checked) + libraryoptionseditor.setAdvancedVisible(dlg.querySelector(".libraryOptions"), this.checked); } function onAddButtonClick() { @@ -83,7 +85,8 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed picker.show({ enableNetworkSharePath: true, callback: function(path, networkSharePath) { - path && addMediaLocation(page, path, networkSharePath), picker.close() + path && addMediaLocation(page, path, networkSharePath); + picker.close(); } }) }) @@ -95,31 +98,36 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed } function renderPaths(page) { - var foldersHtml = pathInfos.map(getFolderHtml).join(""), - folderList = page.querySelector(".folderList"); - folderList.innerHTML = foldersHtml, foldersHtml ? folderList.classList.remove("hide") : folderList.classList.add("hide") + var foldersHtml = pathInfos.map(getFolderHtml).join(""); + var folderList = page.querySelector(".folderList"); + folderList.innerHTML = foldersHtml; + foldersHtml ? folderList.classList.remove("hide") : folderList.classList.add("hide"); } function addMediaLocation(page, path, networkSharePath) { var pathLower = path.toLowerCase(); - if (0 == pathInfos.filter(function(p) { - return p.Path.toLowerCase() == pathLower - }).length) { + var path = pathInfos.filter(function(p) { + return p.Path.toLowerCase() == pathLower; + }); + if (path.length === 0) { var pathInfo = { Path: path }; - networkSharePath && (pathInfo.NetworkPath = networkSharePath), pathInfos.push(pathInfo), renderPaths(page) + networkSharePath && (pathInfo.NetworkPath = networkSharePath); + pathInfos.push(pathInfo); + renderPaths(page); } } function onRemoveClick(e) { - var button = dom.parentWithClass(e.target, "btnRemovePath"), - index = parseInt(button.getAttribute("data-index")), - location = pathInfos[index].Path, - locationLower = location.toLowerCase(); + var button = dom.parentWithClass(e.target, "btnRemovePath"); + var index = parseInt(button.getAttribute("data-index")); + var location = pathInfos[index].Path; + var locationLower = location.toLowerCase(); pathInfos = pathInfos.filter(function(p) { - return p.Path.toLowerCase() != locationLower - }), renderPaths(dom.parentWithClass(button, "dlg-librarycreator")) + return p.Path.toLowerCase() != locationLower; + }); + renderPaths(dom.parentWithClass(button, "dlg-librarycreator")); } function onDialogClosed() { @@ -131,14 +139,17 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed function initLibraryOptions(dlg) { libraryoptionseditor.embed(dlg.querySelector(".libraryOptions")).then(function() { - $("#selectCollectionType", dlg).trigger("change"), onToggleAdvancedChange.call(dlg.querySelector(".chkAdvanced")) + $("#selectCollectionType", dlg).trigger("change"); + onToggleAdvancedChange.call(dlg.querySelector(".chkAdvanced")); }) } function editor() { this.show = function(options) { return new Promise(function(resolve, reject) { - currentOptions = options, currentResolve = resolve, hasChanges = false; + currentOptions = options; + currentResolve = resolve; + hasChanges = false; var xhr = new XMLHttpRequest; xhr.open("GET", "components/medialibrarycreator/medialibrarycreator.template.html", true); xhr.onload = function(e) { @@ -168,6 +179,13 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed }) } } - var currentResolve, hasChanges, currentOptions, pathInfos = [], isCreating = false; + + var pathInfos = []; + var currentResolve; + var currentOptions; + + var hasChanges; + var isCreating = false; + return editor }); diff --git a/src/components/medialibrarycreator/medialibrarycreator.template.html b/src/components/medialibrarycreator/medialibrarycreator.template.html index eee1aee51..c133bfd3f 100644 --- a/src/components/medialibrarycreator/medialibrarycreator.template.html +++ b/src/components/medialibrarycreator/medialibrarycreator.template.html @@ -1,14 +1,11 @@
-

- ${ButtonAddMediaLibrary} -

+

${ButtonAddMediaLibrary}

-
+
+

${HeadersFolders}

+
-
-
diff --git a/src/controllers/medialibrarypage.js b/src/controllers/medialibrarypage.js index c8b1f8b47..362f89519 100644 --- a/src/controllers/medialibrarypage.js +++ b/src/controllers/medialibrarypage.js @@ -157,12 +157,13 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl Name: globalize.translate("ButtonAddMediaLibrary"), icon: "add_circle", Locations: [], - showType: !1, - showLocations: !1, - showMenu: !1, - showNameWithIcon: !0 + showType: false, + showLocations: false, + showMenu: false, + showNameWithIcon: true }); - for (var i = 0, length = virtualFolders.length; i < length; i++) { + + for (var i = 0; i < virtualFolders.length; i++) { var virtualFolder = virtualFolders[i]; html += getVirtualFolderHtml(page, virtualFolder, i) } From b41ae5f483ebad4247fd00e2207faa7e9e047233 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 6 May 2019 21:26:48 -0700 Subject: [PATCH 093/106] remove unused call to hide loading indicator --- .../medialibrarycreator/medialibrarycreator.js | 18 ++++++++++-------- .../medialibraryeditor/medialibraryeditor.js | 3 ++- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/components/medialibrarycreator/medialibrarycreator.js b/src/components/medialibrarycreator/medialibrarycreator.js index 80f95dc85..af2c58506 100644 --- a/src/components/medialibrarycreator/medialibrarycreator.js +++ b/src/components/medialibrarycreator/medialibrarycreator.js @@ -34,8 +34,8 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed dialogHelper.close(dlg); }, function() { require(["toast"], function(toast) { - toast(Globalize.translate("ErrorAddingMediaPathToVirtualFolder")) - }) + toast(Globalize.translate("ErrorAddingMediaPathToVirtualFolder")); + }); isCreating = false; loading.hide(); }); @@ -70,7 +70,12 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed $(".collectionTypeFieldDescription", dlg).html(folderOption.message || "") } } - }), page.querySelector(".btnAddFolder").addEventListener("click", onAddButtonClick), page.querySelector("form").addEventListener("submit", onSubmit), page.querySelector(".folderList").addEventListener("click", onRemoveClick), page.querySelector(".chkAdvanced").addEventListener("change", onToggleAdvancedChange) + }); + + page.querySelector(".btnAddFolder").addEventListener("click", onAddButtonClick); + page.querySelector("form").addEventListener("submit", onSubmit); + page.querySelector(".folderList").addEventListener("click", onRemoveClick); + page.querySelector(".chkAdvanced").addEventListener("change", onToggleAdvancedChange); } function onToggleAdvancedChange() { @@ -131,9 +136,6 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed } function onDialogClosed() { - // I can't see any corresponding call to loading.show, - // so I think this is not supposed to be here. - loading.hide(); currentResolve(hasChanges); } @@ -176,7 +178,7 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed initLibraryOptions(dlg); }; xhr.send(); - }) + }); } } @@ -184,7 +186,7 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed var currentResolve; var currentOptions; - var hasChanges; + var hasChanges = false; var isCreating = false; return editor diff --git a/src/components/medialibraryeditor/medialibraryeditor.js b/src/components/medialibraryeditor/medialibraryeditor.js index 62a8e28b2..f3a08d4fb 100644 --- a/src/components/medialibraryeditor/medialibraryeditor.js +++ b/src/components/medialibraryeditor/medialibraryeditor.js @@ -193,8 +193,9 @@ define(["loading", "dialogHelper", "dom", "components/libraryoptionseditor/libra } var currentDeferred; - var hasChanges; var currentOptions; + var hasChanges = false; + return editor; }); \ No newline at end of file From a5bad54c5143728fe363f4e85ad6ceed00dd4dc1 Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 7 May 2019 12:58:16 -0700 Subject: [PATCH 094/106] remove nested form from library create dialog --- .../medialibrarycreator.js | 18 +++----- .../medialibrarycreator.template.html | 46 +++++++++---------- 2 files changed, 30 insertions(+), 34 deletions(-) diff --git a/src/components/medialibrarycreator/medialibrarycreator.js b/src/components/medialibrarycreator/medialibrarycreator.js index af2c58506..54c13a4eb 100644 --- a/src/components/medialibrarycreator/medialibrarycreator.js +++ b/src/components/medialibrarycreator/medialibrarycreator.js @@ -1,10 +1,7 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionseditor/libraryoptionseditor", "emby-toggle", "emby-input", "emby-select", "paper-icon-button-light", "listViewStyle", "formDialogStyle", "emby-button", "flexStyles"], function(loading, dialogHelper, dom, $, libraryoptionseditor) { "use strict"; - function onSubmit(e) { - e.preventDefault(); - e.stopPropagation(); - + function onAddLibrary() { if (isCreating) return false; if (pathInfos.length == 0) { @@ -20,10 +17,9 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed isCreating = true; loading.show(); - var form = this; - var dlg = $(form).parents(".dialog")[0]; - var name = $("#txtValue", form).val(); - var type = $("#selectCollectionType", form).val(); + var dlg = dom.parentWithClass(this, "dlg-librarycreator"); + var name = $("#txtValue", dlg).val(); + var type = $("#selectCollectionType", dlg).val(); if (type == "mixed") type = null; var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions")); libraryOptions.PathInfos = pathInfos; @@ -73,7 +69,7 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed }); page.querySelector(".btnAddFolder").addEventListener("click", onAddButtonClick); - page.querySelector("form").addEventListener("submit", onSubmit); + page.querySelector(".btnSubmit").addEventListener("click", onAddLibrary); page.querySelector(".folderList").addEventListener("click", onRemoveClick); page.querySelector(".chkAdvanced").addEventListener("change", onToggleAdvancedChange); } @@ -111,10 +107,10 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed function addMediaLocation(page, path, networkSharePath) { var pathLower = path.toLowerCase(); - var path = pathInfos.filter(function(p) { + var pathFilter = pathInfos.filter(function(p) { return p.Path.toLowerCase() == pathLower; }); - if (path.length === 0) { + if (!pathFilter.length) { var pathInfo = { Path: path }; diff --git a/src/components/medialibrarycreator/medialibrarycreator.template.html b/src/components/medialibrarycreator/medialibrarycreator.template.html index c133bfd3f..76b37a8f5 100644 --- a/src/components/medialibrarycreator/medialibrarycreator.template.html +++ b/src/components/medialibrarycreator/medialibrarycreator.template.html @@ -5,39 +5,39 @@
- -
- -
+
+ +
-
- -
-
+
+ +
+
-
- -
+
+ +
+

${HeadersFolders}

-
+
+
-
- -
- -
- +
+
+ +
+
\ No newline at end of file From aa14b34035aa00939377bb9890096e7fae588dbb Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 7 May 2019 13:17:40 -0700 Subject: [PATCH 095/106] add submit button to library edit dialog --- .../medialibraryeditor/medialibraryeditor.js | 34 +++++++++++++------ .../medialibraryeditor.template.html | 6 ++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/components/medialibraryeditor/medialibraryeditor.js b/src/components/medialibraryeditor/medialibraryeditor.js index f3a08d4fb..ef3a3d5b1 100644 --- a/src/components/medialibraryeditor/medialibraryeditor.js +++ b/src/components/medialibraryeditor/medialibraryeditor.js @@ -1,6 +1,28 @@ define(["loading", "dialogHelper", "dom", "components/libraryoptionseditor/libraryoptionseditor", "emby-button", "listViewStyle", "paper-icon-button-light", "formDialogStyle", "emby-toggle", "flexStyles"], function(loading, dialogHelper, dom, libraryoptionseditor) { "use strict"; + function onEditLibrary() { + if (isCreating) return false; + + isCreating = true; + loading.show(); + + var dlg = dom.parentWithClass(this, "dlg-libraryeditor"); + var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions")); + libraryOptions = Object.assign(currentOptions.library.LibraryOptions || {}, libraryOptions); + + ApiClient.updateVirtualFolderOptions(currentOptions.library.ItemId, libraryOptions).then(function() { + hasChanges = true; + isCreating = false; + loading.hide(); + dialogHelper.close(dlg); + }, function() { + isCreating = false; + loading.hide(); + }); + return false; + } + function addMediaLocation(page, path, networkSharePath) { var virtualFolder = currentOptions.library; var refreshAfterChange = currentOptions.refresh; @@ -138,21 +160,13 @@ define(["loading", "dialogHelper", "dom", "components/libraryoptionseditor/libra dlg.querySelector(".btnAddFolder").addEventListener("click", onAddButtonClick); dlg.querySelector(".folderList").addEventListener("click", onListItemClick); dlg.querySelector(".chkAdvanced").addEventListener("change", onToggleAdvancedChange); + dlg.querySelector(".btnSubmit").addEventListener("click", onEditLibrary); libraryoptionseditor.embed(dlg.querySelector(".libraryOptions"), options.library.CollectionType, options.library.LibraryOptions).then(function() { onToggleAdvancedChange.call(dlg.querySelector(".chkAdvanced")); }); } - function onDialogClosing() { - var dlg = this; - var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions")); - libraryOptions = Object.assign(currentOptions.library.LibraryOptions || {}, libraryOptions); - ApiClient.updateVirtualFolderOptions(currentOptions.library.ItemId, libraryOptions); - } - function onDialogClosed() { - loading.hide(); - hasChanges = true; currentDeferred.resolveWith(null, [hasChanges]); } @@ -179,7 +193,6 @@ define(["loading", "dialogHelper", "dom", "components/libraryoptionseditor/libra dlg.innerHTML = Globalize.translateDocument(template); dlg.querySelector(".formDialogHeaderTitle").innerHTML = options.library.Name; initEditor(dlg, options); - dlg.addEventListener("closing", onDialogClosing); dlg.addEventListener("close", onDialogClosed); dialogHelper.open(dlg); dlg.querySelector(".btnCancel").addEventListener("click", function() { @@ -196,6 +209,7 @@ define(["loading", "dialogHelper", "dom", "components/libraryoptionseditor/libra var currentOptions; var hasChanges = false; + var isCreating = false; return editor; }); \ No newline at end of file diff --git a/src/components/medialibraryeditor/medialibraryeditor.template.html b/src/components/medialibraryeditor/medialibraryeditor.template.html index 78b7c6cbd..40238bf06 100644 --- a/src/components/medialibraryeditor/medialibraryeditor.template.html +++ b/src/components/medialibraryeditor/medialibraryeditor.template.html @@ -29,3 +29,9 @@
+ +
+ +
\ No newline at end of file From aac1c52a2ff3944e685bfa0eb0c1676ff793ef2d Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 7 May 2019 13:23:22 -0700 Subject: [PATCH 096/106] remove useless dialog --- src/controllers/medialibrarypage.js | 17 ----------------- src/library.html | 4 +--- src/strings/ar.json | 3 --- src/strings/bg-bg.json | 3 --- src/strings/cs.json | 3 --- src/strings/da.json | 3 --- src/strings/de.json | 3 --- src/strings/el.json | 3 --- src/strings/en-us.json | 3 --- src/strings/es-ar.json | 1 - src/strings/es-mx.json | 3 --- src/strings/es.json | 3 --- src/strings/fr-ca.json | 1 - src/strings/fr.json | 3 --- src/strings/hr.json | 3 --- src/strings/hu.json | 3 --- src/strings/it.json | 3 --- src/strings/kk.json | 3 --- src/strings/ko.json | 2 -- src/strings/ms.json | 1 - src/strings/nb.json | 3 --- src/strings/nl.json | 3 --- src/strings/pl.json | 3 --- src/strings/pt-br.json | 3 --- src/strings/ru.json | 3 --- src/strings/sk.json | 2 -- src/strings/sv.json | 3 --- src/strings/zh-cn.json | 3 --- src/strings/zh-tw.json | 3 --- 29 files changed, 1 insertion(+), 93 deletions(-) diff --git a/src/controllers/medialibrarypage.js b/src/controllers/medialibrarypage.js index 362f89519..a6e86f0ef 100644 --- a/src/controllers/medialibrarypage.js +++ b/src/controllers/medialibrarypage.js @@ -1,15 +1,6 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "globalize", "dom", "indicators", "cardStyle", "emby-itemrefreshindicator"], function($, appHost, taskButton, loading, libraryMenu, globalize, dom, indicators) { "use strict"; - function changeCollectionType(page, virtualFolder) { - require(["alert"], function(alert) { - alert({ - title: globalize.translate("HeaderChangeFolderType"), - text: globalize.translate("HeaderChangeFolderTypeHelp") - }) - }) - } - function addVirtualFolder(page) { require(["medialibrarycreator"], function(medialibrarycreator) { (new medialibrarycreator).show({ @@ -81,11 +72,6 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl var index = parseInt(card.getAttribute("data-index")); var virtualFolder = virtualFolders[index]; var menuItems = []; - menuItems.push({ - name: globalize.translate("ButtonChangeContentType"), - id: "changetype", - ironIcon: "videocam" - }); menuItems.push({ name: globalize.translate("ButtonEditImages"), id: "editimages", @@ -117,9 +103,6 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl positionTo: elem, callback: function(resultId) { switch (resultId) { - case "changetype": - changeCollectionType(page, virtualFolder); - break; case "edit": editVirtualFolder(page, virtualFolder); break; diff --git a/src/library.html b/src/library.html index 6db2e3933..294ff4677 100644 --- a/src/library.html +++ b/src/library.html @@ -1,16 +1,14 @@
-
- - ${Help}
+
diff --git a/src/strings/ar.json b/src/strings/ar.json index 05830f2ab..f51ebb4fd 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -25,7 +25,6 @@ "ButtonAudioTracks": "المقاطع الصوتية", "ButtonBack": "خلف", "ButtonCancel": "الغاء", - "ButtonChangeContentType": "غيّر نوع المحتوى", "ButtonChangeServer": "غير الخادم", "ButtonConnect": "اتصل", "ButtonDelete": "حذف", @@ -161,8 +160,6 @@ "HeaderBranding": "وسومات البرنامج", "HeaderCastAndCrew": "الممثلين وطاقم العمل", "HeaderCastCrew": "الممثلين والطاقم", - "HeaderChangeFolderType": "غيّر نوع المحتوى", - "HeaderChangeFolderTypeHelp": "لتغيير نوع المحتوى، الرجاء إزالة المكتبة وبناءها مرة أخرى بنوع جديد.", "HeaderChannelAccess": "صلاحيات القنوات", "HeaderChannels": "القنوات", "HeaderCodecProfile": "عريضة الكودك", diff --git a/src/strings/bg-bg.json b/src/strings/bg-bg.json index a0058506a..80290c8c8 100644 --- a/src/strings/bg-bg.json +++ b/src/strings/bg-bg.json @@ -34,7 +34,6 @@ "ButtonAudioTracks": "Звукови пътеки", "ButtonBack": "Назад", "ButtonCancel": "Отмяна", - "ButtonChangeContentType": "Промяна на типа съдържание", "ButtonDelete": "Изтриване", "ButtonDeleteImage": "Изтриване на изобр.", "ButtonDownload": "Изтегляне", @@ -169,8 +168,6 @@ "HeaderBooks": "Книги", "HeaderCastAndCrew": "Артисти и изпълнители", "HeaderCastCrew": "Артисти и изпълнители", - "HeaderChangeFolderType": "Промяна на типа съдържание", - "HeaderChangeFolderTypeHelp": "За да промените вида на съдържанието, моля, премахнете и създайте наново библиотеката с правилния тип.", "HeaderChannels": "Канали", "HeaderCodecProfile": "Профил на кодека", "HeaderContainerProfile": "Профил на контейнера", diff --git a/src/strings/cs.json b/src/strings/cs.json index 836585143..8b996086e 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -48,7 +48,6 @@ "ButtonAudioTracks": "Audio stopy", "ButtonBack": "Zpět", "ButtonCancel": "Zrušit", - "ButtonChangeContentType": "Změnit typ obsahu", "ButtonChangeServer": "Změna serveru", "ButtonConnect": "Připojit", "ButtonDelete": "Odstranit", @@ -263,8 +262,6 @@ "HeaderCancelSeries": "Ukončit Seriál", "HeaderCastAndCrew": "Herci a obsazení", "HeaderCastCrew": "Herci a obsazení", - "HeaderChangeFolderType": "Změna typu obsahu", - "HeaderChangeFolderTypeHelp": "Chcete-li změnit typ, vyjměte a znovu prohledejte knihovny s nově přiřazeným typem.", "HeaderChannelAccess": "Přístup ke kanálu", "HeaderChannels": "Kanály", "HeaderCodecProfile": "Profil kodeků", diff --git a/src/strings/da.json b/src/strings/da.json index 02f0aa5bb..d847eec1e 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -45,7 +45,6 @@ "ButtonAudioTracks": "Lysspor", "ButtonBack": "Tilbage", "ButtonCancel": "Annuller", - "ButtonChangeContentType": "Skift indholdstype", "ButtonChangeServer": "Skift server", "ButtonConnect": "Forbind", "ButtonDelete": "Slet", @@ -213,8 +212,6 @@ "HeaderCancelSeries": "Annuller Serie", "HeaderCastAndCrew": "Medvirkende", "HeaderCastCrew": "Medvirkende", - "HeaderChangeFolderType": "Ændre indholdstype", - "HeaderChangeFolderTypeHelp": "For at ændre type, skal du venligst fjerne og genopbygge biblioteket med den nye type.", "HeaderChannelAccess": "Adgang til kanaler", "HeaderChannels": "Kanaler", "HeaderChapterImages": "Kapitel Billeder", diff --git a/src/strings/de.json b/src/strings/de.json index 7366986e3..687640e8f 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -74,7 +74,6 @@ "ButtonAudioTracks": "Audiospuren", "ButtonBack": "Zurück", "ButtonCancel": "Abbrechen", - "ButtonChangeContentType": "Ändere Inhalte-Typ", "ButtonChangeServer": "Wechsel Server", "ButtonConnect": "Verbinde", "ButtonDelete": "Löschen", @@ -296,8 +295,6 @@ "HeaderCancelSeries": "Serie abbrechen", "HeaderCastAndCrew": "Besetzung & Mitwirkende", "HeaderCastCrew": "Besetzung & Crew", - "HeaderChangeFolderType": "Ändere Inhalte Typ", - "HeaderChangeFolderTypeHelp": "Um den Typ zu ändern, bitte entferne die Bibliothek und erstelle sie mit dem neuen Medientyp erneut.", "HeaderChannelAccess": "Channelzugriff", "HeaderChannels": "Kanäle", "HeaderChapterImages": "Kapitel Bilder", diff --git a/src/strings/el.json b/src/strings/el.json index 47a8ffee0..00fa6a90a 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -58,7 +58,6 @@ "ButtonAudioTracks": "Ηχητικά κομμάτια", "ButtonBack": "Πίσω", "ButtonCancel": "Ακύρωση ", - "ButtonChangeContentType": "Αλλαγή τύπου περιεχομένου", "ButtonChangeServer": "Αλλαγή Διακομιστή", "ButtonConnect": "Σύνδεση", "ButtonDelete": "Διαγραφή", @@ -273,8 +272,6 @@ "HeaderCancelSeries": "Ακύρωση Σειράς", "HeaderCastAndCrew": "Ηθοποιοί και Συνεργείο", "HeaderCastCrew": "Ηθοποιοί και συνεργείο", - "HeaderChangeFolderType": "Αλλαγή τύπου περιεχομένου", - "HeaderChangeFolderTypeHelp": "Για να αλλάξετε τον τύπο, καταργήστε και δημιουργήστε ξανά τη βιβλιοθήκη με το νέο τύπο.", "HeaderChannels": "Κανάλια", "HeaderCodecProfileHelp": "Τα προφίλ κωδικοποιητή υποδεικνύουν τους περιορισμούς μιας συσκευής κατά την αναπαραγωγή συγκεκριμένων κωδικοποιητών. Εάν ισχύει περιορισμός, τότε τα μέσα θα κωδικοποιηθούν, ακόμα και αν ο κωδικοποιητής έχει ρυθμιστεί για άμεση αναπαραγωγή.", "HeaderConfigureRemoteAccess": "Ρύθμιση απομακρυσμένης πρόσβασης", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index a9d0dbb92..cb8b73562 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -69,7 +69,6 @@ "ButtonAudioTracks": "Audio Tracks", "ButtonBack": "Back", "ButtonCancel": "Cancel", - "ButtonChangeContentType": "Change content type", "ButtonChangeServer": "Change Server", "ButtonConnect": "Connect", "ButtonDelete": "Delete", @@ -314,8 +313,6 @@ "HeaderCancelSeries": "Cancel Series", "HeaderCastAndCrew": "Cast & Crew", "HeaderCastCrew": "Cast & Crew", - "HeaderChangeFolderType": "Change Content Type", - "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", "HeaderChannelAccess": "Channel Access", "HeaderChannels": "Channels", "HeaderChapterImages": "Chapter Images", diff --git a/src/strings/es-ar.json b/src/strings/es-ar.json index 88509e9d5..329c98d18 100644 --- a/src/strings/es-ar.json +++ b/src/strings/es-ar.json @@ -123,7 +123,6 @@ "ButtonBack": "Atrás", "ButtonCancel": "Cancelar", "ButtonCancelSeries": "Cancelar serie", - "ButtonChangeContentType": "Cambiar tipo de contenido", "ButtonChangeServer": "Cambiar servidor", "ButtonClear": "Limpiar", "ButtonClose": "Cerrar", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 270a8a1ae..05e6eb91d 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -69,7 +69,6 @@ "ButtonAudioTracks": "Pistas de Audio", "ButtonBack": "Atrás", "ButtonCancel": "Cancelar", - "ButtonChangeContentType": "Cambiar tipo de contenido", "ButtonChangeServer": "Cambiar Servidor", "ButtonConnect": "Conectar", "ButtonDelete": "Eliminar", @@ -304,8 +303,6 @@ "HeaderCancelSeries": "Cancelar Serie", "HeaderCastAndCrew": "Reparto & Personal:", "HeaderCastCrew": "Reparto y Personal", - "HeaderChangeFolderType": "Cambiar Tipo de Contenido", - "HeaderChangeFolderTypeHelp": "Para cambiar el tipo, por favor elimine y reconstruya la biblioteca con el nuevo tipo.", "HeaderChannelAccess": "Acceso a los Canales", "HeaderChannels": "Canales", "HeaderChapterImages": "Imagenes de Capitulo", diff --git a/src/strings/es.json b/src/strings/es.json index 8bf35ad45..1eacb4fb5 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -54,7 +54,6 @@ "ButtonAudioTracks": "Pistas de audio", "ButtonBack": "Atrás", "ButtonCancel": "Cancelar", - "ButtonChangeContentType": "Cambiar el tipo de contenido", "ButtonChangeServer": "Cambiar servidor", "ButtonConnect": "Conectar", "ButtonDelete": "Borrar", @@ -251,8 +250,6 @@ "HeaderCancelSeries": "Cancelar Series", "HeaderCastAndCrew": "Reparto y equipo", "HeaderCastCrew": "Reparto y equipo técnico", - "HeaderChangeFolderType": "Cambiar tipo de contenido", - "HeaderChangeFolderTypeHelp": "Para cambiar el tipo de contenido por favor elimina y reconstruye la biblioteca con el nuevo tipo.", "HeaderChannelAccess": "Acceso a los canales", "HeaderChannels": "Canales", "HeaderChapterImages": "Imágenes de capítulos", diff --git a/src/strings/fr-ca.json b/src/strings/fr-ca.json index b862d6dcb..07c3b3eb3 100644 --- a/src/strings/fr-ca.json +++ b/src/strings/fr-ca.json @@ -155,7 +155,6 @@ "ButtonAudioTracks": "Pistes Audio", "ButtonBack": "Retour arrière", "ButtonCancelSeries": "Annuler séries", - "ButtonChangeContentType": "Changer le type de contenu", "ButtonChangeServer": "Changer de serveur", "ButtonClear": "Effacer", "ButtonClose": "Fermer", diff --git a/src/strings/fr.json b/src/strings/fr.json index d9cd86457..b1c4f8b37 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -65,7 +65,6 @@ "ButtonAudioTracks": "Pistes Audio", "ButtonBack": "Retour arrière", "ButtonCancel": "Annuler", - "ButtonChangeContentType": "Changer le type de contenu", "ButtonChangeServer": "Changer de serveur", "ButtonConnect": "Connexion", "ButtonDelete": "Supprimer", @@ -300,8 +299,6 @@ "HeaderCancelSeries": "Annuler la série", "HeaderCastAndCrew": "Distribution & équipe", "HeaderCastCrew": "Distribution & équipe", - "HeaderChangeFolderType": "Modifier le type de contenu", - "HeaderChangeFolderTypeHelp": "Pour modifier le type, veuillez supprimer et recréer la médiathèque avec le nouveau type.", "HeaderChannelAccess": "Accès aux chaînes", "HeaderChannels": "Chaînes", "HeaderChapterImages": "Images des chapitres", diff --git a/src/strings/hr.json b/src/strings/hr.json index d702f58fb..d55a5d0c4 100644 --- a/src/strings/hr.json +++ b/src/strings/hr.json @@ -30,7 +30,6 @@ "ButtonAudioTracks": "Audio pjesme", "ButtonBack": "Nazad", "ButtonCancel": "Odustani", - "ButtonChangeContentType": "Promijeni tip sadržaja", "ButtonChangeServer": "Promijeni Server", "ButtonConnect": "Spoji", "ButtonDelete": "Izbriši", @@ -188,8 +187,6 @@ "HeaderCancelSeries": "Otkaži serije", "HeaderCastAndCrew": "Glumci i ekipa", "HeaderCastCrew": "Glumci i ekipa", - "HeaderChangeFolderType": "Promijeni tip sadržaja", - "HeaderChangeFolderTypeHelp": "Za promjenu tipa, uklonite i ponovno izgraditi biblioteku s novim tipom.", "HeaderChannelAccess": "Pristup kanalima", "HeaderChannels": "Kanali", "HeaderCodecProfile": "Profil kodeka", diff --git a/src/strings/hu.json b/src/strings/hu.json index 7c708bef1..fe7da6644 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -26,7 +26,6 @@ "ButtonArrowUp": "Fel", "ButtonAudioTracks": "Audió Sávok", "ButtonCancel": "Mégsem", - "ButtonChangeContentType": "Tartalom típusának megváltoztatása", "ButtonChangeServer": "Szerver váltás", "ButtonConnect": "Kapcsolódás", "ButtonDelete": "Törlés", @@ -139,8 +138,6 @@ "HeaderAutomaticUpdates": "Automatikus frissitések", "HeaderCastAndCrew": "Szereplők és Stáb", "HeaderCastCrew": "Szereplők és Stáb", - "HeaderChangeFolderType": "Tartalom típusának megváltoztatása", - "HeaderChangeFolderTypeHelp": "A típus megváltoztatásához távolítsd el és építsd fel újra a könyvtárat az új típussal.", "HeaderChannels": "Csatornák", "HeaderConnectToServer": "Kapcsolódás a Szerverhez", "HeaderContinueWatching": "Folyamatban lévő filmek", diff --git a/src/strings/it.json b/src/strings/it.json index 1bcfd9a2f..923d0004d 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -59,7 +59,6 @@ "ButtonAudioTracks": "Tracce Audio", "ButtonBack": "Indietro", "ButtonCancel": "Annulla", - "ButtonChangeContentType": "Cambia tipo del contenuto", "ButtonChangeServer": "Cambia Server", "ButtonConnect": "Connetti", "ButtonDelete": "Elimina", @@ -287,8 +286,6 @@ "HeaderBranding": "Personalizza", "HeaderCancelRecording": "Annulla la Registrazione", "HeaderCancelSeries": "Annulla Serie TV", - "HeaderChangeFolderType": "Cambia il tipo di contenuto", - "HeaderChangeFolderTypeHelp": "Per modificare il tipo, rimuovere e ricostruire la raccolta con il nuovo tipo.", "HeaderChannelAccess": "Accesso canali", "HeaderChannels": "Canali", "HeaderChapterImages": "Immagini Capitolo", diff --git a/src/strings/kk.json b/src/strings/kk.json index 442003e86..f85c3e174 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -70,7 +70,6 @@ "ButtonAudioTracks": "Dybys jolshyqtaryna", "ButtonBack": "Artqa", "ButtonCancel": "Boldyrmaý", - "ButtonChangeContentType": "Mazmun túrin ózgertý", "ButtonChangeServer": "Serverdi aýystyrý", "ButtonConnect": "Qosylý", "ButtonDelete": "Joıý", @@ -321,8 +320,6 @@ "HeaderCancelSeries": "Telehıkaıany boldyrmaý", "HeaderCastAndCrew": "Somdaýshylar men túsirýshiler", "HeaderCastCrew": "Somdaýshylar men túsirýshiler", - "HeaderChangeFolderType": "Mazmun túrin ózgertý", - "HeaderChangeFolderTypeHelp": "Túrdi ózgertý úshin, tasyǵyshhanany alastańyz da, jańa túr arqyly qaıta quryńyz.", "HeaderChannelAccess": "Arnaǵa qatynaý", "HeaderChannels": "Arnalar", "HeaderChapterImages": "Sahna sýretteri", diff --git a/src/strings/ko.json b/src/strings/ko.json index d2a6bde38..afa748c8a 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -24,7 +24,6 @@ "ButtonArrowUp": "위", "ButtonBack": "뒤로", "ButtonCancel": "취소", - "ButtonChangeContentType": "콘텐트 종류 변경", "ButtonChangeServer": "서버 변경", "ButtonConnect": "접속", "ButtonDelete": "삭제", @@ -142,7 +141,6 @@ "HeaderBooks": "책", "HeaderBranding": "브랜딩", "HeaderCastCrew": "배역 및 제작진", - "HeaderChangeFolderType": "콘텐트 종류 변경", "HeaderChannelAccess": "채널 접속", "HeaderChannels": "채널", "HeaderCodecProfile": "코덱 프로파일", diff --git a/src/strings/ms.json b/src/strings/ms.json index 8359ae43d..6d6d05b58 100644 --- a/src/strings/ms.json +++ b/src/strings/ms.json @@ -71,7 +71,6 @@ "ButtonAudioTracks": "Trek Audio", "ButtonBack": "Kembali", "ButtonCancel": "Batalkan", - "ButtonChangeContentType": "Tukar pilihan isi kandungan", "ButtonChangeServer": "Tukar pelayan", "ButtonConnect": "Sambung" } diff --git a/src/strings/nb.json b/src/strings/nb.json index b3acccdac..c60a65254 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -47,7 +47,6 @@ "ButtonAudioTracks": "Lydspor", "ButtonBack": "Tilbake", "ButtonCancel": "Avbryt", - "ButtonChangeContentType": "Velg innholdtype", "ButtonChangeServer": "Endre server", "ButtonConnect": "Koble til", "ButtonDelete": "Slett", @@ -223,8 +222,6 @@ "HeaderCancelSeries": "Avbryt serie", "HeaderCastAndCrew": "Skuespillere & Crew", "HeaderCastCrew": "Mannskap", - "HeaderChangeFolderType": "Endre innholdstype", - "HeaderChangeFolderTypeHelp": "For å endre type, må du fjerne og gjenoppbygge biblioteket med den nye typen.", "HeaderChannelAccess": "Kanal tilgang", "HeaderChannels": "Kanaler", "HeaderCodecProfile": "Kodek Profil", diff --git a/src/strings/nl.json b/src/strings/nl.json index 0ffcffb28..5d1ddd2f8 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -63,7 +63,6 @@ "ButtonAudioTracks": "Audio track", "ButtonBack": "Terug", "ButtonCancel": "Annuleren", - "ButtonChangeContentType": "Verander content type", "ButtonChangeServer": "Wijzig server", "ButtonConnect": "Verbind", "ButtonDelete": "Verwijderen", @@ -290,8 +289,6 @@ "HeaderBranding": "Huisstijl", "HeaderCancelRecording": "Opname Annuleren", "HeaderCancelSeries": "Annuleren Series", - "HeaderChangeFolderType": "Verander Content Type", - "HeaderChangeFolderTypeHelp": "Als u het type wilt wijzigen, verwijder het dan en maak dan een nieuwe bibliotheek met het nieuwe type.", "HeaderChannelAccess": "Kanaal toegang", "HeaderChannels": "Kanalen", "HeaderChapterImages": "Hoofdstukafbeeldingen", diff --git a/src/strings/pl.json b/src/strings/pl.json index e5c419a9d..a761d5cb9 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -68,7 +68,6 @@ "ButtonAudioTracks": "Ścieżki dźwiękowe", "ButtonBack": "Wstecz", "ButtonCancel": "Anuluj", - "ButtonChangeContentType": "Zmień typ zawartości", "ButtonChangeServer": "Zmień Serwer", "ButtonConnect": "Połacz", "ButtonDelete": "Usuń", @@ -309,8 +308,6 @@ "HeaderCancelSeries": "Anuluj nagrywanie serialu", "HeaderCastAndCrew": "Obsada i ekipa", "HeaderCastCrew": "Obsada i ekipa", - "HeaderChangeFolderType": "Zmień typ zawartości", - "HeaderChangeFolderTypeHelp": "W celu zmiany typu, usuń bibliotekę, a następnie dodaj ją określając nowy typ.", "HeaderChannelAccess": "Dostęp do Kanałów", "HeaderChannels": "Kanały", "HeaderChapterImages": "Obrazy rozdziałów", diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index 8f52a71d0..1f9b518ba 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -64,7 +64,6 @@ "ButtonAudioTracks": "Faixas de Áudio", "ButtonBack": "Voltar", "ButtonCancel": "Cancelar", - "ButtonChangeContentType": "Alterar o tipo de conteúdo", "ButtonChangeServer": "Alterar Servidor", "ButtonConnect": "Conectar", "ButtonDelete": "Excluir", @@ -296,8 +295,6 @@ "HeaderCancelSeries": "Cancelar Série", "HeaderCastAndCrew": "Elenco & Equipe", "HeaderCastCrew": "Elenco & Equipe", - "HeaderChangeFolderType": "Alterar Tipo do Conteúdo", - "HeaderChangeFolderTypeHelp": "Para alterar o tipo, por favor remova e reconstrua a biblioteca com o novo tipo.", "HeaderChannelAccess": "Acesso ao Canal", "HeaderChannels": "Canais", "HeaderChapterImages": "Imagens do Capítulo", diff --git a/src/strings/ru.json b/src/strings/ru.json index 067b8af30..d59bbe3bd 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -68,7 +68,6 @@ "ButtonAudioTracks": "Аудиодорожки", "ButtonBack": "Назад", "ButtonCancel": "Отменить", - "ButtonChangeContentType": "Сменить тип содержания", "ButtonChangeServer": "Сменить сервер", "ButtonConnect": "Подсоединиться", "ButtonDelete": "Удалить", @@ -311,8 +310,6 @@ "HeaderCancelSeries": "Отмена сериала", "HeaderCastAndCrew": "Снимались и снимали", "HeaderCastCrew": "Снимались и снимали", - "HeaderChangeFolderType": "Изменение типа содержания", - "HeaderChangeFolderTypeHelp": "Для изменения типа, надо изъять медиатеку и заново построить её с новым типом.", "HeaderChannelAccess": "Доступ ко каналам", "HeaderChannels": "Каналы", "HeaderChapterImages": "Рисунки сцен", diff --git a/src/strings/sk.json b/src/strings/sk.json index 171838815..47005b9df 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -40,7 +40,6 @@ "ButtonAudioTracks": "Audio stopy", "ButtonBack": "Späť", "ButtonCancel": "Zrušiť", - "ButtonChangeContentType": "Zmeniť typ obsahu", "ButtonChangeServer": "Zmeniť server", "ButtonConnect": "Pripojiť", "ButtonDelete": "Zmazať", @@ -192,7 +191,6 @@ "HeaderAutomaticUpdates": "Automatické aktualizácie", "HeaderBooks": "Knihy", "HeaderCastAndCrew": "Obsadenie", - "HeaderChangeFolderType": "Zmeniť typ obsahu", "HeaderChannels": "Kanály", "HeaderChapterImages": "Obrázky kapitol", "HeaderConfigureRemoteAccess": "Nastaviť vzdialený prístup", diff --git a/src/strings/sv.json b/src/strings/sv.json index 27294f081..bad793046 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -60,7 +60,6 @@ "ButtonAudioTracks": "Ljudspår", "ButtonBack": "Föregående", "ButtonCancel": "Avbryt", - "ButtonChangeContentType": "Ändra innehållstyp", "ButtonChangeServer": "Byt server", "ButtonConnect": "Anslut", "ButtonDelete": "Ta bort", @@ -278,8 +277,6 @@ "HeaderCancelSeries": "Avbryt serie", "HeaderCastAndCrew": "Medverkande", "HeaderCastCrew": "Rollista & besättning", - "HeaderChangeFolderType": "Ändra innehållstyp", - "HeaderChangeFolderTypeHelp": "För att ändra typ, ta bort och bygg om biblioteket med den nya typen.", "HeaderChannelAccess": "Kanalåtkomst", "HeaderChannels": "Kanaler", "HeaderChapterImages": "Kapitelbilder", diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index f51e138e5..07b391c71 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -62,7 +62,6 @@ "ButtonAudioTracks": "音轨", "ButtonBack": "返回", "ButtonCancel": "取消", - "ButtonChangeContentType": "更改内容类型", "ButtonChangeServer": "更改服务器", "ButtonConnect": "连接", "ButtonDelete": "删除", @@ -281,8 +280,6 @@ "HeaderBranding": "品牌", "HeaderCastAndCrew": "演员表", "HeaderCastCrew": "演职人员", - "HeaderChangeFolderType": "更改内容类型", - "HeaderChangeFolderTypeHelp": "为了改变类型,请移除这个媒体库并以你需要的新类型重新建立一个媒体库。", "HeaderChannelAccess": "频道访问", "HeaderChannels": "频道", "HeaderChapterImages": "章节图片", diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index d1ddadc23..8a9b16275 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -368,7 +368,6 @@ "BoxRear": "盒子(背面)", "BurnSubtitlesHelp": "根據字幕格式決定服務器在轉換視頻時是否燒錄字幕。避免燒錄字幕會提高服務器性能。選擇“自動”以燒錄基於圖像的字幕格式(如 VOBSUB, PGS, SUB/IDX 等)和一些複雜的 ASS/SSA 字幕", "ButtonArrowDown": "下", - "ButtonChangeContentType": "更改內容類型", "ButtonConnect": "連結", "ButtonDown": "下", "ButtonDownload": "下載", @@ -599,8 +598,6 @@ "HeaderCancelSeries": "取消系列", "HeaderCancelSyncJob": "取消同步", "HeaderCastAndCrew": "演員與工作人員", - "HeaderChangeFolderType": "更改內容類型", - "HeaderChangeFolderTypeHelp": "以更改類型,請移除這個媒體庫並以你需要的新類型重新建立一個媒體庫。", "HeaderChannelAccess": "節目存取", "HeaderChapterImages": "章節圖片", "HeaderChapters": "章節", From e21f7f10ed4a11c2bcfac2ff91d710146e8e8e60 Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 13 May 2019 12:56:44 -0700 Subject: [PATCH 097/106] add a response on icon hover and other style fixes --- src/components/cardbuilder/card.css | 34 +++++-------------- src/components/cardbuilder/cardBuilder.js | 22 +++--------- src/components/emby-button/emby-button.css | 23 ++++++------- src/components/nowplayingbar/nowplayingbar.js | 2 +- src/components/themes/appletv/theme.css | 7 +++- src/components/themes/blueradiance/theme.css | 7 +++- src/components/themes/dark/theme.css | 7 +++- src/components/themes/emby/theme.css | 7 +++- src/components/themes/light/theme.css | 7 +++- src/components/themes/purple-haze/theme.css | 7 +++- src/components/themes/wmc/theme.css | 7 +++- 11 files changed, 66 insertions(+), 64 deletions(-) diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.css index 100a464cd..76b78fd73 100644 --- a/src/components/cardbuilder/card.css +++ b/src/components/cardbuilder/card.css @@ -410,7 +410,7 @@ button { } .cardOverlayButton { - color: rgba(255, 255, 255, .76) !important; + color: rgba(255, 255, 255, .76); margin: 0; z-index: 1; padding: .75em; @@ -453,10 +453,6 @@ button { transition: transform 200ms ease-out; } - .cardOverlayButton-centered:hover { - transform: scale(1.2, 1.2); - } - .bannerCard { width: 100%; } @@ -490,14 +486,12 @@ button { } @media (min-width: 25em) { - .backdropCard { width: 50%; } } @media (min-width: 31.25em) { - .smallBackdropCard { width: 33.333333333333333333333333333333%; } @@ -520,7 +514,6 @@ button { } @media (min-width: 50em) { - .bannerCard { width: 50%; } @@ -535,15 +528,12 @@ button { } @media (min-width: 62.5em) { - - .smallBackdropCard { width: 20%; } } @media (min-width: 75em) { - .backdropCard { width: 25%; } @@ -563,7 +553,6 @@ button { @media (min-width: 87.5em) { - .squareCard, .portraitCard { width: 14.285714285714285714285714285714%; } @@ -574,7 +563,6 @@ button { } @media (min-width: 100em) { - .smallBackdropCard { width: 12.5%; } @@ -589,14 +577,12 @@ button { } @media (min-width: 120em) { - .squareCard, .portraitCard { width: 11.111111111111111111111111111111%; } } @media (min-width: 131.25em) { - .bannerCard { width: 25%; } @@ -607,7 +593,6 @@ button { } @media (min-width: 156.25em) { - .backdropCard { width: 16.666666666666666666666666666667%; } @@ -692,14 +677,12 @@ button { } @media (min-width: 50em) { - .overflowSquareCard, .overflowPortraitCard { width: 18.4vw; } } @media (min-width: 75em) { - .overflowBackdropCard, .overflowSmallBackdropCard { width: 23.3vw; } @@ -710,7 +693,6 @@ button { } @media (min-width: 87.5em) { - .overflowSquareCard, .overflowPortraitCard { width: 13.3vw; } @@ -780,16 +762,15 @@ button { user-select: none; } -.card-hoverable :hover .cardOverlayContainer { +.card-hoverable:hover .cardOverlayContainer { opacity: 1; } .cardOverlayButton-hover { opacity: 0; - transition: opacity .2s; + transition: 0.2s; background: transparent; - color: #fff !important; - padding: .5em; + padding: 0.5em; } .cardOverlayButtonIcon-hover { @@ -801,6 +782,7 @@ button { } .cardOverlayFab-primary { + background-color: rgba(0,0,0,0.7); font-size: 130%; padding: 0; width: 3em; @@ -812,7 +794,7 @@ button { left: 50%; } -.cardOverlayFab-primary i { - border: .07em solid rgba(255,255,255,.9); - color: #fff; +.cardOverlayFab-primary:hover { + transform: scale(1.4, 1.4); + transition: 0.2s; } diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index d8c71d461..b41428e2a 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -6,22 +6,16 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana var enableFocusTransfrom = !browser.slow && !browser.edge; function getCardsHtml(items, options) { - if (arguments.length === 1) { - options = arguments[0]; items = options.items; } - var html = buildCardsHtmlInternal(items, options); - - return html; + return buildCardsHtmlInternal(items, options); } function getPostersPerRow(shape, screenWidth, isOrientationLandscape) { - switch (shape) { - case 'portrait': if (layoutManager.tv) { return 100 / 16.66666667; @@ -229,7 +223,6 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana } function isResizable(windowWidth) { - var screen = window.screen; if (screen) { var screenWidth = screen.availWidth; @@ -243,11 +236,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana } function getImageWidth(shape, screenWidth, isOrientationLandscape) { - - //console.log(screenWidth); var imagesPerRow = getPostersPerRow(shape, screenWidth, isOrientationLandscape); - //console.log(shape + '--' + imagesPerRow); - var shapeWidth = screenWidth / imagesPerRow; return Math.round(shapeWidth); @@ -1362,13 +1351,12 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana outerCardFooter = getCardFooterText(item, apiClient, options, showTitle, forceName, overlayText, imgUrl, footerCssClass, progressHtml, logoUrl, true); } - if (outerCardFooter && !options.cardLayout /*&& options.allowBottomPadding !== false*/) { + if (outerCardFooter && !options.cardLayout) { cardBoxClass += ' cardBox-bottompadded'; } var overlayButtons = ''; if (layoutManager.mobile) { - var overlayPlayButton = options.overlayPlayButton; if (overlayPlayButton == null && !options.overlayMoreButton && !options.overlayInfoButton && !options.cardLayout) { @@ -1386,7 +1374,6 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana } if (options.overlayMoreButton) { - overlayButtons += ''; } } @@ -1527,10 +1514,10 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana html += '
'; - var btnCssClass = 'cardOverlayButton cardOverlayButton-hover itemAction'; + var btnCssClass = 'cardOverlayButton cardOverlayButton-hover itemAction paper-icon-button-light'; if (playbackManager.canPlay(item)) { - html += ''; + html += ''; } html += '
'; @@ -1538,7 +1525,6 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana var userData = item.UserData || {}; if (itemHelper.canMarkPlayed(item)) { - require(['emby-playstatebutton']); html += ''; } diff --git a/src/components/emby-button/emby-button.css b/src/components/emby-button/emby-button.css index 90807d2a8..148d1ebad 100644 --- a/src/components/emby-button/emby-button.css +++ b/src/components/emby-button/emby-button.css @@ -27,7 +27,6 @@ /* Disable webkit tap highlighting */ -webkit-tap-highlight-color: rgba(0,0,0,0); text-decoration: none; - /* Not crazy about this but it normalizes heights between anchors and buttons */ line-height: 1.35; } @@ -40,9 +39,9 @@ background: transparent; } - .button-flat:hover { - opacity: .5; - } +.button-flat:hover { + opacity: .5; +} .button-link { background: transparent; @@ -65,10 +64,10 @@ transform-origin: center center; } - .emby-button-focusscale:focus { - transform: scale(1.16); - z-index: 1; - } +.emby-button-focusscale:focus { + transform: scale(1.16); + z-index: 1; +} .emby-button > i { /* For non-fab buttons that have icons */ @@ -170,10 +169,10 @@ transform-origin: center center; } - .icon-button-focusscale:focus { - transform: scale(1.3); - z-index: 1; - } +.icon-button-focusscale:focus { + transform: scale(1.3); + z-index: 1; +} .btnFilterWithBubble { position: relative; diff --git a/src/components/nowplayingbar/nowplayingbar.js b/src/components/nowplayingbar/nowplayingbar.js index 01c920a50..9fac61ba1 100644 --- a/src/components/nowplayingbar/nowplayingbar.js +++ b/src/components/nowplayingbar/nowplayingbar.js @@ -572,7 +572,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader', var userData = item.UserData || {}; var likes = userData.Likes == null ? '' : userData.Likes; - nowPlayingUserData.innerHTML = ''; + nowPlayingUserData.innerHTML = ''; }); } diff --git a/src/components/themes/appletv/theme.css b/src/components/themes/appletv/theme.css index 2342568ce..65b6745e9 100644 --- a/src/components/themes/appletv/theme.css +++ b/src/components/themes/appletv/theme.css @@ -71,9 +71,14 @@ html { background: #f0f0f0 } +.paper-icon-button-light:hover { + color: #00a4dc; + background-color: rgba(0,164,220, .2); + transition: 0.2s; +} + .paper-icon-button-light:focus { color: #00a4dc; - background-color: rgba(0,164,220, .2) } .fab, diff --git a/src/components/themes/blueradiance/theme.css b/src/components/themes/blueradiance/theme.css index c8ee55eff..ab59bcea9 100644 --- a/src/components/themes/blueradiance/theme.css +++ b/src/components/themes/blueradiance/theme.css @@ -58,9 +58,14 @@ html { } } +.paper-icon-button-light:hover { + color: #00a4dc; + background-color: rgba(0,164,220, .2); + transition: 0.2s; +} + .paper-icon-button-light:focus { color: #00a4dc; - background-color: rgba(0,164,220, .2) } .fab, diff --git a/src/components/themes/dark/theme.css b/src/components/themes/dark/theme.css index 8f89ebef5..40490c1a8 100644 --- a/src/components/themes/dark/theme.css +++ b/src/components/themes/dark/theme.css @@ -43,9 +43,14 @@ html { background-color: rgba(0, 0, 0, .86) } +.paper-icon-button-light:hover { + color: #00a4dc; + background-color: rgba(0,164,220, .2); + transition: 0.2s; +} + .paper-icon-button-light:focus { color: #00a4dc; - background-color: rgba(0,164,220, .2) } .fab, diff --git a/src/components/themes/emby/theme.css b/src/components/themes/emby/theme.css index 3e5809c19..8d83bed17 100644 --- a/src/components/themes/emby/theme.css +++ b/src/components/themes/emby/theme.css @@ -43,9 +43,14 @@ html { background-color: rgba(0, 0, 0, .86) } +.paper-icon-button-light:hover { + color: #52b54b; + background-color: rgba(82, 181, 75, .2); + transition: 0.2s; +} + .paper-icon-button-light:focus { color: #52b54b; - background-color: rgba(82, 181, 75, .2) } .fab, diff --git a/src/components/themes/light/theme.css b/src/components/themes/light/theme.css index ac8c0e040..4a0c1f2ec 100644 --- a/src/components/themes/light/theme.css +++ b/src/components/themes/light/theme.css @@ -59,9 +59,14 @@ html { background-color: #f0f0f0 } +.paper-icon-button-light:hover { + color: #00a4dc; + background-color: rgba(0,164,220, .2); + transition: 0.2s; +} + .paper-icon-button-light:focus { color: #00a4dc; - background-color: rgba(0,164,220, .2) } .fab, diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index b3c3843ef..2e7f61c42 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -58,9 +58,14 @@ html { } } +.paper-icon-button-light:hover { + color: #48C3C8; + background-color: rgba(0,164,220, .2); + transition: 0.2s; +} + .paper-icon-button-light:focus { color: #48C3C8; - background-color: rgba(0,164,220, .2) } progress { diff --git a/src/components/themes/wmc/theme.css b/src/components/themes/wmc/theme.css index ac18837ee..bb6d6d70b 100644 --- a/src/components/themes/wmc/theme.css +++ b/src/components/themes/wmc/theme.css @@ -64,9 +64,14 @@ html { background: rgba(17, 98, 164, .9) } +.paper-icon-button-light:hover { + color: #00a4dc; + background-color: rgba(0,164,220, .2); + transition: 0.2s; +} + .paper-icon-button-light:focus { color: #00a4dc; - background-color: rgba(0,164,220, .2) } .fab, From c8e695f9c63fda0876e5ff2e39d27b7a757e7ced Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Wed, 15 May 2019 23:01:54 +0300 Subject: [PATCH 098/106] Fix secondery title position and show year on tv show ui --- src/scripts/movies.js | 4 +++- src/scripts/movietrailers.js | 4 +++- src/scripts/tvshows.js | 7 +++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/scripts/movies.js b/src/scripts/movies.js index a25e54b49..1ee558e6e 100644 --- a/src/scripts/movies.js +++ b/src/scripts/movies.js @@ -77,7 +77,8 @@ define(["loading", "layoutManager", "userSettings", "events", "libraryBrowser", lazy: !0, cardLayout: !0, showTitle: !0, - showYear: !0 + showYear: !0, + centerText: !0 }) : "Banner" == viewStyle ? cardBuilder.getCardsHtml({ items: items, shape: "banner", @@ -94,6 +95,7 @@ define(["loading", "layoutManager", "userSettings", "events", "libraryBrowser", context: "movies", showTitle: !0, showYear: !0, + centerText: !0, lazy: !0, cardLayout: !0 }) : cardBuilder.getCardsHtml({ diff --git a/src/scripts/movietrailers.js b/src/scripts/movietrailers.js index d014511ea..2d1fdda63 100644 --- a/src/scripts/movietrailers.js +++ b/src/scripts/movietrailers.js @@ -67,7 +67,8 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "movies", cardLayout: !0, showTitle: !0, - showYear: !0 + showYear: !0, + centerText: !0 }) : "Banner" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "banner", @@ -83,6 +84,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "movies", showTitle: !0, showYear: !0, + centerText: !0, cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, diff --git a/src/scripts/tvshows.js b/src/scripts/tvshows.js index dc731eeb7..ac832a915 100644 --- a/src/scripts/tvshows.js +++ b/src/scripts/tvshows.js @@ -77,7 +77,8 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "tvshows", cardLayout: !0, showTitle: !0, - showYear: !0 + showYear: !0, + centerText: !0 }) : "Banner" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "banner", @@ -93,6 +94,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "tvshows", showTitle: !0, showYear: !0, + centerText: !0, cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, @@ -101,7 +103,8 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " centerText: !0, lazy: !0, overlayMoreButton: !0, - showTitle: !0 + showTitle: !0, + showYear: !0 }); var i, length, elems = tabContent.querySelectorAll(".paging"); for (i = 0, length = elems.length; i < length; i++) elems[i].innerHTML = pagingHtml; From da4d3a755edb0179f46e419f834314ae8ed2a603 Mon Sep 17 00:00:00 2001 From: bugfixin Date: Thu, 16 May 2019 04:14:51 +0000 Subject: [PATCH 099/106] Prevent needlessly resetting startPositionTicks to null --- src/components/playback/playbackmanager.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index fedf7924b..d91589f63 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -2536,7 +2536,6 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla } else { - playerStartPositionTicks = null; contentType = getMimeType(type.toLowerCase(), mediaSource.TranscodingContainer); if (mediaUrl.toLowerCase().indexOf('copytimestamps=true') === -1) { From 8c1446266c0b517de89554468c8b647e3450b223 Mon Sep 17 00:00:00 2001 From: DrPandemic Date: Thu, 16 May 2019 18:23:46 -0400 Subject: [PATCH 100/106] Changes checkbox focus appearance --- CONTRIBUTORS.md | 1 + .../emby-checkbox/emby-checkbox.css | 29 ++----------------- src/components/emby-checkbox/emby-checkbox.js | 2 +- src/components/themes/appletv/theme.css | 16 ++++++---- src/components/themes/blueradiance/theme.css | 12 +++++--- src/components/themes/dark/theme.css | 12 +++++--- src/components/themes/emby/theme.css | 12 +++++--- src/components/themes/light/theme.css | 16 ++++++---- src/components/themes/purple-haze/theme.css | 12 +++++--- src/components/themes/wmc/theme.css | 16 ++++++---- 10 files changed, 67 insertions(+), 61 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 0dd6a5351..61838888e 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -22,6 +22,7 @@ - [LogicalPhallacy](https://github.com/LogicalPhallacy) - [thornbill](https://github.com/thornbill) - [redSpoutnik](https://github.com/redSpoutnik) + - [DrPandemic](https://github.com/drpandemic) # Emby Contributors diff --git a/src/components/emby-checkbox/emby-checkbox.css b/src/components/emby-checkbox/emby-checkbox.css index dc12b2de8..ed70747db 100644 --- a/src/components/emby-checkbox/emby-checkbox.css +++ b/src/components/emby-checkbox/emby-checkbox.css @@ -63,29 +63,6 @@ justify-content: center; } -/* Commenting this out - set by theme */ -/*.emby-checkbox:checked + span + span + .checkboxOutline { - border-color: #52B54B; -}*/ - -.emby-checkbox-focushelper { - position: absolute; - top: -0.915em; - left: -0.915em; - width: 3.66em; - height: 3.66em; - display: inline-block; - box-sizing: border-box; - margin: 3px 0 0 0; - border-radius: 50%; - background-color: transparent; -} - -/* Commenting this out - set by theme */ -/*.emby-checkbox:focus + span + .emby-checkbox-focushelper { - background-color: rgba(82, 181, 75, 0.26); -}*/ - .checkboxIcon { font-size: 1.6em; color: #fff; @@ -95,18 +72,18 @@ display: none; } -.emby-checkbox:checked + span + span + .checkboxOutline > .checkboxIcon-checked { +.emby-checkbox:checked + span + .checkboxOutline > .checkboxIcon-checked { /* background-color set by theme */ /*background-color: #52B54B;*/ display: flex !important; } -.emby-checkbox:checked + span + span + .checkboxOutline > .checkboxIcon-unchecked { +.emby-checkbox:checked + span + .checkboxOutline > .checkboxIcon-unchecked { /* background-color set by theme */ display: none !important; } -.emby-checkbox:checked[disabled] + span + span + .checkboxOutline > .checkboxIcon { +.emby-checkbox:checked[disabled] + span + .checkboxOutline > .checkboxIcon { background-color: rgba(0, 0, 0, 0.26); } diff --git a/src/components/emby-checkbox/emby-checkbox.js b/src/components/emby-checkbox/emby-checkbox.js index 9afb67bc0..6144f6892 100644 --- a/src/components/emby-checkbox/emby-checkbox.js +++ b/src/components/emby-checkbox/emby-checkbox.js @@ -61,7 +61,7 @@ define(['browser', 'dom', 'css!./emby-checkbox', 'registerElement'], function (b var uncheckedIcon = this.getAttribute('data-uncheckedicon') || ''; var checkHtml = '' + checkedIcon + ''; var uncheckedHtml = '' + uncheckedIcon + ''; - labelElement.insertAdjacentHTML('beforeend', '' + checkHtml + uncheckedHtml + ''); + labelElement.insertAdjacentHTML('beforeend', '' + checkHtml + uncheckedHtml + ''); labelTextElement.classList.add('checkboxLabel'); diff --git a/src/components/themes/appletv/theme.css b/src/components/themes/appletv/theme.css index 2342568ce..dd4e9ce4d 100644 --- a/src/components/themes/appletv/theme.css +++ b/src/components/themes/appletv/theme.css @@ -281,11 +281,19 @@ html { border: .07em solid rgba(0, 0, 0, .158) } -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:checked+span+.checkboxOutline, .emby-select-withcolor:focus { border-color: #00a4dc } +.emby-checkbox:focus+span+.checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { + border-color: #00a4dc; +} + .emby-select-withcolor>option { color: #000; background: #fff @@ -296,11 +304,7 @@ html { color: #fff } -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(0,164,220, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:checked+span+.checkboxOutline, .itemProgressBarForeground { background-color: #00a4dc } diff --git a/src/components/themes/blueradiance/theme.css b/src/components/themes/blueradiance/theme.css index c8ee55eff..b94932b0e 100644 --- a/src/components/themes/blueradiance/theme.css +++ b/src/components/themes/blueradiance/theme.css @@ -274,15 +274,19 @@ html { color: #fff !important } -.emby-checkbox:checked+span+span+.checkboxOutline { +.emby-checkbox:checked+span+.checkboxOutline { border-color: #00a4dc } -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(0,164,220, .26) +.emby-checkbox:focus+span+.checkboxOutline { + border-color: #fff; } -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { + border-color: #00a4dc; +} + +.emby-checkbox:checked+span+.checkboxOutline, .itemProgressBarForeground { background-color: #00a4dc } diff --git a/src/components/themes/dark/theme.css b/src/components/themes/dark/theme.css index 8f89ebef5..1f3d7713e 100644 --- a/src/components/themes/dark/theme.css +++ b/src/components/themes/dark/theme.css @@ -259,15 +259,19 @@ html { color: #fff !important } -.emby-checkbox:checked+span+span+.checkboxOutline { +.emby-checkbox:checked+span+.checkboxOutline { border-color: #00a4dc } -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(0,164,220, .26) +.emby-checkbox:focus+span+.checkboxOutline { + border-color: #fff; } -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { + border-color: #00a4dc; +} + +.emby-checkbox:checked+span+.checkboxOutline, .itemProgressBarForeground { background-color: #00a4dc } diff --git a/src/components/themes/emby/theme.css b/src/components/themes/emby/theme.css index 3e5809c19..0bdf5d3e7 100644 --- a/src/components/themes/emby/theme.css +++ b/src/components/themes/emby/theme.css @@ -259,15 +259,19 @@ html { color: #fff !important } -.emby-checkbox:checked+span+span+.checkboxOutline { +.emby-checkbox:checked+span+.checkboxOutline { border-color: #52b54b } -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(82, 181, 75, .26) +.emby-checkbox:focus+span+.checkboxOutline { + border-color: #fff; } -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { + border-color: #52b54b; +} + +.emby-checkbox:checked+span+.checkboxOutline, .itemProgressBarForeground { background-color: #52b54b } diff --git a/src/components/themes/light/theme.css b/src/components/themes/light/theme.css index ac8c0e040..717a47a8a 100644 --- a/src/components/themes/light/theme.css +++ b/src/components/themes/light/theme.css @@ -267,11 +267,19 @@ html { border: .07em solid rgba(0, 0, 0, .158) } -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:checked+span+.checkboxOutline, .emby-select-withcolor:focus { border-color: #00a4dc } +.emby-checkbox:focus+span+.checkboxOutline { + border-color: #000; +} + +.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { + border-color: #00a4dc; +} + .emby-select-withcolor>option { color: #000; background: #fff @@ -282,11 +290,7 @@ html { color: #fff } -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(0,164,220, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:checked+span+.checkboxOutline, .itemProgressBarForeground { background-color: #00a4dc } diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index b3c3843ef..34762f084 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -303,15 +303,19 @@ progress::-webkit-progress-value { color: #fff !important } -.emby-checkbox:checked+span+span+.checkboxOutline { +.emby-checkbox:checked+span+.checkboxOutline { border-color: #48C3C8 } -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(0,164,220, .26) +.emby-checkbox:focus+span+.checkboxOutline { + border-color: #fff; } -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { + border-color: #48C3C8; +} + +.emby-checkbox:checked+span+.checkboxOutline, .itemProgressBarForeground { background-color: #48C3C8 } diff --git a/src/components/themes/wmc/theme.css b/src/components/themes/wmc/theme.css index ac18837ee..9f0ba41b7 100644 --- a/src/components/themes/wmc/theme.css +++ b/src/components/themes/wmc/theme.css @@ -261,11 +261,19 @@ html { border: .07em solid rgba(255, 255, 255, .135) } -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:checked+span+.checkboxOutline, .emby-select-withcolor:focus { border-color: #00a4dc } +.emby-checkbox:focus+span+.checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { + border-color: #00a4dc; +} + .emby-select-withcolor>option { color: #000; background: #fff @@ -276,11 +284,7 @@ html { color: #fff } -.emby-checkbox:focus+span+.emby-checkbox-focushelper { - background-color: rgba(0,164,220, .26) -} - -.emby-checkbox:checked+span+span+.checkboxOutline, +.emby-checkbox:checked+span+.checkboxOutline, .itemProgressBarForeground { background-color: #00a4dc } From 184b6efe8dec1468ac8d52d31a3118df21cd3e48 Mon Sep 17 00:00:00 2001 From: QY-Y <506982409@qq.com> Date: Thu, 25 Apr 2019 07:37:43 +0000 Subject: [PATCH 101/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 93.4% (1358 of 1453 strings) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/ --- src/strings/zh-cn.json | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 07b391c71..87654dfa2 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -167,7 +167,7 @@ "DetectingDevices": "正在侦测设备", "DeviceAccessHelp": "这仅适用于可以唯一标识的设备,而不会阻止浏览器访问。限制用户设备访问会阻止使用未在此被批准的新增设备。", "DirectPlaying": "直接播放", - "DirectStreamHelp2": "直接串流一个文件仅仅会占用非常少的处理能力并且视频的品质不会有任何损失。", + "DirectStreamHelp2": "直接串流只占用占用很少的CPU并且视频的品质不会有任何损失。", "DirectStreaming": "直接串流", "Director": "导演", "Disabled": "已禁用", @@ -1317,7 +1317,7 @@ "XmlTvSportsCategoriesHelp": "这些类别的节目将显示为体育节目。用 \"|\" 分隔多个。", "Yes": "是", "Yesterday": "昨天", - "Absolute": "绝对", + "Absolute": "绝对路径", "AnyLanguage": "任何语言", "Art": "图像", "AspectRatio": "长宽比", @@ -1326,5 +1326,10 @@ "ChannelNumber": "频道号码", "ColorSpace": "色彩空间", "DirectorValue": "导演:{0}", - "DirectorsValue": "导演:{0}" + "DirectorsValue": "导演:{0}", + "ColorTransfer": "色彩转换", + "ConfirmDeleteItem": "这将同时在磁盘和媒体库中删除这个项目。确认删除?", + "ConfirmDeleteItems": "这将同时在磁盘和媒体库中删除这些项目。确认删除?", + "ConfirmEndPlayerSession": "确认要关闭位于{0}的Jellyfin吗?", + "ValueSeconds": "{0}秒" } From 087dde45fc31f139ee3645dba704cfede24c12ae Mon Sep 17 00:00:00 2001 From: qqq-qqqq Date: Fri, 26 Apr 2019 18:52:33 +0000 Subject: [PATCH 102/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 93.4% (1358 of 1453 strings) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/ --- src/strings/zh-cn.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 87654dfa2..199510a54 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -1331,5 +1331,21 @@ "ConfirmDeleteItem": "这将同时在磁盘和媒体库中删除这个项目。确认删除?", "ConfirmDeleteItems": "这将同时在磁盘和媒体库中删除这些项目。确认删除?", "ConfirmEndPlayerSession": "确认要关闭位于{0}的Jellyfin吗?", - "ValueSeconds": "{0}秒" + "ValueSeconds": "{0}秒", + "Features": "功能", + "GenreValue": "风格", + "GenresValue": "风格", + "Guide": "指南", + "HeaderCancelRecording": "", + "HeaderFavoriteMovies": "最爱的电影", + "HeaderFavoriteShows": "最爱的节目", + "HeaderFavoriteAlbums": "最爱的专辑", + "HeaderFavoriteSongs": "最爱的歌曲", + "HeaderFavoriteVideos": "最爱的视频", + "HeaderVideoType": "视频类型", + "Items": "项目", + "LabelAudio": "音频:", + "LabelServerName": "服务器名称:", + "LabelTranscodePath": "转码路径:", + "LabelTranscodes": "转码:" } From 673ee5c5df3c770a63994af1fc79059a63dedf39 Mon Sep 17 00:00:00 2001 From: Jun Wang Date: Tue, 30 Apr 2019 06:10:37 +0000 Subject: [PATCH 103/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 93.4% (1358 of 1453 strings) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/ --- src/strings/zh-cn.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 199510a54..d367a545b 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -1347,5 +1347,14 @@ "LabelAudio": "音频:", "LabelServerName": "服务器名称:", "LabelTranscodePath": "转码路径:", - "LabelTranscodes": "转码:" + "LabelTranscodes": "转码:", + "AuthProviderHelp": "选择用于验证此用户密码的身份验证提供者", + "ColorPrimaries": "基色", + "ConfigureDateAdded": "在媒体库设置里服务器如何判定添加日期", + "DisplayModeHelp": "选择您正在运行Jellyfin的屏幕类型。", + "EnableColorCodedBackgrounds": "启用彩色背景", + "ErrorDeletingItem": "服务器删除项目时出错。请确认服务器具有对媒体文件夹的写入权限并重试。", + "GroupBySeries": "按系列分组", + "HeaderApp": "应用程序", + "HeaderAudioLanguages": "音频语言" } From 8538356d2746e657977eaf288d9561e6932bf9a4 Mon Sep 17 00:00:00 2001 From: Carlos Perez Date: Thu, 25 Apr 2019 22:37:59 +0000 Subject: [PATCH 104/106] Translated using Weblate (Spanish (Argentina)) Currently translated at 21.6% (315 of 1453 strings) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/es_AR/ --- src/strings/es-ar.json | 64 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/src/strings/es-ar.json b/src/strings/es-ar.json index 329c98d18..93b6ac128 100644 --- a/src/strings/es-ar.json +++ b/src/strings/es-ar.json @@ -348,5 +348,67 @@ "EnableBackdrops": "Habilitar fondo", "EnableBackdropsHelp": "Si esta habilitado, los fondos van a ser mostrados en segundo plano de algunas paginas mientras estas en la biblioteca.", "EnableCinemaMode": "Habilitar modo Cine", - "EnableColorCodedBackgrounds": "Habilitar colores en el fondo del codigo" + "EnableColorCodedBackgrounds": "Habilitar colores en el fondo del codigo", + "AuthProviderHelp": "Selecciona un Proveedor de Autenticación para autenticar la contraseña de este usuario", + "CriticRating": "Calificación de la crítica", + "DefaultSubtitlesHelp": "Los subtítulos se cargan en base a los indicadores por defecto y los indicadores forzados en los metadatos embebidos. Las preferencias de idioma son consideradas cuando existe más de una opción.", + "Dislike": "No me gusta", + "EnableDebugLoggingHelp": "El registro de depuración debería activarse solo a fin de solucionar problemas. El incremento en el acceso al sistema de archivos podría prevenir que el servidor entre en modo de suspensión en algunos entornos.", + "EnableDisplayMirroring": "Habilitar duplicación de la pantalla", + "EnableExternalVideoPlayers": "Habilitar reproductores de vídeo externos", + "EnableExternalVideoPlayersHelp": "Se mostrará un menú de reproductor externo al iniciar la reproducción de video", + "EnableNextVideoInfoOverlay": "Habilitar vista de información del siguiente vídeo durante la reproducción", + "EnableNextVideoInfoOverlayHelp": "Al finalizar un video, mostrar información sobre el siguiente vídeo en la lista de reproducción", + "EnablePhotos": "Habilitar fotos", + "EnablePhotosHelp": "Las fotos serán detectadas y se mostrarán junto a otros archivos de medios", + "EnableStreamLooping": "Repetir automáticamente transmisiones en vivo", + "EnableStreamLoopingHelp": "Habilita esto sí las transmisiones en vivo sólo contienen unos cuantos segundos y es necesario solicitarlos continuamente. Habilitar esto cuando no es necesario puede causar problemas.", + "EnableThemeSongs": "Habilitar canciones tema", + "EnableThemeSongsHelp": "Al habilitarse, las canciones tema se reproducirán de fondo cuando navegas por la biblioteca.", + "EnableThemeVideos": "Habilitar videos de tema", + "EnableThemeVideosHelp": "Al habilitarse, los videos de tema se reproducirán de fondo mientras navegues por la biblioteca.", + "Ended": "Finalizado", + "EndsAtValue": "Termina en {0}", + "Episodes": "Episodios", + "ErrorAddingListingsToSchedulesDirect": "Ocurrió un error al añadir el alineamiento a tu cuenta de Schedules Direct. Schedules Direct solo permite una cantidad limitada de alineamientos por cuenta. Quizás necesites ingresar al sitio de Schedules Direct y eliminar otros alineamientos de tu cuenta antes de continuar.", + "ErrorAddingMediaPathToVirtualFolder": "Ocurrió un error al agregar la ruta de medios. Por favor, asegurate que la ruta es válida y que el proceso que sirve Jellyfin tiene acceso a esa ubicación.", + "ErrorAddingTunerDevice": "Ocurrió un error al añadir el dispositivo sintonizador. Por favor asegurate que está disponible e intenta de nuevo.", + "ErrorAddingXmlTvFile": "Ocurrió un error al acceder al archivo de XmlTV. Por favor asegurate de que el archivo existe e intenta de nuevo.", + "ErrorDeletingItem": "Ocurrió un error al eliminar el ítem del servidor Jellyfin. Por favor verifica que el servidor Jellyfin tiene permiso de escritura a la carpeta de medios e intenta de nuevo.", + "ErrorGettingTvLineups": "Ocurrió un error al descargar los alineamientos de TV. Por favor asegúrate que tu información es correcta e intenta de nuevo.", + "ErrorMessageStartHourGreaterThanEnd": "La hora de fin tiene que ser mayor que la de inicio.", + "ErrorPleaseSelectLineup": "Por favor selecciona un alineamiento e intenta de nuevo. Si no existen alineamientos disponibles, asegúrate de que tu nombre de usuario, contraseña y código postal son correctos.", + "ErrorSavingTvProvider": "Ocurrió un error al guardar el proveedor de TV. Por favor asegúrate de que está disponible e intenta de nuevo.", + "EveryNDays": "Cada {0} días", + "ExitFullscreen": "Salir de pantalla completa", + "ExtraLarge": "Extra grande", + "ExtractChapterImagesHelp": "Extraer imágenes de los capítulos permitirá a las aplicaciones de Jellyfin mostrar menúes gráficos de selección de escena. El proceso puede ser lento, ocupar mucho tiempo de cpu y puede ocupar varios gigabytes de almacenamiento. El proceso corre cuando los videos son descubiertos, y también como un proceso periódico por la noche. El horario del proceso periódico se puede configurar en el área de procesos periódicos. No se recomienda correr este proceso durante horas de alto uso.", + "Extras": "Extras", + "FFmpegSavePathNotFound": "No pudimos localizar FFmpeg usando la ruta que has ingresado. FFprobe también es necesario y debe existir en la misma carpeta. Éstos componentes normalmente están incluidos en la misma descarga. Por favor, revisa la ruta e intenta de nuevo.", + "FastForward": "Avanzar Rápido", + "Favorite": "Favorito", + "Features": "Características", + "File": "Archivo", + "FileNotFound": "Archivo no encontrado.", + "FileReadCancelled": "La lectura del archivo se ha cancelado.", + "FileReadError": "Ocurrió un error al leer el archivo.", + "Filters": "Filtros", + "FolderTypeBooks": "Libros", + "FolderTypeMovies": "Películas", + "FolderTypeMusic": "Música", + "FolderTypeMusicVideos": "Videos Musicales", + "FolderTypeUnset": "Sin especificar (Contenido Mixto)", + "ForAdditionalLiveTvOptions": "Para proveedores adicionales de TV en Vivo, hacé click en la pestaña Servicios para ver las opciones disponibles.", + "FormatValue": "Formato: {0}", + "Friday": "Viernes", + "Fullscreen": "Pantalla Completa", + "General": "General", + "GenreValue": "Género: {0}", + "GenresValue": "Géneros: {0}", + "GroupBySeries": "Agrupar por Serie", + "GroupVersions": "Agrupar versiones", + "GuestStar": "Estrella invitada", + "Guide": "Guía", + "GuideProviderLogin": "Iniciar Sesión", + "GuideProviderSelectListings": "Seleccionar Listados" } From d9c5856ff753c95a373948011dfac2b25e155169 Mon Sep 17 00:00:00 2001 From: Jun Wang Date: Tue, 30 Apr 2019 06:25:20 +0000 Subject: [PATCH 105/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 97.2% (1413 of 1453 strings) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/ --- src/strings/zh-cn.json | 78 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 2 deletions(-) diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index d367a545b..af2bff187 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -1336,7 +1336,7 @@ "GenreValue": "风格", "GenresValue": "风格", "Guide": "指南", - "HeaderCancelRecording": "", + "HeaderCancelRecording": "取消录制", "HeaderFavoriteMovies": "最爱的电影", "HeaderFavoriteShows": "最爱的节目", "HeaderFavoriteAlbums": "最爱的专辑", @@ -1356,5 +1356,79 @@ "ErrorDeletingItem": "服务器删除项目时出错。请确认服务器具有对媒体文件夹的写入权限并重试。", "GroupBySeries": "按系列分组", "HeaderApp": "应用程序", - "HeaderAudioLanguages": "音频语言" + "HeaderAudioLanguages": "音频语言", + "DirectStreamHelp1": "媒体文件的分辨率和媒体类型(H.264,AC3等)与设备兼容,但是文件格式(.mkv、.avi、.wmv等)与设备不兼容。在将视频传送到设备之前,将对其进行实时重新打包。", + "HeaderAppearsOn": "出现于", + "HeaderCancelSeries": "取消系列", + "HeaderFavoriteEpisodes": "最喜欢的剧集", + "HeaderFavoriteArtists": "最喜欢的演员", + "HeaderKeepRecording": "继续录制", + "HeaderKeepSeries": "保持系列", + "HeaderMusicQuality": "音质", + "HeaderNextEpisodePlayingInValue": "下一集在 {0} 后播放", + "HeaderNextVideoPlayingInValue": "下一部影片在 {0} 后播放", + "HeaderPlayOn": "播放在", + "HeaderRestartingServer": "服务器重启中", + "HeaderSeriesStatus": "剧集状态", + "HeaderStopRecording": "停止录制", + "Horizontal": "横向", + "LabelAuthProvider": "认证提供者:", + "LabelKeepUpTo": "跟上:", + "LabelPasswordResetProvider": "密码重置提供者:", + "LabelPersonRoleHelp": "示例:冰淇淋卡车司机", + "LabelSelectFolderGroups": "自动将下列文件夹中的内容分组到视图中,如电影、音乐、剧集:", + "LabelSelectFolderGroupsHelp": "未选中的文件夹将显示在自身的视图中", + "LabelUserLoginAttemptsBeforeLockout": "用户被锁定之前可失败登录的尝试次数:", + "DashboardVersionNumber": "版本:{0}", + "DashboardServerName": "服务器:{0}", + "LabelVideo": "视频:", + "LabelWeb": "网站: ", + "LeaveBlankToNotSetAPassword": "可选 - 留空以设置无密码", + "LinksValue": "链接:{0}", + "LiveBroadcasts": "直播", + "LiveTV": "电视直播", + "Logo": "商标", + "ManageRecording": "管理录音", + "MediaInfoSoftware": "软件", + "MediaInfoStreamTypeAudio": "音频", + "MediaInfoStreamTypeData": "数据", + "MediaInfoStreamTypeEmbeddedImage": "内嵌图片", + "MediaInfoStreamTypeSubtitle": "字幕", + "MediaInfoStreamTypeVideo": "视频", + "Menu": "菜单", + "MessageImageFileTypeAllowed": "只支持JPEG和PNG格式的文件。", + "MessageImageTypeNotSelected": "请在下拉菜单中选择图片类型。", + "MessageNoCollectionsAvailable": "分组能够让您享受个性化的视频、剧集和专辑组。点击+按钮开始创建分组。", + "MessagePlayAccessRestricted": "当前内容无法回放。请联系Jellyfin服务器管理员获取更多信息。", + "Off": "关闭", + "Option3D": "三维", + "OptionDownloadLogoImage": "标志", + "OptionLoginAttemptsBeforeLockout": "确定在锁定之前可以进行多少次不正确的登录尝试。", + "OptionLoginAttemptsBeforeLockoutHelp": "0表示继承默认值:非管理员默认值为3,管理员默认值为5;-1表示禁用锁定", + "PasswordResetProviderHelp": "选择一个密码重置提供者用于密码重置", + "PlaceFavoriteChannelsAtBeginning": "将最喜爱的频道放在开头", + "PlayNext": "播放下一个", + "PlayNextEpisodeAutomatically": "自动播放下一集", + "PlaybackSettings": "播放设置", + "PlaybackSettingsIntro": "为了修改默认播放设置,请先停止视频播放,然后在应用的右上角点击个人头像。", + "Premieres": "首映", + "Raised": "提高", + "Recordings": "录音", + "RefreshDialogHelp": "元数据根据设置和Jellyfin服务器中启用的网络服务进行刷新。", + "RepeatEpisodes": "重复剧集", + "RestartPleaseWaitMessage": "请等待Jellyfin服务关闭和重启,这将花费几分钟时间。", + "Schedule": "日程", + "Screenshot": "屏幕截图", + "SeriesDisplayOrderHelp": "按播放日期、DVD顺序或绝对编号订购剧集", + "ShowIndicatorsFor": "显示指标:", + "ShowYear": "显示年份", + "Shows": "节目", + "SkipEpisodesAlreadyInMyLibraryHelp": "将使用季节和剧集编号对剧集进行比较。", + "Smaller": "更小", + "StatsForNerds": "统计数据", + "SubtitleSettings": "字幕设置", + "SubtitleSettingsIntro": "要配置默认字幕外观和语言设置,请停止视频播放,然后单击应用程序右上角的用户图标。", + "TagsValue": "标签:{0}", + "Vertical": "垂直的", + "VideoRange": "视频范围" } From 6a772d25db2219ad08c255c9d46172bd92b05091 Mon Sep 17 00:00:00 2001 From: Matsuri Date: Tue, 14 May 2019 08:42:35 +0000 Subject: [PATCH 106/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 97.2% (1413 of 1453 strings) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/ --- src/strings/zh-cn.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index af2bff187..4eb716f02 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -1430,5 +1430,7 @@ "SubtitleSettingsIntro": "要配置默认字幕外观和语言设置,请停止视频播放,然后单击应用程序右上角的用户图标。", "TagsValue": "标签:{0}", "Vertical": "垂直的", - "VideoRange": "视频范围" + "VideoRange": "视频范围", + "Depressed": "凹陷", + "Uniform": "轮廓" }