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/loginpage.js

169 lines
4.8 KiB
JavaScript
Raw Normal View History

2013-02-20 20:33:05 -05:00
var LoginPage = {
onPageShow: function () {
Dashboard.showLoadingMsg();
2013-07-08 13:13:18 -04:00
var promise1 = ApiClient.getPublicUsers();
2013-07-08 12:13:21 -04:00
var promise2 = ApiClient.getServerConfiguration();
$.when(promise1, promise2).done(function (response1, response2) {
var users = response1[0];
var config = response2[0];
var showManualForm = config.ManualLoginClients.filter(function (i) {
return i == "Mobile";
}).length || !users.length;
2013-07-08 15:31:45 -04:00
// Always display users on localhost, just in case they forgot
2013-07-08 12:13:21 -04:00
showManualForm &= window.location.toString().toLowerCase().indexOf('localhost') == -1;
if (showManualForm) {
$('#divUsers', '#loginPage').hide();
$('#manualLoginForm', '#loginPage').show();
} else {
$('#divUsers', '#loginPage').show();
$('#manualLoginForm', '#loginPage').hide();
LoginPage.loadUserList(users);
}
Dashboard.hideLoadingMsg();
});
2013-02-20 20:33:05 -05:00
},
getLastSeenText: function (lastActivityDate) {
if (!lastActivityDate) {
return "";
}
return "Last seen " + humane_date(lastActivityDate);
},
getImagePath: function (user) {
if (!user.PrimaryImageTag) {
return "css/images/logindefault.png";
}
return ApiClient.getUserImageUrl(user.Id, {
width: 240,
tag: user.PrimaryImageTag,
type: "Primary"
2013-02-20 20:33:05 -05:00
});
},
authenticateUserLink: function (link) {
LoginPage.authenticateUser(link.getAttribute('data-username'), link.getAttribute('data-userid'));
},
2013-07-08 12:13:21 -04:00
authenticateUser: function (username, password) {
2013-02-20 20:33:05 -05:00
Dashboard.showLoadingMsg();
2013-07-08 12:13:21 -04:00
ApiClient.authenticateUserByName(username, password).done(function (result) {
2013-02-20 20:33:05 -05:00
2013-07-08 15:31:45 -04:00
var user = result.User;
Dashboard.setCurrentUser(user.Id);
2013-02-20 20:33:05 -05:00
2013-07-08 15:31:45 -04:00
if (user.Configuration.IsAdministrator) {
window.location = "dashboard.html?u=" + user.Id;
} else {
window.location = "index.html?u=" + user.Id;
}
2013-02-20 20:33:05 -05:00
}).fail(function () {
2013-07-08 12:13:21 -04:00
$('#pw', '#loginPage').val('');
2013-07-08 13:13:18 -04:00
$('#txtManualName', '#loginPage').val('');
$('#txtManualPassword', '#loginPage').val('');
2013-07-08 12:13:21 -04:00
2013-02-20 20:33:05 -05:00
Dashboard.hideLoadingMsg();
setTimeout(function () {
Dashboard.showError("Invalid user or password.");
}, 300);
});
},
loadUserList: function (users) {
var html = "";
for (var i = 0, length = users.length; i < length; i++) {
var user = users[i];
var linkId = "lnkUser" + i;
if (user.HasPassword) {
2013-07-08 12:13:21 -04:00
html += "<a class='posterItem squarePosterItem' id='" + linkId + "' data-username='" + user.Name + "' href='#popupLogin' data-rel='popup' onclick='LoginPage.authenticatingLinkId=this.id;' \">";
2013-02-20 20:33:05 -05:00
} else {
2013-07-08 12:13:21 -04:00
html += "<a class='posterItem squarePosterItem' id='" + linkId + "' data-username='" + user.Name + "' href='#' onclick='LoginPage.authenticateUserLink(this);' \">";
2013-02-20 20:33:05 -05:00
}
if (user.PrimaryImageTag) {
var imgUrl = ApiClient.getUserImageUrl(user.Id, {
width: 500,
tag: user.PrimaryImageTag,
type: "Primary"
2013-02-20 20:33:05 -05:00
});
2013-04-25 19:28:01 -04:00
html += '<div class="posterItemImage" style="background-image:url(\'' + imgUrl + '\');"></div>';
}
else {
var background = LibraryBrowser.getMetroColor(user.Id);
html += '<div class="posterItemImage" style="background-color:' + background + ';"></div>';
2013-02-20 20:33:05 -05:00
}
2013-04-25 19:28:01 -04:00
html += '<div class="posterItemText">' + user.Name + '</div>';
html += '<div class="posterItemText">';
var lastSeen = LoginPage.getLastSeenText(user.LastActivityDate);
if (lastSeen != "") {
html += lastSeen;
}
else {
html += "&nbsp;";
}
2013-02-20 20:33:05 -05:00
html += '</div>';
html += '</a>';
}
$('#divUsers', '#loginPage').html(html);
},
onSubmit: function () {
2013-07-08 12:13:21 -04:00
2013-02-20 20:33:05 -05:00
$('#popupLogin', '#loginPage').popup('close');
var link = $('#' + LoginPage.authenticatingLinkId)[0];
2013-07-08 12:13:21 -04:00
LoginPage.authenticateUser(link.getAttribute('data-username'), $('#pw', '#loginPage').val());
// Disable default form submission
return false;
},
onManualSubmit: function () {
LoginPage.authenticateUser($('#txtManualName', '#loginPage').val(), $('#txtManualPassword', '#loginPage').val());
2013-02-20 20:33:05 -05:00
// Disable default form submission
return false;
}
};
$(document).on('pageshow', "#loginPage", LoginPage.onPageShow);