Commit 9a16a9d224ac196d034e5babbf575af9068a78ba
1 parent
3c9ae4e6
Exists in
master
and in
5 other branches
Added change password form
Showing
2 changed files
with
76 additions
and
2 deletions
Show diff stats
index.html
... | ... | @@ -422,6 +422,32 @@ |
422 | 422 | </div> |
423 | 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 | 451 | <form id="forgot-password-form" class="forgot-password hide" autocomplete="off" method="post"> |
426 | 452 | <p class="box-subtitle">Esqueceu sua senha?</p> |
427 | 453 | <div class="message alert-danger hide"></div> | ... | ... |
js/main.js
... | ... | @@ -594,6 +594,7 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers |
594 | 594 | var regexResultados = /resultados$/; |
595 | 595 | var regexSobreOPrograma = /sobre-o-programa$/; |
596 | 596 | var regexActivateUser = /#\/activate/; |
597 | + var regexChangeUserPassword = /#\/trocar_senha/; | |
597 | 598 | |
598 | 599 | if( (regexHideBarra.exec(hash) === null) && !HIDE_BARRA_DO_GOVERNO ){ |
599 | 600 | this.addBarraDoGoverno(); |
... | ... | @@ -612,6 +613,7 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers |
612 | 613 | var isResultados = regexResultados.exec(hash) !== null; |
613 | 614 | var isSobreOPrograma = regexSobreOPrograma.exec(hash) !== null; |
614 | 615 | var isActivateUser = regexActivateUser.exec(hash) !== null; |
616 | + var isChangeUserPassword = regexChangeUserPassword.exec(hash) !== null; | |
615 | 617 | |
616 | 618 | if(isArticle) { |
617 | 619 | this.display_article(hash.split('/')[2], lastHash); |
... | ... | @@ -688,6 +690,11 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers |
688 | 690 | Main.activateUser(code); |
689 | 691 | } |
690 | 692 | |
693 | + if(isChangeUserPassword){ | |
694 | + var code = parts.pop(); | |
695 | + Main.changeUserPassword(code); | |
696 | + } | |
697 | + | |
691 | 698 | // [BEGIN] Tracking |
692 | 699 | if (window._paq){ |
693 | 700 | // _paq.push(['trackEvent', 'NavegarPara', hash || '/']); |
... | ... | @@ -944,6 +951,15 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers |
944 | 951 | handleLoginFail: function (e){ |
945 | 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 | 963 | activateUser: function(code){ |
948 | 964 | |
949 | 965 | /** |
... | ... | @@ -1052,8 +1068,6 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers |
1052 | 1068 | $('.login-container').html(loginTemplate()); |
1053 | 1069 | $('.countdown').maxlength({text: '%left caracteres restantes'}); |
1054 | 1070 | |
1055 | - Main.navigateTo(window.location.hash); | |
1056 | - | |
1057 | 1071 | $(document).on('click', '.oauth-login', function (e){ |
1058 | 1072 | Main.oauthClientAction($(this).attr('href')); |
1059 | 1073 | e.preventDefault(); |
... | ... | @@ -1112,6 +1126,8 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers |
1112 | 1126 | $('.participar').removeClass('hide'); |
1113 | 1127 | })(); |
1114 | 1128 | |
1129 | + Main.navigateTo(window.location.hash); | |
1130 | + | |
1115 | 1131 | //Actions for links |
1116 | 1132 | $( '#nav-proposal-categories a' ).on('click', function(e){ |
1117 | 1133 | e.preventDefault(); |
... | ... | @@ -1374,6 +1390,38 @@ define(['jquery', 'handlebars', 'fastclick', 'proposal_app', 'handlebars_helpers |
1374 | 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 | 1425 | $(document).on('click', '.confirm-forgot-password', function(e) { |
1378 | 1426 | var $forgotPasswordForm = $(this).parents('#forgot-password-form'); |
1379 | 1427 | var $inputValue = $forgotPasswordForm.find('#forgot-password-value'); | ... | ... |