UNPKG

sportsbet-mobile

Version:
153 lines (130 loc) 3.78 kB
///<reference path=".#ts/client.d.ts" /> interface Templates { forgotPassword: Template; } Template.forgotPassword.helpers({ resetPassword: function () { return Session.get('resetToken'); }, errors: function() { return Users.Profile.db.errors('register'); }, tokenSent: function () { return Session.get('tokenSent'); }, loading: function () { return Session.get('loading') ? 'loading' : ''; }, showGoogleAuth: function () { return Session.get('showGoogleAuth'); }, useGoogleAuth: function () { return Session.get('showGoogleAuth') ? 'checked' : null; } }); Template.forgotPassword.onDestroyed(function () { Session.set('resetToken', undefined) }); Template.forgotPassword.events({ 'click .useGoogleAuth': function (e: MeteorTemplateEvent, t: MeteorTemplate) { e.preventDefault(); var checkbox = t.find('#useGoogleAuth'); var isChecked = checkbox.hasAttribute('checked'); if (isChecked) { checkbox.removeAttribute('checked'); } else { checkbox.setAttribute('checked', 'checked'); } Session.set('showGoogleAuth', isChecked ? false : true); }, 'submit form[name="login"]': function (e: MeteorTemplateEvent) { e.preventDefault(); var tpl = Template.instance(); var $form = $(e.target); var $emailField = $form.find('#email'); var data = $form.serializeObject(); var errorContainer = $form.find('.generalError'); errorContainer.html(''); errorContainer.hide(); if (!data.email) { $emailField.anim('shake'); googleSend({ 'eventCategory': 'UP Recovery', 'eventAction': 'Email Verification Error', 'eventLabel': 'Empty', 'pageEventArea': 'Main' }); return; } Session.set('loading', true); Users.User.forgotPassword(data.email, function (err?) { if (err) { Session.set('loading', false); $emailField.anim('shake'); if (err.error == '404') { errorContainer.append('<li>No user was found with this email</li>'); } errorContainer.show(); googleSend({ 'eventCategory': 'UP Recovery', 'eventAction': 'Email Verification Error', 'eventLabel': 'Email Not Found', 'pageEventArea': 'Main' }); return; } Session.set('loading', false); tpl.setVar('tokenSent', true); googleSend({ 'eventCategory': 'UP Recovery', 'eventAction': 'Email Sent', 'pageEventArea': 'Main' }); }); }, 'submit form[name="reset"]': function (e: MeteorTemplateEvent) { e.preventDefault(); var $form = $(e.target); var data = $form.serializeObject(); var errorContainer = $form.find('.generalError'); errorContainer.hide(); errorContainer.html(''); errorContainer.append("<ul>"); var listContainer = errorContainer.find('ul'); var errors = Users.Profile.db.validate(e.target); if (!_.isEmpty(errors)) { errorContainer.show(); for (var errType in errors) { listContainer.append('<li>' + errors[errType] + '</li>'); } return; } if (!data.otpCode && data.useGoogleAuth) { errorContainer.append('<li>' + i18n('users.login.errorEmptyGA') + '</li>'); errorContainer.show(); $form.find('input[name="otpCode"]').anim('shake'); return; } Otp.resetPassword(Session.get('resetToken'), data.password, data.otpCode == undefined ? '' : data.otpCode, function (err?: any) { if (err) { googleSend({ 'eventCategory': 'UP Recovery', 'eventAction': 'New Password Error', 'eventLabel': 'Invalid Token', 'pageEventArea': 'Main' }); listContainer.append('<li>' + err.reason + '</li>'); errorContainer.show(); return; } Session.set('resetToken', null); Session.set('tokenSent', null); googleSend({ 'eventCategory': 'UP Recovery', 'eventAction': 'New Password Selected', 'pageEventArea': 'Main' }); }); } });