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

201 lines
5.1 KiB
JavaScript
Raw Normal View History

2014-10-21 08:42:02 -04:00
(function () {
function onLoggedIn() {
2015-05-13 00:55:19 -04:00
Dashboard.hideModalLoadingMsg();
2015-01-25 01:34:50 -05:00
Dashboard.navigate('selectserver.html');
2014-10-23 00:26:01 -04:00
}
2014-10-21 08:42:02 -04:00
function login(page, username, password) {
2015-05-13 00:55:19 -04:00
Dashboard.showModalLoadingMsg();
2014-10-21 08:42:02 -04:00
2014-10-25 14:32:58 -04:00
ConnectionManager.loginToConnect(username, password).done(function () {
2014-10-21 08:42:02 -04:00
onLoggedIn();
2014-10-25 14:32:58 -04:00
}).fail(function () {
2015-05-15 11:46:20 -04:00
Dashboard.hideModalLoadingMsg();
2014-10-21 08:42:02 -04:00
Dashboard.alert({
message: Globalize.translate('MessageInvalidUser'),
title: Globalize.translate('HeaderLoginFailure')
});
$('#txtManualPassword', page).val('');
});
}
2015-05-05 11:24:47 -04:00
function handleConnectionResult(page, result) {
2015-05-15 11:46:20 -04:00
Dashboard.hideModalLoadingMsg();
2015-05-13 00:55:19 -04:00
2015-05-05 11:24:47 -04:00
switch (result.State) {
case MediaBrowser.ConnectionState.SignedIn:
{
var apiClient = result.ApiClient;
2015-05-18 18:23:03 -04:00
Dashboard.onServerChanged(apiClient.serverAddress(), apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient);
2015-05-17 21:27:48 -04:00
Dashboard.navigate('index.html');
2015-05-05 11:24:47 -04:00
}
break;
case MediaBrowser.ConnectionState.ServerSignIn:
{
2015-05-15 11:46:20 -04:00
Dashboard.navigate('login.html?serverid=' + result.Servers[0].Id);
2015-05-05 11:24:47 -04:00
}
break;
case MediaBrowser.ConnectionState.ServerSelection:
{
onLoggedIn();
}
break;
case MediaBrowser.ConnectionState.ConnectSignIn:
{
loadMode(page, 'welcome');
}
break;
2015-05-06 08:56:26 -04:00
case MediaBrowser.ConnectionState.Unavailable:
{
Dashboard.alert({
message: Globalize.translate("MessageUnableToConnectToServer"),
title: Globalize.translate("HeaderConnectionFailure")
});
}
break;
2015-05-05 11:24:47 -04:00
default:
break;
}
}
function loadAppConnection(page) {
2015-05-13 00:55:19 -04:00
Dashboard.showModalLoadingMsg();
2015-05-05 11:24:47 -04:00
ConnectionManager.connect().done(function (result) {
handleConnectionResult(page, result);
});
}
function loadPage(page) {
2015-05-06 08:56:26 -04:00
var mode = getParameterByName('mode') || 'auto';
2015-05-05 11:24:47 -04:00
2015-05-06 08:56:26 -04:00
if (mode == 'auto') {
2015-05-05 11:24:47 -04:00
if (Dashboard.isRunningInCordova()) {
loadAppConnection(page);
return;
}
mode = 'connect';
}
loadMode(page, mode);
}
function loadMode(page, mode) {
2015-05-13 00:55:19 -04:00
Backdrops.setDefault(page);
2015-05-06 08:56:26 -04:00
2015-05-05 11:24:47 -04:00
if (mode == 'welcome') {
$('.connectLoginForm', page).hide();
$('.welcomeContainer', page).show();
$('.manualServerForm', page).hide();
}
else if (mode == 'connect') {
$('.connectLoginForm', page).show();
$('.welcomeContainer', page).hide();
$('.manualServerForm', page).hide();
}
else if (mode == 'manualserver') {
$('.manualServerForm', page).show();
$('.connectLoginForm', page).hide();
$('.welcomeContainer', page).hide();
}
}
2015-05-13 00:55:19 -04:00
function skip() {
Dashboard.navigate('selectserver.html');
}
2015-05-19 15:15:40 -04:00
function onSubmit() {
var page = $(this).parents('.page');
submit(page);
return false;
}
function onManualServerSubmit() {
var page = $(this).parents('.page');
submitManualServer(page);
return false;
}
$(document).on('pageinitdepends', "#connectLoginPage", function () {
2015-05-06 23:11:51 -04:00
var page = this;
2015-05-13 00:55:19 -04:00
$('.btnSkipConnect', page).on('click', function () {
skip();
2015-05-06 23:11:51 -04:00
});
2015-05-19 15:15:40 -04:00
$('.connectLoginForm').off('submit', onSubmit).on('submit', onSubmit);
$('.manualServerForm').off('submit', onManualServerSubmit).on('submit', onManualServerSubmit);
}).on('pageshowready', "#connectLoginPage", function () {
2015-05-05 11:24:47 -04:00
var page = this;
loadPage(page);
var link = '<a href="http://emby.media" target="_blank">http://emby.media</a>';
$('.embyIntroDownloadMessage', page).html(Globalize.translate('EmbyIntroDownloadMessage', link));
if (Dashboard.isRunningInCordova()) {
$('.skip', page).show();
} else {
$('.skip', page).hide();
}
});
function submitManualServer(page) {
var host = $('#txtServerHost', page).val();
var port = $('#txtServerPort', page).val();
if (port) {
host += ':' + port;
}
2015-05-13 00:55:19 -04:00
Dashboard.showModalLoadingMsg();
2015-05-05 11:24:47 -04:00
ConnectionManager.connectToAddress(host).done(function (result) {
handleConnectionResult(page, result);
2015-05-06 08:56:26 -04:00
}).fail(function () {
handleConnectionResult(page, {
State: MediaBrowser.ConnectionState.Unavailable
});
2015-05-05 11:24:47 -04:00
});
}
2014-10-21 08:42:02 -04:00
function submit(page) {
var user = $('#txtManualName', page).val();
var password = $('#txtManualPassword', page).val();
login(page, user, password);
}
})();