Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

85 рядки
1.7 KiB

  1. define([
  2. 'js/system/events',
  3. 'js/system/client',
  4. 'ui/factory',
  5. 'html!ui/templates/login/template',
  6. 'css!ui/templates/login/styles',
  7. 'js/rendering/renderer'
  8. ], function(
  9. events,
  10. client,
  11. uiFactory,
  12. template,
  13. styles,
  14. renderer
  15. ) {
  16. return {
  17. tpl: template,
  18. centered: true,
  19. postRender: function() {
  20. this.onEvent('onHandshake', this.onHandshake.bind(this));
  21. this.on('.btnLogin', 'click', this.onLoginClick.bind(this));
  22. this.on('.btnRegister', 'click', this.onRegisterClick.bind(this));
  23. this.find('.right .buttons .button').on('click', this.redirect.bind(this));
  24. this.find('input')
  25. .on('keyup', this.onKeyDown.bind(this))
  26. .eq(0).focus();
  27. renderer.buildTitleScreen();
  28. },
  29. redirect: function(e) {
  30. var location = $(e.target).attr('location');
  31. window.open(location, '_blank');
  32. },
  33. onKeyDown: function(e) {
  34. if (e.keyCode == 13)
  35. this.onLoginClick();
  36. },
  37. onHandshake: function() {
  38. this.show();
  39. },
  40. onLoginClick: function() {
  41. this.el.addClass('disabled');
  42. client.request({
  43. cpn: 'auth',
  44. method: 'login',
  45. data: {
  46. username: this.val('.txtUsername'),
  47. password: this.val('.txtPassword')
  48. },
  49. callback: this.onLogin.bind(this)
  50. });
  51. },
  52. onLogin: function(res) {
  53. this.el.removeClass('disabled');
  54. if (!res) {
  55. uiFactory.build('characters', {});
  56. this.el.remove();
  57. } else
  58. this.el.find('.message').html(res);
  59. },
  60. onRegisterClick: function() {
  61. this.el.addClass('disabled');
  62. client.request({
  63. cpn: 'auth',
  64. method: 'register',
  65. data: {
  66. username: this.val('.txtUsername'),
  67. password: this.val('.txtPassword')
  68. },
  69. callback: this.onLogin.bind(this)
  70. });
  71. }
  72. };
  73. });