login_prompt.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { formscreen } from "./formscreen.js";
  2. import { login_manager } from "./login_manager.js";
  3. export class login_prompt extends formscreen {
  4. #nick;
  5. #password;
  6. constructor(target) {
  7. super();
  8. target.addEventListener("click", () => {
  9. this.show();
  10. });
  11. }
  12. get _name() {
  13. return _("login-window");
  14. }
  15. async _process() {
  16. try {
  17. this._info = _("processing");
  18. await this.#login();
  19. this._success = _("logged-in");
  20. setTimeout(() => {
  21. location.reload();
  22. }, 250);
  23. } catch (error) {
  24. this._error = new String(error);
  25. }
  26. }
  27. async #login() {
  28. const manager = new login_manager();
  29. const result = await manager.login(
  30. this.#nick(),
  31. this.#password()
  32. );
  33. if (result) {
  34. return;
  35. }
  36. throw new Error(_("can-not-login-check-nick-and-password"));
  37. }
  38. _build_form() {
  39. this.#nick = this._create_input(
  40. "nick",
  41. _("nick-prompt"),
  42. _("nick-sample")
  43. );
  44. this.#password = this._create_input(
  45. "password",
  46. _("password-prompt"),
  47. _("password-sample"),
  48. (input) => { input.type = "password"; }
  49. );
  50. }
  51. }