request-link.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import Ember from 'ember';
  2. import rpc from 'misago/utils/rpc';
  3. export default Ember.ObjectController.extend({
  4. isLoading: false,
  5. email: '',
  6. actions: {
  7. sendLink: function() {
  8. if (this.get('isLoading')) {
  9. return;
  10. }
  11. var email = Ember.$.trim(this.get('email'));
  12. if (email === "") {
  13. this.get('toast').warning(gettext("Enter e-mail address."));
  14. return;
  15. }
  16. this.set('isLoading', true);
  17. var self = this;
  18. rpc('change-password/send-link/', {
  19. email: email
  20. }).then(function(requestingUser) {
  21. self.send('showSentPage', requestingUser);
  22. self.set('email', '');
  23. }, function(jqXHR) {
  24. if (jqXHR.status === 400){
  25. var rejection = jqXHR.responseJSON;
  26. if (rejection.code === 'banned') {
  27. self.send('showBan', rejection.detail);
  28. self.set('email', '');
  29. } else {
  30. self.get('toast').error(rejection.detail);
  31. }
  32. } else {
  33. self.send("error", jqXHR);
  34. self.set('email', '');
  35. }
  36. }).finally(function() {
  37. self.set('isLoading', false);
  38. });
  39. return false;
  40. }
  41. }
  42. });