LoginPage.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. var LoginPage = {
  2. onPageShow: function () {
  3. Dashboard.showLoadingMsg();
  4. ApiClient.getAllUsers().done(LoginPage.loadUserList);
  5. },
  6. getLastSeenText: function (lastActivityDate) {
  7. if (!lastActivityDate) {
  8. return "";
  9. }
  10. return "Last seen " + humane_date(lastActivityDate);
  11. },
  12. getImagePath: function (user) {
  13. if (!user.PrimaryImageTag) {
  14. return "css/images/logindefault.png";
  15. }
  16. return ApiClient.getUserImageUrl(user.Id, {
  17. width: 240,
  18. tag: user.PrimaryImageTag
  19. });
  20. },
  21. authenticateUserLink: function (link) {
  22. LoginPage.authenticateUser(link.getAttribute('data-username'), link.getAttribute('data-userid'));
  23. },
  24. authenticateUser: function (username, userId, password) {
  25. Dashboard.showLoadingMsg();
  26. ApiClient.authenticateUser(userId, password).done(function () {
  27. Dashboard.setCurrentUser(userId);
  28. window.location = "index.html?u=" + userId;
  29. }).fail(function () {
  30. Dashboard.hideLoadingMsg();
  31. setTimeout(function () {
  32. Dashboard.showError("Invalid user or password.");
  33. }, 300);
  34. });
  35. },
  36. loadUserList: function (users) {
  37. var html = "";
  38. for (var i = 0, length = users.length; i < length; i++) {
  39. var user = users[i];
  40. var linkId = "lnkUser" + i;
  41. var background = Dashboard.getRandomMetroColor();
  42. html += '<div class="posterViewItem">';
  43. if (user.HasPassword) {
  44. html += "<a id='" + linkId + "' data-userid='" + user.Id + "' data-username='" + user.Name + "' href='#popupLogin' data-rel='popup' onclick='LoginPage.authenticatingLinkId=this.id;' \">";
  45. } else {
  46. html += "<a id='" + linkId + "' data-userid='" + user.Id + "' data-username='" + user.Name + "' href='#' onclick='LoginPage.authenticateUserLink(this);' \">";
  47. }
  48. if (user.PrimaryImageTag) {
  49. var imgUrl = ApiClient.getUserImageUrl(user.Id, {
  50. width: 500,
  51. tag: user.PrimaryImageTag
  52. });
  53. html += '<img src="' + imgUrl + '" />';
  54. } else {
  55. html += '<img style="background:' + background + ';" src="css/images/logindefault.png"/>';
  56. }
  57. html += '<div class="posterViewItemText">';
  58. html += '<div>' + user.Name + '</div>';
  59. html += '<div>';
  60. var lastSeen = LoginPage.getLastSeenText(user.LastActivityDate);
  61. if (lastSeen != "") {
  62. html += lastSeen;
  63. }
  64. else {
  65. html += "&nbsp;";
  66. }
  67. html += '</div>';
  68. html += '</div>';
  69. html += '</a>';
  70. html += '</div>';
  71. }
  72. $('#divUsers', '#loginPage').html(html);
  73. Dashboard.hideLoadingMsg();
  74. },
  75. onSubmit: function () {
  76. $('#popupLogin', '#loginPage').popup('close');
  77. var link = $('#' + LoginPage.authenticatingLinkId)[0];
  78. LoginPage.authenticateUser(link.getAttribute('data-username'), link.getAttribute('data-userid'), $('#pw', '#loginPage').val());
  79. // Disable default form submission
  80. return false;
  81. }
  82. };
  83. $(document).on('pageshow', "#loginPage", LoginPage.onPageShow);