aboutsummaryrefslogtreecommitdiff
path: root/src/js/forms.coffee
diff options
context:
space:
mode:
authorCamil Staps2015-05-25 15:00:47 +0200
committerCamil Staps2015-05-25 15:00:47 +0200
commitcba2e9564ab63d22eb362bcc7c095d5148512d1a (patch)
tree398c4ae4b12c9b9b0d084a3202386b519cb03309 /src/js/forms.coffee
parentLicense in all files (diff)
Resetting password
Diffstat (limited to 'src/js/forms.coffee')
-rw-r--r--src/js/forms.coffee80
1 files changed, 67 insertions, 13 deletions
diff --git a/src/js/forms.coffee b/src/js/forms.coffee
index 36b0b98..19a1540 100644
--- a/src/js/forms.coffee
+++ b/src/js/forms.coffee
@@ -19,19 +19,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# Request API for registering
$ 'form.form-register'
.submit ->
- Botleagues.request
- endpoint: 'user'
- method: 'POST'
- data:
- email:
- $ this
- .find 'input[name="email"]'
- .val()
- password:
- $ this
- .find 'input[name="password"]'
- .val()
- callback: BotleaguesCallback.register
+ if BotleaguesFrontend.ensurePasswordsMatch (($ this).find 'input[type="password"]'), $ this
+ Botleagues.request
+ endpoint: 'user'
+ method: 'POST'
+ data:
+ email:
+ $ this
+ .find 'input[name="email"]'
+ .val()
+ password:
+ $ this
+ .find 'input[name="password"]'
+ .val()
+ callback: BotleaguesCallback.register
false
@@ -48,4 +49,57 @@ $ '.btn-botleagues-login'
$ '#login-form'
.submit ->
Botleagues.login ($ '#login-email').val(), ($ '#login-password').val()
+ false
+
+# Password reset form, stage 1: request token
+$ '#password-reset-form-1'
+ .submit ->
+ Botleagues.request
+ endpoint: 'user/' + encodeURIComponent(($ '#password-reset-email').val()) + '/password_reminder'
+ method: 'POST'
+ callback: (data) ->
+ if data.error?
+ BotleaguesFrontend.error
+ message: data.error
+ prepend_to: $ '#password-reset-form-1'
+ else
+ BotleaguesFrontend.success
+ message: "We've sent an email with a password reset token to " + data.password_reminder.userEmail + ". It will be valid until " + (new Date(Date.parse data.password_reminder.valid_till)).toTimeString()
+ prepend_to: $ '#password-reset-form-1'
+ $ '#password-reset-form-2'
+ .parent().parent().fadeIn()
+ $ '#password-reset-form-1'
+ .addClass 'text-muted'
+ .find 'button, input'
+ .attr 'disabled', true
+ return
+
+ false
+
+# Password reset form, stage 2: reset password
+$ '#password-reset-form-2'
+ .submit ->
+ if BotleaguesFrontend.ensurePasswordsMatch (($ this).find 'input[type="password"]'), $ this
+ Botleagues.request
+ endpoint: 'user/' + (encodeURIComponent ($ '#password-reset-email').val()) + '/password_reminder/' + ($ '#password-reset-token').val()
+ method: 'DELETE'
+ data:
+ password:
+ $ '#password-reset-password'
+ .val()
+ callback: (data) ->
+ if data.error?
+ BotleaguesFrontend.error
+ message: data.error
+ prepend_to: $ '#password-reset-form-2'
+ else
+ BotleaguesFrontend.success
+ message: "Your password has been reset."
+ prepend_to: $ '#password-reset-form-2'
+ $ '#password-reset-form-2'
+ .addClass 'text-muted'
+ .find 'button, input'
+ .attr 'disabled', true
+ return
+
false \ No newline at end of file