From e9bfbb5d86e6ebbf7be35d81d924096d51f098a1 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Fri, 24 Jul 2015 16:52:34 -0300 Subject: [PATCH] Refactoring captcha and display captcha in forgot password form --- index.html | 12 +++++++++++- js/main.js | 45 ++++++++++++++++++++++++++------------------- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/index.html b/index.html index f6a5cc0..fd3704f 100644 --- a/index.html +++ b/index.html @@ -450,7 +450,7 @@ -
+

Esqueceu sua senha?

@@ -460,6 +460,16 @@
+
+
+
+ Digite os caracteres acima: +
+
+ +
+
+
diff --git a/js/main.js b/js/main.js index 380d1f3..668a791 100644 --- a/js/main.js +++ b/js/main.js @@ -888,6 +888,25 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers }); }); }, + reloadCaptcha: function(element) { + var $element = $(element); + if($element.data('captcha')){ + $element.data('captcha').recarregar(); + } + }, + initCaptcha: function(element) { + var $element = $(element); + if($element.data('captcha')) return; + + $element.val(''); + var oCaptcha_serpro_gov_br = new captcha_serpro_gov_br(); + $element.data('captcha', oCaptcha_serpro_gov_br); + oCaptcha_serpro_gov_br.clienteId = serpro_captcha_clienteId; + if(!localDevelopment) { + oCaptcha_serpro_gov_br.url = "/captchaserpro" + } + oCaptcha_serpro_gov_br.criarUI(element, 'css', 'serpro_captcha_component_', Main.guid()); + }, computeBoxHeight: function(){ var hPerLineOnTitle = 25; var hPerLineOnParagraph = 20; @@ -1376,12 +1395,14 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers }); }); - $(document).on('click', '.forgot-password', function(e) { + $(document).on('click', 'a.forgot-password', function(e) { var loginForm = $(this).parents('#login-form'); var $forgotPasswordForm = loginForm.siblings('#forgot-password-form'); loginForm.hide(); $forgotPasswordForm.show(); + Main.initCaptcha($forgotPasswordForm.find('#serpro_captcha')[0]); + var $message = $forgotPasswordForm.find('.message'); $message.html(''); $message.hide(); @@ -1436,10 +1457,12 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers $message.html('Verifique seu email para efetuar a troca da senha.'); $message.show(); }).fail(function() { + Main.reloadCaptcha($forgotPasswordForm.find('#serpro_captcha')[0]); var $message = $forgotPasswordForm.find('.message'); $message.html('Não foi possível requisitar a troca de senha para os dados informados.'); $message.show(); }); + e.preventDefault(); }); $(document).on('click', '.cancel-forgot-password', function(e) { @@ -1450,11 +1473,6 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers }); $(document).on('click', '.new-user', function(e) { - - if(window.lastCaptcha){ - window.lastCaptcha.destruir(); - } - var message = $('.signup .message'); message.hide(); message.text(''); @@ -1483,15 +1501,7 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers signupForm.find('#captcha_text').val(''); signupForm.find('#user_terms_accepted').removeAttr('checked'); - - var oCaptcha_serpro_gov_br; - oCaptcha_serpro_gov_br = new captcha_serpro_gov_br(); - window.lastCaptcha = oCaptcha_serpro_gov_br; - oCaptcha_serpro_gov_br.clienteId = serpro_captcha_clienteId; - if(!localDevelopment) { - oCaptcha_serpro_gov_br.url = "/captchaserpro" - } - oCaptcha_serpro_gov_br.criarUI(signupForm.find('#serpro_captcha')[0], 'css', 'serpro_captcha_component_'); + Main.initCaptcha(signupForm.find('#serpro_captcha')[0]); e.preventDefault(); }); @@ -1621,10 +1631,7 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers }) .fail(function (data) { var msg = ''; - // Reload captcha here - if(window.lastCaptcha){ - window.lastCaptcha.recarregar(); - } + Main.reloadCaptcha($signupForm.find('#serpro_captcha')[0]); if(data.responseJSON){ try{ -- libgit2 0.21.2