login.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const $ = require('jquery');
  2. const Mn = require('backbone.marionette');
  3. const template = require('./login.ejs');
  4. const Api = require('../../app/api');
  5. const i18n = require('../../app/i18n');
  6. module.exports = Mn.View.extend({
  7. template: template,
  8. className: 'page-single',
  9. ui: {
  10. form: 'form',
  11. identity: 'input[name="identity"]',
  12. secret: 'input[name="secret"]',
  13. error: '.secret-error',
  14. button: 'button'
  15. },
  16. events: {
  17. 'submit @ui.form': function (e) {
  18. e.preventDefault();
  19. this.ui.button.addClass('btn-loading').prop('disabled', true);
  20. this.ui.error.hide();
  21. Api.Tokens.login(this.ui.identity.val(), this.ui.secret.val(), true)
  22. .then(() => {
  23. window.location = '/';
  24. })
  25. .catch(err => {
  26. this.ui.error.text(err.message).show();
  27. this.ui.button.removeClass('btn-loading').prop('disabled', false);
  28. });
  29. }
  30. },
  31. templateContext: {
  32. i18n: i18n,
  33. getVersion: function () {
  34. return $('#login').data('version');
  35. }
  36. }
  37. });