index.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. # coding: utf8
  2. """С этого начинается работа """
  3. from typing import Any
  4. from browser import document, ajax
  5. def bot_list_update(event:Any):
  6. """Обновляет список ботов"""
  7. def read(req: Any):
  8. print(req.text)
  9. document["bot_list"] = req.text
  10. print(f"bot_list_update click, ev={event}!")
  11. ajax.get("/bot_list/update", oncomplete=read)
  12. def bot_list_add(event: Any):
  13. """Добавляет нового бота"""
  14. print(f"bot_list_add click, ev={event}!")
  15. FormBotNew()
  16. class FormBotNew():
  17. """Показывает форму добавления бота"""
  18. def __init__(self):
  19. print("FormBotNew.__init__()")
  20. self.div_new: Any = document["bot_list_new"]
  21. self.div_new.clear()
  22. self.box_new: Any = document.createElement("div")
  23. self.box_new["class"] = "container bg-secondary text-white p-3 border"
  24. self.ent_login: Any = document.createElement("input")
  25. self.ent_login["class"] = "col"
  26. self.ent_login["id"] = "bot_login"
  27. self.ent_pass: Any = document.createElement("input")
  28. self.ent_pass["class"] = "col"
  29. self.ent_pass["id"] = "bot_pass"
  30. self.add_container_new()
  31. def add_container_new(self):
  32. """Добавляет контейнер добавления нового бота"""
  33. print("FormBotNew.add_container_new()")
  34. self.add_row_login()
  35. self.add_row_pass()
  36. self.add_row_btn()
  37. self.div_new.appendChild(self.box_new)
  38. def add_row_login(self) -> None:
  39. """Добавляет ряд логина"""
  40. print("FormBotNew.add_row_login()")
  41. row_login: Any = document.createElement("div")
  42. row_login["class"] = "row p-3"
  43. lbl_login: Any = document.createElement("label")
  44. lbl_login["class"] = "col-2"
  45. lbl_login.text = "Логин"
  46. row_login.appendChild(lbl_login)
  47. row_login.appendChild(self.ent_login)
  48. self.box_new.appendChild(row_login)
  49. def add_row_pass(self) -> None:
  50. """Добавляет ряд пароля"""
  51. print("FormBotNew.add_row_pass()")
  52. row_pass: Any = document.createElement("div")
  53. row_pass["class"] = "row p-3"
  54. lbl_pass: Any = document.createElement("label")
  55. lbl_pass["class"] = "col-2"
  56. lbl_pass.text = "Пароль"
  57. row_pass.appendChild(lbl_pass)
  58. row_pass.appendChild(self.ent_pass)
  59. self.box_new.appendChild(row_pass)
  60. def add_row_btn(self) -> None:
  61. """добавляет ряд кнопок формы"""
  62. row_btn: Any = document.createElement("div")
  63. row_btn["class"] = "row p-3"
  64. lbl_btn: Any = document.createElement("label")
  65. lbl_btn["class"] = "col-6"
  66. row_btn.appendChild(lbl_btn)
  67. btn_cancel: Any = document.createElement("button")
  68. btn_cancel["class"] = "btn btn-dark col-3"
  69. btn_cancel.text = "Отмена"
  70. btn_cancel.bind("click", self.clear)
  71. row_btn.appendChild(btn_cancel)
  72. btn_add: Any = document.createElement("button")
  73. btn_add["class"] = "btn btn-primary col-3"
  74. btn_add.text = "Добавить"
  75. btn_add.bind("click", self.add)
  76. row_btn.appendChild(btn_add)
  77. self.box_new.appendChild(row_btn)
  78. def add(self, event: Any) -> None:
  79. """Получает логин и пароль нового боты из формы"""
  80. print("FormBotNew.clear()")
  81. login: Any = self.ent_login.value
  82. _pass: Any = self.ent_pass.value
  83. print(f"FormBotNew.clear(): login={login}, " +
  84. f"pass={_pass}, event={event}")
  85. self.div_new.clear()
  86. self.list_bot_update()
  87. def list_bot_update(self)->None:
  88. """Обновляет список ботов"""
  89. def read(req: Any):
  90. print(req.text)
  91. document["bot_list"] = req.text
  92. print(f"bot_list_update click, ev={event}!")
  93. ajax.get("/bot_list/update", oncomplete=read)
  94. def clear(self, event: Any) -> None:
  95. """Зачищает форму логина"""
  96. print("FormBotNew.clear()")
  97. self.div_new.clear()
  98. document["bot_list_add"].bind("click", bot_list_add)
  99. document["bot_list_update"].bind("click", bot_list_update)