diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index f9a997190d..5b9f05c575 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.391", - "_release": "1.4.391", + "version": "1.4.394", + "_release": "1.4.394", "_resolution": { "type": "version", - "tag": "1.4.391", - "commit": "9a257cba74955044faf6fbcce9c8dccdfe3ea3c6" + "tag": "1.4.394", + "commit": "a0c442434641afe149678493728f2630558f763e" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index 7ebb3cca97..cab282ae92 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -240,7 +240,7 @@ define(['browser'], function (browser) { return function (options) { options = options || {}; - var physicalAudioChannels = options.audioChannels || (browser.tv || browser.xboxOne || browser.ps4 ? 6 : 2); + var physicalAudioChannels = options.audioChannels || (browser.tv || browser.xboxOne || browser.ps4 || !browser.mobile ? 6 : 2); var bitrateSetting = getMaxBitrate(); @@ -308,8 +308,8 @@ define(['browser'], function (browser) { videoAudioCodecs.push('dts'); } - if (browser.edgeUwp) { - //videoAudioCodecs.push('truehd'); + if (options.supportsTrueHd) { + videoAudioCodecs.push('truehd'); } videoAudioCodecs = videoAudioCodecs.filter(function (c) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css b/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css index e89f0a0f5d..8009e61dea 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css @@ -14,7 +14,6 @@ flex-shrink: 0; margin: 0; padding: 1.2em .9em; - transition: none !important; position: relative; text-transform: uppercase; font-weight: bold; diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css index 6fcf960bfb..108519e265 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css @@ -307,8 +307,8 @@ .programIcon { margin-left: auto; margin-right: .25em; - height: auto; - width: auto; + height: 1em; + width: 1em; font-size: 1.6em; color: #ddd; flex-shrink: 0; @@ -423,10 +423,10 @@ } .guide-date-tab-button { - font-weight: 500 !important; + font-weight: normal !important; color: inherit !important; - padding-top: .3em !important; - padding-bottom: .3em !important; + padding: .3em .7em !important; + margin: 0 .3em !important; opacity: .25; } @@ -434,7 +434,7 @@ color: #52B54B !important; border-color: transparent !important; opacity: 1; - font-weight: 500 !important; + font-weight: normal !important; } .guide-date-tab-button:focus { @@ -444,14 +444,6 @@ .layout-tv .guide-date-tab-button:focus { background-color: #52B54B !important; - border-radius: .25em !important; + border-radius: .15em !important; color: #fff !important; } - -@media all and (min-width: 1200px) { - - .guide-date-tab-button { - padding-left: 1em !important; - padding-right: 1em !important; - } -} diff --git a/dashboard-ui/bower_components/emby-webcomponents/scrollhelper.js b/dashboard-ui/bower_components/emby-webcomponents/scrollhelper.js index b511e7ad7f..e2a63b0e72 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/scrollhelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/scrollhelper.js @@ -57,6 +57,24 @@ define(['focusManager', 'dom', 'scrollStyles'], function (focusManager, dom) { } } + function toStart(container, elem, horizontal) { + var pos = getPosition(container, elem, horizontal); + + if (container.scrollTo) { + if (horizontal) { + container.scrollTo(pos.start, 0); + } else { + container.scrollTo(0, pos.start); + } + } else { + if (horizontal) { + container.scrollLeft = Math.round(pos.start); + } else { + container.scrollTop = Math.round(pos.start); + } + } + } + function centerOnFocus(e, scrollSlider, horizontal) { var focused = focusManager.focusableParent(e.target); @@ -102,6 +120,7 @@ define(['focusManager', 'dom', 'scrollStyles'], function (focusManager, dom) { } } }, - toCenter: toCenter + toCenter: toCenter, + toStart: toStart }; }); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js index 0fb1b57d81..a1c0b15508 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js +++ b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js @@ -13,6 +13,9 @@ define(['browser', 'dom', 'css!./viewcontainer-lite'], function (browser, dom) { if (browser.tv) { return false; } + if (navigator.userAgent.toLowerCase().indexOf('embytheaterpi') !== -1) { + return false; + } return browser.supportsCssAnimation(); } diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 9dfea448d7..fc4622a276 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -305,8 +305,8 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { width: 300px; height: 70px; position: absolute; - top: 10%; - right: 20%; + top: 13.5%; + right: 19.5%; background-repeat: no-repeat; background-position: center center; background-size: contain; @@ -321,11 +321,28 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { @media all and (max-width: 1200px) { + .detailLogo { + right: 2%; + } +} + +@media all and (min-width: 800px) and (max-width: 1100px) { + .detailLogo { display: none; } } +@media all and (max-width: 800px) { + + .detailLogo { + top: 20%; + right: 2%; + height: 50px; + width: 250px; + } +} + .itemDetailImage { border: solid 1px transparent; width: 100%; @@ -791,7 +808,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { .mediaInfoText { background: rgba(31,31,31,.7); - padding: .25em .5em; + padding: .3em .5em; border-radius: .25em; color: #ddd; margin-right: .5em; diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html index e29b814c77..ca296da6d1 100644 --- a/dashboard-ui/itemdetails.html +++ b/dashboard-ui/itemdetails.html @@ -15,15 +15,15 @@ -
+ + +
- -

diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 95724cba29..1888013d2f 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -1,4 +1,4 @@ -define(['layoutManager', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'dom', 'indicators', 'apphost', 'imageLoader', 'libraryMenu', 'shell', 'globalize', 'browser', 'events', 'scrollStyles', 'emby-itemscontainer', 'emby-checkbox'], function (layoutManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons, dom, indicators, appHost, imageLoader, libraryMenu, shell, globalize, browser, events) { +define(['layoutManager', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'dom', 'indicators', 'apphost', 'imageLoader', 'libraryMenu', 'shell', 'globalize', 'browser', 'events', 'scrollHelper', 'scrollStyles', 'emby-itemscontainer', 'emby-checkbox'], function (layoutManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons, dom, indicators, appHost, imageLoader, libraryMenu, shell, globalize, browser, events, scrollHelper) { 'use strict'; function getPromise(params) { @@ -79,7 +79,6 @@ positionTo: button, cancelTimer: false, record: false, - editImages: false, deleteItem: item.IsFolder === true }; @@ -1355,6 +1354,13 @@ renderCollectionItems(page, item, collectionItemTypes, result.Items); } + else if (item.Type === 'Episode') { + + var card = childrenItemsContainer.querySelector('.card[data-id="' + item.Id + '"]'); + if (card) { + scrollHelper.toStart(childrenItemsContainer, card.previousSibling || card, true); + } + } }); if (item.Type == "Season") { diff --git a/dashboard-ui/scripts/sections.js b/dashboard-ui/scripts/sections.js index a448f418b4..4e72db7de6 100644 --- a/dashboard-ui/scripts/sections.js +++ b/dashboard-ui/scripts/sections.js @@ -207,7 +207,7 @@ html += '

Try Emby Theater

'; var nameText = AppInfo.isNativeApp ? 'Emby Theater' : 'Emby Theater'; - html += '

A beautiful app for your TV and large screen tablet. ' + nameText + ' runs on Windows, Xbox One, Google Chrome, FireFox, Microsoft Edge and Opera.

'; + html += '

A beautiful app for your TV and large screen tablet. ' + nameText + ' runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more.

'; html += '
'; html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png', 'https://emby.media/download'); html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png', 'https://emby.media/download'); @@ -650,7 +650,8 @@ limit: 5, Fields: "PrimaryImageAspectRatio,BasicSyncInfo", IsInProgress: false, - EnableTotalRecordCount: false + EnableTotalRecordCount: false, + IsLibraryItem: false }).then(function (result) { diff --git a/dashboard-ui/themes/holiday/theme.js b/dashboard-ui/themes/holiday/theme.js index 02d93e8be0..3907adf6c4 100644 --- a/dashboard-ui/themes/holiday/theme.js +++ b/dashboard-ui/themes/holiday/theme.js @@ -95,7 +95,7 @@ } } - var holidayThemeKey = 'holidaytheme6'; + var holidayThemeKey = 'holidaytheme7'; function getHolidayTheme() { return appSettings.get(holidayThemeKey); } @@ -354,7 +354,11 @@ window.generateSnowflakes = generateSnowflakes; window.stopSnowflakes = function () { stopped = true; - $('.snowflake').remove(); + + var elems = document.querySelectorAll('.snowflake'); + for (var i = 0, length = elems.length; i < length; i++) { + elems[i].parentNode.removeChild(elems[i]); + } }; //