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;
|
|
|
|
|
|
|
|
|
|
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,
|
2013-02-22 09:28:35 -06:00
|
|
|
|
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 12:13:21 -04:00
|
|
|
|
Dashboard.setCurrentUser(result.User.Id);
|
2013-02-20 20:33:05 -05:00
|
|
|
|
|
2013-07-08 12:13:21 -04:00
|
|
|
|
window.location = "index.html?u=" + result.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,
|
2013-02-22 09:28:35 -06:00
|
|
|
|
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">';
|
2013-02-22 09:08:51 -06:00
|
|
|
|
var lastSeen = LoginPage.getLastSeenText(user.LastActivityDate);
|
|
|
|
|
if (lastSeen != "") {
|
|
|
|
|
html += lastSeen;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
html += " ";
|
|
|
|
|
}
|
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);
|