Home.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import {getTemplateUsers} from "./Templates.js";
  2. import {bindEvents, dEvent} from "../libs/helper.js";
  3. import {f} from "../libs/helper.js"
  4. export default class Home extends HTMLElement {
  5. constructor() {
  6. super();
  7. this.user = null;
  8. this.registrations = null;
  9. this.bind();
  10. this.rendered = false;
  11. this.data = {
  12. service: null
  13. }
  14. }
  15. connectedCallback() {
  16. if (!this.rendered) {
  17. this.render();
  18. }
  19. }
  20. bind() {
  21. bindEvents("UserHomeLogin", "user-login", (e) => {
  22. this.user = e.detail;
  23. this.render();
  24. })
  25. bindEvents("UserHomeOut", "user-logout", (e) => {
  26. this.user = null;
  27. })
  28. }
  29. async render() {
  30. if (!this.user) return;
  31. this.rendered = true;
  32. let res = (await f("service", "get", this.user.user_token)).data;
  33. console.log(res)
  34. this.registrations = res;
  35. for (let reg of this.registrations) {
  36. console.log(reg)
  37. this.innerHTML +=(getTemplateUsers(reg))
  38. }
  39. this.attachModel();
  40. }
  41. attachModel() {
  42. this.querySelectorAll('.button')
  43. .forEach(el=>el.addEventListener('click', e => this.clickButton(e)))
  44. }
  45. clickButton(e) {
  46. if (this[e.target.dataset.click]) {
  47. this[e.target.dataset.click](e);
  48. }
  49. }
  50. async register(e) {
  51. this.data.service = e.target.dataset.service
  52. let res = await f("servicerecord","post", this.user.user_token,this.data)
  53. console.log(res)
  54. e.target.innerHTML = "Записано"
  55. e.target.classList.add("disabled")
  56. }
  57. async restore(e) {
  58. let id = e.target.dataset.id;
  59. let res = await f(`service/${id}`,"delete", this.user.user_token,null);
  60. console.log(res)
  61. let el = document.getElementById(id);
  62. el.classList.add("disabled-block");
  63. }
  64. }