diff --git a/README.md b/README.md index f9796e6173..6a80b0b09c 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Translation Status -
+
Donate @@ -53,7 +53,7 @@ Jellyfin Web is the frontend used for most of the clients available for end user git clone https://github.com/jellyfin/jellyfin-web.git cd jellyfin-web ``` -2. Install build dependencies in the project directory via npm. +2. Install build dependencies in the project directory. ```sh yarn install ``` diff --git a/src/components/actionsheet/actionsheet.css b/src/components/actionsheet/actionsheet.css index c1b169889c..8e5084038a 100644 --- a/src/components/actionsheet/actionsheet.css +++ b/src/components/actionsheet/actionsheet.css @@ -37,11 +37,12 @@ box-shadow: none; flex-shrink: 0; border-radius: 0; + margin: 0; } - .actionSheetMenuItem:focus { - transform: none !important; - } +.actionSheetMenuItem:focus { + transform: none !important; +} .actionsheetListItemBody { padding: .4em 1em .4em .6em !important; @@ -104,7 +105,7 @@ } .actionsheet-xlargeFont { - font-size: 112%!important; + font-size: 112% !important; } .btnCloseActionSheet { diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.css index ec19c83f00..17e1d402fb 100644 --- a/src/components/cardbuilder/card.css +++ b/src/components/cardbuilder/card.css @@ -627,7 +627,7 @@ button { @media (min-width: 43.75em) { .overflowSquareCard, .overflowPortraitCard { - width: 23.3vw; + width: 23.1vw; } } @@ -643,13 +643,13 @@ button { } .overflowSquareCard, .overflowPortraitCard { - width: 23.3vw; + width: 23.1vw; } } @media (orientation: landscape) and (min-width: 48.125em) { .overflowBackdropCard, .overflowSmallBackdropCard { - width: 23.3vw; + width: 23.1vw; } } @@ -661,13 +661,13 @@ button { @media (min-width: 50em) { .overflowSquareCard, .overflowPortraitCard { - width: 18.4vw; + width: 18.5vw; } } @media (min-width: 75em) { .overflowBackdropCard, .overflowSmallBackdropCard { - width: 23.3vw; + width: 23.1vw; } .overflowSquareCard, .overflowPortraitCard { @@ -780,4 +780,4 @@ button { .cardOverlayFab-primary:hover { transform: scale(1.4, 1.4); transition: 0.2s; -} \ No newline at end of file +} diff --git a/src/components/emby-scrollbuttons/emby-scrollbuttons.css b/src/components/emby-scrollbuttons/emby-scrollbuttons.css index 007557be91..6786824bd6 100644 --- a/src/components/emby-scrollbuttons/emby-scrollbuttons.css +++ b/src/components/emby-scrollbuttons/emby-scrollbuttons.css @@ -6,6 +6,7 @@ justify-content: center; min-width:104px; min-height:24px; + padding-top: 1.25em; z-index: 1; color: #ffffff; display: flex; @@ -15,4 +16,4 @@ min-width: 24px; min-height: 24px; display: block; -} \ No newline at end of file +} diff --git a/src/components/emby-scroller/emby-scroller.css b/src/components/emby-scroller/emby-scroller.css index 1e0b05b83c..11c2c73271 100644 --- a/src/components/emby-scroller/emby-scroller.css +++ b/src/components/emby-scroller/emby-scroller.css @@ -8,21 +8,15 @@ } /* align first card in scroller to heading */ -.emby-scroller .card:first-of-type > .cardBox { +.itemsContainer > .card > .cardBox { margin-left: 0; + margin-right: 1.2em; } -/* align heading for normal item containers */ -/* still not ideal solution but better than the last method */ -.verticalSection > .itemsContainer .cardBox { +.layout-tv .emby-scroller, +.layout-mobile .emby-scroller { + padding-left: 3.3%; + padding-right: 3.3%; margin-left: 0; + margin-right: 0; } - -@media all and (max-width:50em) { - .emby-scroller { - padding-left: 3.3%; - padding-right: 3.3%; - margin-left: 0; - margin-right: 0; - } -} \ No newline at end of file diff --git a/src/components/htmlaudioplayer/plugin.js b/src/components/htmlaudioplayer/plugin.js index 1b41cc544d..ef64bad046 100644 --- a/src/components/htmlaudioplayer/plugin.js +++ b/src/components/htmlaudioplayer/plugin.js @@ -2,11 +2,8 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp "use strict"; function getDefaultProfile() { - return new Promise(function (resolve, reject) { - require(['browserdeviceprofile'], function (profileBuilder) { - resolve(profileBuilder({})); }); }); @@ -14,28 +11,22 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp var fadeTimeout; function fade(instance, elem, startingVolume) { - instance._isFadingOut = true; // Need to record the starting volume on each pass rather than querying elem.volume // This is due to iOS safari not allowing volume changes and always returning the system volume value - var newVolume = Math.max(0, startingVolume - 0.15); console.log('fading volume to ' + newVolume); elem.volume = newVolume; if (newVolume <= 0) { - instance._isFadingOut = false; return Promise.resolve(); } return new Promise(function (resolve, reject) { - cancelFadeTimeout(); - fadeTimeout = setTimeout(function () { - fade(instance, elem, newVolume).then(resolve, reject); }, 100); }); @@ -50,7 +41,6 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp } function supportsFade() { - if (browser.tv) { // Not working on tizen. // We could possibly enable on other tv's, but all smart tv browsers tend to be pretty primitive @@ -68,9 +58,7 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp } function enableHlsPlayer(url, item, mediaSource, mediaType) { - if (!htmlMediaHelper.enableHlsJsPlayer(mediaSource.RunTimeTicks, mediaType)) { - return Promise.reject(); } @@ -86,21 +74,18 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp url: url, type: 'HEAD' }).then(function (response) { - var contentType = (response.headers.get('Content-Type') || '').toLowerCase(); if (contentType === 'application/x-mpegurl') { resolve(); } else { reject(); } - }, reject); }); }); } function HtmlAudioPlayer() { - var self = this; self.name = 'Html Audio Player'; @@ -114,11 +99,9 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp self._started = false; self._timeUpdated = false; - self._currentTime = null; var elem = createMediaElement(options); - return setCurrentSrc(elem, options); }; @@ -511,4 +494,4 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp }; return HtmlAudioPlayer; -}); \ No newline at end of file +}); diff --git a/src/components/indicators/indicators.js b/src/components/indicators/indicators.js index 8deedef6c8..e8813d9470 100644 --- a/src/components/indicators/indicators.js +++ b/src/components/indicators/indicators.js @@ -115,7 +115,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun } function getTimerIndicator(item) { - var status; if (item.Type === 'SeriesTimer') { diff --git a/src/components/itemMediaInfo/itemMediaInfo.template.html b/src/components/itemMediaInfo/itemMediaInfo.template.html index a947a55d2e..1eeab4fbd9 100644 --- a/src/components/itemMediaInfo/itemMediaInfo.template.html +++ b/src/components/itemMediaInfo/itemMediaInfo.template.html @@ -1,8 +1,8 @@
- -

- ${HeaderMediaInfo} -

+ +

${HeaderMediaInfo}

diff --git a/src/components/itemidentifier/itemidentifier.template.html b/src/components/itemidentifier/itemidentifier.template.html index 0081b543a4..d921d580a7 100644 --- a/src/components/itemidentifier/itemidentifier.template.html +++ b/src/components/itemidentifier/itemidentifier.template.html @@ -2,9 +2,7 @@ -

- ${Identify} -

+

${Identify}

@@ -17,16 +15,13 @@
- +
- +
-
-
+
-
+

${SearchResults}

-

@@ -51,8 +45,7 @@
-
diff --git a/src/components/loading/loader2.gif b/src/components/loading/loader.gif similarity index 100% rename from src/components/loading/loader2.gif rename to src/components/loading/loader.gif diff --git a/src/components/loading/loadingLegacy.js b/src/components/loading/loadingLegacy.js index c5ffd8dc6b..757cea0160 100644 --- a/src/components/loading/loadingLegacy.js +++ b/src/components/loading/loadingLegacy.js @@ -6,14 +6,11 @@ define(['require', 'css!./loadingLegacy'], function (require) { return { show: function () { var elem = loadingElem; - if (!elem) { - elem = document.createElement("img"); - elem.src = require.toUrl('.').split('?')[0] + '/loader2.gif'; + elem.src = require.toUrl('.').split('?')[0] + '/loader.gif'; loadingElem = elem; - elem.classList.add('loading-spinner'); document.body.appendChild(elem); @@ -23,11 +20,9 @@ define(['require', 'css!./loadingLegacy'], function (require) { }, hide: function () { var elem = loadingElem; - if (elem) { - elem.classList.add('hide'); } } }; -}); \ No newline at end of file +}); diff --git a/src/components/loading/package.json b/src/components/loading/package.json deleted file mode 100644 index 79fd41b0f8..0000000000 --- a/src/components/loading/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "loading.js" -} \ No newline at end of file diff --git a/src/components/loadingdialog/loadingdialog.js b/src/components/loadingdialog/loadingdialog.js index 03e3cc198d..bd6a80fd5b 100644 --- a/src/components/loadingdialog/loadingdialog.js +++ b/src/components/loadingdialog/loadingdialog.js @@ -2,14 +2,12 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp 'use strict'; function showDialog(instance, options, template) { - var dialogOptions = { removeOnClose: true, scrollY: false }; var enableTvLayout = layoutManager.tv; - if (enableTvLayout) { dialogOptions.size = 'fullscreen'; } @@ -48,7 +46,6 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp instance.dlg = dlg; return dialogHelper.open(dlg).then(function () { - if (enableTvLayout) { scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false); } @@ -58,12 +55,10 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp } function LoadingDialog(options) { - this.options = options; } LoadingDialog.prototype.show = function () { - var instance = this; loading.show(); @@ -76,15 +71,12 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp }; LoadingDialog.prototype.setTitle = function (title) { - }; LoadingDialog.prototype.setText = function (text) { - }; LoadingDialog.prototype.hide = function () { - if (this.dlg) { dialogHelper.close(this.dlg); this.dlg = null; @@ -92,10 +84,9 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp }; LoadingDialog.prototype.destroy = function () { - this.dlg = null; this.options = null; }; return LoadingDialog; -}); \ No newline at end of file +}); diff --git a/src/components/mediainfo/mediainfo.css b/src/components/mediainfo/mediainfo.css index 9b27e1253e..2203ba6676 100644 --- a/src/components/mediainfo/mediainfo.css +++ b/src/components/mediainfo/mediainfo.css @@ -69,10 +69,7 @@ } .closedCaptionMediaInfoText { - /*padding: .24em .4em;*/ font-weight: bold; - /*font-size: inherit;*/ - /*background: rgba(81, 81, 81, .7);*/ } .mediaInfoOfficialRating { diff --git a/src/components/serverNotifications/package.json b/src/components/serverNotifications/package.json deleted file mode 100644 index 779da202d2..0000000000 --- a/src/components/serverNotifications/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "serverNotifications.js" -} \ No newline at end of file diff --git a/src/components/themes/appletv/theme.css b/src/components/themes/appletv/theme.css index 128594bc72..e7529e40ed 100644 --- a/src/components/themes/appletv/theme.css +++ b/src/components/themes/appletv/theme.css @@ -29,17 +29,6 @@ html { background: linear-gradient(to right, #BCBCBC, #A7B4B7, #BEB5A5, #ADBEC2, #B9C7CB) } -@supports (backdrop-filter:blur(1.5em)) or (-webkit-backdrop-filter:blur(1.5em)) { - .skinHeader-blurred { - background: -webkit-gradient(linear, left top, right top, from(rgba(188, 188, 188, .7)), color-stop(rgba(167, 180, 183, .7)), color-stop(rgba(190, 181, 165, .7)), color-stop(rgba(173, 190, 194, .7)), to(rgba(185, 199, 203, .7))); - background: -webkit-linear-gradient(left, rgba(188, 188, 188, .7), rgba(167, 180, 183, .7), rgba(190, 181, 165, .7), rgba(173, 190, 194, .7), rgba(185, 199, 203, .7)); - background: -o-linear-gradient(left, rgba(188, 188, 188, .7), rgba(167, 180, 183, .7), rgba(190, 181, 165, .7), rgba(173, 190, 194, .7), rgba(185, 199, 203, .7)); - background: linear-gradient(to right, rgba(188, 188, 188, .7), rgba(167, 180, 183, .7), rgba(190, 181, 165, .7), rgba(173, 190, 194, .7), rgba(185, 199, 203, .7)); - -webkit-backdrop-filter: blur(1.5em); - backdrop-filter: blur(1.5em) - } -} - .skinHeader.semiTransparent { -webkit-backdrop-filter: none !important; backdrop-filter: none !important @@ -206,14 +195,6 @@ html { background: linear-gradient(to right, #BCBCBC, #A7B4B7, #BEB5A5, #ADBEC2, #B9C7CB) } -@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 } diff --git a/src/components/themes/blueradiance/theme.css b/src/components/themes/blueradiance/theme.css index f450404bea..3c90ab16b9 100644 --- a/src/components/themes/blueradiance/theme.css +++ b/src/components/themes/blueradiance/theme.css @@ -183,8 +183,7 @@ html { @supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); + background: rgba(1, 2, 50, .7); backdrop-filter: blur(20px) } } diff --git a/src/components/themes/dark/theme.css b/src/components/themes/dark/theme.css index b4d4bcda4b..a403189bb8 100644 --- a/src/components/themes/dark/theme.css +++ b/src/components/themes/dark/theme.css @@ -162,14 +162,6 @@ html { 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 #00a4dc } diff --git a/src/components/themes/emby/theme.css b/src/components/themes/emby/theme.css index 7206150235..a17b2f521f 100644 --- a/src/components/themes/emby/theme.css +++ b/src/components/themes/emby/theme.css @@ -162,14 +162,6 @@ html { 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 } diff --git a/src/components/themes/light/theme.css b/src/components/themes/light/theme.css index 6da511dfd2..dfe296ec8a 100644 --- a/src/components/themes/light/theme.css +++ b/src/components/themes/light/theme.css @@ -189,14 +189,6 @@ html { 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 } diff --git a/src/components/themes/purple-haze/theme.css b/src/components/themes/purple-haze/theme.css index 566af827ee..500b5579f6 100644 --- a/src/components/themes/purple-haze/theme.css +++ b/src/components/themes/purple-haze/theme.css @@ -271,8 +271,7 @@ a[data-role=button] { @supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { .appfooter-blurred { - background: rgba(24, 24, 24, .7); - -webkit-backdrop-filter: blur(20px); + background: rgba(6, 37, 111, .7); backdrop-filter: blur(20px) } } diff --git a/src/components/themes/wmc/theme.css b/src/components/themes/wmc/theme.css index a19eeb93a2..31098ee348 100644 --- a/src/components/themes/wmc/theme.css +++ b/src/components/themes/wmc/theme.css @@ -29,14 +29,6 @@ html { background: linear-gradient(to bottom, #0C2450, #081B3B) } -@supports (backdrop-filter:blur(1.5em)) or (-webkit-backdrop-filter:blur(1.5em)) { - .skinHeader-blurred { - background: rgba(20, 20, 20, .7); - -webkit-backdrop-filter: blur(1.5em); - backdrop-filter: blur(1.5em) - } -} - .skinHeader.semiTransparent { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; @@ -185,14 +177,6 @@ html { 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 #00a4dc } diff --git a/src/css/librarybrowser.css b/src/css/librarybrowser.css index 3739a3b0b8..f0d450b486 100644 --- a/src/css/librarybrowser.css +++ b/src/css/librarybrowser.css @@ -449,11 +449,9 @@ } .detailImageContainer { - margin-right: 2em; width: 280px; - -webkit-flex-shrink: 0; + margin-right: 2em; flex-shrink: 0; - margin-left: .6em } .detailPagePrimaryContent { @@ -892,12 +890,15 @@ vertical-align: middle; } +/* these next two rules are for the scroller element headers */ .sectionTitleContainer-cards { - margin-bottom: 0; + margin: 0; + padding-top: 1.25em; } -.sectionTitle-cards { - margin-bottom: 0; +div:not(.sectionTitleContainer-cards) > .sectionTitle-cards { + margin: 0; + padding-top: 1.25em; } .sectionTitleButton { diff --git a/src/mypreferencesmenu.html b/src/mypreferencesmenu.html index 0be133ef7b..0638a49d9d 100644 --- a/src/mypreferencesmenu.html +++ b/src/mypreferencesmenu.html @@ -3,7 +3,7 @@
diff --git a/src/nowplaying.html b/src/nowplaying.html index 86565254a4..44b7e38163 100644 --- a/src/nowplaying.html +++ b/src/nowplaying.html @@ -13,7 +13,6 @@
- @@ -53,8 +52,7 @@
-
-
+
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/tv.html b/src/tv.html index 2a8c3ade26..1327d53ffe 100644 --- a/src/tv.html +++ b/src/tv.html @@ -8,10 +8,8 @@ -
-
-
-
+
+
@@ -23,8 +21,7 @@

${HeaderContinueWatching}

-
-
+
@@ -76,4 +73,4 @@
- \ No newline at end of file + diff --git a/src/userparentalcontrol.html b/src/userparentalcontrol.html index e2bc19151c..302969b6c7 100644 --- a/src/userparentalcontrol.html +++ b/src/userparentalcontrol.html @@ -1,5 +1,4 @@
-
-
+
${MaxParentalRatingHelp}
-
-
+
+
@@ -35,9 +34,7 @@ add
-
- -
+
@@ -47,10 +44,9 @@ add
-

${HeaderAccessScheduleHelp}

-
-
+

${HeaderAccessScheduleHelp}

+
@@ -58,8 +54,7 @@ ${ButtonSave}
-
- \ No newline at end of file + diff --git a/src/userpassword.html b/src/userpassword.html index 3014317cf0..3f65c214fc 100644 --- a/src/userpassword.html +++ b/src/userpassword.html @@ -1,5 +1,4 @@
-
@@ -18,7 +17,6 @@
-
@@ -71,4 +69,4 @@
-
\ No newline at end of file +
diff --git a/src/wizardfinish.html b/src/wizardfinish.html index 2c01ec22b8..e593c430fa 100644 --- a/src/wizardfinish.html +++ b/src/wizardfinish.html @@ -1,14 +1,8 @@
-
-
-

- ${LabelYoureDone} -

- +

${LabelYoureDone}

${WizardCompleted}

-
-
diff --git a/src/wizardlibrary.html b/src/wizardlibrary.html index 758a545cb8..710bf55816 100644 --- a/src/wizardlibrary.html +++ b/src/wizardlibrary.html @@ -1,25 +1,24 @@
-
-
-
-

- ${HeaderSetupLibrary} -

+

${HeaderSetupLibrary}

-


- - + +
-
-
\ No newline at end of file +
diff --git a/src/wizardremoteaccess.html b/src/wizardremoteaccess.html index 98fe1b2d87..f0375a4e2d 100644 --- a/src/wizardremoteaccess.html +++ b/src/wizardremoteaccess.html @@ -1,7 +1,5 @@
-
-

${HeaderConfigureRemoteAccess}

@@ -21,13 +19,17 @@
${LabelEnableAutomaticPortMapHelp}

-
- - + +
-
-
\ No newline at end of file + diff --git a/src/wizardsettings.html b/src/wizardsettings.html index 95e1d459f6..cced04c5b3 100644 --- a/src/wizardsettings.html +++ b/src/wizardsettings.html @@ -1,11 +1,8 @@
-
-

${HeaderPreferredMetadataLanguage}

-

${DefaultMetadataLangaugeDescription}

@@ -18,11 +15,17 @@
- - + +
-
\ No newline at end of file +
diff --git a/src/wizardstart.html b/src/wizardstart.html index 35fc1172d0..1308fcb2ea 100644 --- a/src/wizardstart.html +++ b/src/wizardstart.html @@ -1,14 +1,9 @@
-
-
-
-

- ${WelcomeToProject} -

+

${WelcomeToProject}

${ButtonQuickStartGuide} @@ -23,10 +18,12 @@
- +
-
diff --git a/src/wizarduser.html b/src/wizarduser.html index 26064d32fb..0a943f81a9 100644 --- a/src/wizarduser.html +++ b/src/wizarduser.html @@ -1,15 +1,9 @@
-
-
-
-

- ${TellUsAboutYourself} -

- +

${TellUsAboutYourself}

${UserProfilesIntro}


@@ -26,11 +20,16 @@
- - + +
-