mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
fix linting issues and add servers to web config
This commit is contained in:
parent
4553215841
commit
982ae411c5
5 changed files with 23 additions and 14 deletions
|
@ -507,7 +507,7 @@ class AppRouter {
|
||||||
|
|
||||||
this.firstConnectionResult = null;
|
this.firstConnectionResult = null;
|
||||||
if (firstResult && firstResult.State === 'ServerSignIn' && !route.anonymous) {
|
if (firstResult && firstResult.State === 'ServerSignIn' && !route.anonymous) {
|
||||||
let url = ApiClient.serverAddress() + '/System/Info/Public';
|
const url = ApiClient.serverAddress() + '/System/Info/Public';
|
||||||
fetch(url).then(response => {
|
fetch(url).then(response => {
|
||||||
if (!response.ok) return Promise.reject('fetch failed');
|
if (!response.ok) return Promise.reject('fetch failed');
|
||||||
return response.json();
|
return response.json();
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"multiserver": false,
|
"multiserver": false,
|
||||||
|
"servers": [],
|
||||||
"themes": [
|
"themes": [
|
||||||
{
|
{
|
||||||
"name": "Apple TV",
|
"name": "Apple TV",
|
||||||
|
|
|
@ -12,7 +12,7 @@ export async function serverAddress() {
|
||||||
return Promise.resolve(apiClient.serverAddress());
|
return Promise.resolve(apiClient.serverAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
let current = await window.connectionManager.getAvailableServers().then(servers => {
|
const current = await window.connectionManager.getAvailableServers().then(servers => {
|
||||||
if (servers.length !== 0) {
|
if (servers.length !== 0) {
|
||||||
return Promise.resolve(servers[0].ManualAddress);
|
return Promise.resolve(servers[0].ManualAddress);
|
||||||
}
|
}
|
||||||
|
@ -20,19 +20,20 @@ export async function serverAddress() {
|
||||||
|
|
||||||
if (current) return Promise.resolve(current);
|
if (current) return Promise.resolve(current);
|
||||||
|
|
||||||
let urls = [];
|
const urls = [];
|
||||||
urls.push(`${window.location.origin}/System/Info/Public`);
|
urls.push(window.location.origin);
|
||||||
urls.push(`${window.location.protocol}//${window.location.hostname}:8096/System/Info/Public`);
|
urls.push(`${window.location.protocol}//${window.location.hostname}:8096`);
|
||||||
|
urls.push(await webSettings.getServers());
|
||||||
|
|
||||||
let promises = urls.map(url => {
|
const promises = urls.map(url => {
|
||||||
return fetch(url).catch(error => {
|
return fetch(`${url}/System/Info/Public`).catch(error => {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
return Promise.all(promises).then(responses => {
|
return Promise.all(promises).then(responses => {
|
||||||
return responses.find(response => response && response.ok);
|
return responses.find(response => response && response.ok);
|
||||||
}).then(response => response.url).catch(error => {
|
}).then(response => response.url.replace('/System/Info/Public', '')).catch(error => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
});
|
});
|
||||||
|
|
|
@ -46,6 +46,15 @@ export function getMultiServer() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getServers() {
|
||||||
|
return getConfig().then(config => {
|
||||||
|
return config.servers;
|
||||||
|
}).catch(error => {
|
||||||
|
console.log('cannot get web config:', error);
|
||||||
|
return [];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export function getThemes() {
|
export function getThemes() {
|
||||||
return getConfig().then(config => {
|
return getConfig().then(config => {
|
||||||
return config.themes;
|
return config.themes;
|
||||||
|
|
|
@ -86,11 +86,11 @@ function initClient() {
|
||||||
return require(['connectionManagerFactory', 'apphost', 'credentialprovider', 'events', 'userSettings', 'apiclient', 'clientUtils'], function (ConnectionManager, appHost, credentialProvider, events, userSettings, apiClientFactory, clientUtils) {
|
return require(['connectionManagerFactory', 'apphost', 'credentialprovider', 'events', 'userSettings', 'apiclient', 'clientUtils'], function (ConnectionManager, appHost, credentialProvider, events, userSettings, apiClientFactory, clientUtils) {
|
||||||
appHost = appHost.default || appHost;
|
appHost = appHost.default || appHost;
|
||||||
|
|
||||||
var credentialProviderInstance = new credentialProvider();
|
const credentialProviderInstance = new credentialProvider();
|
||||||
var promises = [appHost.init()];
|
const promises = [appHost.init()];
|
||||||
|
|
||||||
return Promise.all(promises).then(responses => {
|
return Promise.all(promises).then(responses => {
|
||||||
var capabilities = Dashboard.capabilities(appHost);
|
const capabilities = Dashboard.capabilities(appHost);
|
||||||
|
|
||||||
window.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);
|
||||||
|
|
||||||
|
@ -102,9 +102,7 @@ function initClient() {
|
||||||
}
|
}
|
||||||
|
|
||||||
console.debug('creating apiclient singleton');
|
console.debug('creating apiclient singleton');
|
||||||
let parts = server.split('/');
|
const apiClient = new apiClientFactory(server, appHost.appName(), appHost.appVersion(), appHost.deviceName(), appHost.deviceId());
|
||||||
let url = parts[0] + '//' + parts[2];
|
|
||||||
var apiClient = new apiClientFactory(url, appHost.appName(), appHost.appVersion(), appHost.deviceName(), appHost.deviceId());
|
|
||||||
|
|
||||||
apiClient.enableAutomaticNetworking = false;
|
apiClient.enableAutomaticNetworking = false;
|
||||||
apiClient.manualAddressOnly = true;
|
apiClient.manualAddressOnly = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue