/// 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('
  • No user was found with this email
  • '); } 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("