diff --git a/dashboard-ui/bower_components/emby-apiclient/.bower.json b/dashboard-ui/bower_components/emby-apiclient/.bower.json index eb3c6c0eb7..10b2cfa6e5 100644 --- a/dashboard-ui/bower_components/emby-apiclient/.bower.json +++ b/dashboard-ui/bower_components/emby-apiclient/.bower.json @@ -16,12 +16,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.1.97", - "_release": "1.1.97", + "version": "1.1.98", + "_release": "1.1.98", "_resolution": { "type": "version", - "tag": "1.1.97", - "commit": "7ad11d6e25959e56bd99c60890f9fdfeb9080444" + "tag": "1.1.98", + "commit": "2c96ef1ead7a5e4a4613f5f73bcf494095c778dc" }, "_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git", "_target": "^1.1.51", diff --git a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js index 14fad24516..359b2477ea 100644 --- a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js +++ b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js @@ -216,7 +216,7 @@ return connectUser; }; - var minServerVersion = '3.0.7300'; + var minServerVersion = '3.0.7200'; self.minServerVersion = function (val) { if (val) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index ec207f2960..0b5ae94f39 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.374", - "_release": "1.4.374", + "version": "1.4.375", + "_release": "1.4.375", "_resolution": { "type": "version", - "tag": "1.4.374", - "commit": "5215874188517ade6b6542950bc725a4a4731f9f" + "tag": "1.4.375", + "commit": "728db9b8c27dcea2b8679e4d7ba6f556cfb9dc20" }, "_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 11a505bb1f..5d9f839c12 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -297,7 +297,10 @@ define(['browser'], function (browser) { if (!mp3Added) { videoAudioCodecs.push('mp3'); } - hlsVideoAudioCodecs.push('mp3'); + if (!browser.ps4) { + // PS4 fails to load HLS with mp3 audio + hlsVideoAudioCodecs.push('mp3'); + } } if (browser.tizen || options.supportsDts) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json index c94dc2ccc4..6c7ba7b824 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json @@ -353,5 +353,5 @@ "HeaderPlayMyMedia": "Play my Media", "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", "OneChannel": "One channel", - "AddedOnValue": "Added on {0}" + "AddedOnValue": "Added {0}" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js b/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js index 31eca80476..4339c4f53b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js +++ b/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js @@ -40,6 +40,14 @@ define(['appSettings', 'events', 'browser'], function (appsettings, events, brow saveTimeout = setTimeout(onSaveTimeout, 50); } + self.getData = function () { + return displayPrefs; + }; + + self.importFrom = function (instance) { + displayPrefs = instance.getData(); + }; + self.set = function (name, value, enableOnServer) { var userId = currentUserId; diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 01605a9d84..8932c9b0e6 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -285,8 +285,8 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { } .detailUserDataIcons { - display: inline-block; margin-left: .5em; + white-space: nowrap; } .detailImageContainer { @@ -314,11 +314,11 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { @media all and (max-width: 1400px) { .detailLogo { - right: 10%; + right: 5%; } } -@media all and (max-width: 1000px) { +@media all and (max-width: 1200px) { .detailLogo { display: none; @@ -805,7 +805,8 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { .mediaInfoIcons { display: flex; align-items: center; - margin: 1.25em 0; + margin: 1.5em 0 1em; + flex-wrap: wrap; } .mediaInfoText { @@ -814,10 +815,12 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { border-radius: .25em; color: #ddd; margin-right: .5em; + margin-bottom: .5em; font-size: 94%; background: rgba(170,170,190, .2); display: flex; align-items: center; + white-space: nowrap; } .mediaInfoText-upper { diff --git a/dashboard-ui/login.html b/dashboard-ui/login.html index 0179f64f28..097c75b5e7 100644 --- a/dashboard-ui/login.html +++ b/dashboard-ui/login.html @@ -35,7 +35,6 @@

${HeaderPleaseSignIn}

-

${VisualLoginFormHelp}


diff --git a/dashboard-ui/scripts/mypreferencesdisplay.js b/dashboard-ui/scripts/mypreferencesdisplay.js index 541318b985..159b8ef9e5 100644 --- a/dashboard-ui/scripts/mypreferencesdisplay.js +++ b/dashboard-ui/scripts/mypreferencesdisplay.js @@ -4,33 +4,43 @@ return function (view, params) { var userId = params.userId || Dashboard.getCurrentUserId(); - var userSettings = new userSettingsBuilder(); + var userSettingsInstance = new userSettingsBuilder(); var userSettingsLoaded; function loadForm(page, user) { - userSettings.setUserInfo(userId, ApiClient).then(function () { + userSettingsInstance.setUserInfo(userId, ApiClient).then(function () { userSettingsLoaded = true; page.querySelector('.chkDisplayMissingEpisodes').checked = user.Configuration.DisplayMissingEpisodes || false; page.querySelector('.chkDisplayUnairedEpisodes').checked = user.Configuration.DisplayUnairedEpisodes || false; - page.querySelector('#chkThemeSong').checked = userSettings.enableThemeSongs(); + page.querySelector('#chkThemeSong').checked = userSettingsInstance.enableThemeSongs(); page.querySelector('#selectBackdrop').value = appStorage.getItem('enableBackdrops-' + user.Id) || '0'; - page.querySelector('#selectLanguage').value = userSettings.language() || ''; + page.querySelector('#selectLanguage').value = userSettingsInstance.language() || ''; Dashboard.hideLoadingMsg(); }); } + function refreshGlobalUserSettings() { + require(['userSettings'], function (userSettings) { + userSettings.importFrom(userSettingsInstance); + }); + } + function saveUser(page, user) { user.Configuration.DisplayMissingEpisodes = page.querySelector('.chkDisplayMissingEpisodes').checked; user.Configuration.DisplayUnairedEpisodes = page.querySelector('.chkDisplayUnairedEpisodes').checked; if (userSettingsLoaded) { - userSettings.language(page.querySelector('#selectLanguage').value); - userSettings.enableThemeSongs(page.querySelector('#chkThemeSong').checked); + userSettingsInstance.language(page.querySelector('#selectLanguage').value); + userSettingsInstance.enableThemeSongs(page.querySelector('#chkThemeSong').checked); + + if (userId === Dashboard.getCurrentUserId()) { + refreshGlobalUserSettings(); + } } appStorage.setItem('enableBackdrops-' + user.Id, page.querySelector('#selectBackdrop').value); diff --git a/dashboard-ui/scripts/mypreferenceshome.js b/dashboard-ui/scripts/mypreferenceshome.js index 872a97c7f4..abb1b441e3 100644 --- a/dashboard-ui/scripts/mypreferenceshome.js +++ b/dashboard-ui/scripts/mypreferenceshome.js @@ -151,7 +151,13 @@ return list; } - function saveUser(page, user, userSettings) { + function refreshGlobalUserSettings(userSettingsInstance) { + require(['userSettings'], function (userSettings) { + userSettings.importFrom(userSettingsInstance); + }); + } + + function saveUser(page, user, userSettingsInstance) { user.Configuration.HidePlayedInLatest = page.querySelector('.chkHidePlayedFromLatest').checked; @@ -175,10 +181,14 @@ user.Configuration.OrderedViews = orderedViews; - userSettings.set('homesection0', page.querySelector('#selectHomeSection1').value); - userSettings.set('homesection1', page.querySelector('#selectHomeSection2').value); - userSettings.set('homesection2', page.querySelector('#selectHomeSection3').value); - userSettings.set('homesection3', page.querySelector('#selectHomeSection4').value); + userSettingsInstance.set('homesection0', page.querySelector('#selectHomeSection1').value); + userSettingsInstance.set('homesection1', page.querySelector('#selectHomeSection2').value); + userSettingsInstance.set('homesection2', page.querySelector('#selectHomeSection3').value); + userSettingsInstance.set('homesection3', page.querySelector('#selectHomeSection4').value); + + if (user.Id === Dashboard.getCurrentUserId()) { + refreshGlobalUserSettings(userSettingsInstance); + } return ApiClient.updateUserConfiguration(user.Id, user.Configuration); } diff --git a/dashboard-ui/scripts/mypreferenceslanguages.js b/dashboard-ui/scripts/mypreferenceslanguages.js index 5059e43a20..f325ad891d 100644 --- a/dashboard-ui/scripts/mypreferenceslanguages.js +++ b/dashboard-ui/scripts/mypreferenceslanguages.js @@ -20,12 +20,12 @@ return function (view, params) { var userId = params.userId || Dashboard.getCurrentUserId(); - var userSettings = new userSettingsBuilder(); + var userSettingsInstance = new userSettingsBuilder(); var userSettingsLoaded; function loadForm(page, user, loggedInUser, allCulturesPromise) { - userSettings.setUserInfo(userId, ApiClient).then(function () { + userSettingsInstance.setUserInfo(userId, ApiClient).then(function () { userSettingsLoaded = true; allCulturesPromise.then(function (allCultures) { @@ -40,7 +40,7 @@ page.querySelector('#selectSubtitlePlaybackMode').value = user.Configuration.SubtitleMode || ""; page.querySelector('.chkPlayDefaultAudioTrack').checked = user.Configuration.PlayDefaultAudioTrack || false; - page.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode(); + page.querySelector('.chkEnableCinemaMode').checked = userSettingsInstance.enableCinemaMode(); page.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableExternalPlayers(); require(['qualityoptions'], function (qualityoptions) { @@ -95,6 +95,12 @@ }); } + function refreshGlobalUserSettings() { + require(['userSettings'], function (userSettings) { + userSettings.importFrom(userSettingsInstance); + }); + } + function saveUser(page, user) { user.Configuration.AudioLanguagePreference = page.querySelector('#selectAudioLanguage').value; @@ -104,7 +110,11 @@ user.Configuration.PlayDefaultAudioTrack = page.querySelector('.chkPlayDefaultAudioTrack').checked; user.Configuration.EnableNextEpisodeAutoPlay = page.querySelector('.chkEpisodeAutoPlay').checked; if (userSettingsLoaded) { - userSettings.enableCinemaMode(page.querySelector('.chkEnableCinemaMode').checked); + userSettingsInstance.enableCinemaMode(page.querySelector('.chkEnableCinemaMode').checked); + + if (userId === Dashboard.getCurrentUserId()) { + refreshGlobalUserSettings(); + } } return ApiClient.updateUserConfiguration(user.Id, user.Configuration);