1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

move usersettings to server

This commit is contained in:
Luke Pulverenti 2016-09-06 02:45:22 -04:00
parent 8fc34293c7
commit 5ec5a0d9fa
48 changed files with 1295 additions and 815 deletions

View file

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

View file

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

View file

@ -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()) {