Commit 8a4abcdea6191cdc0056644cb3e1a40cd8e1458b

Authored by Michel Felipe
1 parent 771a9fb6

Added activate user url verification with ajax request to API

Showing 2 changed files with 64 additions and 10 deletions   Show diff stats
index.html
... ... @@ -123,6 +123,8 @@
123 123 </div>
124 124 </header>
125 125  
  126 + <div class="activate-message alert hide" role="alert"></div>
  127 +
126 128 <div id="article-container" class="article-container hide">
127 129 <a href="#" class="go-back">Voltar</a>
128 130 <div class="article-content"></div>
... ...
js/main.js
... ... @@ -53,14 +53,14 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
53 53 patt = new RegExp(':3000/');
54 54  
55 55 if(patt.test(window.location.href)){
56   - host = 'http://noosfero.com:3000';
  56 + host = 'http://login.dialoga.gov.br';
57 57 }else if (new RegExp(':3001/').test(window.location.href)){
58 58 host = 'http://noosfero.com:3001';
59   - dialoga_community = 104;
  59 + //dialoga_community = 104;
60 60 // proposal_discussion = '413'; //Eugênio
61   - proposal_discussion = '392'; //Evandro
  61 + //proposal_discussion = '392'; //Evandro
62 62 recaptchaSiteKey = '6LdsWAcTAAAAAChTUUD6yu9fCDhdIZzNd7F53zf-'; //http://noosfero.com/
63   - cat_saude = 23;
  63 + //cat_saude = 23;
64 64 } else { //ABNER
65 65 host = 'http://local.abner.com:3002';
66 66 dialoga_community = 105;
... ... @@ -303,8 +303,11 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
303 303 },
304 304 loginCallback: function(loggedIn, token, user) {
305 305 logged_in = loggedIn;
  306 + var requireLoginContainer;
306 307 $('.login .message').text('');
307   - var requireLoginContainer = loginButton.closest('.require-login-container');
  308 + if(loginButton){
  309 + requireLoginContainer = loginButton.closest('.require-login-container');
  310 + }
308 311  
309 312 if(user && !Main.getUser()) {
310 313 Main.setUser(user);
... ... @@ -315,12 +318,17 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
315 318 if(token){
316 319 Main.private_token = token;
317 320 }
318   - // requireLoginContainer = $('.require-login-container');
319   - requireLoginContainer.find('.require-login').show();
320   - requireLoginContainer.find('.require-login .message').show();
321   - requireLoginContainer.find('.login-container').hide();
  321 +
322 322 $.cookie('_dialoga_session', Main.private_token);
323   - $('#login-panel').hide();
  323 +
  324 + if(requireLoginContainer){
  325 + // requireLoginContainer = $('.require-login-container');
  326 + requireLoginContainer.find('.require-login').show();
  327 + requireLoginContainer.find('.require-login .message').show();
  328 + requireLoginContainer.find('.login-container').hide();
  329 +
  330 + $('#login-panel').hide();
  331 + }
324 332 } else if (user) {
325 333 // fluxo signup vindo das caixas de login dentro dos programas
326 334 if(requireLoginContainer.length > 0){
... ... @@ -585,6 +593,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
585 593 var regexArticle = /#\/artigo/;
586 594 var regexResultados = /resultados$/;
587 595 var regexSobreOPrograma = /sobre-o-programa$/;
  596 + var regexActivateUser = /#\/activate/;
588 597  
589 598 if( (regexHideBarra.exec(hash) === null) && !HIDE_BARRA_DO_GOVERNO ){
590 599 this.addBarraDoGoverno();
... ... @@ -602,6 +611,7 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
602 611 var isArticle = regexArticle.exec(hash) !== null;
603 612 var isResultados = regexResultados.exec(hash) !== null;
604 613 var isSobreOPrograma = regexSobreOPrograma.exec(hash) !== null;
  614 + var isActivateUser = regexActivateUser.exec(hash) !== null;
605 615  
606 616 if(isArticle) {
607 617 this.display_article(hash.split('/')[2], lastHash);
... ... @@ -673,6 +683,11 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
673 683 this.display_category_tab();
674 684 }
675 685  
  686 + if(isActivateUser){
  687 + var code = parts.pop();
  688 + Main.activateUser(code);
  689 + }
  690 +
676 691 // [BEGIN] Tracking
677 692 if (window._paq){
678 693 // _paq.push(['trackEvent', 'NavegarPara', hash || '/']);
... ... @@ -927,6 +942,43 @@ define([&#39;jquery&#39;, &#39;handlebars&#39;, &#39;fastclick&#39;, &#39;proposal_app&#39;, &#39;handlebars_helpers
927 942 },
928 943 handleLoginFail: function (e){
929 944 console.error('handleLoginFail', e);
  945 + },
  946 + activateUser: function(code){
  947 +
  948 + /**
  949 + * @TODO Import database of dialoga.gov.br into local
  950 + * and test the activation with new url
  951 + */
  952 + if(code && code.length > 0){
  953 + $.ajax({
  954 + method: 'PATCH',
  955 + url:host+'/api/v1/activate',
  956 + data: {
  957 + private_token: Main.private_token,
  958 + activation_code: code
  959 + },
  960 + success:function(response, textStatus, xhr){
  961 +
  962 + if(xhr != 202){
  963 + $('.activate-message').html('Usuário ativado com sucesso')
  964 + .removeClass('alert-danger')
  965 + .addClass('alert-success')
  966 + .show();
  967 +
  968 + $(document).trigger('login:success', response);
  969 + }
  970 +
  971 + },
  972 + error:function(xhr, textStatus, errorTrown){
  973 + if(xhr.status == 412){
  974 + $('.activate-message').html('<strong>Erro:</strong> O código de ativação é inválido')
  975 + .removeClass('alert-success')
  976 + .addClass('alert-danger')
  977 + .show();
  978 + }
  979 + }
  980 + });
  981 + }
930 982 }
931 983 };
932 984 })();
... ...