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

Modified to work with latest server code

This commit is contained in:
Matt Montgomery 2020-09-03 16:19:35 -05:00
parent 9476edcbe2
commit 28928ead7c
5 changed files with 51 additions and 89 deletions

View file

@ -5,22 +5,15 @@ export class QuickConnectSettings {
constructor() { } constructor() { }
authorize(code) { authorize(code) {
let url = ApiClient.getUrl('/QuickConnect/Authorize'); let url = ApiClient.getUrl('/QuickConnect/Authorize?Code=' + code);
ApiClient.ajax({ ApiClient.ajax({
type: 'POST', type: 'POST',
url: url, url: url
data: {
'Code': code
}
}, true).then(() => { }, true).then(() => {
require(['toast'], function (toast) {
toast(globalize.translate('QuickConnectAuthorizeSuccess')); toast(globalize.translate('QuickConnectAuthorizeSuccess'));
});
}).catch(() => { }).catch(() => {
require(['toast'], function (toast) {
toast(globalize.translate('QuickConnectAuthorizeFail')); toast(globalize.translate('QuickConnectAuthorizeFail'));
}); });
});
// prevent bubbling // prevent bubbling
return false; return false;
@ -30,28 +23,16 @@ export class QuickConnectSettings {
let url = ApiClient.getUrl('/QuickConnect/Activate'); let url = ApiClient.getUrl('/QuickConnect/Activate');
return ApiClient.ajax({ return ApiClient.ajax({
type: 'POST', type: 'POST',
url: url, url: url
contentType: 'application/json', }).then(() => {
dataType: 'json'
}).then((json) => {
let message = json.Error;
if (message && message !== '') {
console.error('Error activating quick connect. Error: ', json.Error);
Dashboard.alert({
title: 'Unable to activate quick connect',
message: message
});
return false;
}
toast(globalize.translate('QuickConnectActivationSuccessful')); toast(globalize.translate('QuickConnectActivationSuccessful'));
return true; return true;
}).catch((e) => { }).catch((e) => {
console.error('Error activating quick connect. Error:', e); console.error('Error activating quick connect. Error:', e);
Dashboard.alert({
title: globalize.translate('HeaderError'),
message: globalize.translate('DefaultErrorMessage')
});
throw e; throw e;
}); });
} }

View file

@ -26,13 +26,10 @@ import loading from 'loading';
let newStatus = page.querySelector('#chkQuickConnectAvailable').checked ? 'Available' : 'Unavailable'; let newStatus = page.querySelector('#chkQuickConnectAvailable').checked ? 'Available' : 'Unavailable';
let url = ApiClient.getUrl('/QuickConnect/Available'); let url = ApiClient.getUrl('/QuickConnect/Available?Status=' + newStatus);
ApiClient.ajax({ ApiClient.ajax({
type: 'POST', type: 'POST',
data: {
'Status': newStatus
},
url: url url: url
}, true).then(() => { }, true).then(() => {
require(['toast'], function (toast) { require(['toast'], function (toast) {

View file

@ -154,69 +154,54 @@ import 'emby-checkbox';
}); });
} }
// FIXME: Clicking ok on the code dialog redirects back to the homepage.
function loginQuickConnect() { function loginQuickConnect() {
let apiClient = getApiClient(); let apiClient = getApiClient();
let friendlyName = navigator.userAgent;
let url = apiClient.getUrl('/QuickConnect/Initiate?FriendlyName=' + friendlyName); let url = apiClient.getUrl('/QuickConnect/Initiate');
apiClient.getJSON(url) apiClient.getJSON(url).then(function (json) {
.then(json => {
if (!json.Secret || !json.Code) { if (!json.Secret || !json.Code) {
console.error('Malformed quick connect response', json); console.error('Malformed quick connect response', json);
return false; return false;
} }
Dashboard.alert({ Dashboard.alert({
message: Globalize.translate('QuickConnectAuthorizeCode', json.Code), message: globalize.translate('QuickConnectAuthorizeCode', json.Code),
title: Globalize.translate('QuickConnect') title: globalize.translate('QuickConnect')
}); });
loading.show(); let interval = setInterval(function() {
let interval = setInterval(async function() {
try {
let connectUrl = apiClient.getUrl('/QuickConnect/Connect?Secret=' + json.Secret); let connectUrl = apiClient.getUrl('/QuickConnect/Connect?Secret=' + json.Secret);
let data = await apiClient.getJSON(connectUrl); apiClient.getJSON(connectUrl).then(async function(data) {
if (data.Authenticated) { if (!data.Authenticated) {
let result = await apiClient.quickConnect(data.Authentication); return;
let user = result.User;
let serverId = getParameterByName('serverid');
let newUrl = 'home.html';
if (user.Policy.IsAdministrator && !serverId) {
newUrl = 'dashboard.html';
} }
loading.hide();
Dashboard.onServerChanged(user.Id, result.AccessToken, apiClient);
Dashboard.navigate(newUrl);
clearInterval(interval); clearInterval(interval);
return true; let result = await apiClient.quickConnect(data.Authentication);
} Dashboard.onServerChanged(result.User.Id, result.AccessToken, apiClient);
} catch (e) { Dashboard.navigate('home.html');
}, function (e) {
clearInterval(interval);
Dashboard.alert({ Dashboard.alert({
message: 'Quick connect was deactivated before the login request could be approved', message: globalize.translate('QuickConnectDeactivated'),
title: 'Unexpected error' title: globalize.translate('HeaderError')
}); });
console.error('Unable to login with quick connect', e); console.error('Unable to login with quick connect', e);
clearInterval(interval); });
loading.hide();
}
return false;
}, 5000); }, 5000);
return true; return true;
}).catch((e) => { }, function(e) {
Dashboard.alert({ Dashboard.alert({
message: Globalize.translate('QuickConnectNotActive'), message: globalize.translate('QuickConnectNotActive'),
title: 'Error' title: globalize.translate('HeaderError')
}); });
console.error('Quick connect error: ', e); console.error('Quick connect error: ', e);
return false; return false;
}); });
} }

View file

@ -73,6 +73,4 @@ export default function (view) {
throw e; throw e;
}); });
} }
renderPage();
} }

View file

@ -1156,6 +1156,7 @@
"QuickConnectAuthorizeCode": "Authorize request {0} to continue", "QuickConnectAuthorizeCode": "Authorize request {0} to continue",
"QuickConnectAuthorizeSuccess": "Request authorized", "QuickConnectAuthorizeSuccess": "Request authorized",
"QuickConnectAuthorizeFail": "Unknown quick connect code", "QuickConnectAuthorizeFail": "Unknown quick connect code",
"QuickConnectDeactivated": "Quick connect was deactivated before the login request could be approved",
"QuickConnectDescription": "To sign in with quick connect, select the Quick Connect button on the device you are logging in from and enter the displayed code below.", "QuickConnectDescription": "To sign in with quick connect, select the Quick Connect button on the device you are logging in from and enter the displayed code below.",
"QuickConnectInvalidCode": "Invalid quick connect code", "QuickConnectInvalidCode": "Invalid quick connect code",
"QuickConnectNotAvailable": "Ask your server administrator to enable quick connect", "QuickConnectNotAvailable": "Ask your server administrator to enable quick connect",