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

Merge pull request #1859 from MrTimscampi/connection-manager-global

Use connectionManager global
This commit is contained in:
dkanada 2020-09-02 12:30:17 +09:00 committed by GitHub
commit 19edc734b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
80 changed files with 233 additions and 320 deletions

View file

@ -1,12 +1,11 @@
import * as userSettings from 'userSettings';
import skinManager from 'skinManager';
import connectionManager from 'connectionManager';
import events from 'events';
// Set the default theme when loading
skinManager.setTheme(userSettings.theme());
// Set the user's prefered theme when signing in
events.on(connectionManager, 'localusersignedin', function (e, user) {
events.on(window.connectionManager, 'localusersignedin', function (e, user) {
skinManager.setTheme(userSettings.theme());
});

View file

@ -48,7 +48,7 @@ export function onServerChanged(userId, accessToken, apiClient) {
}
export function logout() {
ConnectionManager.logout().then(function () {
window.connectionManager.logout().then(function () {
let loginPage;
if (AppInfo.isNativeApp) {

View file

@ -1,4 +1,3 @@
import connectionManager from 'connectionManager';
import confirm from 'confirm';
import appRouter from 'appRouter';
import globalize from 'globalize';
@ -15,7 +14,7 @@ export function deleteItem(options) {
const item = options.item;
const parentId = item.SeasonId || item.SeriesId || item.ParentId;
const apiClient = connectionManager.getApiClient(item.ServerId);
const apiClient = window.connectionManager.getApiClient(item.ServerId);
return confirm({

View file

@ -1,4 +1,3 @@
import connectionManager from 'connectionManager';
import listView from 'listView';
import cardBuilder from 'cardBuilder';
import imageLoader from 'imageLoader';
@ -358,7 +357,7 @@ function getItemsFunction(options, item) {
query.Fields += ',' + fields;
}
const apiClient = connectionManager.getApiClient(item.ServerId);
const apiClient = window.connectionManager.getApiClient(item.ServerId);
if (query.IncludeItemTypes === 'MusicArtist') {
query.IncludeItemTypes = null;

View file

@ -1,7 +1,6 @@
import dom from 'dom';
import layoutManager from 'layoutManager';
import inputManager from 'inputManager';
import connectionManager from 'connectionManager';
import events from 'events';
import viewManager from 'viewManager';
import appRouter from 'appRouter';
@ -57,10 +56,10 @@ import 'flexStyles';
function getCurrentApiClient() {
if (currentUser && currentUser.localUser) {
return connectionManager.getApiClient(currentUser.localUser.ServerId);
return window.connectionManager.getApiClient(currentUser.localUser.ServerId);
}
return connectionManager.currentApiClient();
return window.connectionManager.currentApiClient();
}
function lazyLoadViewMenuBarImages() {
@ -751,7 +750,7 @@ import 'flexStyles';
}
if (requiresUserRefresh) {
connectionManager.user(getCurrentApiClient()).then(updateUserInHeader);
window.connectionManager.user(getCurrentApiClient()).then(updateUserInHeader);
}
}
@ -793,7 +792,7 @@ import 'flexStyles';
if (user) {
Promise.resolve(user);
} else {
connectionManager.user(getCurrentApiClient()).then(function (user) {
window.connectionManager.user(getCurrentApiClient()).then(function (user) {
refreshLibraryInfoInDrawer(user);
updateLibraryMenu(user.localUser);
});
@ -957,8 +956,8 @@ import 'flexStyles';
updateLibraryNavLinks(page);
});
events.on(connectionManager, 'localusersignedin', function (e, user) {
const currentApiClient = connectionManager.getApiClient(user.ServerId);
events.on(window.connectionManager, 'localusersignedin', function (e, user) {
const currentApiClient = window.connectionManager.getApiClient(user.ServerId);
currentDrawerType = null;
currentUser = {
@ -967,13 +966,13 @@ import 'flexStyles';
loadNavDrawer();
connectionManager.user(currentApiClient).then(function (user) {
window.connectionManager.user(currentApiClient).then(function (user) {
currentUser = user;
updateUserInHeader(user);
});
});
events.on(connectionManager, 'localusersignedout', function () {
events.on(window.connectionManager, 'localusersignedout', function () {
currentUser = {};
updateUserInHeader();
});

View file

@ -1,4 +1,3 @@
import connectionManager from 'connectionManager';
import playbackManager from 'playbackManager';
import syncPlayManager from 'syncPlayManager';
import events from 'events';
@ -208,8 +207,8 @@ function bindEvents(apiClient) {
events.on(apiClient, 'message', onMessageReceived);
}
connectionManager.getApiClients().forEach(bindEvents);
events.on(connectionManager, 'apiclientcreated', function (e, newApiClient) {
window.connectionManager.getApiClients().forEach(bindEvents);
events.on(window.connectionManager, 'apiclientcreated', function (e, newApiClient) {
bindEvents(newApiClient);
});

View file

@ -56,30 +56,23 @@ window.pageIdOn = function(eventName, id, fn) {
var AppInfo = {};
function initClient() {
function defineConnectionManager(connectionManager) {
window.ConnectionManager = connectionManager;
define('connectionManager', [], function () {
return connectionManager;
});
}
function bindConnectionManagerEvents(connectionManager, events, userSettings) {
window.Events = events;
connectionManager.currentApiClient = function () {
window.connectionManager.currentApiClient = function () {
if (!localApiClient) {
var server = connectionManager.getLastUsedServer();
var server = window.connectionManager.getLastUsedServer();
if (server) {
localApiClient = connectionManager.getApiClient(server.Id);
localApiClient = window.connectionManager.getApiClient(server.Id);
}
}
return localApiClient;
};
connectionManager.onLocalUserSignedIn = function (user) {
localApiClient = connectionManager.getApiClient(user.ServerId);
window.connectionManager.onLocalUserSignedIn = function (user) {
localApiClient = window.connectionManager.getApiClient(user.ServerId);
window.ApiClient = localApiClient;
return userSettings.setUserInfo(user.Id, localApiClient);
};
@ -99,10 +92,9 @@ function initClient() {
return Promise.all(promises).then(function (responses) {
var capabilities = Dashboard.capabilities(appHost);
var connectionManager = new ConnectionManager(credentialProviderInstance, appHost.appName(), appHost.appVersion(), appHost.deviceName(), appHost.deviceId(), capabilities);
window.connectionManager = new ConnectionManager(credentialProviderInstance, appHost.appName(), appHost.appVersion(), appHost.deviceName(), appHost.deviceId(), capabilities);
defineConnectionManager(connectionManager);
bindConnectionManagerEvents(connectionManager, events, userSettings);
bindConnectionManagerEvents(window.connectionManager, events, userSettings);
if (!AppInfo.isNativeApp) {
console.debug('loading ApiClient singleton');
@ -115,7 +107,7 @@ function initClient() {
apiClient.enableAutomaticNetworking = false;
apiClient.manualAddressOnly = true;
connectionManager.addApiClient(apiClient);
window.connectionManager.addApiClient(apiClient);
window.ApiClient = apiClient;
localApiClient = apiClient;
@ -226,8 +218,8 @@ function initClient() {
require(['autoFocuser'], function(autoFocuser) {
autoFocuser.enable();
});
require(['globalize', 'connectionManager', 'events'], function (globalize, connectionManager, events) {
events.on(connectionManager, 'localusersignedin', globalize.updateCurrentCulture);
require(['globalize', 'events'], function (globalize, events) {
events.on(window.connectionManager, 'localusersignedin', globalize.updateCurrentCulture);
});
});
});
@ -375,7 +367,7 @@ function initClient() {
require(['playerSelectionMenu']);
var apiClient = window.ConnectionManager && window.ConnectionManager.currentApiClient();
var apiClient = window.connectionManager && window.connectionManager.currentApiClient();
if (apiClient) {
fetch(apiClient.getUrl('Branding/Css'))
.then(function(response) {
@ -678,9 +670,6 @@ function initClient() {
define('mouseManager', [scriptsPath + '/mouseManager'], returnFirstDependency);
define('scrollManager', [componentsPath + '/scrollManager'], returnFirstDependency);
define('autoFocuser', [componentsPath + '/autoFocuser'], returnFirstDependency);
define('connectionManager', [], function () {
return ConnectionManager;
});
define('apiClientResolver', [], function () {
return function () {
return window.ApiClient;

View file

@ -1,13 +1,12 @@
import events from 'events';
import serverNotifications from 'serverNotifications';
import connectionManager from 'connectionManager';
import globalize from 'globalize';
import 'emby-button';
export default function (options) {
function pollTasks() {
connectionManager.getApiClient(serverId).getScheduledTasks({
window.connectionManager.getApiClient(serverId).getScheduledTasks({
IsEnabled: true
}).then(updateTasks);
}
@ -64,7 +63,7 @@ export default function (options) {
}
function onScheduledTaskMessageConfirmed(id) {
connectionManager.getApiClient(serverId).startScheduledTask(id).then(pollTasks);
window.connectionManager.getApiClient(serverId).startScheduledTask(id).then(pollTasks);
}
function onButtonClick() {
@ -82,13 +81,13 @@ export default function (options) {
const serverId = ApiClient.serverId();
function onPollIntervalFired() {
if (!connectionManager.getApiClient(serverId).isMessageChannelOpen()) {
if (!window.connectionManager.getApiClient(serverId).isMessageChannelOpen()) {
pollTasks();
}
}
function startInterval() {
const apiClient = connectionManager.getApiClient(serverId);
const apiClient = window.connectionManager.getApiClient(serverId);
if (pollInterval) {
clearInterval(pollInterval);
@ -98,7 +97,7 @@ export default function (options) {
}
function stopInterval() {
connectionManager.getApiClient(serverId).sendMessage('ScheduledTasksInfoStop');
window.connectionManager.getApiClient(serverId).sendMessage('ScheduledTasksInfoStop');
if (pollInterval) {
clearInterval(pollInterval);