uiAccess.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. $(() => {
  2. document.getElementById("menu-login").addEventListener("click", e => {
  3. e.preventDefault();
  4. document.body.classList.add("login-visible")
  5. document.body.classList.add("overlay-visible");
  6. });
  7. function closeLoginPopin() {
  8. if (!document.body.classList.contains("login-visible"))
  9. return;
  10. document.body.classList.remove("login-visible");
  11. document.body.classList.remove("overlay-visible");
  12. let inputFields = document.querySelectorAll(".login-wrapper .input-group input");
  13. for (let i =0; i < inputFields.length; ++i)
  14. inputFields[i].value = "";
  15. }
  16. document.onClosePopinRequested(() => {
  17. closeLoginPopin();
  18. });
  19. document.querySelector(".login-wrapper .modal-footer button").addEventListener("click", () => closeLoginPopin());
  20. let loginUserPass = document.getElementById("login-userpass");
  21. let loginCode = document.getElementById("login-code");
  22. loginUserPass.querySelector("button").addEventListener("click", () => {
  23. let user = loginUserPass.querySelector("input[type='text']").value;
  24. let pass = loginUserPass.querySelector("input[type='password']").value;
  25. console.log([user, pass]);
  26. });
  27. loginCode.querySelector("button").addEventListener("click", () => {
  28. let code = loginCode.querySelector("input").value;
  29. if (!code)
  30. return;
  31. LoadingTasks.push(async () => {
  32. await AccessManager.LinkLogin(new Set([code]));
  33. closeLoginPopin();
  34. });
  35. });
  36. async function logout(accessId, linkId) {
  37. await AccessManager.Logout(linkId);
  38. closeLoginPopin();
  39. }
  40. window.ReloadAccessList = function(accessList) {
  41. let getIconForType = type => {
  42. if (!!type.linkId) return "bi-link-45deg";
  43. if (!!type.userName) return "bi-person";
  44. return "bi-question-octagon";
  45. }
  46. let rootNode = document.getElementById("accessListMenu");
  47. let items = rootNode.querySelectorAll("li.accessItem");
  48. for (let i =0; i < items.length; ++i)
  49. items[i].remove();
  50. if (Object.keys(accessList||{}).length) {
  51. let li = document.createElement("li");
  52. li.classList.add("accessItem");
  53. li.classList.add("divider");
  54. let hr = document.createElement("hr");
  55. hr.classList.add("dropdown-divider");
  56. li.appendChild(hr);
  57. rootNode.appendChild(li);
  58. }
  59. for (let i in accessList) {
  60. const accessTextValue = accessList[i].linkId;
  61. let li = document.createElement("li");
  62. li.classList.add("accessItem");
  63. li.classList.add("dropdown-item");
  64. let a = document.createElement("a");
  65. let typeIcon = document.createElement("span");
  66. typeIcon.innerHTML = "&nbsp;";
  67. typeIcon.classList = 'type bi '+getIconForType(accessList[i]);
  68. let accessText = document.createElement("span");
  69. accessText.innerText = accessTextValue;
  70. let logoutIcon = document.createElement("span");
  71. logoutIcon.innerHTML = "&nbsp;";
  72. logoutIcon.classList = 'logout bi bi-box-arrow-right'
  73. a.appendChild(typeIcon);
  74. a.appendChild(accessText);
  75. a.appendChild(logoutIcon);
  76. li.appendChild(a);
  77. rootNode.appendChild(li);
  78. a.addEventListener("click", e => {
  79. e.preventDefault();
  80. if (!window.confirm("Logout account " +accessTextValue +" ?"))
  81. return;
  82. logout(i, accessList[i].linkId);
  83. });
  84. }
  85. }
  86. });