Commit e9bfbb5d86e6ebbf7be35d81d924096d51f098a1

Authored by Victor Costa
1 parent 02409a0b

Refactoring captcha and display captcha in forgot password form

Showing 2 changed files with 37 additions and 20 deletions   Show diff stats
index.html
... ... @@ -450,7 +450,7 @@
450 450 </div>
451 451 </form>
452 452  
453   - <form id="forgot-password-form" class="forgot-password hide" autocomplete="off" method="post">
  453 + <form id="forgot-password-form" class="forgot-password-form hide" autocomplete="off" method="post">
454 454 <p class="box-subtitle">Esqueceu sua senha?</p>
455 455 <div class="message alert-danger hide"></div>
456 456 <div class="row">
... ... @@ -460,6 +460,16 @@
460 460 </div>
461 461 </div>
462 462 <div class="row">
  463 + <div id="serpro_captcha" class="captcha col-sm-12">
  464 + </div>
  465 + <div class="captcha col-sm-12">
  466 + Digite os caracteres acima:
  467 + </div>
  468 + <div class="captcha col-sm-6">
  469 + <input type="text" name="captcha_text" id="captcha_text">
  470 + </div>
  471 + </div>
  472 + <div class="row">
463 473 <div class="col-sm-4">
464 474 <button type="submit" class="confirm-forgot-password button button-confirm button-block">Confirmar</button>
465 475 </div>
... ...
js/main.js
... ... @@ -888,6 +888,25 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
888 888 });
889 889 });
890 890 },
  891 + reloadCaptcha: function(element) {
  892 + var $element = $(element);
  893 + if($element.data('captcha')){
  894 + $element.data('captcha').recarregar();
  895 + }
  896 + },
  897 + initCaptcha: function(element) {
  898 + var $element = $(element);
  899 + if($element.data('captcha')) return;
  900 +
  901 + $element.val('');
  902 + var oCaptcha_serpro_gov_br = new captcha_serpro_gov_br();
  903 + $element.data('captcha', oCaptcha_serpro_gov_br);
  904 + oCaptcha_serpro_gov_br.clienteId = serpro_captcha_clienteId;
  905 + if(!localDevelopment) {
  906 + oCaptcha_serpro_gov_br.url = "/captchaserpro"
  907 + }
  908 + oCaptcha_serpro_gov_br.criarUI(element, 'css', 'serpro_captcha_component_', Main.guid());
  909 + },
891 910 computeBoxHeight: function(){
892 911 var hPerLineOnTitle = 25;
893 912 var hPerLineOnParagraph = 20;
... ... @@ -1376,12 +1395,14 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1376 1395 });
1377 1396 });
1378 1397  
1379   - $(document).on('click', '.forgot-password', function(e) {
  1398 + $(document).on('click', 'a.forgot-password', function(e) {
1380 1399 var loginForm = $(this).parents('#login-form');
1381 1400 var $forgotPasswordForm = loginForm.siblings('#forgot-password-form');
1382 1401 loginForm.hide();
1383 1402 $forgotPasswordForm.show();
1384 1403  
  1404 + Main.initCaptcha($forgotPasswordForm.find('#serpro_captcha')[0]);
  1405 +
1385 1406 var $message = $forgotPasswordForm.find('.message');
1386 1407 $message.html('');
1387 1408 $message.hide();
... ... @@ -1436,10 +1457,12 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1436 1457 $message.html('Verifique seu email para efetuar a troca da senha.');
1437 1458 $message.show();
1438 1459 }).fail(function() {
  1460 + Main.reloadCaptcha($forgotPasswordForm.find('#serpro_captcha')[0]);
1439 1461 var $message = $forgotPasswordForm.find('.message');
1440 1462 $message.html('Não foi possível requisitar a troca de senha para os dados informados.');
1441 1463 $message.show();
1442 1464 });
  1465 + e.preventDefault();
1443 1466 });
1444 1467  
1445 1468 $(document).on('click', '.cancel-forgot-password', function(e) {
... ... @@ -1450,11 +1473,6 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1450 1473 });
1451 1474  
1452 1475 $(document).on('click', '.new-user', function(e) {
1453   -
1454   - if(window.lastCaptcha){
1455   - window.lastCaptcha.destruir();
1456   - }
1457   -
1458 1476 var message = $('.signup .message');
1459 1477 message.hide();
1460 1478 message.text('');
... ... @@ -1483,15 +1501,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1483 1501 signupForm.find('#captcha_text').val('');
1484 1502 signupForm.find('#user_terms_accepted').removeAttr('checked');
1485 1503  
1486   -
1487   - var oCaptcha_serpro_gov_br;
1488   - oCaptcha_serpro_gov_br = new captcha_serpro_gov_br();
1489   - window.lastCaptcha = oCaptcha_serpro_gov_br;
1490   - oCaptcha_serpro_gov_br.clienteId = serpro_captcha_clienteId;
1491   - if(!localDevelopment) {
1492   - oCaptcha_serpro_gov_br.url = "/captchaserpro"
1493   - }
1494   - oCaptcha_serpro_gov_br.criarUI(signupForm.find('#serpro_captcha')[0], 'css', 'serpro_captcha_component_');
  1504 + Main.initCaptcha(signupForm.find('#serpro_captcha')[0]);
1495 1505  
1496 1506 e.preventDefault();
1497 1507 });
... ... @@ -1621,10 +1631,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1621 1631 })
1622 1632 .fail(function (data) {
1623 1633 var msg = '';
1624   - // Reload captcha here
1625   - if(window.lastCaptcha){
1626   - window.lastCaptcha.recarregar();
1627   - }
  1634 + Main.reloadCaptcha($signupForm.find('#serpro_captcha')[0]);
1628 1635  
1629 1636 if(data.responseJSON){
1630 1637 try{
... ...