A self hosted chat application with end-to-end encrypted messaging.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.6 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var TemplateFactory_1 = require("../template/TemplateFactory");
  4. var UserView = /** @class */ (function () {
  5. // private userBoxes: any[] = [];
  6. function UserView(model, chatModel, element) {
  7. this._model = model;
  8. this._chatModel = chatModel;
  9. this._element = element;
  10. }
  11. Object.defineProperty(UserView.prototype, "model", {
  12. /**
  13. * Getter model
  14. * @return {Model}
  15. */
  16. get: function () {
  17. return this._model;
  18. },
  19. enumerable: true,
  20. configurable: true
  21. });
  22. Object.defineProperty(UserView.prototype, "element", {
  23. /**
  24. * Getter element
  25. * @return {any}
  26. */
  27. get: function () {
  28. return this._element;
  29. },
  30. enumerable: true,
  31. configurable: true
  32. });
  33. // /**
  34. // * Setter model
  35. // * @param {Model} value
  36. // */
  37. // public set model(value: Model) {
  38. // this._model = value;
  39. // }
  40. // /**
  41. // * Setter element
  42. // * @param {any} value
  43. // */
  44. // public set element(value: any) {
  45. // this._element = value;
  46. // }
  47. UserView.prototype.update = function (data) {
  48. var template = TemplateFactory_1.TemplateFactory.getTemplate();
  49. var html = "";
  50. data.forEach(function (element) {
  51. html += template(element);
  52. });
  53. this.element.innerHTML = html;
  54. this.addUserCallBacks();
  55. console.log(this.element.innerHTML);
  56. };
  57. UserView.prototype.helper = function () {
  58. };
  59. UserView.prototype.addUserCallBacks = function () {
  60. var userBoxes = document.getElementsByClassName('user-box');
  61. for (var i = 0; i < userBoxes.length; i++) {
  62. var userBox = userBoxes[i];
  63. userBoxes[i].addEventListener('click', this.userCallBack.bind(this, userBox));
  64. }
  65. };
  66. UserView.prototype.userCallBack = function (el) {
  67. var current = document.getElementsByClassName('user-box active');
  68. var passphrase = "";
  69. if (current.length > 0) {
  70. if (passphrase == '') {
  71. // alert('Please input passphrase')
  72. // alertify.error('Please enter a passphrase');
  73. // return;
  74. }
  75. current[0].className = current[0].className.replace(" active", "");
  76. }
  77. // Add the active class to the current/clicked button
  78. else if (current.length == 0) {
  79. var elem_1 = document.getElementById('passphrase-initial');
  80. passphrase = "";
  81. if (passphrase == '') {
  82. // // alert('Please input passphrase')
  83. // // alertify.error('Please enter a passphrase');
  84. // return;
  85. }
  86. // @ts-ignore: Object is possibly 'null'.
  87. document.getElementById('no-user-selected').hidden = true;
  88. // @ts-ignore: Object is possibly 'null'.
  89. document.getElementById('chat-card').hidden = false;
  90. // @ts-ignore: Object is possibly 'null'.
  91. elem_1.hidden = true;
  92. }
  93. // console.log(this.getElementsByClassName('to-user-span'));
  94. var elem = el.getElementsByClassName('to-user-span')[0];
  95. var userName = elem.innerText;
  96. // @ts-ignore: Object is possibly 'null'.
  97. document.getElementById('user-name-span').innerText = userName;
  98. // populateMessages(userName, passphrase);
  99. sessionStorage.setItem('selectedUser', userName);
  100. el.className += " active";
  101. };
  102. return UserView;
  103. }());
  104. exports.UserView = UserView;