Commit 9a16a9d224ac196d034e5babbf575af9068a78ba

Authored by Victor Costa
1 parent 3c9ae4e6

Added change password form

Showing 2 changed files with 76 additions and 2 deletions   Show diff stats
@@ -422,6 +422,32 @@ @@ -422,6 +422,32 @@
422 </div> 422 </div>
423 </form> 423 </form>
424 424
  425 + <form id="new-password-form" class="new-password hide" autocomplete="off" method="post">
  426 + <p class="box-subtitle">Trocar senha</p>
  427 + <div class="message alert-danger hide"></div>
  428 + <div class="row">
  429 + <div class="value col-sm-12">
  430 + <label for="new-password" class="label">Informe a nova senha:</label>
  431 + <input id="new-password" name="password" type="password" required placeholder="Nova senha">
  432 + </div>
  433 + </div>
  434 + <div class="row">
  435 + <div class="value col-sm-12">
  436 + <label for="new-password-confirmation" class="label">Confirme a nova senha:</label>
  437 + <input id="new-password-confirmation" name="password_confirmation" type="password" required placeholder="Confirmação da senha">
  438 + </div>
  439 + <input type="hidden" id="new-password-code" name="code">
  440 + </div>
  441 + <div class="row">
  442 + <div class="col-sm-4">
  443 + <button type="submit" class="confirm-new-password button button-confirm button-block">Confirmar</button>
  444 + </div>
  445 + <div class="col-sm-4">
  446 + <button type="button" class="cancel-new-password button button-cancela button-block">Cancelar</button>
  447 + </div>
  448 + </div>
  449 + </form>
  450 +
425 <form id="forgot-password-form" class="forgot-password hide" autocomplete="off" method="post"> 451 <form id="forgot-password-form" class="forgot-password hide" autocomplete="off" method="post">
426 <p class="box-subtitle">Esqueceu sua senha?</p> 452 <p class="box-subtitle">Esqueceu sua senha?</p>
427 <div class="message alert-danger hide"></div> 453 <div class="message alert-danger hide"></div>
@@ -594,6 +594,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers @@ -594,6 +594,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
594 var regexResultados = /resultados$/; 594 var regexResultados = /resultados$/;
595 var regexSobreOPrograma = /sobre-o-programa$/; 595 var regexSobreOPrograma = /sobre-o-programa$/;
596 var regexActivateUser = /#\/activate/; 596 var regexActivateUser = /#\/activate/;
  597 + var regexChangeUserPassword = /#\/trocar_senha/;
597 598
598 if( (regexHideBarra.exec(hash) === null) && !HIDE_BARRA_DO_GOVERNO ){ 599 if( (regexHideBarra.exec(hash) === null) && !HIDE_BARRA_DO_GOVERNO ){
599 this.addBarraDoGoverno(); 600 this.addBarraDoGoverno();
@@ -612,6 +613,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers @@ -612,6 +613,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
612 var isResultados = regexResultados.exec(hash) !== null; 613 var isResultados = regexResultados.exec(hash) !== null;
613 var isSobreOPrograma = regexSobreOPrograma.exec(hash) !== null; 614 var isSobreOPrograma = regexSobreOPrograma.exec(hash) !== null;
614 var isActivateUser = regexActivateUser.exec(hash) !== null; 615 var isActivateUser = regexActivateUser.exec(hash) !== null;
  616 + var isChangeUserPassword = regexChangeUserPassword.exec(hash) !== null;
615 617
616 if(isArticle) { 618 if(isArticle) {
617 this.display_article(hash.split('/')[2], lastHash); 619 this.display_article(hash.split('/')[2], lastHash);
@@ -688,6 +690,11 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers @@ -688,6 +690,11 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
688 Main.activateUser(code); 690 Main.activateUser(code);
689 } 691 }
690 692
  693 + if(isChangeUserPassword){
  694 + var code = parts.pop();
  695 + Main.changeUserPassword(code);
  696 + }
  697 +
691 // [BEGIN] Tracking 698 // [BEGIN] Tracking
692 if (window._paq){ 699 if (window._paq){
693 // _paq.push(['trackEvent', 'NavegarPara', hash || '/']); 700 // _paq.push(['trackEvent', 'NavegarPara', hash || '/']);
@@ -944,6 +951,15 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers @@ -944,6 +951,15 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
944 handleLoginFail: function (e){ 951 handleLoginFail: function (e){
945 console.error('handleLoginFail', e); 952 console.error('handleLoginFail', e);
946 }, 953 },
  954 + changeUserPassword: function(code){
  955 + if(!code || code.length == 0) return;
  956 + var $loginPanel = $('#login-panel');
  957 + $loginPanel.show();
  958 + $loginPanel.find('#login-form').hide();
  959 + var $newPasswordForm = $loginPanel.find('#new-password-form');
  960 + $newPasswordForm.find('#new-password-code').val(code);
  961 + $newPasswordForm.show();
  962 + },
947 activateUser: function(code){ 963 activateUser: function(code){
948 964
949 /** 965 /**
@@ -1052,8 +1068,6 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers @@ -1052,8 +1068,6 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1052 $('.login-container').html(loginTemplate()); 1068 $('.login-container').html(loginTemplate());
1053 $('.countdown').maxlength({text: '%left caracteres restantes'}); 1069 $('.countdown').maxlength({text: '%left caracteres restantes'});
1054 1070
1055 - Main.navigateTo(window.location.hash);  
1056 -  
1057 $(document).on('click', '.oauth-login', function (e){ 1071 $(document).on('click', '.oauth-login', function (e){
1058 Main.oauthClientAction($(this).attr('href')); 1072 Main.oauthClientAction($(this).attr('href'));
1059 e.preventDefault(); 1073 e.preventDefault();
@@ -1112,6 +1126,8 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers @@ -1112,6 +1126,8 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1112 $('.participar').removeClass('hide'); 1126 $('.participar').removeClass('hide');
1113 })(); 1127 })();
1114 1128
  1129 + Main.navigateTo(window.location.hash);
  1130 +
1115 //Actions for links 1131 //Actions for links
1116 $( '#nav-proposal-categories a' ).on('click', function(e){ 1132 $( '#nav-proposal-categories a' ).on('click', function(e){
1117 e.preventDefault(); 1133 e.preventDefault();
@@ -1374,6 +1390,38 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers @@ -1374,6 +1390,38 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
1374 e.preventDefault(); 1390 e.preventDefault();
1375 }); 1391 });
1376 1392
  1393 + $(document).on('click', '.cancel-new-password', function(e) {
  1394 + var newPasswordForm = $(this).parents('#new-password-form');
  1395 + var loginForm = newPasswordForm.siblings('#login-form');
  1396 + loginForm.show();
  1397 + newPasswordForm.hide();
  1398 + });
  1399 +
  1400 + $(document).on('click', '.confirm-new-password', function(e) {
  1401 + var $newPasswordForm = $(this).parents('#new-password-form');
  1402 + $.ajax({
  1403 + method: 'PATCH',
  1404 + url:host+'/api/v1/new_password',
  1405 + data: {
  1406 + code: $newPasswordForm.find('#new-password-code').val(),
  1407 + password: $newPasswordForm.find('#new-password').val(),
  1408 + password_confirmation: $newPasswordForm.find('#new-password-confirmation').val()
  1409 + },
  1410 + }).done(function(data) {
  1411 + $newPasswordForm.find('.cancel-new-password').click();
  1412 + var $message = $newPasswordForm.siblings('#login-form').find('.message-success');
  1413 + $message.html('Senha alterada com sucesso.');
  1414 + $message.show();
  1415 + Main.loginCallback(data.activated, data.private_token, data);
  1416 + window.location.hash = '/';
  1417 + }).fail(function() {
  1418 + var $message = $newPasswordForm.find('.message');
  1419 + $message.html('Não foi possível trocar a senha com os dados informados.');
  1420 + $message.show();
  1421 + });
  1422 + e.preventDefault();
  1423 + });
  1424 +
1377 $(document).on('click', '.confirm-forgot-password', function(e) { 1425 $(document).on('click', '.confirm-forgot-password', function(e) {
1378 var $forgotPasswordForm = $(this).parents('#forgot-password-form'); 1426 var $forgotPasswordForm = $(this).parents('#forgot-password-form');
1379 var $inputValue = $forgotPasswordForm.find('#forgot-password-value'); 1427 var $inputValue = $forgotPasswordForm.find('#forgot-password-value');