From 3f3e5e6da5ce13f4d955e4a13d9a23bc9d8f0e63 Mon Sep 17 00:00:00 2001 From: Andrew Mahone Date: Fri, 27 Sep 2019 10:52:15 -0400 Subject: [PATCH 001/713] Use JavascriptSubtitlesOctopus if canvas and web workers are available. --- package.json | 3 +- src/bundle.js | 4 +++ src/components/htmlvideoplayer/plugin.js | 40 +++++++++++++++++++++++- src/components/htmlvideoplayer/style.css | 4 +++ webpack.common.js | 17 +++++++--- 5 files changed, 62 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bcbdd3dacc..0a3cd85085 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "libjass": "^0.11.0", "shaka-player": "^2.5.5", "sortablejs": "^1.9.0", - "swiper": "^3.4.2" + "swiper": "^3.4.2", + "libass-wasm": "^2.1.1" }, "scripts": { "serve": "webpack-dev-server --config webpack.dev.js --open", diff --git a/src/bundle.js b/src/bundle.js index 86e10aab7d..cf01bc5f1c 100644 --- a/src/bundle.js +++ b/src/bundle.js @@ -42,3 +42,7 @@ _define("sortable", function() { return sortable; }); var libjass = require("libjass"); require("libjass/libjass.css"); _define("libjass", function() { return libjass; }); + +// libass-wasm +var libass_wasm = require("libass-wasm"); +_define("JavascriptSubtitlesOctopus", function() { return libass_wasm; }); diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index 27e02349c0..938668ef72 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -27,6 +27,14 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return _supportsTextTracks; } + function supportsCanvas() { + return !!document.createElement('canvas').getContext; + } + + function supportsWebWorkers() { + return !!window.Worker; + } + function enableNativeTrackSupport(currentSrc, track) { if (track) { @@ -185,6 +193,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa var lastCustomTrackMs = 0; var currentClock; + var currentSubtitlesOctopus; var currentAssRenderer; var customTrackIndex = -1; @@ -960,6 +969,12 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa currentClock = null; self._currentAspectRatio = null; + var octopus = currentSubtitlesOctopus; + if (octopus) { + octopus.dispose(); + } + currentSubtitlesOctopus = null; + var renderer = currentAssRenderer; if (renderer) { renderer.setEnabled(false); @@ -1024,6 +1039,21 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa lastCustomTrackMs = 0; } + function renderWithSubtitlesOctopus(videoElement, track, item) { + var options = { + video: videoElement, + subUrl: getTextTrackUrl(track, item), + fonts: [], + workerUrl: appRouter.baseUrl() + "/JavascriptSubtitlesOctopus/subtitles-octopus-worker.js", + onError: function() { + htmlMediaHelper.onErrorInternal(self, 'mediadecodeerror') + } + }; + require(['JavascriptSubtitlesOctopus'], function(SubtitlesOctopus) { + currentSubtitlesOctopus = new SubtitlesOctopus(options); + }); + } + function renderWithLibjass(videoElement, track, item) { var rendererSettings = {}; @@ -1071,6 +1101,14 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa }); } + function renderSsaAss(videoElement, track, item) { + if (supportsCanvas() && supportsWebWorkers()) { + renderWithSubtitlesOctopus(videoElement, track, item); + } else { + renderWithLibjass(videoElement, track, item); + } + } + function onVideoResize() { if (browser.iOS) { // the new sizes will be delayed for about 500ms with wkwebview @@ -1181,7 +1219,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa var format = (track.Codec || '').toLowerCase(); if (format === 'ssa' || format === 'ass') { // libjass is needed here - renderWithLibjass(videoElement, track, item); + renderSsaAss(videoElement, track, item); return; } diff --git a/src/components/htmlvideoplayer/style.css b/src/components/htmlvideoplayer/style.css index 9550f2c873..32c090eeae 100644 --- a/src/components/htmlvideoplayer/style.css +++ b/src/components/htmlvideoplayer/style.css @@ -24,6 +24,10 @@ z-index: 1000; } +.videoPlayerContainer .libassjs-canvas-parent { + order: -1; +} + video::-webkit-media-controls { display: none !important; } diff --git a/webpack.common.js b/webpack.common.js index 05b2b0cb46..00b3d0dea8 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -10,9 +10,18 @@ module.exports = { ] }, plugins: [ - new CopyPlugin([{ - from: "**/*", - to: "." - }]) + new CopyPlugin([ + { + from: "**/*", + to: "." + }, + { + from: "../node_modules/libass-wasm/dist/subtitles-octopus-worker.*", + to: "JavascriptSubtitlesOctopus", + transformPath(targetPath, absolutePath) { + return Promise.resolve(path.join("JavascriptSubtitlesOctopus", path.basename(targetPath))); + } + } + ]) ] }; From 6eed80c863416ff54f13fa64b9d08c6e524f6b14 Mon Sep 17 00:00:00 2001 From: Andrew Mahone Date: Tue, 22 Oct 2019 12:07:43 -0400 Subject: [PATCH 002/713] Use embedded fonts with JavascriptSubtitlesOctopus renderer. --- src/components/htmlvideoplayer/plugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index 938668ef72..ca081e6d50 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -1043,7 +1043,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa var options = { video: videoElement, subUrl: getTextTrackUrl(track, item), - fonts: [], + fonts: self._currentPlayOptions.mediaSource.MediaAttachments.map(i => i.DeliveryUrl), workerUrl: appRouter.baseUrl() + "/JavascriptSubtitlesOctopus/subtitles-octopus-worker.js", onError: function() { htmlMediaHelper.onErrorInternal(self, 'mediadecodeerror') From 1abc7283ab4a2a9fd7c4768bd550a49651b44d35 Mon Sep 17 00:00:00 2001 From: Andrew Mahone Date: Mon, 28 Oct 2019 09:49:43 -0400 Subject: [PATCH 003/713] Remove use of transformPath when copying libass worker files. --- src/components/htmlvideoplayer/plugin.js | 2 +- webpack.common.js | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index ca081e6d50..19e3a365fa 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -1044,7 +1044,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa video: videoElement, subUrl: getTextTrackUrl(track, item), fonts: self._currentPlayOptions.mediaSource.MediaAttachments.map(i => i.DeliveryUrl), - workerUrl: appRouter.baseUrl() + "/JavascriptSubtitlesOctopus/subtitles-octopus-worker.js", + workerUrl: appRouter.baseUrl() + "/node_modules/libass-wasm/dist/subtitles-octopus-worker.js", onError: function() { htmlMediaHelper.onErrorInternal(self, 'mediadecodeerror') } diff --git a/webpack.common.js b/webpack.common.js index 00b3d0dea8..26a38394cf 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -16,11 +16,8 @@ module.exports = { to: "." }, { - from: "../node_modules/libass-wasm/dist/subtitles-octopus-worker.*", - to: "JavascriptSubtitlesOctopus", - transformPath(targetPath, absolutePath) { - return Promise.resolve(path.join("JavascriptSubtitlesOctopus", path.basename(targetPath))); - } + context: path.resolve(__dirname), + from: "node_modules/libass-wasm/dist/subtitles-octopus-worker.*", } ]) ] From 0880f36dabc6bbd6c74d313e8e86ffd463f858ad Mon Sep 17 00:00:00 2001 From: Andrew Mahone Date: Fri, 8 Nov 2019 08:38:21 -0500 Subject: [PATCH 004/713] Fallback to empty fonts list when server doesn't send MediaAttachments. --- src/components/htmlvideoplayer/plugin.js | 3 ++- yarn.lock | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index 74cb0c4bf1..d040c03bda 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -1038,10 +1038,11 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } function renderWithSubtitlesOctopus(videoElement, track, item) { + var attachments = self._currentPlayOptions.mediaSource.MediaAttachments || []; var options = { video: videoElement, subUrl: getTextTrackUrl(track, item), - fonts: self._currentPlayOptions.mediaSource.MediaAttachments.map(i => i.DeliveryUrl), + fonts: attachments.map(i => i.DeliveryUrl), workerUrl: appRouter.baseUrl() + "/node_modules/libass-wasm/dist/subtitles-octopus-worker.js", onError: function() { htmlMediaHelper.onErrorInternal(self, 'mediadecodeerror') diff --git a/yarn.lock b/yarn.lock index cb8cd3e4f4..074c848cf7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2510,6 +2510,11 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libass-wasm@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/libass-wasm/-/libass-wasm-2.1.1.tgz#f12f4fdb9579dd422dcbc348bc3bd61097f4d07d" + integrity sha512-d45bHQ7tFVsLW3QstQDrDog2m+0D6Cja4GTrkGi70R9A5+aeLunPSUz3G4CVB+sKffNgiWjK4QI5NZLHQKZ9oQ== + libjass@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/libjass/-/libjass-0.11.0.tgz#bff1f464a2428c3bddfb68e4503b2d52afe3d6e6" From 6a16d84e71548d139a330cb9443729ac36f51237 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 9 Dec 2019 01:03:08 +0300 Subject: [PATCH 005/713] redesign detail page --- src/components/themes/appletv/theme.css | 4 + src/components/themes/blueradiance/theme.css | 4 + src/components/themes/dark/theme.css | 4 + src/components/themes/emby/theme.css | 4 + src/components/themes/light/theme.css | 4 + src/components/themes/purple-haze/theme.css | 4 + src/components/themes/wmc/theme.css | 4 + src/controllers/itemdetailpage.js | 17 +- src/css/librarybrowser.css | 67 +-- src/itemdetails.html | 495 +++++++++---------- 10 files changed, 300 insertions(+), 307 deletions(-) diff --git a/src/components/themes/appletv/theme.css b/src/components/themes/appletv/theme.css index 128594bc72..5d475cea68 100644 --- a/src/components/themes/appletv/theme.css +++ b/src/components/themes/appletv/theme.css @@ -463,3 +463,7 @@ html { .metadataSidebarIcon { color: #00a4dc } + +.detailPagePrimaryContainer { + background-color: rgba(255, 255, 255, 0.4) +} diff --git a/src/components/themes/blueradiance/theme.css b/src/components/themes/blueradiance/theme.css index f450404bea..1aac0583b9 100644 --- a/src/components/themes/blueradiance/theme.css +++ b/src/components/themes/blueradiance/theme.css @@ -471,3 +471,7 @@ html { .metadataSidebarIcon { color: #00a4dc } + +.detailPagePrimaryContainer { + background-color: rgba(0, 0, 0, 0.4) +} diff --git a/src/components/themes/dark/theme.css b/src/components/themes/dark/theme.css index b4d4bcda4b..e5f0e5a40e 100644 --- a/src/components/themes/dark/theme.css +++ b/src/components/themes/dark/theme.css @@ -448,3 +448,7 @@ html { .metadataSidebarIcon { color: #00a4dc } + +.detailPagePrimaryContainer { + background-color: rgba(0, 0, 0, 0.4) +} diff --git a/src/components/themes/emby/theme.css b/src/components/themes/emby/theme.css index 7206150235..d4ca52baaf 100644 --- a/src/components/themes/emby/theme.css +++ b/src/components/themes/emby/theme.css @@ -448,3 +448,7 @@ html { .metadataSidebarIcon { color: #00a4dc } + +.detailPagePrimaryContainer { + background-color: rgba(0, 0, 0, 0.4) +} diff --git a/src/components/themes/light/theme.css b/src/components/themes/light/theme.css index 6da511dfd2..8cbe886650 100644 --- a/src/components/themes/light/theme.css +++ b/src/components/themes/light/theme.css @@ -444,3 +444,7 @@ html { .metadataSidebarIcon { color: #00a4dc } + +.detailPagePrimaryContainer { + background-color: rgba(255, 255, 255, 0.4) +} diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index 566af827ee..398ad00af6 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -576,3 +576,7 @@ a[data-role=button] { .metadataSidebarIcon { color: #dbe6ff } + +.detailPagePrimaryContainer { + background-color: rgba(0, 0, 0, 0.4) +} diff --git a/src/components/themes/wmc/theme.css b/src/components/themes/wmc/theme.css index a19eeb93a2..e6404d3620 100644 --- a/src/components/themes/wmc/theme.css +++ b/src/components/themes/wmc/theme.css @@ -466,3 +466,7 @@ html { .metadataSidebarIcon { color: #00a4dc } + +.detailPagePrimaryContainer { + background-color: rgba(0, 0, 0, 0.4) +} diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 53a36aa862..08e77f0f2a 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -801,10 +801,8 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana }); } - html += '"; html += ""; elem.innerHTML = html; @@ -1531,12 +1528,12 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana if (!(currentStartDate && currentStartDate.toDateString() === itemStartDate.toDateString())) { if (currentItems.length) { html += '
'; - html += '

' + datetime.toLocaleDateString(currentStartDate, { + html += '

' + datetime.toLocaleDateString(currentStartDate, { weekday: "long", month: "long", day: "numeric" }) + "

"; - html += '
' + listView.getListViewHtml({ + html += '
' + listView.getListViewHtml({ items: currentItems, enableUserDataButtons: false, showParentTitle: true, @@ -1556,12 +1553,12 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana if (currentItems.length) { html += '
'; - html += '

' + datetime.toLocaleDateString(currentStartDate, { + html += '

' + datetime.toLocaleDateString(currentStartDate, { weekday: "long", month: "long", day: "numeric" }) + "

"; - html += '
' + listView.getListViewHtml({ + html += '
' + listView.getListViewHtml({ items: currentItems, enableUserDataButtons: false, showParentTitle: true, @@ -1728,13 +1725,13 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana function renderCollectionItemType(page, parentItem, type, items) { var html = ""; html += '
'; - html += '
'; + html += '
'; html += '

'; html += "" + type.name + ""; html += "

"; html += ''; html += "
"; - html += '
'; + html += '
'; var shape = "MusicAlbum" == type.type ? getSquareShape(false) : getPortraitShape(false); html += cardBuilder.getCardsHtml({ items: items, diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 8a7b2d247e..3cc6e96bd1 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -421,9 +421,15 @@ left: .8em } +.noBackdrop { + display:none; +} + .itemBackdrop { -webkit-background-size: cover; background-size: cover; + background-position: center center; + background-repeat: no-repeat; height: 50vh; position: relative } @@ -448,12 +454,31 @@ bottom: .75em } +.detailPagePrimaryContainer { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: center; + position: sticky; + top: 0; + z-index: 2; +} + +.detailPageSeconderyContainer { + display:grid; + grid-template-columns: 100%; + padding-left:2%; + padding-right:2%; +} + .detailImageContainer { - margin-right: 2em; + padding-left:2%; width: 280px; -webkit-flex-shrink: 0; flex-shrink: 0; - margin-left: .6em + position: sticky; + top:15%; + float: left; } .detailPagePrimaryContent { @@ -504,7 +529,7 @@ } .thumbDetailImageContainer { - width: 400px + width: 280px; } @media all and (max-width:62.5em) { @@ -513,9 +538,6 @@ } .detailImageContainer { - position: absolute; - top: -90px; - left: 5%; width: auto } @@ -529,19 +551,6 @@ } } -@media all and (min-width:62.5em) { - .itemBackdrop { - display: none - } - - .detailPagePrimaryContainer { - display: -webkit-box; - display: -webkit-flex; - display: flex; - margin-bottom: 3em - } -} - @media all and (max-width:75em) { .lnkSibling { display: none !important @@ -575,12 +584,18 @@ } .itemDetailPage { - padding-top: 0 !important + padding-top: 2em !important } .detailimg-hidemobile { display: none } + + .detailPagePrimaryContainer { + display: flex; + justify-content: center; + flex-wrap: wrap; + } } @media all and (min-width:31.25em) { @@ -723,7 +738,7 @@ } @media all and (min-width:62.5em) { - .detailButton-mobile { + .detailFloatingButton { display: none !important } @@ -775,13 +790,11 @@ .detailPageContent { border-spacing: 0; border-collapse: collapse; - padding-top: 3em } @media all and (max-width:62.5em) { .detailPageContent-nodetailimg { padding-top: 0; - margin-top: -3em } } @@ -1016,14 +1029,6 @@ } } -.layout-tv .itemsViewSettingsContainer { - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - justify-content: flex-end; - padding: 1.5em .75em 1em 0; - font-size: 92% -} - .itemsViewSettingsContainer>.button-flat { margin: 0 } diff --git a/src/itemdetails.html b/src/itemdetails.html index 2a29cce96b..1435b04a72 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -1,292 +1,255 @@
- -
- +
-
- +
-
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
-
+
+
+
-
+
-
+
+
-
+
-
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
- -

-

-

-

-

-

-

- -
- +
+

+ ${HeaderSchedule} +

+
+
+
+
+
+

${HeaderNextUp}

+
+
+
+
+
+
+

+ +

+
+
+
+
+
+

${HeaderAdditionalParts}

+
+
+
+
+

+
+
+
+
+
+

+
+
+
+
+
+

${HeaderCastCrew}

+
+
+
+
+
+
+

${HeaderUpcomingOnTV}

+
+
+ +
+

${HeaderSpecialFeatures}

+
+
+
+

${HeaderMusicVideos}

+
+
+ +
+

${HeaderScenes}

+
+
+
+
+ +
+

${HeaderMoreLikeThis}

+
+
-
-

- ${HeaderSchedule} -

-
-
-
-
-
-

${HeaderNextUp}

-
-
-
-
-
-
-

- -

-
-
-
-
-
-

${HeaderAdditionalParts}

-
-
-
-

-
-
-
-
-
-

-
-
-
-
-
-

${HeaderCastCrew}

-
-
-
-
-
-

${HeaderUpcomingOnTV}

-
-
- -
-

${HeaderSpecialFeatures}

-
-
-
-

${HeaderMusicVideos}

-
-
- -
-

${HeaderScenes}

-
-
-
-
- -
-

${HeaderMoreLikeThis}

-
-
-
-
From 7b61b5d2e030db2b2906d2daef8b0847d2f039db Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 9 Dec 2019 22:18:13 +0300 Subject: [PATCH 006/713] fix detailImageProgressContainer position --- src/css/librarybrowser.css | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 3cc6e96bd1..19a5434aa5 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -472,7 +472,6 @@ } .detailImageContainer { - padding-left:2%; width: 280px; -webkit-flex-shrink: 0; flex-shrink: 0; @@ -715,10 +714,10 @@ .detailImageProgressContainer { position: absolute; - bottom: 4px; - right: 1px; - left: 1px; - text-align: center + width: 240px; + bottom: 12px; + text-align: center; + padding-left: 20px; } .detailButton-mobile-text { From aca0fb09bc4d90491f93073227edcaa579687aac Mon Sep 17 00:00:00 2001 From: redSpoutnik <15638041+redSpoutnik@users.noreply.github.com> Date: Sat, 7 Dec 2019 20:29:14 +0100 Subject: [PATCH 007/713] Simplify vtt subtitle offset (firefox compatibility) --- src/components/htmlvideoplayer/plugin.js | 50 +++++++++++++----------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index ac4e8cf6a5..4512fb43d1 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -575,6 +575,20 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return showTrackOffset; } + function getTextTrack() { + var videoElement = self._mediaElement; + if (videoElement) { + return Array.from(videoElement.textTracks) + .find(function(trackElement) { + // get showing .vtt textTack + return trackElement.mode === 'showing'; + }); + } else { + // get track events + return currentTrackEvents; + } + } + self.setSubtitleOffset = function(offset) { var offsetValue = parseFloat(offset); @@ -583,28 +597,14 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa if (currentAssRenderer) { updateCurrentTrackOffset(offsetValue); } else { - var videoElement = self._mediaElement; - var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource); - - Array.from(videoElement.textTracks) - .filter(function(trackElement) { - // get showing .vtt textTacks - return trackElement.mode === 'showing'; - }) - .forEach(function(trackElement) { - - var track = customTrackIndex === -1 ? null : mediaStreamTextTracks.filter(function (t) { - return t.Index === customTrackIndex; - })[0]; - - if (track) { - offsetValue = updateCurrentTrackOffset(offsetValue); - setVttSubtitleOffset(trackElement, offsetValue); - } else { - console.log("No available track, cannot apply offset : " + offsetValue); - } - - }); + var trackElement = getTextTrack(); + // if .vtt currently rendering + if (trackElement) { + offsetValue = updateCurrentTrackOffset(offsetValue); + setVttSubtitleOffset(trackElement, offsetValue); + } else { + console.log("No available track, cannot apply offset : " + offsetValue); + } } }; @@ -628,8 +628,12 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa cue.startTime -= offsetValue; cue.endTime -= offsetValue; }); + } else if (Array.isArray(currentTrack)) { + currentTrack.forEach(function(trackEvent) { + trackEvent.StartPositionTicks -= offsetValue; + trackEvent.EndPositionTicks -= offsetValue; + }); } - } self.getSubtitleOffset = function() { From b0d4b94140926b897e4245ccd02d654910a1b44e Mon Sep 17 00:00:00 2001 From: redSpoutnik <15638041+redSpoutnik@users.noreply.github.com> Date: Mon, 9 Dec 2019 21:37:05 +0100 Subject: [PATCH 008/713] reset subtitle offset on track change --- src/components/htmlvideoplayer/plugin.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index 4512fb43d1..c8716c4e05 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -579,10 +579,10 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa var videoElement = self._mediaElement; if (videoElement) { return Array.from(videoElement.textTracks) - .find(function(trackElement) { - // get showing .vtt textTack - return trackElement.mode === 'showing'; - }); + .find(function(trackElement) { + // get showing .vtt textTack + return trackElement.mode === 'showing'; + }); } else { // get track events return currentTrackEvents; @@ -603,7 +603,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa offsetValue = updateCurrentTrackOffset(offsetValue); setVttSubtitleOffset(trackElement, offsetValue); } else { - console.log("No available track, cannot apply offset : " + offsetValue); + console.log("No available track, cannot apply offset : ", offsetValue); } } }; @@ -1022,6 +1022,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa return; } + self.resetSubtitleOffset(); var item = self._currentPlayOptions.item; destroyCustomTrack(videoElement); From 67e289d3637e31ca4d562e06cf9803d315452f6e Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 10 Dec 2019 00:56:19 +0300 Subject: [PATCH 009/713] revert back padded-left and padded-right --- src/itemdetails.html | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/itemdetails.html b/src/itemdetails.html index 1435b04a72..2e7388fccc 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -110,7 +110,7 @@
-
+
@@ -174,47 +174,47 @@
-

+

${HeaderSchedule}

-
+
-

${HeaderNextUp}

-
+

${HeaderNextUp}

+
-

+

-
+
-

${HeaderAdditionalParts}

+

${HeaderAdditionalParts}

-

+

-

+

-

${HeaderCastCrew}

+

${HeaderCastCrew}

@@ -222,28 +222,28 @@
-

${HeaderUpcomingOnTV}

+

${HeaderUpcomingOnTV}

-

${HeaderSpecialFeatures}

+

${HeaderSpecialFeatures}

-

${HeaderMusicVideos}

+

${HeaderMusicVideos}

-

${HeaderScenes}

+

${HeaderScenes}

-

${HeaderMoreLikeThis}

+

${HeaderMoreLikeThis}

From 7f292093eb282cea12e80e605d36f08b6b73fc2e Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 10 Dec 2019 00:58:53 +0300 Subject: [PATCH 010/713] increase detailimagecontainer width --- src/css/librarybrowser.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 19a5434aa5..d533baf8fa 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -472,7 +472,6 @@ } .detailImageContainer { - width: 280px; -webkit-flex-shrink: 0; flex-shrink: 0; position: sticky; @@ -528,7 +527,11 @@ } .thumbDetailImageContainer { - width: 280px; + width: 350px; +} + +.portraitDetailImageContainer { + width: 350px; } @media all and (max-width:62.5em) { From a2734a34bce3429b4fb90317ca36111c1fa26e65 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 10 Dec 2019 00:59:58 +0300 Subject: [PATCH 011/713] extra bottom padding --- src/itemdetails.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/itemdetails.html b/src/itemdetails.html index 2e7388fccc..ab5a1cde97 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -105,7 +105,7 @@
-
+
From dbbe5809e16604dc7f6a2ccc532460caf7af67e7 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 10 Dec 2019 01:06:11 +0300 Subject: [PATCH 012/713] increase detailimageprogresscontainer width --- src/css/librarybrowser.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index d533baf8fa..e6ad6e12a0 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -717,10 +717,10 @@ .detailImageProgressContainer { position: absolute; - width: 240px; + width: 300px; bottom: 12px; text-align: center; - padding-left: 20px; + padding-left: 25px; } .detailButton-mobile-text { From 08b00ac38537d2e1be4018f6c11e6b8791f15b3e Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 10 Dec 2019 01:26:15 +0300 Subject: [PATCH 013/713] remove itembackdropfader --- 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 ------- src/css/librarybrowser.css | 10 +--------- src/itemdetails.html | 7 +++---- 9 files changed, 4 insertions(+), 62 deletions(-) diff --git a/src/components/themes/appletv/theme.css b/src/components/themes/appletv/theme.css index 5d475cea68..ff34435b78 100644 --- a/src/components/themes/appletv/theme.css +++ b/src/components/themes/appletv/theme.css @@ -423,13 +423,6 @@ html { color: #fff } -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#E4E2DC)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #E4E2DC); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #E4E2DC); - background: linear-gradient(rgba(0, 0, 0, 0), #E4E2DC) -} - .infoBanner { color: #000; background: #fff3a5; diff --git a/src/components/themes/blueradiance/theme.css b/src/components/themes/blueradiance/theme.css index 1aac0583b9..e0b5c01f00 100644 --- a/src/components/themes/blueradiance/theme.css +++ b/src/components/themes/blueradiance/theme.css @@ -408,13 +408,6 @@ html { 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; diff --git a/src/components/themes/dark/theme.css b/src/components/themes/dark/theme.css index e5f0e5a40e..4694771a54 100644 --- a/src/components/themes/dark/theme.css +++ b/src/components/themes/dark/theme.css @@ -385,13 +385,6 @@ html { color: #fff } -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#101010)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #101010); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #101010); - background: linear-gradient(rgba(0, 0, 0, 0), #101010) -} - .infoBanner { color: #ddd; background: #111; diff --git a/src/components/themes/emby/theme.css b/src/components/themes/emby/theme.css index d4ca52baaf..fa17998479 100644 --- a/src/components/themes/emby/theme.css +++ b/src/components/themes/emby/theme.css @@ -385,13 +385,6 @@ html { color: #fff } -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#1a1a1a)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #1a1a1a); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #1a1a1a); - background: linear-gradient(rgba(0, 0, 0, 0), #1a1a1a) -} - .infoBanner { color: #ddd; background: #111; diff --git a/src/components/themes/light/theme.css b/src/components/themes/light/theme.css index 8cbe886650..8db245894c 100644 --- a/src/components/themes/light/theme.css +++ b/src/components/themes/light/theme.css @@ -404,13 +404,6 @@ html { 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; diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index 398ad00af6..f45f94ee8d 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -501,13 +501,6 @@ a[data-role=button] { 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: #0e0f2d; background: #dbe6ff; diff --git a/src/components/themes/wmc/theme.css b/src/components/themes/wmc/theme.css index e6404d3620..2b430a9221 100644 --- a/src/components/themes/wmc/theme.css +++ b/src/components/themes/wmc/theme.css @@ -407,13 +407,6 @@ html { color: #fff } -.itemBackdropFader { - background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#115E9E)); - background: -webkit-linear-gradient(rgba(0, 0, 0, 0), #115E9E); - background: -o-linear-gradient(rgba(0, 0, 0, 0), #115E9E); - background: linear-gradient(rgba(0, 0, 0, 0), #115E9E) -} - .infoBanner { color: #000; background: #fff3a5; diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index e6ad6e12a0..0b8311bcd7 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -428,8 +428,8 @@ .itemBackdrop { -webkit-background-size: cover; background-size: cover; - background-position: center center; background-repeat: no-repeat; + background-position: center; height: 50vh; position: relative } @@ -441,14 +441,6 @@ right: 0 } -.itemBackdropFader { - position: absolute; - bottom: -1px; - left: 0; - right: 0; - height: 15vh -} - .desktopMiscInfoContainer { position: absolute; bottom: .75em diff --git a/src/itemdetails.html b/src/itemdetails.html index ab5a1cde97..48c437aeda 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -1,10 +1,9 @@
-
-
- +
From 156f162d2e16610dd5be8644240977993a4f6896 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 10 Dec 2019 02:15:36 +0300 Subject: [PATCH 014/713] make space between name and controller --- src/itemdetails.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/itemdetails.html b/src/itemdetails.html index 48c437aeda..9e334aaca0 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -13,7 +13,7 @@
-
+
'; html += "
"; - html += '
'; + html += '
'; var shape = "MusicAlbum" == type.type ? getSquareShape(false) : getPortraitShape(false); html += cardBuilder.getCardsHtml({ items: items, From e18d49556ede0f17d8e764ef7f593a18cc49d2be Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Wed, 11 Dec 2019 20:51:44 +0300 Subject: [PATCH 016/713] change btn split style --- src/itemdetails.html | 76 +++++++++++++++++------------------------- src/strings/en-us.json | 1 + 2 files changed, 31 insertions(+), 46 deletions(-) diff --git a/src/itemdetails.html b/src/itemdetails.html index 9e334aaca0..109212bfa2 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -92,8 +92,11 @@
-
${ServerRestartNeededAfterPluginInstall}
-

+

diff --git a/src/apikeys.html b/src/apikeys.html index 43cfae5b13..47f032c1f4 100644 --- a/src/apikeys.html +++ b/src/apikeys.html @@ -2,9 +2,7 @@
-

- ${HeaderApiKeys} -

+

${HeaderApiKeys}

@@ -24,4 +22,4 @@
-
\ No newline at end of file +
diff --git a/src/dashboard.html b/src/dashboard.html index 43a081f8db..f29de59f93 100644 --- a/src/dashboard.html +++ b/src/dashboard.html @@ -105,10 +105,8 @@
-
-
@@ -118,5 +116,4 @@
-
diff --git a/src/dashboardgeneral.html b/src/dashboardgeneral.html index 91708f382a..6387128d5e 100644 --- a/src/dashboardgeneral.html +++ b/src/dashboardgeneral.html @@ -1,10 +1,7 @@
-
-
-

${TabSettings}

@@ -31,9 +28,7 @@ ${LaunchWebAppOnStartup} -
- ${LaunchWebAppOnStartupHelp} -
+
${LaunchWebAppOnStartupHelp}
@@ -94,7 +89,6 @@
-
diff --git a/src/device.html b/src/device.html index b63d298ca6..11fc9671b1 100644 --- a/src/device.html +++ b/src/device.html @@ -1,11 +1,7 @@
-
- -
-

@@ -18,10 +14,11 @@
- +
-
-
\ No newline at end of file +
diff --git a/src/devices.html b/src/devices.html index b05f10fa19..4e6552f05e 100644 --- a/src/devices.html +++ b/src/devices.html @@ -7,9 +7,7 @@
${Help}
- -
-
+
-
\ No newline at end of file +
diff --git a/src/encodingsettings.html b/src/encodingsettings.html index da7f6c9c6c..3d67544c0b 100644 --- a/src/encodingsettings.html +++ b/src/encodingsettings.html @@ -22,6 +22,7 @@
${LabelHardwareAccelerationTypeHelp}
+
${LabelVaapiDeviceHelp}
@@ -142,9 +143,11 @@
- +
-
\ No newline at end of file +
diff --git a/src/forgotpassword.html b/src/forgotpassword.html index aac53ed296..d4ed0d4170 100644 --- a/src/forgotpassword.html +++ b/src/forgotpassword.html @@ -1,9 +1,6 @@
-
-
-

${HeaderForgotPassword}

@@ -23,6 +20,5 @@
-
-
\ No newline at end of file +
diff --git a/src/forgotpasswordpin.html b/src/forgotpasswordpin.html index 0eb8b8a1a5..3b1ba0d37b 100644 --- a/src/forgotpasswordpin.html +++ b/src/forgotpasswordpin.html @@ -1,9 +1,6 @@
-
-
-

${HeaderPasswordReset}

@@ -22,6 +19,5 @@
-
-
\ No newline at end of file + diff --git a/src/itemdetails.html b/src/itemdetails.html index 2a29cce96b..303202bf61 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -2,7 +2,6 @@
-
-
- +
+
-
-
-
+
-
-
+
-
+
-
+
-
+
-
+
-
- -
- -
- -
- -
- -
- -
+
@@ -66,7 +51,6 @@
- @@ -217,12 +201,10 @@
-

- ${HeaderSchedule} -

-
-
+

${HeaderSchedule}

+
+

${HeaderNextUp}

@@ -261,6 +243,7 @@
+

${HeaderUpcomingOnTV}

@@ -270,6 +253,7 @@

${HeaderSpecialFeatures}

+

${HeaderMusicVideos}

diff --git a/src/librarydisplay.html b/src/librarydisplay.html index b5510ddb14..25dce48223 100644 --- a/src/librarydisplay.html +++ b/src/librarydisplay.html @@ -47,11 +47,11 @@
${OptionSaveMetadataAsHiddenHelp}
-
+
-
\ No newline at end of file + diff --git a/src/login.html b/src/login.html index 629f434313..21c9d8a347 100644 --- a/src/login.html +++ b/src/login.html @@ -1,11 +1,7 @@
-
-
-

${HeaderPleaseSignIn}

-
@@ -27,13 +23,14 @@ +
-
-
+
+
@@ -56,6 +53,5 @@

-
-
\ No newline at end of file +
diff --git a/src/manifest.json b/src/manifest.json index a87b086dac..fed1177e24 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,5 +1,4 @@ { - "name": "Jellyfin", "description": "Jellyfin: the Free Software Media System.", "lang": "en-US", @@ -8,7 +7,8 @@ "theme_color": "#101010", "background_color": "#101010", "display": "standalone", - "icons": [{ + "icons": [ + { "sizes": "72x72", "src": "touchicon72.png", "type": "image/png" diff --git a/src/mypreferencesplayback.html b/src/mypreferencesplayback.html index 93f806d0d4..d908c06096 100644 --- a/src/mypreferencesplayback.html +++ b/src/mypreferencesplayback.html @@ -1,4 +1,3 @@
-
-
-
\ No newline at end of file +
+ diff --git a/src/mypreferencessubtitles.html b/src/mypreferencessubtitles.html index aa26a8f157..29d1c84898 100644 --- a/src/mypreferencessubtitles.html +++ b/src/mypreferencessubtitles.html @@ -1,4 +1,3 @@
-
-
-
\ No newline at end of file +
+ diff --git a/src/myprofile.html b/src/myprofile.html index d30f905818..3765ac5e75 100644 --- a/src/myprofile.html +++ b/src/myprofile.html @@ -42,9 +42,7 @@
-

- ${HeaderEasyPinCode} -

+

${HeaderEasyPinCode}

${EasyPasswordHelp}

@@ -68,4 +66,4 @@
- \ No newline at end of file + diff --git a/src/scheduledtask.html b/src/scheduledtask.html index ee2a2c3420..8ecaf04dbe 100644 --- a/src/scheduledtask.html +++ b/src/scheduledtask.html @@ -1,7 +1,6 @@
-

@@ -12,9 +11,7 @@
-

- ${HeaderTaskTriggers} -

+

${HeaderTaskTriggers}

diff --git a/src/scheduledtasks.html b/src/scheduledtasks.html index ce4405bab0..cbff6bcd9d 100644 --- a/src/scheduledtasks.html +++ b/src/scheduledtasks.html @@ -1,5 +1,4 @@
-
-
-
\ No newline at end of file +
diff --git a/src/search.html b/src/search.html index 1fc65e3f11..acf65e7317 100644 --- a/src/search.html +++ b/src/search.html @@ -1,8 +1,4 @@
- -
-
- -
-
-
\ No newline at end of file +
+
+
diff --git a/src/serveractivity.html b/src/serveractivity.html index e2e1795691..29cacd300e 100644 --- a/src/serveractivity.html +++ b/src/serveractivity.html @@ -2,13 +2,11 @@
-

-

+

-
-
+
-
\ No newline at end of file +
diff --git a/src/streamingsettings.html b/src/streamingsettings.html index 7efb4a3966..2d51d9ee77 100644 --- a/src/streamingsettings.html +++ b/src/streamingsettings.html @@ -11,8 +11,10 @@
${LabelRemoteClientBitrateLimitHelp}
- +
- \ No newline at end of file + diff --git a/src/videoosd.html b/src/videoosd.html index 0c7a910908..c9a46fd021 100644 --- a/src/videoosd.html +++ b/src/videoosd.html @@ -1,27 +1,19 @@
-
- -
-
-
- +
+
- -
- -
+
-

- autorenew ${FetchingData} + autorenew + ${FetchingData}
-
-
+
@@ -73,7 +65,11 @@ picture_in_picture_alt -
+
+ + + +
-
+
From 36f60d5923d2b1aa662ca051c34410c59b7921ae Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 20 Dec 2019 23:18:41 +0300 Subject: [PATCH 028/713] reducing show-focus transform scale --- src/components/emby-button/emby-button.css | 4 ++-- src/components/emby-slider/emby-slider.css | 4 ++-- src/components/emby-tabs/emby-tabs.css | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/emby-button/emby-button.css b/src/components/emby-button/emby-button.css index 0273de9d7d..2201b2cd77 100644 --- a/src/components/emby-button/emby-button.css +++ b/src/components/emby-button/emby-button.css @@ -34,7 +34,7 @@ } .emby-button.show-focus:focus { - transform: scale(1.4); + transform: scale(1.2); z-index: 1; } @@ -126,7 +126,7 @@ } .paper-icon-button-light.show-focus:focus { - transform: scale(1.6); + transform: scale(1.3); z-index: 1; } diff --git a/src/components/emby-slider/emby-slider.css b/src/components/emby-slider/emby-slider.css index b173f5c511..945cdd5214 100644 --- a/src/components/emby-slider/emby-slider.css +++ b/src/components/emby-slider/emby-slider.css @@ -84,11 +84,11 @@ _:-ms-input-placeholder { } .mdl-slider:hover::-webkit-slider-thumb { - transform: scale(1.6); + transform: scale(1.3); } .mdl-slider.show-focus:focus::-webkit-slider-thumb { - transform: scale(1.6); + transform: scale(1.3); } .slider-no-webkit-thumb::-webkit-slider-thumb { diff --git a/src/components/emby-tabs/emby-tabs.css b/src/components/emby-tabs/emby-tabs.css index 00abd7efae..b8831b881a 100644 --- a/src/components/emby-tabs/emby-tabs.css +++ b/src/components/emby-tabs/emby-tabs.css @@ -22,7 +22,7 @@ .emby-tab-button.show-focus:focus { /* these buttons are small so scale larger than usual */ - transform: scale(1.6) !important; + transform: scale(1.3) !important; background: 0 !important; } From dfe0b8649512f38c63a209188c9771d3614cd650 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 20 Dec 2019 23:36:56 +0300 Subject: [PATCH 029/713] increase detail logo size --- src/css/librarybrowser.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 1800df5e36..575bf6ddaa 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -480,11 +480,11 @@ } .detailLogo { - width: 21.3em; - height: 5em; + width: 25em; + height: 9.375em; position: absolute; - top: 13.5%; - right: 19.5%; + top: 14.5%; + right: 10.5%; -webkit-background-size: contain; background-size: contain } From 05a200915e7aaebae2cd42d8953f5ff218a73161 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sat, 21 Dec 2019 20:58:38 +0300 Subject: [PATCH 030/713] change cast person card to circle only for pulple-haze theme --- src/components/themes/purple-haze/theme.css | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index f45f94ee8d..543ee3bf07 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -573,3 +573,29 @@ a[data-role=button] { .detailPagePrimaryContainer { background-color: rgba(0, 0, 0, 0.4) } + +.personCard .portraitCard { + width: 50%; +} + +.personCard .cardScalable { + border-radius: 50%; + border: 2px solid #AA5CC3; +} + +.personCard .cardPadder-portrait { + padding-bottom: 100%; + contain: strict; +} + +.personCard .coveredImage { + clip-path: circle(50% at 50% 50%); +} + +.personCard .cardOverlayContainer { + clip-path: circle(50% at 50% 50%); +} + +.personCard .cardOverlayButton-br { + right: 20%; +} From f3f64585e4ce09369ce24ac14d8cbfb51b79dd42 Mon Sep 17 00:00:00 2001 From: Brian Maurer Date: Sat, 21 Dec 2019 21:42:28 -0500 Subject: [PATCH 031/713] Allow webp --- src/components/imageuploader/imageuploader.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/imageuploader/imageuploader.js b/src/components/imageuploader/imageuploader.js index 98fcf0ebce..a616256e8e 100644 --- a/src/components/imageuploader/imageuploader.js +++ b/src/components/imageuploader/imageuploader.js @@ -74,7 +74,7 @@ define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', ' return false; } - if (file.type !== "image/png" && file.type !== "image/x-png" && file.type !== "image/jpeg") { + if (file.type !== "image/png" && file.type !== "image/x-png" && file.type !== "image/jpeg" && file.type !== "image/webp") { require(['toast'], function (toast) { toast(globalize.translate('MessageImageFileTypeAllowed')); }); @@ -185,4 +185,4 @@ define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', ' }); } }; -}); \ No newline at end of file +}); From 1fdb0a8c5652d6ea0444826d4d3fd022e715bd02 Mon Sep 17 00:00:00 2001 From: Brian Maurer Date: Sat, 21 Dec 2019 21:56:40 -0500 Subject: [PATCH 032/713] Allow webp 2 --- src/components/imageuploader/imageuploader.template.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/imageuploader/imageuploader.template.html b/src/components/imageuploader/imageuploader.template.html index b33355945a..d38cf24179 100644 --- a/src/components/imageuploader/imageuploader.template.html +++ b/src/components/imageuploader/imageuploader.template.html @@ -22,7 +22,7 @@
${LabelDropImageHere}
- +

From f7f83f08d4e24e973bd2d7caff8559b53bced0fd Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sun, 22 Dec 2019 16:32:11 +0300 Subject: [PATCH 033/713] Add show/hide backdrop --- src/controllers/itemdetailpage.js | 38 +++++++++++++++++++++++++++++++ src/itemdetails.html | 29 +++++++++++++++++------ src/strings/en-us.json | 2 ++ 3 files changed, 62 insertions(+), 7 deletions(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 523b6faf55..8f68009572 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -463,12 +463,18 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana var imgUrl; var screenWidth = screen.availWidth; var hasbackdrop = false; + var backdropWrapper = page.querySelector(".backdropWrapper"); var itemBackdropElement = page.querySelector("#itemBackdrop"); + var btnBackdropShow = page.querySelector(".btnBackdropShow"); var usePrimaryImage = item.MediaType === "Video" && item.Type !== "Movie" && item.Type !== "Trailer" || item.MediaType && item.MediaType !== "Video" || item.Type === "MusicAlbum" || item.Type === "MusicArtist"; + if (layoutManager.mobile) { + backdropWrapper.classList.remove("hide"); + } + if ("Program" === item.Type && item.ImageTags && item.ImageTags.Thumb) { imgUrl = apiClient.getScaledImageUrl(item.Id, { type: "Thumb", @@ -476,6 +482,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ImageTags.Thumb }); itemBackdropElement.classList.remove("noBackdrop"); + btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (usePrimaryImage && item.ImageTags && item.ImageTags.Primary) { @@ -485,6 +492,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ImageTags.Primary }); itemBackdropElement.classList.remove("noBackdrop"); + btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (item.BackdropImageTags && item.BackdropImageTags.length) { @@ -494,6 +502,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.BackdropImageTags[0] }); itemBackdropElement.classList.remove("noBackdrop"); + btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) { @@ -503,6 +512,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ParentBackdropImageTags[0] }); itemBackdropElement.classList.remove("noBackdrop"); + btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (item.ImageTags && item.ImageTags.Thumb) { @@ -512,10 +522,12 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ImageTags.Thumb }); itemBackdropElement.classList.remove("noBackdrop"); + btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else { itemBackdropElement.classList.add("noBackdrop"); + btnBackdropShow.classList.add("hide"); itemBackdropElement.style.backgroundImage = ""; } @@ -1913,6 +1925,26 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana }); } + function showBackdrop(instance, page, apiClient, params) { + var backdropWrapper = page.querySelector(".backdropWrapper"); + var btnBackdropHide = page.querySelector(".btnBackdropHide"); + var btnBackdropShow = page.querySelector(".btnBackdropShow"); + + backdropWrapper.classList.remove("hide"); + btnBackdropHide.classList.remove("hide"); + btnBackdropShow.classList.add("hide"); + } + + function hideBackdrop(instance, page, apiClient, params) { + var backdropWrapper = page.querySelector(".backdropWrapper"); + var btnBackdropHide = page.querySelector(".btnBackdropHide"); + var btnBackdropShow = page.querySelector(".btnBackdropShow"); + + backdropWrapper.classList.add("hide"); + btnBackdropHide.classList.add("hide"); + btnBackdropShow.classList.remove("hide"); + } + function getPlayOptions(startPosition) { var audioStreamIndex = view.querySelector(".selectAudio").value || null; return { @@ -2076,6 +2108,12 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana renderAudioSelections(view, self._currentPlaybackMediaSources); renderSubtitleSelections(view, self._currentPlaybackMediaSources); }); + view.querySelector(".btnBackdropShow").addEventListener("click", function () { + showBackdrop(self, view, apiClient, params); + }); + view.querySelector(".btnBackdropHide").addEventListener("click", function () { + hideBackdrop(self, view, apiClient, params); + }); view.addEventListener("click", function (e) { if (dom.parentWithClass(e.target, "moreScenes")) { apiClient.getCurrentUser().then(function (user) { diff --git a/src/itemdetails.html b/src/itemdetails.html index c210bdf216..79ddd67480 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -1,13 +1,14 @@
-
- +
+
+ +
+ +
- - -
@@ -109,6 +110,20 @@
${ButtonMore}
+ + + +
diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 2edeb69e88..e2d7cfba89 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -84,6 +84,7 @@ "ButtonGotIt": "Got It", "ButtonGuide": "Guide", "ButtonHelp": "Help", + "ButtonHide": "Hide", "ButtonHome": "Home", "ButtonInfo": "Info", "ButtonLearnMore": "Learn more", @@ -120,6 +121,7 @@ "ButtonSelectView": "Select view", "ButtonSend": "Send", "ButtonSettings": "Settings", + "ButtonShow": "Show", "ButtonShuffle": "Shuffle", "ButtonShutdown": "Shutdown", "ButtonSignIn": "Sign In", From 8e9b094d4b32b2930399309c1767fe30ada382cd Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sun, 22 Dec 2019 17:47:17 +0300 Subject: [PATCH 034/713] backward compateblity for web os --- src/css/librarybrowser.css | 22 ++++ src/itemdetails.html | 210 +++++++++++++++++++------------------ 2 files changed, 128 insertions(+), 104 deletions(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 575bf6ddaa..0ac4ae8fcb 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -456,6 +456,10 @@ z-index: 2; } +.layout-tv .detailPagePrimaryContainer { + position: relative; +} + .detailPageSeconderyContainer { margin: 1.25em 0; display:grid; @@ -464,6 +468,16 @@ padding-right:2%; } +.layout-tv .detailPageSeconderyWrapper { + display: flex; +} + +.layout-tv .detailPageSeconderyContainer { + display: flex; + flex-direction: column; + width: 75%; +} + .detailImageContainer { margin: 1.25em 0; width: 350px; @@ -472,6 +486,14 @@ float: left; } +.layout-tv .detailImageContainer { + display: flex; + flex-direction: column; + position: relative; + width: 25%; + float: right; +} + .detailPagePrimaryContent { position: relative; -webkit-box-flex: 1; diff --git a/src/itemdetails.html b/src/itemdetails.html index 79ddd67480..fa350f41ce 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -126,127 +126,129 @@
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
- + +
+ +
+
+ +
+
+ +
+
+ +
+ + +
+
+
+ +

+

+

+

+

+

+

+ +
+ +
-
- -
-
- -
-
- -
- - -
-
-
- -

-

-

-

-

-

-

- -
- -
-
-
-

${HeaderSchedule}

-
-
- -
- -
-

${HeaderNextUp}

-
-
- -
-
-
- -
-

- -

-
-
+
+

${HeaderSchedule}

+
-
-
-

${HeaderAdditionalParts}

-
-
+
-
-

-
-
+
+

${HeaderNextUp}

+
-
-
-

-
-
+
+
-
-
-

${HeaderCastCrew}

-
-
+
+

+ +

+
+
+
-
-
-

${HeaderUpcomingOnTV}

-
-
- -
-

${HeaderSpecialFeatures}

-
-
- -
-

${HeaderMusicVideos}

-
-
- -
-

${HeaderScenes}

-
-
+
+

${HeaderAdditionalParts}

+
-
-
-

${HeaderMoreLikeThis}

-
-
+
+

+
+
+
+
+ +
+

+
+
+
+
+ +
+

${HeaderCastCrew}

+
+
+
+
+ +
+

${HeaderUpcomingOnTV}

+
+
+ +
+

${HeaderSpecialFeatures}

+
+
+ +
+

${HeaderMusicVideos}

+
+
+ +
+

${HeaderScenes}

+
+
+
+
+ +
+

${HeaderMoreLikeThis}

+
+
+
From 77fd191d9913f32af3c3a7a77874f83fce94b7e8 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sun, 22 Dec 2019 20:01:33 +0300 Subject: [PATCH 035/713] Fix detailPagePrimaryContainer style --- src/css/librarybrowser.css | 39 +++++++++++++++++++++++++------------- src/itemdetails.html | 6 +++--- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 0ac4ae8fcb..dacfa7c57b 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -233,6 +233,7 @@ } @media all and (min-width:40em) { + .dashboardDocument .adminDrawerLogo, .dashboardDocument .mainDrawerButton { display: none !important @@ -422,7 +423,7 @@ } .noBackdrop { - display:none; + display: none; } .itemBackdrop { @@ -448,24 +449,32 @@ .detailPagePrimaryContainer { display: flex; - justify-content: space-between; - flex-wrap: wrap; align-items: center; + flex-flow: row wrap; + align-content: center; position: sticky; top: 0; z-index: 2; } +.infoWrapper { + margin: 1.25em 0 0; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + flex: 1 0 0; +} + .layout-tv .detailPagePrimaryContainer { position: relative; } .detailPageSeconderyContainer { margin: 1.25em 0; - display:grid; + display: grid; grid-template-columns: 100%; - padding-left:2%; - padding-right:2%; + padding-left: 2%; + padding-right: 2%; } .layout-tv .detailPageSeconderyWrapper { @@ -479,10 +488,8 @@ } .detailImageContainer { - margin: 1.25em 0; - width: 350px; position: sticky; - top:15%; + top: 15%; float: left; } @@ -601,8 +608,14 @@ .detailPagePrimaryContainer { display: flex; + align-items: center; justify-content: center; - flex-wrap: wrap; + } + + .infoWrapper { + text-overflow: initial; + white-space: normal; + flex: initial; } } @@ -621,7 +634,7 @@ .detailButton-mobile, .mainDetailButtons { display: -webkit-box; - display: -webkit-flex + display: -webkit-flex; } .itemName { @@ -904,7 +917,7 @@ margin: 1.25em 0; } -.sectionTitleContainer > .sectionTitle { +.sectionTitleContainer>.sectionTitle { margin: 0; display: inline-block; vertical-align: middle; @@ -924,7 +937,7 @@ flex-shrink: 0 } -.sectionTitleButton + .sectionTitleButton { +.sectionTitleButton+.sectionTitleButton { margin-left: .5em !important } diff --git a/src/itemdetails.html b/src/itemdetails.html index fa350f41ce..7c5009ec80 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -13,9 +13,9 @@
-
-
-
+
+
+
From 5e3b2a642d7b4e641e940d4e45bfb4f99870c13c Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sun, 22 Dec 2019 23:51:53 +0300 Subject: [PATCH 036/713] fix text overflow --- src/controllers/itemdetailpage.js | 6 +++--- src/css/librarybrowser.css | 10 ++++++---- src/itemdetails.html | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 8f68009572..de5d270c35 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -419,13 +419,13 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana var offset = parentNameLast ? ".25em" : ".5em"; if (html && !parentNameLast) { - html += '

' + name + '

'; + html += '

' + name + '

'; } else { - html = '

' + name + "

" + html; + html = '

' + name + "

" + html; } if (item.OriginalTitle && item.OriginalTitle != item.Name) { - html += '

' + item.OriginalTitle + '

'; + html += '

' + item.OriginalTitle + '

'; } container.innerHTML = html; diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index dacfa7c57b..9668eee20f 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -459,10 +459,14 @@ .infoWrapper { margin: 1.25em 0 0; - text-overflow: ellipsis; + flex: 1 0 0; +} + +.infoText { white-space: nowrap; overflow: hidden; - flex: 1 0 0; + text-overflow: ellipsis; + text-align: left; } .layout-tv .detailPagePrimaryContainer { @@ -613,8 +617,6 @@ } .infoWrapper { - text-overflow: initial; - white-space: normal; flex: initial; } } diff --git a/src/itemdetails.html b/src/itemdetails.html index 7c5009ec80..5216f1c4d3 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -12,7 +12,7 @@
-
+
From 7f2cc73e632239910f4dec834621016eddb6ee52 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 24 Dec 2019 03:17:33 +0300 Subject: [PATCH 037/713] backward compateblity --- src/css/librarybrowser.css | 35 +++--- src/itemdetails.html | 214 ++++++++++++++++++------------------- 2 files changed, 118 insertions(+), 131 deletions(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 9668eee20f..ba0148e036 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -447,6 +447,10 @@ bottom: .75em } +.layout-tv .detailPagePrimaryContainer { + position: relative; +} + .detailPagePrimaryContainer { display: flex; align-items: center; @@ -459,6 +463,7 @@ .infoWrapper { margin: 1.25em 0 0; + padding-left: 3%; flex: 1 0 0; } @@ -469,42 +474,25 @@ text-align: left; } -.layout-tv .detailPagePrimaryContainer { - position: relative; -} - .detailPageSeconderyContainer { margin: 1.25em 0; - display: grid; - grid-template-columns: 100%; + display: flex; + flex-direction: column; padding-left: 2%; padding-right: 2%; } -.layout-tv .detailPageSeconderyWrapper { - display: flex; -} - -.layout-tv .detailPageSeconderyContainer { - display: flex; - flex-direction: column; - width: 75%; +.layout-tv .detailImageContainer { + position: relative; } .detailImageContainer { + margin: 1.25em 0; position: sticky; top: 15%; float: left; } -.layout-tv .detailImageContainer { - display: flex; - flex-direction: column; - position: relative; - width: 25%; - float: right; -} - .detailPagePrimaryContent { position: relative; -webkit-box-flex: 1; @@ -662,7 +650,8 @@ align-items: center; -webkit-flex-wrap: wrap; flex-wrap: wrap; - margin: 1em 0 + margin: 1em 0; + padding-right: 3%; } .recordingFields button { diff --git a/src/itemdetails.html b/src/itemdetails.html index 5216f1c4d3..3385636029 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -10,7 +10,7 @@
-
+
@@ -18,7 +18,7 @@
-
+
-
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -

-

-

-

-

-

-

- -
- -
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +

+

+

+

+

+

+

+ +
+ +
+
-
-

${HeaderSchedule}

-
+
+

${HeaderSchedule}

+
+
+ +
+ +
+

${HeaderNextUp}

+
+
+ +
+
+
+ +
+

+ +

+
+
+
-
+
+

${HeaderAdditionalParts}

+
+
-
-

${HeaderNextUp}

-
+
+

+
+
+
-
-
+
+

+
+
+
-
-

- -

-
-
-
+
+

${HeaderCastCrew}

+
+
+
-
-

${HeaderAdditionalParts}

-
+
+

${HeaderUpcomingOnTV}

+
+
+ +
+

${HeaderSpecialFeatures}

+
+
+ +
+

${HeaderMusicVideos}

+
+
+ +
+

${HeaderScenes}

+
+
+
-
-

-
-
-
-
- -
-

-
-
-
-
- -
-

${HeaderCastCrew}

-
-
-
-
- -
-

${HeaderUpcomingOnTV}

-
-
- -
-

${HeaderSpecialFeatures}

-
-
- -
-

${HeaderMusicVideos}

-
-
- -
-

${HeaderScenes}

-
-
-
-
- -
-

${HeaderMoreLikeThis}

-
-
-
+
+

${HeaderMoreLikeThis}

+
+
From 1be3b13ba0e753e99cde32542853309fa7d06943 Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 28 Dec 2019 19:30:22 +0900 Subject: [PATCH 038/713] add logging for libjass usage --- src/components/htmlvideoplayer/plugin.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index 5b56649011..a8d1b15f85 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -1104,6 +1104,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa if (supportsCanvas() && supportsWebWorkers()) { renderWithSubtitlesOctopus(videoElement, track, item); } else { + console.log('rendering subtitles with libjass'); renderWithLibjass(videoElement, track, item); } } From 89b1fd7ce0137ba8af61c9ee4d0db11c2d771169 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 30 Dec 2019 03:07:45 +0300 Subject: [PATCH 039/713] fix cast circle for mobile divice --- src/components/themes/purple-haze/theme.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index 543ee3bf07..dcfa0ec494 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -580,9 +580,10 @@ a[data-role=button] { .personCard .cardScalable { border-radius: 50%; - border: 2px solid #AA5CC3; + border: 1px solid rgb(255, 255, 255); } +.personCard .cardPadder-overflowPortrait, .personCard .cardPadder-portrait { padding-bottom: 100%; contain: strict; From e0d6686bb48204961b0e8ffd97f32a1301b0a424 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Thu, 2 Jan 2020 20:27:37 +0300 Subject: [PATCH 040/713] remove btn backdrop show/hide --- src/controllers/itemdetailpage.js | 38 ------------------------------- src/itemdetails.html | 28 +++++------------------ src/strings/en-us.json | 2 -- 3 files changed, 6 insertions(+), 62 deletions(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index de5d270c35..f5d32f34e8 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -463,18 +463,12 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana var imgUrl; var screenWidth = screen.availWidth; var hasbackdrop = false; - var backdropWrapper = page.querySelector(".backdropWrapper"); var itemBackdropElement = page.querySelector("#itemBackdrop"); - var btnBackdropShow = page.querySelector(".btnBackdropShow"); var usePrimaryImage = item.MediaType === "Video" && item.Type !== "Movie" && item.Type !== "Trailer" || item.MediaType && item.MediaType !== "Video" || item.Type === "MusicAlbum" || item.Type === "MusicArtist"; - if (layoutManager.mobile) { - backdropWrapper.classList.remove("hide"); - } - if ("Program" === item.Type && item.ImageTags && item.ImageTags.Thumb) { imgUrl = apiClient.getScaledImageUrl(item.Id, { type: "Thumb", @@ -482,7 +476,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ImageTags.Thumb }); itemBackdropElement.classList.remove("noBackdrop"); - btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (usePrimaryImage && item.ImageTags && item.ImageTags.Primary) { @@ -492,7 +485,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ImageTags.Primary }); itemBackdropElement.classList.remove("noBackdrop"); - btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (item.BackdropImageTags && item.BackdropImageTags.length) { @@ -502,7 +494,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.BackdropImageTags[0] }); itemBackdropElement.classList.remove("noBackdrop"); - btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) { @@ -512,7 +503,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ParentBackdropImageTags[0] }); itemBackdropElement.classList.remove("noBackdrop"); - btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else if (item.ImageTags && item.ImageTags.Thumb) { @@ -522,12 +512,10 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana tag: item.ImageTags.Thumb }); itemBackdropElement.classList.remove("noBackdrop"); - btnBackdropShow.classList.remove("hide"); imageLoader.lazyImage(itemBackdropElement, imgUrl, false); hasbackdrop = true; } else { itemBackdropElement.classList.add("noBackdrop"); - btnBackdropShow.classList.add("hide"); itemBackdropElement.style.backgroundImage = ""; } @@ -1925,26 +1913,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana }); } - function showBackdrop(instance, page, apiClient, params) { - var backdropWrapper = page.querySelector(".backdropWrapper"); - var btnBackdropHide = page.querySelector(".btnBackdropHide"); - var btnBackdropShow = page.querySelector(".btnBackdropShow"); - - backdropWrapper.classList.remove("hide"); - btnBackdropHide.classList.remove("hide"); - btnBackdropShow.classList.add("hide"); - } - - function hideBackdrop(instance, page, apiClient, params) { - var backdropWrapper = page.querySelector(".backdropWrapper"); - var btnBackdropHide = page.querySelector(".btnBackdropHide"); - var btnBackdropShow = page.querySelector(".btnBackdropShow"); - - backdropWrapper.classList.add("hide"); - btnBackdropHide.classList.add("hide"); - btnBackdropShow.classList.remove("hide"); - } - function getPlayOptions(startPosition) { var audioStreamIndex = view.querySelector(".selectAudio").value || null; return { @@ -2108,12 +2076,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana renderAudioSelections(view, self._currentPlaybackMediaSources); renderSubtitleSelections(view, self._currentPlaybackMediaSources); }); - view.querySelector(".btnBackdropShow").addEventListener("click", function () { - showBackdrop(self, view, apiClient, params); - }); - view.querySelector(".btnBackdropHide").addEventListener("click", function () { - hideBackdrop(self, view, apiClient, params); - }); view.addEventListener("click", function (e) { if (dom.parentWithClass(e.target, "moreScenes")) { apiClient.getCurrentUser().then(function (user) { diff --git a/src/itemdetails.html b/src/itemdetails.html index 3385636029..d92b8688ef 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -1,14 +1,12 @@
-
-
- -
- - +
+
+ +
@@ -110,20 +108,6 @@
${ButtonMore}
- - - -
diff --git a/src/strings/en-us.json b/src/strings/en-us.json index e2d7cfba89..2edeb69e88 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -84,7 +84,6 @@ "ButtonGotIt": "Got It", "ButtonGuide": "Guide", "ButtonHelp": "Help", - "ButtonHide": "Hide", "ButtonHome": "Home", "ButtonInfo": "Info", "ButtonLearnMore": "Learn more", @@ -121,7 +120,6 @@ "ButtonSelectView": "Select view", "ButtonSend": "Send", "ButtonSettings": "Settings", - "ButtonShow": "Show", "ButtonShuffle": "Shuffle", "ButtonShutdown": "Shutdown", "ButtonSignIn": "Sign In", From 4e72a857c4c11bf83777829a33f1ddbd974e7338 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 3 Jan 2020 21:10:42 +0300 Subject: [PATCH 041/713] change shap to overflow --- src/components/themes/purple-haze/theme.css | 4 ++-- src/controllers/itemdetailpage.js | 8 ++++---- src/css/librarybrowser.css | 14 ++++---------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index dcfa0ec494..11cb044211 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -574,8 +574,8 @@ a[data-role=button] { background-color: rgba(0, 0, 0, 0.4) } -.personCard .portraitCard { - width: 50%; +.personCard .overflowPortraitCard { + width: 40vw; } .personCard .cardScalable { diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index f5d32f34e8..e02063c031 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -895,7 +895,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana var html = cardBuilder.getCardsHtml({ items: result.Items, - shape: getThumbShape(false), + shape: "overflowBackdrop", showTitle: true, displayAsSpecial: "Season" == item.Type && item.IndexNumber, overlayText: false, @@ -1400,7 +1400,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana scrollX = enableScrollX(); html = cardBuilder.getCardsHtml({ items: result.Items, - shape: getPortraitShape(), + shape: "overflowPortrait", showTitle: true, centerText: true, lazy: true, @@ -1419,7 +1419,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana if ("Episode" === item.Type) { html = cardBuilder.getCardsHtml({ items: result.Items, - shape: getThumbShape(scrollX), + shape: "overflowBackdrop", showTitle: true, displayAsSpecial: "Season" == item.Type && item.IndexNumber, playFromHere: true, @@ -1857,7 +1857,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana coverImage: true, serverId: item.ServerId, width: 160, - shape: getPortraitShape() + shape: "overflowPortrait" }); }); } diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index ba0148e036..879ee010ea 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -491,6 +491,7 @@ position: sticky; top: 15%; float: left; + width: 22.786458333333332vw; } .detailPagePrimaryContent { @@ -535,9 +536,10 @@ } .itemDetailImage { - width: 350px; -webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37) + box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); + width: 100% !important; + } @media all and (max-width:62.5em) { @@ -545,14 +547,6 @@ position: relative } - .detailImageContainer { - width: 100px !important - } - - .itemDetailImage { - width: 100px !important - } - .btnPlaySimple { display: none !important } From ac9fece8cca15d93daa28afb4ccf09a6a3387d0b Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 3 Jan 2020 22:11:23 +0300 Subject: [PATCH 042/713] change style --- src/components/themes/appletv/theme.css | 4 ---- src/components/themes/blueradiance/theme.css | 4 ---- src/components/themes/dark/theme.css | 4 ---- src/components/themes/emby/theme.css | 4 ---- src/components/themes/light/theme.css | 4 ---- src/components/themes/purple-haze/theme.css | 4 ---- src/itemdetails.html | 2 +- 7 files changed, 1 insertion(+), 25 deletions(-) diff --git a/src/components/themes/appletv/theme.css b/src/components/themes/appletv/theme.css index ff34435b78..95e1927676 100644 --- a/src/components/themes/appletv/theme.css +++ b/src/components/themes/appletv/theme.css @@ -456,7 +456,3 @@ html { .metadataSidebarIcon { color: #00a4dc } - -.detailPagePrimaryContainer { - background-color: rgba(255, 255, 255, 0.4) -} diff --git a/src/components/themes/blueradiance/theme.css b/src/components/themes/blueradiance/theme.css index e0b5c01f00..b01190d80c 100644 --- a/src/components/themes/blueradiance/theme.css +++ b/src/components/themes/blueradiance/theme.css @@ -464,7 +464,3 @@ html { .metadataSidebarIcon { color: #00a4dc } - -.detailPagePrimaryContainer { - background-color: rgba(0, 0, 0, 0.4) -} diff --git a/src/components/themes/dark/theme.css b/src/components/themes/dark/theme.css index 4694771a54..6d7fcd0c29 100644 --- a/src/components/themes/dark/theme.css +++ b/src/components/themes/dark/theme.css @@ -441,7 +441,3 @@ html { .metadataSidebarIcon { color: #00a4dc } - -.detailPagePrimaryContainer { - background-color: rgba(0, 0, 0, 0.4) -} diff --git a/src/components/themes/emby/theme.css b/src/components/themes/emby/theme.css index fa17998479..5668ee5295 100644 --- a/src/components/themes/emby/theme.css +++ b/src/components/themes/emby/theme.css @@ -441,7 +441,3 @@ html { .metadataSidebarIcon { color: #00a4dc } - -.detailPagePrimaryContainer { - background-color: rgba(0, 0, 0, 0.4) -} diff --git a/src/components/themes/light/theme.css b/src/components/themes/light/theme.css index 8db245894c..53a8b79064 100644 --- a/src/components/themes/light/theme.css +++ b/src/components/themes/light/theme.css @@ -437,7 +437,3 @@ html { .metadataSidebarIcon { color: #00a4dc } - -.detailPagePrimaryContainer { - background-color: rgba(255, 255, 255, 0.4) -} diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index 11cb044211..f6d59341b9 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -570,10 +570,6 @@ a[data-role=button] { color: #dbe6ff } -.detailPagePrimaryContainer { - background-color: rgba(0, 0, 0, 0.4) -} - .personCard .overflowPortraitCard { width: 40vw; } diff --git a/src/itemdetails.html b/src/itemdetails.html index d92b8688ef..c7c890283c 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -8,7 +8,7 @@
-
+
From f92c05b9d3888cd059887e720d0243f4bc35b119 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 3 Jan 2020 22:37:11 +0300 Subject: [PATCH 043/713] change sticky to relative for mobile too to gain more room --- src/css/librarybrowser.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 879ee010ea..6197a2d1c3 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -447,6 +447,7 @@ bottom: .75em } +.layout-mobile .detailPagePrimaryContainer, .layout-tv .detailPagePrimaryContainer { position: relative; } @@ -482,6 +483,7 @@ padding-right: 2%; } +.layout-mobile .detailImageContainer, .layout-tv .detailImageContainer { position: relative; } From a5ec665cfa8185d1a4e56a0973b86765b0ac7cc9 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 3 Jan 2020 23:34:07 +0300 Subject: [PATCH 044/713] change detailImageProgressContainer width to vw --- src/css/librarybrowser.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 6197a2d1c3..ff10701756 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -723,7 +723,7 @@ .detailImageProgressContainer { margin-left: 6px; - width: 350px; + width: 21.886458333333332vw; } .detailButton-mobile-text { From ad91c897d7dc2afbd692e60ccd22d4e500c1e98e Mon Sep 17 00:00:00 2001 From: dkanada Date: Sun, 5 Jan 2020 14:17:25 +0900 Subject: [PATCH 045/713] update comment about dependencies --- 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 871ac988ba..f7448f47b1 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -751,7 +751,7 @@ var AppInfo = {}; define("useractionrepository", [bowerPath + "/apiclient/sync/useractionrepository"], returnFirstDependency); // TODO remove these libraries - // all three have been modified so we need to fix that first + // all of these have been modified so we need to fix that first define("page", [bowerPath + "/pagejs/page"], returnFirstDependency); define("headroom", [componentsPath + "/headroom/headroom"], returnFirstDependency); define("scroller", [componentsPath + "/scroller"], returnFirstDependency); From 0600fb26a34bb989dbae382dc711ed477f0d3b15 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sun, 5 Jan 2020 23:55:28 +0300 Subject: [PATCH 046/713] apply suggestion change --- src/controllers/itemdetailpage.js | 6 +++--- src/css/librarybrowser.css | 30 ++++++++---------------------- src/itemdetails.html | 8 ++++---- 3 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index e02063c031..782f3cd16e 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -419,13 +419,13 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana var offset = parentNameLast ? ".25em" : ".5em"; if (html && !parentNameLast) { - html += '

' + name + '

'; + html += '

' + name + '

'; } else { - html = '

' + name + "

" + html; + html = '

' + name + "

" + html; } if (item.OriginalTitle && item.OriginalTitle != item.Name) { - html += '

' + item.OriginalTitle + '

'; + html += '

' + item.OriginalTitle + '

'; } container.innerHTML = html; diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index ff10701756..835f5ddbff 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -422,10 +422,6 @@ left: .8em } -.noBackdrop { - display: none; -} - .itemBackdrop { -webkit-background-size: cover; background-size: cover; @@ -447,7 +443,11 @@ bottom: .75em } -.layout-mobile .detailPagePrimaryContainer, +.layout-mobile .detailPagePrimaryContainer { + display: block; + position: relative; +} + .layout-tv .detailPagePrimaryContainer { position: relative; } @@ -455,7 +455,6 @@ .detailPagePrimaryContainer { display: flex; align-items: center; - flex-flow: row wrap; align-content: center; position: sticky; top: 0; @@ -463,8 +462,6 @@ } .infoWrapper { - margin: 1.25em 0 0; - padding-left: 3%; flex: 1 0 0; } @@ -475,7 +472,7 @@ text-align: left; } -.detailPageSeconderyContainer { +.detailPageSecondaryContainer { margin: 1.25em 0; display: flex; flex-direction: column; @@ -587,22 +584,12 @@ } .itemDetailPage { - padding-top: 2em !important + padding-top: 0em !important } .detailimg-hidemobile { display: none } - - .detailPagePrimaryContainer { - display: flex; - align-items: center; - justify-content: center; - } - - .infoWrapper { - flex: initial; - } } @media all and (min-width:31.25em) { @@ -647,7 +634,6 @@ -webkit-flex-wrap: wrap; flex-wrap: wrap; margin: 1em 0; - padding-right: 3%; } .recordingFields button { @@ -904,7 +890,7 @@ margin: 1.25em 0; } -.sectionTitleContainer>.sectionTitle { +.sectionTitleContainer > .sectionTitle { margin: 0; display: inline-block; vertical-align: middle; diff --git a/src/itemdetails.html b/src/itemdetails.html index c7c890283c..4208d99262 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -8,12 +8,12 @@
-
+
-
-
+
+
@@ -111,7 +111,7 @@
-
+
From a73da9f46b6297f54c5fa970ffc9646de8de29e3 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 6 Jan 2020 00:10:25 +0300 Subject: [PATCH 047/713] remove leftover detailPagePrimaryContainer style form theme --- src/components/themes/wmc/theme.css | 4 ---- src/css/librarybrowser.css | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/components/themes/wmc/theme.css b/src/components/themes/wmc/theme.css index 2b430a9221..1516b45f14 100644 --- a/src/components/themes/wmc/theme.css +++ b/src/components/themes/wmc/theme.css @@ -459,7 +459,3 @@ html { .metadataSidebarIcon { color: #00a4dc } - -.detailPagePrimaryContainer { - background-color: rgba(0, 0, 0, 0.4) -} diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 835f5ddbff..d5538eb2eb 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -584,7 +584,7 @@ } .itemDetailPage { - padding-top: 0em !important + padding-top: 0 !important } .detailimg-hidemobile { From 6e39a97bf2744b0e4957d409581b4119a43392c9 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 6 Jan 2020 00:14:11 +0300 Subject: [PATCH 048/713] spacing --- src/css/librarybrowser.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index d5538eb2eb..f93ee91b83 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -910,7 +910,7 @@ flex-shrink: 0 } -.sectionTitleButton+.sectionTitleButton { +.sectionTitleButton + .sectionTitleButton { margin-left: .5em !important } From e9d09e95528468333e22d43f55eb773c4f5e3396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20F=C3=A4th?= Date: Mon, 6 Jan 2020 00:32:19 +0100 Subject: [PATCH 049/713] Update layout --- src/nowplaying.html | 117 +++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 56 deletions(-) diff --git a/src/nowplaying.html b/src/nowplaying.html index 86565254a4..93543b6a0f 100644 --- a/src/nowplaying.html +++ b/src/nowplaying.html @@ -74,67 +74,72 @@
-