move usersettings to server
This commit is contained in:
parent
8fc34293c7
commit
5ec5a0d9fa
48 changed files with 1295 additions and 815 deletions
|
@ -3,19 +3,23 @@
|
|||
return function (view, params) {
|
||||
|
||||
var userId = params.userId || Dashboard.getCurrentUserId();
|
||||
var userSettings = new userSettingsBuilder(userId);
|
||||
var userSettings = new userSettingsBuilder();
|
||||
var userSettingsLoaded;
|
||||
|
||||
function loadForm(page, user) {
|
||||
|
||||
page.querySelector('.chkDisplayMissingEpisodes').checked = user.Configuration.DisplayMissingEpisodes || false;
|
||||
page.querySelector('.chkDisplayUnairedEpisodes').checked = user.Configuration.DisplayUnairedEpisodes || false;
|
||||
userSettings.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('#selectThemeSong').value = appStorage.getItem('enableThemeSongs-' + user.Id) || '';
|
||||
page.querySelector('#selectBackdrop').value = appStorage.getItem('enableBackdrops-' + user.Id) || '';
|
||||
page.querySelector('#selectThemeSong').value = appStorage.getItem('enableThemeSongs-' + user.Id) || '';
|
||||
page.querySelector('#selectBackdrop').value = appStorage.getItem('enableBackdrops-' + user.Id) || '';
|
||||
|
||||
page.querySelector('#selectLanguage').value = userSettings.language() || '';
|
||||
page.querySelector('#selectLanguage').value = userSettings.language() || '';
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
||||
function saveUser(page, user) {
|
||||
|
@ -23,7 +27,9 @@
|
|||
user.Configuration.DisplayMissingEpisodes = page.querySelector('.chkDisplayMissingEpisodes').checked;
|
||||
user.Configuration.DisplayUnairedEpisodes = page.querySelector('.chkDisplayUnairedEpisodes').checked;
|
||||
|
||||
userSettings.language(page.querySelector('#selectLanguage').value);
|
||||
if (userSettingsLoaded) {
|
||||
userSettings.language(page.querySelector('#selectLanguage').value);
|
||||
}
|
||||
|
||||
appStorage.setItem('enableThemeSongs-' + user.Id, page.querySelector('#selectThemeSong').value);
|
||||
appStorage.setItem('enableBackdrops-' + user.Id, page.querySelector('#selectBackdrop').value);
|
||||
|
|
|
@ -19,48 +19,52 @@
|
|||
return function (view, params) {
|
||||
|
||||
var userId = params.userId || Dashboard.getCurrentUserId();
|
||||
var userSettings = new userSettingsBuilder(userId);
|
||||
var userSettings = new userSettingsBuilder();
|
||||
var userSettingsLoaded;
|
||||
|
||||
function loadForm(page, user, loggedInUser, allCulturesPromise) {
|
||||
|
||||
allCulturesPromise.then(function (allCultures) {
|
||||
userSettings.setUserInfo(userId, ApiClient).then(function () {
|
||||
userSettingsLoaded = true;
|
||||
allCulturesPromise.then(function (allCultures) {
|
||||
|
||||
populateLanguages(page.querySelector('#selectAudioLanguage'), allCultures);
|
||||
populateLanguages(page.querySelector('#selectSubtitleLanguage'), allCultures);
|
||||
populateLanguages(page.querySelector('#selectAudioLanguage'), allCultures);
|
||||
populateLanguages(page.querySelector('#selectSubtitleLanguage'), allCultures);
|
||||
|
||||
page.querySelector('#selectAudioLanguage', page).value = user.Configuration.AudioLanguagePreference || "";
|
||||
page.querySelector('#selectSubtitleLanguage', page).value = user.Configuration.SubtitleLanguagePreference || "";
|
||||
page.querySelector('.chkEpisodeAutoPlay').checked = user.Configuration.EnableNextEpisodeAutoPlay || false;
|
||||
});
|
||||
page.querySelector('#selectAudioLanguage', page).value = user.Configuration.AudioLanguagePreference || "";
|
||||
page.querySelector('#selectSubtitleLanguage', page).value = user.Configuration.SubtitleLanguagePreference || "";
|
||||
page.querySelector('.chkEpisodeAutoPlay').checked = user.Configuration.EnableNextEpisodeAutoPlay || false;
|
||||
});
|
||||
|
||||
page.querySelector('#selectSubtitlePlaybackMode').value = user.Configuration.SubtitleMode || "";
|
||||
page.querySelector('#selectSubtitlePlaybackMode').value = user.Configuration.SubtitleMode || "";
|
||||
|
||||
page.querySelector('.chkPlayDefaultAudioTrack').checked = user.Configuration.PlayDefaultAudioTrack || false;
|
||||
page.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode();
|
||||
page.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableExternalPlayers();
|
||||
page.querySelector('.chkPlayDefaultAudioTrack').checked = user.Configuration.PlayDefaultAudioTrack || false;
|
||||
page.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode();
|
||||
page.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableExternalPlayers();
|
||||
|
||||
require(['qualityoptions'], function (qualityoptions) {
|
||||
require(['qualityoptions'], function (qualityoptions) {
|
||||
|
||||
var bitrateOptions = qualityoptions.getVideoQualityOptions(appSettings.maxStreamingBitrate()).map(function (i) {
|
||||
var bitrateOptions = qualityoptions.getVideoQualityOptions(appSettings.maxStreamingBitrate()).map(function (i) {
|
||||
|
||||
return '<option value="' + i.bitrate + '">' + i.name + '</option>';
|
||||
return '<option value="' + i.bitrate + '">' + i.name + '</option>';
|
||||
|
||||
}).join('');
|
||||
}).join('');
|
||||
|
||||
bitrateOptions = '<option value="">' + Globalize.translate('OptionAutomatic') + '</option>' + bitrateOptions;
|
||||
bitrateOptions = '<option value="">' + Globalize.translate('OptionAutomatic') + '</option>' + bitrateOptions;
|
||||
|
||||
page.querySelector('#selectMaxBitrate').innerHTML = bitrateOptions;
|
||||
page.querySelector('#selectMaxChromecastBitrate').innerHTML = bitrateOptions;
|
||||
page.querySelector('#selectMaxBitrate').innerHTML = bitrateOptions;
|
||||
page.querySelector('#selectMaxChromecastBitrate').innerHTML = bitrateOptions;
|
||||
|
||||
if (appSettings.enableAutomaticBitrateDetection()) {
|
||||
page.querySelector('#selectMaxBitrate').value = '';
|
||||
} else {
|
||||
page.querySelector('#selectMaxBitrate').value = appSettings.maxStreamingBitrate();
|
||||
}
|
||||
if (appSettings.enableAutomaticBitrateDetection()) {
|
||||
page.querySelector('#selectMaxBitrate').value = '';
|
||||
} else {
|
||||
page.querySelector('#selectMaxBitrate').value = appSettings.maxStreamingBitrate();
|
||||
}
|
||||
|
||||
page.querySelector('#selectMaxChromecastBitrate').value = appSettings.maxChromecastBitrate() || '';
|
||||
page.querySelector('#selectMaxChromecastBitrate').value = appSettings.maxChromecastBitrate() || '';
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -98,7 +102,9 @@
|
|||
user.Configuration.SubtitleMode = page.querySelector('#selectSubtitlePlaybackMode').value;
|
||||
user.Configuration.PlayDefaultAudioTrack = page.querySelector('.chkPlayDefaultAudioTrack').checked;
|
||||
user.Configuration.EnableNextEpisodeAutoPlay = page.querySelector('.chkEpisodeAutoPlay').checked;
|
||||
userSettings.enableCinemaMode(page.querySelector('.chkEnableCinemaMode').checked);
|
||||
if (userSettingsLoaded) {
|
||||
userSettings.enableCinemaMode(page.querySelector('.chkEnableCinemaMode').checked);
|
||||
}
|
||||
|
||||
return ApiClient.updateUserConfiguration(user.Id, user.Configuration);
|
||||
}
|
||||
|
|
|
@ -965,7 +965,7 @@ var AppInfo = {};
|
|||
}
|
||||
|
||||
var localApiClient;
|
||||
function bindConnectionManagerEvents(connectionManager, events) {
|
||||
function bindConnectionManagerEvents(connectionManager, events, userSettings) {
|
||||
|
||||
window.Events = events;
|
||||
events.on(ConnectionManager, 'apiclientcreated', onApiClientCreated);
|
||||
|
@ -987,9 +987,15 @@ var AppInfo = {};
|
|||
// newApiClient.normalizeImageOptions = normalizeImageOptions;
|
||||
//});
|
||||
|
||||
events.on(connectionManager, 'localusersignedin', function (e, user) {
|
||||
// Use this instead of the event because it will fire and wait for the promise before firing events to all listeners
|
||||
connectionManager.onLocalUserSignedIn = function (user) {
|
||||
localApiClient = connectionManager.getApiClient(user.ServerId);
|
||||
window.ApiClient = localApiClient;
|
||||
return userSettings.setUserInfo(user.Id, localApiClient);
|
||||
};
|
||||
|
||||
events.on(connectionManager, 'localusersignedout', function () {
|
||||
userSettings.setUserInfo(null, null);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1000,7 +1006,7 @@ var AppInfo = {};
|
|||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
require(['connectionManagerFactory', 'apphost', 'credentialprovider', 'events'], function (connectionManagerExports, apphost, credentialProvider, events) {
|
||||
require(['connectionManagerFactory', 'apphost', 'credentialprovider', 'events', 'userSettings'], function (connectionManagerExports, apphost, credentialProvider, events, userSettings) {
|
||||
|
||||
window.MediaBrowser = Object.assign(window.MediaBrowser || {}, connectionManagerExports);
|
||||
|
||||
|
@ -1014,7 +1020,7 @@ var AppInfo = {};
|
|||
connectionManager = new MediaBrowser.ConnectionManager(credentialProviderInstance, appInfo.appName, appInfo.appVersion, appInfo.deviceName, appInfo.deviceId, capabilities, window.devicePixelRatio);
|
||||
|
||||
defineConnectionManager(connectionManager);
|
||||
bindConnectionManagerEvents(connectionManager, events);
|
||||
bindConnectionManagerEvents(connectionManager, events, userSettings);
|
||||
|
||||
if (Dashboard.isConnectMode()) {
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue