diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 94428d8160..7e2a3400f7 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -15,12 +15,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.1.12", - "_release": "1.1.12", + "version": "1.1.13", + "_release": "1.1.13", "_resolution": { "type": "version", - "tag": "1.1.12", - "commit": "780eab96948c0418dd4e0e158569c4b8873708d6" + "tag": "1.1.13", + "commit": "b4ee66ca683d87f985f45e44ef75ec6c11049637" }, "_source": "git://github.com/MediaBrowser/emby-webcomponents.git", "_target": "~1.1.5", diff --git a/dashboard-ui/bower_components/emby-webcomponents/usersettings.js b/dashboard-ui/bower_components/emby-webcomponents/usersettings.js new file mode 100644 index 0000000000..87cfb3c5e8 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/usersettings.js @@ -0,0 +1,82 @@ +define(['appSettings', 'apiClientResolver', 'events'], function (appsettings, apiClientResolver, events) { + + function getUserId() { + + var apiClient = apiClientResolver(); + + if (apiClient) { + return apiClient.getCurrentUserId(); + } + + return null; + } + + var obj = function () { + + var self = this; + + self.set = function (name, value) { + + var userId = getUserId(); + if (!userId) { + throw new Error('userId cannot be null'); + } + + var currentValue = self.get(name); + appsettings.set(name, value, userId); + + if (currentValue != value) { + events.trigger(self, 'change', [name]); + } + }; + + self.get = function (name) { + var userId = getUserId(); + if (!userId) { + throw new Error('userId cannot be null'); + } + return appsettings.get(name, userId); + }; + + self.enableCinemaMode = function (val) { + + if (val != null) { + self.set('enableCinemaMode', val.toString()); + } + + val = self.get('enableCinemaMode'); + + if (val) { + return val != 'false'; + } + + return true; + }; + + self.language = function (val) { + + if (val != null) { + self.set('language', val.toString()); + } + + return self.get('language'); + }; + + self.serverConfig = function (config) { + + if (config) { + + return apiClientResolver().updateUserConfiguration(getUserId(), config); + + } else { + + return apiClientResolver().getUser(getUserId()).then(function (user) { + + return user.Configuration; + }); + } + }; + }; + + return new obj(); +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-demo-helpers/.bower.json b/dashboard-ui/bower_components/iron-demo-helpers/.bower.json index 53bc0195d8..1dfd9906f1 100644 --- a/dashboard-ui/bower_components/iron-demo-helpers/.bower.json +++ b/dashboard-ui/bower_components/iron-demo-helpers/.bower.json @@ -1,6 +1,6 @@ { "name": "iron-demo-helpers", - "version": "1.1.0", + "version": "1.1.1", "description": "Utility classes to make building demo pages easier", "authors": [ "The Polymer Authors" @@ -37,11 +37,11 @@ "paper-styles": "PolymerElements/paper-styles#^1.1.0", "paper-checkbox": "PolymerElements/paper-checkbox#^1.0.0" }, - "_release": "1.1.0", + "_release": "1.1.1", "_resolution": { "type": "version", - "tag": "v1.1.0", - "commit": "ea98e51e3ac7b52dd53cea05d3f027b3a41388ad" + "tag": "v1.1.1", + "commit": "49584de566eae4f6c31cd1078ce0407b53c601eb" }, "_source": "git://github.com/polymerelements/iron-demo-helpers.git", "_target": "^1.0.0", diff --git a/dashboard-ui/bower_components/iron-demo-helpers/bower.json b/dashboard-ui/bower_components/iron-demo-helpers/bower.json index dcf4c48f3b..46b1101b1e 100644 --- a/dashboard-ui/bower_components/iron-demo-helpers/bower.json +++ b/dashboard-ui/bower_components/iron-demo-helpers/bower.json @@ -1,6 +1,6 @@ { "name": "iron-demo-helpers", - "version": "1.1.0", + "version": "1.1.1", "description": "Utility classes to make building demo pages easier", "authors": [ "The Polymer Authors" diff --git a/dashboard-ui/bower_components/iron-demo-helpers/demo-snippet.html b/dashboard-ui/bower_components/iron-demo-helpers/demo-snippet.html index e3ef1eee74..ae1fc12b26 100644 --- a/dashboard-ui/bower_components/iron-demo-helpers/demo-snippet.html +++ b/dashboard-ui/bower_components/iron-demo-helpers/demo-snippet.html @@ -70,7 +70,7 @@ Custom property | Description | Default } .code { - padding: 0 20px; + padding: 20px; margin: 0; background-color: var(--google-grey-100); font-size: 13px; diff --git a/dashboard-ui/bower_components/iron-icons/.bower.json b/dashboard-ui/bower_components/iron-icons/.bower.json index be52e7bfd2..3f0699241f 100644 --- a/dashboard-ui/bower_components/iron-icons/.bower.json +++ b/dashboard-ui/bower_components/iron-icons/.bower.json @@ -41,7 +41,7 @@ "tag": "v1.1.3", "commit": "c13869b57a9464dfc3a1f26e89858f8be37e7441" }, - "_source": "git://github.com/PolymerElements/iron-icons.git", + "_source": "git://github.com/polymerelements/iron-icons.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-icons" + "_originalSource": "polymerelements/iron-icons" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-selector/.bower.json b/dashboard-ui/bower_components/iron-selector/.bower.json index fedc85052e..11e925acef 100644 --- a/dashboard-ui/bower_components/iron-selector/.bower.json +++ b/dashboard-ui/bower_components/iron-selector/.bower.json @@ -36,7 +36,7 @@ "tag": "v1.2.4", "commit": "1ee4e2e11a9e5118320987d93fc2c03ae9a489f4" }, - "_source": "git://github.com/PolymerElements/iron-selector.git", + "_source": "git://github.com/polymerelements/iron-selector.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-selector" + "_originalSource": "polymerelements/iron-selector" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-icon-button/.bower.json b/dashboard-ui/bower_components/paper-icon-button/.bower.json index 42e403d11a..3b51f24a8f 100644 --- a/dashboard-ui/bower_components/paper-icon-button/.bower.json +++ b/dashboard-ui/bower_components/paper-icon-button/.bower.json @@ -36,14 +36,14 @@ "iron-component-page": "PolymerElements/iron-component-page#^1.0.0" }, "ignore": [], - "homepage": "https://github.com/PolymerElements/paper-icon-button", + "homepage": "https://github.com/polymerelements/paper-icon-button", "_release": "1.0.6", "_resolution": { "type": "version", "tag": "v1.0.6", "commit": "35347d81939093cd2abe2783ac1b17fa57b7b303" }, - "_source": "git://github.com/PolymerElements/paper-icon-button.git", + "_source": "git://github.com/polymerelements/paper-icon-button.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-icon-button" + "_originalSource": "polymerelements/paper-icon-button" } \ No newline at end of file diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 12f28bf8fd..c704bad3ee 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -1,4 +1,4 @@ -define(['appSettings'], function (appSettings) { +define(['appSettings', 'userSettings'], function (appSettings, userSettings) { function mediaPlayer() { @@ -600,7 +600,7 @@ define(['appSettings'], function (appSettings) { Dashboard.showLoadingMsg(); } - if (options.startPositionTicks || firstItem.MediaType !== 'Video' || !appSettings.enableCinemaMode()) { + if (options.startPositionTicks || firstItem.MediaType !== 'Video' || !userSettings.enableCinemaMode()) { self.playInternal(firstItem, options.startPositionTicks, function () { self.setPlaylistState(0, items); diff --git a/dashboard-ui/scripts/mypreferencesdisplay.js b/dashboard-ui/scripts/mypreferencesdisplay.js index d7dc3467a4..6e873dd353 100644 --- a/dashboard-ui/scripts/mypreferencesdisplay.js +++ b/dashboard-ui/scripts/mypreferencesdisplay.js @@ -1,4 +1,4 @@ -define([], function () { +define(['userSettings'], function (userSettings) { function loadForm(page, user) { @@ -9,7 +9,7 @@ $('#selectThemeSong', page).val(appStorage.getItem('enableThemeSongs-' + user.Id) || ''); $('#selectBackdrop', page).val(appStorage.getItem('enableBackdrops-' + user.Id) || ''); - //$('#selectLanguage', page).val(AppSettings.displayLanguage()); + $('#selectLanguage', page).val(userSettings.language() || ''); Dashboard.hideLoadingMsg(); } @@ -20,7 +20,7 @@ user.Configuration.DisplayUnairedEpisodes = page.querySelector('.chkDisplayUnairedEpisodes').checked; user.Configuration.GroupMoviesIntoBoxSets = page.querySelector('.chkGroupMoviesIntoCollections').checked; - //AppSettings.displayLanguage(page.querySelector('#selectLanguage').value); + userSettings.language(page.querySelector('#selectLanguage').value); appStorage.setItem('enableThemeSongs-' + user.Id, $('#selectThemeSong', page).val()); appStorage.setItem('enableBackdrops-' + user.Id, $('#selectBackdrop', page).val()); diff --git a/dashboard-ui/scripts/mypreferenceslanguages.js b/dashboard-ui/scripts/mypreferenceslanguages.js index 2d58c8cd96..9845d7619a 100644 --- a/dashboard-ui/scripts/mypreferenceslanguages.js +++ b/dashboard-ui/scripts/mypreferenceslanguages.js @@ -1,4 +1,4 @@ -define(['appSettings'], function (appSettings) { +define(['appSettings', 'userSettings'], function (appSettings, userSettings) { function populateLanguages(select, languages) { @@ -31,7 +31,7 @@ $('#selectSubtitlePlaybackMode', page).val(user.Configuration.SubtitleMode || "").trigger('change'); page.querySelector('.chkPlayDefaultAudioTrack').checked = user.Configuration.PlayDefaultAudioTrack || false; - page.querySelector('.chkEnableCinemaMode').checked = appSettings.enableCinemaMode(); + page.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode(); page.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableExternalPlayers(); require(['qualityoptions'], function (qualityoptions) { @@ -95,7 +95,7 @@ user.Configuration.SubtitleMode = $('#selectSubtitlePlaybackMode', page).val(); user.Configuration.PlayDefaultAudioTrack = page.querySelector('.chkPlayDefaultAudioTrack').checked; user.Configuration.EnableNextEpisodeAutoPlay = page.querySelector('.chkEpisodeAutoPlay').checked; - appSettings.enableCinemaMode(page.querySelector('.chkEnableCinemaMode').checked); + userSettings.enableCinemaMode(page.querySelector('.chkEnableCinemaMode').checked); return ApiClient.updateUserConfiguration(user.Id, user.Configuration); } diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index b495f4265f..45f4c2714d 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1904,6 +1904,7 @@ var AppInfo = {}; define("scrollHelper", [embyWebComponentsBowerPath + "/scrollhelper"], returnFirstDependency); define("appSettings", [embyWebComponentsBowerPath + "/appsettings"], updateAppSettings); + define("userSettings", [embyWebComponentsBowerPath + "/usersettings"], returnFirstDependency); // alias define("historyManager", [], function () { @@ -1934,6 +1935,12 @@ var AppInfo = {}; return Globalize; }); + define('apiClientResolver', [], function () { + return function () { + return window.ApiClient; + }; + }); + define('dialogText', ['globalize'], getDialogText()); } @@ -1948,25 +1955,6 @@ var AppInfo = {}; return appSettings.get('externalplayers') == 'true'; }; - appSettings.enableCinemaMode = function (val) { - - if (val != null) { - appSettings.set('enableCinemaMode', val.toString()); - } - - val = appSettings.get('enableCinemaMode'); - - if (val) { - return val != 'false'; - } - - if (browserInfo.mobile) { - return false; - } - - return true; - }; - return appSettings; }