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);