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

121 lines
2.8 KiB
JavaScript
Raw Normal View History

2014-10-21 08:42:02 -04:00
(function () {
function onLoggedIn() {
ConnectionManager.getServers().done(function (result) {
if (result.length) {
connectToServerInstance(result[0]);
} else {
Dashboard.alert('Coming soon');
}
});
}
function connectToServerInstance(server) {
2014-10-23 00:26:01 -04:00
connectToServerAtUrl(server, server.Url).fail(function () {
2014-10-21 08:42:02 -04:00
2014-10-23 00:26:01 -04:00
if (server.LocalAddress) {
connectToServerAtUrl(server, server.LocalAddress).fail(showServerConnectionFailure);
2014-10-21 08:42:02 -04:00
2014-10-23 00:26:01 -04:00
} else {
showServerConnectionFailure();
}
});
}
function showServerConnectionFailure() {
alert('Unable to communicate with your server.');
}
function connectToServerAtUrl(server, url) {
var exchangeToken = server.AccessKey;
return $.ajax({
2014-10-21 08:42:02 -04:00
type: "GET",
2014-10-23 00:26:01 -04:00
url: url + "/mediabrowser/Connect/Exchange?format=json&ConnectUserId=" + ConnectionManager.connectUserId(),
2014-10-21 08:42:02 -04:00
dataType: "json",
error: function () {
// Don't show normal dashboard errors
},
headers: {
"X-MediaBrowser-Token": exchangeToken
}
}).done(function (result) {
2014-10-23 00:26:01 -04:00
Dashboard.serverAddress(url);
2014-10-21 08:42:02 -04:00
Dashboard.setCurrentUser(result.LocalUserId, result.AccessToken);
window.location = 'index.html';
});
}
function login(page, username, password) {
var md5 = CryptoJS.MD5(password).toString();
$.ajax({
type: "POST",
url: "https://connect.mediabrowser.tv/service/user/authenticate",
data: {
userName: username,
password: md5
},
dataType: "json",
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
error: function () {
// Don't show normal dashboard errors
}
}).done(function (result) {
ConnectionManager.onConnectAuthenticated(result);
onLoggedIn();
}).fail(function (result) {
Dashboard.alert({
message: Globalize.translate('MessageInvalidUser'),
title: Globalize.translate('HeaderLoginFailure')
});
$('#txtManualPassword', page).val('');
});
}
function submit(page) {
var user = $('#txtManualName', page).val();
var password = $('#txtManualPassword', page).val();
login(page, user, password);
}
window.ConnectLoginPage = {
onSubmit: function () {
var page = $(this).parents('.page');
submit(page);
return false;
}
};
})();