Commit 66f5cb153cd454c219bfb3242b2a3aa7c98842d4
Exists in
master
and in
5 other branches
Merge branch 'master' of gitlab.com:participa/proposal-app
Conflicts: js/handlebars-helpers.js js/main.js
Showing
7 changed files
with
862 additions
and
511 deletions
Show diff stats
images/logo.png
index.html
| ... | ... | @@ -90,7 +90,6 @@ |
| 90 | 90 | fjs.parentNode.insertBefore(js, fjs); |
| 91 | 91 | }(document, 'script', 'facebook-jssdk'));</script> |
| 92 | 92 | |
| 93 | - | |
| 94 | 93 | <div class=""> |
| 95 | 94 | <div id="proposal-result"></div> |
| 96 | 95 | </div> |
| ... | ... | @@ -98,11 +97,20 @@ |
| 98 | 97 | |
| 99 | 98 | <script id="proposal-template" type="text/x-handlebars-template"> |
| 100 | 99 | <header class="container"> |
| 101 | - <a id="display-contrast" href="#">Alto Contraste</a> | |
| 102 | - <div class="participar"> | |
| 103 | - <!--<a href="#" class="button button-inline participe">Participe</a>--> | |
| 104 | - <a href="#" class="entrar">Entrar</a> | |
| 105 | - <a href="#" class="logout hide">Sair</a> | |
| 100 | + <div class="row" style="margin: 10px 0 0 0"> | |
| 101 | + <div class="col-xs-5"> | |
| 102 | + <a id="display-contrast" href="#">Alto Contraste</a> | |
| 103 | + </div> | |
| 104 | + <div class="col-xs-7"> | |
| 105 | + <div class="participar"> | |
| 106 | + <!--<a href="#" class="button button-inline participe">Participe</a>--> | |
| 107 | + <a id="login-button" href="#" class="login"><i class="icon icon-login"></i>Entrar</a> | |
| 108 | + <a id="logout-button" href="#" class="logout hide"><i class="icon icon-login"></i><span class="name"></span>Sair</a> | |
| 109 | + </div> | |
| 110 | + </div> | |
| 111 | + <div class="col-xs-12"> | |
| 112 | + <div id="login-panel" class="hide"></div> | |
| 113 | + </div> | |
| 106 | 114 | </div> |
| 107 | 115 | <h1> |
| 108 | 116 | <a href="#" class='logo'>{{article.title}}</a> |
| ... | ... | @@ -304,34 +312,34 @@ |
| 304 | 312 | |
| 305 | 313 | <div class="talk-proposal-container col-sm-12"> |
| 306 | 314 | <section class="talk-proposal box box-propostas"> |
| 307 | - <div class="container-title box-title">Bate-papo com os ministros</div> | |
| 315 | + <div class="container-title box-title">Bate-papo com ministras e ministros</div> | |
| 308 | 316 | <p>Confira as datas e horários:</p> |
| 309 | 317 | <ul class="calendar saude" data-slick='{"infinite": false, "rows": 2}'> |
| 310 | 318 | <li> |
| 311 | - <span id='ep0'>Arthur Chioro</span> | |
| 319 | + <span id='ep0'></span> | |
| 312 | 320 | <span>Saúde</span> |
| 313 | - <div id='ed0' class="date"><i class="fa fa-calendar"></i> 17/06/2015</div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 321 | + <div id='ed0' class="date"><i class="fa fa-calendar"></i></div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 314 | 322 | </li> |
| 315 | 323 | </ul> |
| 316 | 324 | <ul class="calendar seguranca-publica" data-slick='{"infinite": false, "rows": 2}'> |
| 317 | 325 | <li> |
| 318 | - <span id='ep1'>José Eduardo Cardozo</span> | |
| 326 | + <span id='ep1'></span> | |
| 319 | 327 | <span id='ed1'>Justiça</span> |
| 320 | - <div class="date"><i class="fa fa-calendar"></i> 25/04/2015</div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 328 | + <div class="date"><i class="fa fa-calendar"></i></div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 321 | 329 | </li> |
| 322 | 330 | </ul> |
| 323 | 331 | <ul class="calendar educacao" data-slick='{"infinite": false, "rows": 2}'> |
| 324 | 332 | <li> |
| 325 | - <span id='ep2'>Renato Janine Ribeiro</span> | |
| 333 | + <span id='ep2'></span> | |
| 326 | 334 | <span>Educação</span> |
| 327 | - <div id='ed2' class="date"><i class="fa fa-calendar"></i> 24/06/2015</div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 335 | + <div id='ed2' class="date"><i class="fa fa-calendar"></i></div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 328 | 336 | </li> |
| 329 | 337 | </ul> |
| 330 | 338 | <ul class="calendar reducao-da-pobreza" data-slick='{"infinite": false, "rows": 2}'> |
| 331 | 339 | <li> |
| 332 | - <span id='ep3'>Tereza Campello</span> | |
| 340 | + <span id='ep3'></span> | |
| 333 | 341 | <span>Desenvolvimento Social</span> |
| 334 | - <div id='ed3' class="date"><i class="fa fa-calendar"></i> 18/06/2015</div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 342 | + <div id='ed3' class="date"><i class="fa fa-calendar"></i></div><div class="time"><i class="fa fa-clock-o"></i> 19:00</div> | |
| 335 | 343 | </li> |
| 336 | 344 | </ul> |
| 337 | 345 | </section> |
| ... | ... | @@ -359,7 +367,7 @@ |
| 359 | 367 | <a href="#" class="skip button box-footer">Pular</a> |
| 360 | 368 | </div> |
| 361 | 369 | </div> |
| 362 | - <a href="#" class="vote-result box-bottom">Resultados</a> | |
| 370 | + <a href="#/programas/{{parent.id}}/resultados" class="vote-result box-bottom">Resultados</a> | |
| 363 | 371 | </div> |
| 364 | 372 | <div class="social"> |
| 365 | 373 | <span>Compartilhe esta proposta</span> |
| ... | ... | @@ -367,13 +375,13 @@ |
| 367 | 375 | </div> |
| 368 | 376 | </script> |
| 369 | 377 | |
| 370 | - <script id="results" type="text/x-handlebars-template"> | |
| 378 | + <script id="results-template" type="text/x-handlebars-template"> | |
| 371 | 379 | <div class="box box-propostas"> |
| 372 | 380 | <div class="loading">Carregando...</div> |
| 373 | 381 | <div class="results-content hide"> |
| 374 | 382 | <a href="#" class="vote-result"><span class="sr-only">Fechar</span><span class="fa fa-times"></span></a> |
| 375 | 383 | <h2>Resultados</h2> |
| 376 | - <span class="total">Total de propostas: <strong class="value">{{pagination.total}}</strong></span> | |
| 384 | + <span class="total">Total de propostas para o programa {{title}}: <strong class="value">{{pagination.total}}</strong></span> | |
| 377 | 385 | <div class="updated-at"> |
| 378 | 386 | <span>Última atualização </span> |
| 379 | 387 | <span class="timeago" title="{{updated_at}}"></span> |
| ... | ... | @@ -382,7 +390,7 @@ |
| 382 | 390 | <table class="footable"> |
| 383 | 391 | <thead> |
| 384 | 392 | <tr class="header"> |
| 385 | - <th class="position">Posição <a href="#/artigo/108047" class="hidden-xs"><span class="fa fa-question"></span></a></th> | |
| 393 | + <th class="position">Posição <a href="#/artigo/108047" class="question-link"><span class="fa fa-question"></span></a></th> | |
| 386 | 394 | <th class="abstract-text" data-toggle="true">Propostas</th> |
| 387 | 395 | <th class="views" data-hide="phone">Exibições</th> |
| 388 | 396 | <th class="votes-for" data-hide="phone"><span class="sr-only">A favor</span><span class="fa fa-check"></span></th> |
| ... | ... | @@ -407,7 +415,7 @@ |
| 407 | 415 | </div> |
| 408 | 416 | </script> |
| 409 | 417 | |
| 410 | - <script id="login" type="text/x-handlebars-template"> | |
| 418 | + <script id="login-template" type="text/x-handlebars-template"> | |
| 411 | 419 | <div class="loading">Carregando...</div> |
| 412 | 420 | <form id="login-form" class="login"> |
| 413 | 421 | <div class="message hide"></div> |
| ... | ... | @@ -485,7 +493,7 @@ |
| 485 | 493 | </ul> |
| 486 | 494 | </script> |
| 487 | 495 | |
| 488 | - <script id="article" type="text/x-handlebars-template"> | |
| 496 | + <script id="article-template" type="text/x-handlebars-template"> | |
| 489 | 497 | <div class="title"> |
| 490 | 498 | {{{title}}} |
| 491 | 499 | </div> |
| ... | ... | @@ -506,11 +514,11 @@ |
| 506 | 514 | <a href="#/artigo/107880">Termos de uso</a> |
| 507 | 515 | </div> |
| 508 | 516 | |
| 509 | - <script type='text/javascript' > | |
| 517 | + <script type="text/javascript"> | |
| 510 | 518 | loadRequireJS(); |
| 511 | 519 | </script> |
| 512 | 520 | |
| 513 | - <script src='https://www.google.com/recaptcha/api.js?hl=pt-BR' async defer></script> | |
| 521 | + <script src="https://www.google.com/recaptcha/api.js?hl=pt-BR" async defer></script> | |
| 514 | 522 | |
| 515 | 523 | </body> |
| 516 | 524 | ... | ... |
js/handlebars-helpers.js
| ... | ... | @@ -18,26 +18,34 @@ define(['handlebars'], function(Handlebars){ |
| 18 | 18 | var ret = ""; |
| 19 | 19 | for(var i=0, j=proposals.length; i<j; i++) { |
| 20 | 20 | var proposal = proposals[i]; |
| 21 | - | |
| 22 | - element = '<li class="proposal-item col-sm-6">' + | |
| 23 | - '<a href="#/programas/'+proposal.id+'" data-target="proposal-item-'+proposal.id+'" class="proposal-link box">' + | |
| 21 | + | |
| 22 | + element = '<li class="proposal-item col-sm-6">' + | |
| 23 | + '<a href="#/programas/' + proposal.id + '" data-target="proposal-item-' + proposal.id + '" class="proposal-link box">' + | |
| 24 | 24 | '<div class="box-header item">'; |
| 25 | 25 | category = "<div class='category box-category'>"; |
| 26 | - | |
| 27 | - | |
| 28 | - for(var x=0, y=proposal.categories.length; x<y; x++) { | |
| 29 | - if((options.hash['category'] != null) && (options.hash['category'] != proposal.categories[x].slug)){ | |
| 26 | + | |
| 27 | + | |
| 28 | + for (var x = 0, y = proposal.categories.length; x < y; x++) { | |
| 29 | + if ((options.hash['category'] != null) && (options.hash['category'] != proposal.categories[x].slug)) { | |
| 30 | 30 | element = ''; |
| 31 | 31 | continue; |
| 32 | - } | |
| 33 | - category = category + '<div class="category-'+proposal.categories[x].slug+'">' + proposal.categories[x].name + '</div>'; | |
| 32 | + } | |
| 33 | + category = category + '<div class="category-' + proposal.categories[x].slug + '">' + proposal.categories[x].name + '</div>'; | |
| 34 | 34 | } |
| 35 | - if(element == ''){ | |
| 35 | + if (element == '') { | |
| 36 | 36 | continue; |
| 37 | 37 | } |
| 38 | + if (proposal.image) { | |
| 39 | + category = category + '</div>' + | |
| 40 | + '<div class="box-body">' + | |
| 41 | + // '<div class="box__image">' + '<img src="' + options.hash['host'] + proposal.image.url + '" alt="Imagem de apresentação do programa."/>' + '</div>' + | |
| 42 | + '<div class="box__image" style="background-image:url(' + (options.hash['host'] + proposal.image.url) + ')"></div>' + | |
| 43 | + '<div class="box__title">' + proposal.title + '</div>' + | |
| 44 | + (proposal.abstract ? '<div class="box__abstract">' + proposal.abstract + '</div>' : '') + | |
| 45 | + '<div class="box__footer">' + '<span class="button participe">OPINE NESTE PROGRAMA</span>' + '</div>' + | |
| 46 | + '</div>'; | |
| 47 | + } | |
| 38 | 48 | |
| 39 | - if(proposal.image) | |
| 40 | - category = category + '</div>' + '<div class="box-body">' + '<img src="' + options.hash['host'] + proposal.image.url + '" alt="Imagem de apresentação do programa."/>' + proposal.title + (proposal.abstract ? proposal.abstract : '') + '<span class="button participe">OPINE NESTE PROGRAMA</span></div>'; | |
| 41 | 49 | // element = element + options.fn(proposal); |
| 42 | 50 | |
| 43 | 51 | element = element + category; | ... | ... |
| ... | ... | @@ -0,0 +1,31 @@ |
| 1 | +$.fn.equalHeights = function(px) { | |
| 2 | + 'use strict'; | |
| 3 | + | |
| 4 | + var currentTallest = 0; | |
| 5 | + $(this).each(function(index, item){ | |
| 6 | + var $item = $(item); | |
| 7 | + $item.height('auto'); // force a 'recalc' height | |
| 8 | + | |
| 9 | + if ($item.height() > currentTallest) { currentTallest = $item.height(); } | |
| 10 | + if (!px && Number.prototype.pxToEm) { currentTallest = currentTallest.pxToEm(); } //use ems unless px is specified | |
| 11 | + // for ie6, set height since min-height isn't supported | |
| 12 | + if (typeof(document.body.style.minHeight) === 'undefined') { $item.css({'height': currentTallest}); } | |
| 13 | + $item.css({'height': currentTallest}); | |
| 14 | + }); | |
| 15 | + return this; | |
| 16 | +}; | |
| 17 | + | |
| 18 | +// just in case you need it... | |
| 19 | +// $.fn.equalWidths = function(px) { | |
| 20 | +// $(this).each(function(){ | |
| 21 | +// var currentWidest = 0; | |
| 22 | +// $(this).children().each(function(i){ | |
| 23 | +// if($(this).width() > currentWidest) { currentWidest = $(this).width(); } | |
| 24 | +// }); | |
| 25 | +// if(!px && Number.prototype.pxToEm) currentWidest = currentWidest.pxToEm(); //use ems unless px is specified | |
| 26 | +// // for ie6, set width since min-width isn't supported | |
| 27 | +// if (typeof(document.body.style.minHeight) === "undefined") { $(this).children().css({'width': currentWidest}); } | |
| 28 | +// $(this).children().css({'min-width': currentWidest}); | |
| 29 | +// }); | |
| 30 | +// return this; | |
| 31 | +// }; | |
| 0 | 32 | \ No newline at end of file | ... | ... |
js/main.js
| ... | ... | @@ -7,9 +7,9 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 7 | 7 | // compile the template |
| 8 | 8 | var template = Handlebars.compile(templateSource); |
| 9 | 9 | var supportProposalTemplate = Handlebars.compile(document.getElementById('support-proposal-template').innerHTML); |
| 10 | - var loginTemplate = Handlebars.compile(document.getElementById('login').innerHTML); | |
| 11 | - var resultsTemplate = Handlebars.compile(document.getElementById('results').innerHTML); | |
| 12 | - var articleTemplate = Handlebars.compile(document.getElementById('article').innerHTML); | |
| 10 | + var loginTemplate = Handlebars.compile(document.getElementById('login-template').innerHTML); | |
| 11 | + var resultsTemplate = Handlebars.compile(document.getElementById('results-template').innerHTML); | |
| 12 | + var articleTemplate = Handlebars.compile(document.getElementById('article-template').innerHTML); | |
| 13 | 13 | |
| 14 | 14 | // The div/container that we are going to display the results in |
| 15 | 15 | var resultsPlaceholder = document.getElementById('proposal-result'); |
| ... | ... | @@ -18,7 +18,7 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 18 | 18 | |
| 19 | 19 | var loginButton; |
| 20 | 20 | |
| 21 | - var lastHash; | |
| 21 | + var lastHash = window.location.hash; | |
| 22 | 22 | |
| 23 | 23 | var participa = true; |
| 24 | 24 | |
| ... | ... | @@ -130,7 +130,7 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 130 | 130 | |
| 131 | 131 | if(ProposalApp.hasProposalbeenVoted(article.id)){ |
| 132 | 132 | console.log("Proposta " + article.id + " já havia sido votada"); |
| 133 | - Main.displaySuccess(button.closest('.support-proposal .section-content'), 'Voto realizado com sucesso', 800); | |
| 133 | + Main.displaySuccess(button.closest('.support-proposal .section-content'), 'Seu voto já foi computado nesta proposta', 800); | |
| 134 | 134 | contextMain.loadRandomProposal(topic_id); |
| 135 | 135 | e.preventDefault(); |
| 136 | 136 | return; |
| ... | ... | @@ -143,8 +143,12 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 143 | 143 | value: $(this).data('vote-value'), |
| 144 | 144 | private_token: Main.private_token |
| 145 | 145 | } |
| 146 | - }).done(function( /*data*/ ) { | |
| 147 | - Main.displaySuccess(button.closest('.support-proposal .section-content'), 'Voto realizado com sucesso', 800); | |
| 146 | + }).done(function(data) { | |
| 147 | + if(data.vote) { | |
| 148 | + Main.displaySuccess(button.closest('.support-proposal .section-content'), 'Voto realizado com sucesso', 800); | |
| 149 | + } else { | |
| 150 | + Main.displaySuccess(button.closest('.support-proposal .section-content'), 'Seu voto já foi computado nesta proposta', 800); | |
| 151 | + } | |
| 148 | 152 | ProposalApp.addVotedProposal(article.id); |
| 149 | 153 | contextMain.loadRandomProposal(topic_id); |
| 150 | 154 | }); |
| ... | ... | @@ -153,6 +157,8 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 153 | 157 | |
| 154 | 158 | $body.off('click', '.vote-result'); |
| 155 | 159 | $body.on('click', '.vote-result', function(e) { |
| 160 | + // e.preventDefault(); | |
| 161 | + | |
| 156 | 162 | var $this = $(this); |
| 157 | 163 | var $proposalDetail = $this.parents('.proposal-detail'); |
| 158 | 164 | var $resultsContainer = $proposalDetail.find('.results-container'); |
| ... | ... | @@ -160,463 +166,494 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 160 | 166 | if($resultsContainer.css('display') === 'none') { |
| 161 | 167 | Main.loadRanking($resultsContainer, topic_id, 1); |
| 162 | 168 | } else { |
| 163 | - $('.experience-proposal-container').show(); | |
| 164 | - $('.talk-proposal-container').show(); | |
| 169 | + $proposalDetail.find('.experience-proposal-container').show(); | |
| 170 | + $proposalDetail.find('.talk-proposal-container').show(); | |
| 165 | 171 | $resultsContainer.hide(); |
| 166 | 172 | } |
| 167 | - e.preventDefault(); | |
| 168 | 173 | }); |
| 174 | + | |
| 175 | + // $body.off('click', '.question-link'); | |
| 176 | + // $body.on('click', '.question-link', function(e) { | |
| 177 | + // var $this = $(this); | |
| 178 | + | |
| 179 | + // // Main.navigateTo($this.attr('href'), backTo); | |
| 180 | + // }); | |
| 169 | 181 | }).fail(function(){ |
| 170 | 182 | $loading.hide(); |
| 171 | 183 | $('.support-proposal .alert').show(); |
| 172 | 184 | }); |
| 173 | - }, | |
| 174 | - | |
| 175 | - loadRanking: function($resultsContainer, topic_id, page) { | |
| 176 | - $resultsContainer.find('.loading').show(); | |
| 177 | - $resultsContainer.find('.results-content').hide(); | |
| 178 | - | |
| 179 | - var per_page = 10; | |
| 180 | - var url = host + '/api/v1/proposals_discussion_plugin/' + topic_id + '/ranking' + '?private_token=' + Main.private_token + '&per_page='+per_page+'&page='+page; | |
| 181 | - $.getJSON(url).done(function( data, stats, xhr ) { | |
| 182 | - data.pagination = { | |
| 183 | - total: parseInt(xhr.getResponseHeader('Total')), | |
| 184 | - per_page: parseInt(xhr.getResponseHeader('Per-Page')), | |
| 185 | - page: page, | |
| 186 | - }; | |
| 187 | - | |
| 188 | - $resultsContainer.html(resultsTemplate(data)); | |
| 189 | - $resultsContainer.find('.loading').hide(); | |
| 190 | - $resultsContainer.find('.results-content').show(); | |
| 191 | - $(".timeago").timeago(); | |
| 192 | - $resultsContainer.show(); | |
| 193 | - | |
| 194 | - $('.footable').footable(); | |
| 195 | - | |
| 196 | - if(data.pagination.total > data.pagination.per_page) { | |
| 197 | - $resultsContainer.find('.paging').pagination({ | |
| 198 | - items: data.pagination.total, | |
| 199 | - itemsOnPage: data.pagination.per_page, | |
| 200 | - currentPage: data.pagination.page, | |
| 201 | - prevText: '«', | |
| 202 | - nextText: '»', | |
| 203 | - cssStyle: 'compact-theme', | |
| 204 | - onPageClick: function(page, e) { | |
| 205 | - Main.loadRanking($resultsContainer, topic_id, page); | |
| 206 | - e.preventDefault(); | |
| 207 | - } | |
| 208 | - }); | |
| 209 | - } | |
| 210 | - $resultsContainer.find('.abstract-text .truncated').click(function() { | |
| 211 | - $(this).toggleClass('truncated'); | |
| 185 | + }, | |
| 186 | + loadRanking: function($resultsContainer, topic_id, page) { | |
| 187 | + $resultsContainer.find('.loading').show(); | |
| 188 | + $resultsContainer.find('.results-content').hide(); | |
| 189 | + | |
| 190 | + var per_page = 10; | |
| 191 | + var url = host + '/api/v1/proposals_discussion_plugin/' + topic_id + '/ranking' + '?private_token=' + Main.private_token + '&per_page='+per_page+'&page='+page; | |
| 192 | + $.getJSON(url).done(function( data, stats, xhr ) { | |
| 193 | + data.pagination = { | |
| 194 | + total: parseInt(xhr.getResponseHeader('Total')), | |
| 195 | + per_page: parseInt(xhr.getResponseHeader('Per-Page')), | |
| 196 | + page: page, | |
| 197 | + }; | |
| 198 | + | |
| 199 | + // hack: add title to result table | |
| 200 | + data.title = $resultsContainer.closest('.categories').find('.proposal-header .title').text(); | |
| 201 | + | |
| 202 | + $resultsContainer.html(resultsTemplate(data)); | |
| 203 | + $resultsContainer.find('.loading').hide(); | |
| 204 | + $resultsContainer.find('.results-content').show(); | |
| 205 | + $(".timeago").timeago(); | |
| 206 | + $resultsContainer.show(); | |
| 207 | + | |
| 208 | + $('.footable').footable(); | |
| 209 | + | |
| 210 | + if(data.pagination.total > data.pagination.per_page) { | |
| 211 | + $resultsContainer.find('.paging').pagination({ | |
| 212 | + items: data.pagination.total, | |
| 213 | + itemsOnPage: data.pagination.per_page, | |
| 214 | + currentPage: data.pagination.page, | |
| 215 | + prevText: '«', | |
| 216 | + nextText: '»', | |
| 217 | + cssStyle: 'compact-theme', | |
| 218 | + onPageClick: function(page, e) { | |
| 219 | + Main.loadRanking($resultsContainer, topic_id, page); | |
| 220 | + e.preventDefault(); | |
| 221 | + } | |
| 212 | 222 | }); |
| 213 | - | |
| 214 | - // scroll to the end | |
| 215 | - $('html, body').animate({ | |
| 216 | - scrollTop: $(document).height() | |
| 217 | - }, 'fast'); | |
| 223 | + } | |
| 224 | + $resultsContainer.find('.abstract-text .truncated').click(function() { | |
| 225 | + $(this).toggleClass('truncated'); | |
| 218 | 226 | }); |
| 219 | - $('.experience-proposal-container').hide(); | |
| 220 | - $('.talk-proposal-container').hide(); | |
| 221 | - }, | |
| 222 | 227 | |
| 223 | - loginCallback: function(loggedIn, token, user) { | |
| 224 | - logged_in = loggedIn; | |
| 225 | - $('.login .message').text(''); | |
| 226 | - var requireLoginContainer = loginButton.closest('.require-login-container'); | |
| 227 | - | |
| 228 | - if(logged_in) { | |
| 229 | - Main.showLogout(); | |
| 230 | - if(token){ | |
| 231 | - Main.private_token = token; | |
| 232 | - } | |
| 233 | - requireLoginContainer = $('.require-login-container'); | |
| 234 | - requireLoginContainer.find('.require-login').show(); | |
| 235 | - requireLoginContainer.find('.require-login .message').show(); | |
| 236 | - requireLoginContainer.find('.login-container').hide(); | |
| 237 | - $.cookie('_dialoga_session', Main.private_token); | |
| 238 | - } else if (user) { | |
| 239 | - var loginContainer = requireLoginContainer.find('.login-container'); | |
| 240 | - loginContainer.show(); | |
| 241 | - loginContainer.find('.new-user').click(); | |
| 242 | - var signupForm = loginContainer.find('#signup-form'); | |
| 243 | - signupForm.find("#user_email").val(user.email); | |
| 244 | - signupForm.find("#user_name").val(user.login); | |
| 245 | - signupForm.find("#user_oauth_providers").val(user.oauth_providers); | |
| 246 | - //signupForm.find(".password").hide(); | |
| 247 | - //signupForm.find(".password-confirmation").hide(); | |
| 248 | - } else { | |
| 249 | - requireLoginContainer.find('.require-login').hide(); | |
| 250 | - requireLoginContainer.find('.login-container').show(); | |
| 251 | - Main.showLogin(); | |
| 228 | + var scrollTop = $(document).height(); | |
| 229 | + var proposalOffset = $resultsContainer.offset(); | |
| 230 | + if(proposalOffset){ | |
| 231 | + scrollTop = proposalOffset.top; | |
| 252 | 232 | } |
| 253 | - }, | |
| 254 | - guid: function() { | |
| 255 | - function s4() { | |
| 256 | - return Math.floor((1 + Math.random()) * 0x10000) | |
| 257 | - .toString(16) | |
| 258 | - .substring(1); | |
| 233 | + | |
| 234 | + // scroll to the end | |
| 235 | + $('html, body').animate({scrollTop: scrollTop }, 'fast'); | |
| 236 | + }); | |
| 237 | + $('.experience-proposal-container').hide(); | |
| 238 | + $('.talk-proposal-container').hide(); | |
| 239 | + }, | |
| 240 | + loginCallback: function(loggedIn, token, user) { | |
| 241 | + logged_in = loggedIn; | |
| 242 | + $('.login .message').text(''); | |
| 243 | + var requireLoginContainer = loginButton.closest('.require-login-container'); | |
| 244 | + | |
| 245 | + if(logged_in) { | |
| 246 | + Main.showLogout(); | |
| 247 | + if(token){ | |
| 248 | + Main.private_token = token; | |
| 259 | 249 | } |
| 260 | - return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); | |
| 261 | - }, | |
| 262 | - display_article: function(article_id, backTo) { | |
| 263 | - var url = host + '/api/v1/articles/' + article_id + '?private_token=' + Main.private_token; | |
| 264 | - $.getJSON(url).done(function( data ) { | |
| 265 | - $('#article-container .article-content').html(articleTemplate(data.article)); | |
| 266 | - $('#article-container').show(); | |
| 267 | - $('#proposal-categories').hide(); | |
| 268 | - $('#proposal-group').hide(); | |
| 269 | - $('nav').hide(); | |
| 270 | - $('#content').hide(); | |
| 271 | - $('#article-container .go-back').attr('href', backTo); | |
| 272 | - }); | |
| 273 | - }, | |
| 274 | - // inicio Eduardo | |
| 275 | - randomProposalByTheme: function(themeClasses) { | |
| 276 | - $('#proposal-group .proposal-list .proposal-item').hide(); | |
| 277 | - $.each(themeClasses, function(i, themeClass) { | |
| 278 | - var proposalsByTheme = $('#proposal-group .proposal-list .proposal-item').find('.' + themeClass); | |
| 279 | - var randomizedIndex = Math.floor(Math.random() * proposalsByTheme.length); | |
| 280 | - var proposalToShow = $(proposalsByTheme[randomizedIndex]).parents().filter('.proposal-item'); | |
| 281 | - $(proposalToShow).show(); | |
| 282 | - }); | |
| 283 | - }, | |
| 284 | - display_category_tab: function(){ | |
| 285 | - // $('#proposal-group').hide(); | |
| 286 | - this.randomProposalByTheme(['category-saude', 'category-seguranca-publica', 'category-educacao', 'category-reducao-da-pobreza']); | |
| 287 | - $('#proposal-group').show(); /* Show random proposals*/ | |
| 288 | - $('.content').addClass('background'); /* Add class background */ | |
| 250 | + // requireLoginContainer = $('.require-login-container'); | |
| 251 | + requireLoginContainer.find('.require-login').show(); | |
| 252 | + requireLoginContainer.find('.require-login .message').show(); | |
| 253 | + requireLoginContainer.find('.login-container').hide(); | |
| 254 | + $.cookie('_dialoga_session', Main.private_token); | |
| 255 | + } else if (user) { | |
| 256 | + var loginContainer = requireLoginContainer.find('.login-container'); | |
| 257 | + loginContainer.show(); | |
| 258 | + loginContainer.find('.new-user').click(); | |
| 259 | + var signupForm = loginContainer.find('#signup-form'); | |
| 260 | + signupForm.find('#user_email').val(user.email); | |
| 261 | + signupForm.find('#user_name').val(user.login); | |
| 262 | + signupForm.find('#user_oauth_providers').val(user.oauth_providers); | |
| 263 | + //signupForm.find(".password").hide(); | |
| 264 | + //signupForm.find(".password-confirmation").hide(); | |
| 265 | + } else { | |
| 266 | + requireLoginContainer.find('.require-login').hide(); | |
| 267 | + requireLoginContainer.find('.login-container').show(); | |
| 268 | + Main.showLogin(); | |
| 269 | + } | |
| 270 | + }, | |
| 271 | + guid: function() { | |
| 272 | + function s4() { | |
| 273 | + return Math.floor((1 + Math.random()) * 0x10000) | |
| 274 | + .toString(16) | |
| 275 | + .substring(1); | |
| 276 | + } | |
| 277 | + return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); | |
| 278 | + }, | |
| 279 | + display_article: function(article_id, backTo) { | |
| 280 | + var url = host + '/api/v1/articles/' + article_id + '?private_token=' + Main.private_token; | |
| 281 | + $.getJSON(url).done(function( data ) { | |
| 282 | + $('#article-container .article-content').html(articleTemplate(data.article)); | |
| 283 | + $('#article-container').show(); | |
| 284 | + $('#proposal-categories').hide(); | |
| 285 | + $('#proposal-group').hide(); | |
| 286 | + $('nav').hide(); | |
| 287 | + $('#content').hide(); | |
| 288 | + $('#article-container .go-back').attr('href', backTo); | |
| 289 | + }); | |
| 290 | + }, | |
| 291 | + // inicio Eduardo | |
| 292 | + randomProposalByTheme: function(themeClasses) { | |
| 293 | + $('#proposal-group .proposal-list .proposal-item').hide(); | |
| 294 | + $.each(themeClasses, function(i, themeClass) { | |
| 295 | + var proposalsByTheme = $('#proposal-group .proposal-list .proposal-item').find('.' + themeClass); | |
| 296 | + var randomizedIndex = Math.floor(Math.random() * proposalsByTheme.length); | |
| 297 | + var proposalToShow = $(proposalsByTheme[randomizedIndex]).parents().filter('.proposal-item'); | |
| 298 | + $(proposalToShow).show(); | |
| 299 | + }); | |
| 300 | + }, | |
| 301 | + display_category_tab: function(){ | |
| 302 | + // $('#proposal-group').hide(); | |
| 303 | + this.randomProposalByTheme(['category-saude', 'category-seguranca-publica', 'category-educacao', 'category-reducao-da-pobreza']); | |
| 304 | + $('#proposal-group').show(); /* Show random proposals*/ | |
| 305 | + $('.content').addClass('background'); /* Add class background */ | |
| 306 | + $('#proposal-categories').show(); | |
| 307 | + $('#nav-proposal-categories a').addClass('active'); | |
| 308 | + $('#nav-proposal-group a').removeClass('active'); | |
| 309 | + $('.proposal-category-items').hide(); | |
| 310 | + $('.proposal-category .arrow-box').hide(); | |
| 311 | + $('.proposal-detail').hide(); | |
| 312 | + $('#article-container').hide(); | |
| 313 | + | |
| 314 | + $('#content').show(); | |
| 315 | + $('nav').show(); | |
| 316 | + | |
| 317 | + this.computeBoxHeight(); | |
| 318 | + }, | |
| 319 | + display_proposals_tab: function(){ | |
| 320 | + // $('#proposal-categories').hide(); | |
| 321 | + // this.randomProposalByTheme(['category-saude', 'category-seguranca-publica', 'category-educacao', 'category-reducao-da-pobreza']); | |
| 322 | + $('.proposal-item').show(); /* Show all programs */ | |
| 323 | + $('#proposal-group').show(); | |
| 324 | + $('#proposal-categories').show(); | |
| 325 | + $('.proposal-category-items').hide(); | |
| 326 | + $('#nav-proposal-group a').addClass('active'); | |
| 327 | + $('#nav-proposal-categories a').removeClass('active'); | |
| 328 | + $('#content').show(); | |
| 329 | + $('#article-container').hide(); | |
| 330 | + $('nav').show(); | |
| 331 | + $('html, body').animate({ scrollTop: $('#proposal-group').offset().top }, 'fast'); | |
| 332 | + | |
| 333 | + this.computeBoxHeight(); | |
| 334 | + }, | |
| 335 | + // fim Eduardo | |
| 336 | + display_proposal: function(proposal_id){ | |
| 337 | + $('#proposal-categories').hide(); | |
| 338 | + $('#proposal-group').hide(); | |
| 339 | + $('.proposal-category-items').hide(); /* Hide Category Items */ | |
| 340 | + $('.content').removeClass('background'); /* Remove class background*/ | |
| 341 | + $('nav').hide(); | |
| 342 | + $('#content').hide(); | |
| 343 | + $('#article-container').hide(); | |
| 344 | + // $('.make-proposal-form').hide(); | |
| 345 | + // $('.login-container').hide(); | |
| 346 | + $('.proposal-detail').hide(); // hide all proposals | |
| 347 | + // $('.proposal-detail-base').hide(); | |
| 348 | + var $proposal = $('#' + proposal_id); | |
| 349 | + $proposal.find('.proposal-detail-base').hide(); | |
| 350 | + $proposal.show(); | |
| 351 | + $proposal.find('.proposal-header').show(); | |
| 352 | + $proposal.find('.make-proposal-container').show(); | |
| 353 | + $proposal.find('.support-proposal-container').show(); | |
| 354 | + $proposal.find('.results-container').hide(); | |
| 355 | + $proposal.find('.results-container .loading').hide(); | |
| 356 | + $proposal.find('.results-container .results-content').hide(); | |
| 357 | + $proposal.find('.experience-proposal-container').show(); | |
| 358 | + $proposal.find('.talk-proposal-container').show(); | |
| 359 | + $proposal.find('.calendar').hide(); | |
| 360 | + var active_category = ''; | |
| 361 | + switch($proposal.find('.categories').attr('class')) { | |
| 362 | + case 'categories saude': | |
| 363 | + active_category = 'saude'; | |
| 364 | + break; | |
| 365 | + case 'categories educacao': | |
| 366 | + active_category = 'educacao'; | |
| 367 | + break; | |
| 368 | + case 'categories seguranca-publica': | |
| 369 | + active_category = 'seguranca-publica'; | |
| 370 | + break; | |
| 371 | + case 'categories reducao-da-pobreza': | |
| 372 | + active_category = 'reducao-da-pobreza'; | |
| 373 | + break; | |
| 374 | + } | |
| 375 | + | |
| 376 | + $proposal.find('.calendar.' + active_category).show(); | |
| 377 | + $proposal.find('.calendar').slick(); | |
| 378 | + | |
| 379 | + var topic_id = proposal_id.split('-').pop(); | |
| 380 | + this.loadRandomProposal(topic_id); | |
| 381 | + }, | |
| 382 | + display_proposal_detail: function(proposal_id){ | |
| 383 | + $('.content').removeClass('background'); /* Remove class background */ | |
| 384 | + $('#proposal-categories').hide(); | |
| 385 | + $('#proposal-group').hide(); | |
| 386 | + $('nav').hide(); | |
| 387 | + $('#content').hide(); | |
| 388 | + $('#article-container').hide(); | |
| 389 | + var $proposal = $('#proposal-item-' + proposal_id); | |
| 390 | + $proposal.find('.proposal-header').hide(); | |
| 391 | + $proposal.find('.make-proposal-container').hide(); | |
| 392 | + $proposal.find('.support-proposal-container').hide(); | |
| 393 | + $proposal.find('.results-container').hide(); | |
| 394 | + $proposal.find('.experience-proposal-container').hide(); | |
| 395 | + $proposal.find('.talk-proposal-container').hide(); | |
| 396 | + $proposal.find('.body').show(); | |
| 397 | + $proposal.show(); | |
| 398 | + | |
| 399 | + var url = host + '/api/v1/articles/' + proposal_id + '?private_token=' + Main.private_token + '&fields=id,body&content_type=ProposalsDiscussionPlugin::Topic'; | |
| 400 | + $.getJSON(url).done(function( data ) { | |
| 401 | + $('#proposal-item-' + proposal_id + ' .body-content').replaceWith(data.article.body); | |
| 402 | + }) | |
| 403 | + .fail(function( jqxhr, textStatus, error ) { | |
| 404 | + var err = textStatus + ', ' + error; | |
| 405 | + console.log( 'Request Failed: ' + err ); | |
| 406 | + }); | |
| 407 | + }, | |
| 408 | + display_proposal_by_category: function(item){ | |
| 409 | + var $item = $('#' + item); | |
| 410 | + | |
| 411 | + if($item.hasClass('proposal-category-items')){ | |
| 412 | + //Display Topics or Discussion by category | |
| 413 | + $('nav').show(); | |
| 414 | + $('#content').show(); | |
| 289 | 415 | $('#proposal-categories').show(); |
| 290 | 416 | $('#nav-proposal-categories a').addClass('active'); |
| 291 | 417 | $('#nav-proposal-group a').removeClass('active'); |
| 418 | + $('#proposal-group').hide(); /* Hide section "Programas" */ | |
| 419 | + $('.content').addClass('background'); /* Add class background */ | |
| 292 | 420 | $('.proposal-category-items').hide(); |
| 293 | - $('.proposal-category .arrow-box').hide(); | |
| 294 | 421 | $('.proposal-detail').hide(); |
| 295 | - $('#article-container').hide(); | |
| 296 | - | |
| 297 | - $('#content').show(); | |
| 298 | - $('nav').show(); | |
| 299 | - }, | |
| 300 | - display_proposals_tab: function(){ | |
| 301 | - // $('#proposal-categories').hide(); | |
| 302 | - // this.randomProposalByTheme(['category-saude', 'category-seguranca-publica', 'category-educacao', 'category-reducao-da-pobreza']); | |
| 303 | - $('.proposal-item').show(); /* Show all programs */ | |
| 304 | - $('#proposal-group').show(); | |
| 305 | - $('#proposal-categories').show(); | |
| 306 | - $('.proposal-category-items').hide(); | |
| 307 | - $('#nav-proposal-group a').addClass('active'); | |
| 308 | - $('#nav-proposal-categories a').removeClass('active'); | |
| 309 | - $('#content').show(); | |
| 310 | - $('#article-container').hide(); | |
| 311 | - $('nav').show(); | |
| 312 | - $('html, body').animate({ scrollTop: $('#proposal-group').offset().top }, 'fast'); | |
| 313 | - }, | |
| 314 | - // fim Eduardo | |
| 315 | - display_proposal: function(proposal_id){ | |
| 316 | - $('#proposal-categories').hide(); | |
| 317 | - $('#proposal-group').hide(); | |
| 318 | - $('.proposal-category-items').hide(); /* Hide Category Items */ | |
| 319 | - $('.content').removeClass('background'); /* Remove class background*/ | |
| 320 | - $('nav').hide(); | |
| 321 | - $('#content').hide(); | |
| 322 | - $('#article-container').hide(); | |
| 323 | - // $('.make-proposal-form').hide(); | |
| 324 | - // $('.login-container').hide(); | |
| 325 | - $('.proposal-detail').hide(); // hide all proposals | |
| 326 | - // $('.proposal-detail-base').hide(); | |
| 327 | - $proposal = $('#' + proposal_id); | |
| 328 | - $proposal.find('.proposal-detail-base').hide(); | |
| 329 | - $proposal.show(); | |
| 330 | - $proposal.find('.proposal-header').show(); | |
| 331 | - $proposal.find('.make-proposal-container').show(); | |
| 332 | - $proposal.find('.support-proposal-container').show(); | |
| 333 | - $proposal.find('.results-container').hide(); | |
| 334 | - $proposal.find('.results-container .loading').hide(); | |
| 335 | - $proposal.find('.results-container .results-content').hide(); | |
| 336 | - $proposal.find('.experience-proposal-container').show(); | |
| 337 | - $proposal.find('.talk-proposal-container').show(); | |
| 338 | - $proposal.find('.calendar').hide(); | |
| 339 | - var active_category = ''; | |
| 340 | - switch($proposal.find('.categories').attr('class')) { | |
| 341 | - case 'categories saude': | |
| 342 | - active_category = 'saude'; | |
| 343 | - break; | |
| 344 | - case 'categories educacao': | |
| 345 | - active_category = 'educacao'; | |
| 346 | - break; | |
| 347 | - case 'categories seguranca-publica': | |
| 348 | - active_category = 'seguranca-publica'; | |
| 349 | - break; | |
| 350 | - case 'categories reducao-da-pobreza': | |
| 351 | - active_category = 'reducao-da-pobreza'; | |
| 352 | - break; | |
| 353 | - } | |
| 354 | - | |
| 355 | - $proposal.find('.calendar.' + active_category).show(); | |
| 356 | - $proposal.find('.calendar').slick(); | |
| 357 | - | |
| 358 | - var topic_id = proposal_id.split('-').pop(); | |
| 359 | - this.loadRandomProposal(topic_id); | |
| 360 | - }, | |
| 361 | - display_proposal_detail: function(proposal_id){ | |
| 362 | - $('.content').removeClass('background'); /* Remove class background */ | |
| 363 | - $('#proposal-categories').hide(); | |
| 364 | - $('#proposal-group').hide(); | |
| 365 | - $('nav').hide(); | |
| 366 | - $('#content').hide(); | |
| 367 | - $('#article-container').hide(); | |
| 368 | - $proposal = $('#proposal-item-' + proposal_id); | |
| 369 | - $proposal.find('.proposal-header').hide(); | |
| 370 | - $proposal.find('.make-proposal-container').hide(); | |
| 371 | - $proposal.find('.support-proposal-container').hide(); | |
| 372 | - $proposal.find('.results-container').hide(); | |
| 373 | - $proposal.find('.experience-proposal-container').hide(); | |
| 374 | - $proposal.find('.talk-proposal-container').hide(); | |
| 375 | - $proposal.find('.body').show(); | |
| 376 | - $proposal.show(); | |
| 377 | - | |
| 378 | - var url = host + '/api/v1/articles/' + proposal_id + '?private_token=' + Main.private_token + '&fields=id,body&content_type=ProposalsDiscussionPlugin::Topic'; | |
| 379 | - $.getJSON(url).done(function( data ) { | |
| 380 | - $('#proposal-item-' + proposal_id + ' .body-content').replaceWith(data.article.body); | |
| 381 | - }) | |
| 382 | - .fail(function( jqxhr, textStatus, error ) { | |
| 383 | - var err = textStatus + ', ' + error; | |
| 384 | - console.log( 'Request Failed: ' + err ); | |
| 385 | - }); | |
| 386 | - }, | |
| 387 | - display_proposal_by_category: function(item){ | |
| 388 | - var $item = $('#' + item); | |
| 389 | - | |
| 390 | - if($item.hasClass('proposal-category-items')){ | |
| 391 | - //Display Topics or Discussion by category | |
| 392 | - $('nav').show(); | |
| 393 | - $('#content').show(); | |
| 394 | - $('#proposal-categories').show(); | |
| 395 | - $('#nav-proposal-categories a').addClass('active'); | |
| 396 | - $('#nav-proposal-group a').removeClass('active'); | |
| 397 | - $('#proposal-group').hide(); /* Hide section "Programas" */ | |
| 398 | - $('.content').addClass('background'); /* Add class background */ | |
| 399 | - $('.proposal-category-items').hide(); | |
| 400 | - $('.proposal-detail').hide(); | |
| 401 | - $item.toggle( 'blind', 200, function () { | |
| 402 | - var itemOffset = $item.offset(); | |
| 403 | - if(itemOffset){ | |
| 404 | - $('html, body').animate({ scrollTop: itemOffset.top }, 'fast'); | |
| 405 | - } | |
| 406 | - } ); | |
| 407 | - $('.proposal-category .arrow-box').hide(); | |
| 408 | - var categorySlug = $item.data('category'); | |
| 409 | - $('#proposal-category-' + categorySlug).find('.arrow-box').show(); | |
| 422 | + $item.toggle( 'blind', 200, function () { | |
| 423 | + var itemOffset = $item.offset(); | |
| 424 | + if(itemOffset){ | |
| 425 | + $('html, body').animate({ scrollTop: itemOffset.top }, 'fast'); | |
| 426 | + } | |
| 427 | + } ); | |
| 428 | + $('.proposal-category .arrow-box').hide(); | |
| 429 | + var categorySlug = $item.data('category'); | |
| 430 | + $('#proposal-category-' + categorySlug).find('.arrow-box').show(); | |
| 410 | 431 | |
| 411 | - } | |
| 412 | - }, | |
| 413 | - addBarraDoGoverno: function(){ | |
| 414 | - | |
| 415 | - if( BARRA_ADDED ) { return; } | |
| 416 | - | |
| 417 | - var HTML_BODY_PREPEND = '' + | |
| 418 | - '<div id="barra-brasil" style="background:#7F7F7F; height: 20px; padding:0 0 0 10px;display:block;"> ' + | |
| 419 | - '<ul id="menu-barra-temp" style="list-style:none;">' + | |
| 420 | - '<li style="display:inline; float:left;padding-right:10px; margin-right:10px; border-right:1px solid #EDEDED"><a href="http://brasil.gov.br" style="font-family:sans,sans-serif; text-decoration:none; color:white;">Portal do Governo Brasileiro</a></li> ' + | |
| 421 | - '<li><a style="font-family:sans,sans-serif; text-decoration:none; color:white;" href="http://epwg.governoeletronico.gov.br/barra/atualize.html">Atualize sua Barra de Governo</a></li>' + | |
| 422 | - '</ul>' + | |
| 423 | - '</div>'; | |
| 424 | - | |
| 425 | - var HTML_BODY_APPEND = ''+ | |
| 426 | - '<footer id="footer-brasil"></footer>' + | |
| 427 | - '<script defer="defer" src="http://barra.brasil.gov.br/barra.js" type="text/javascript"></script>'; | |
| 428 | - | |
| 429 | - var STYLE_TEMA_AZUL = '' + | |
| 430 | - '<style>'+ | |
| 431 | - '#footer-brasil {'+ | |
| 432 | - 'background: none repeat scroll 0% 0% #0042b1;'+ | |
| 433 | - 'padding: 1em 0px;'+ | |
| 434 | - 'max-width: 100%;'+ | |
| 435 | - 'margin-top: 40px;'+ | |
| 436 | - '}'+ | |
| 437 | - '#barra-brasil ul {'+ | |
| 438 | - 'width: auto;'+ | |
| 439 | - '}'+ | |
| 440 | - '<style>'; | |
| 432 | + this.computeBoxHeight(); | |
| 441 | 433 | |
| 442 | - var $body = $(document.body); | |
| 443 | - $body.prepend(HTML_BODY_PREPEND); | |
| 444 | - $body.append(HTML_BODY_APPEND); | |
| 445 | - $body.append(STYLE_TEMA_AZUL); | |
| 434 | + } | |
| 435 | + }, | |
| 436 | + addBarraDoGoverno: function(){ | |
| 437 | + | |
| 438 | + if( BARRA_ADDED ) { return; } | |
| 439 | + | |
| 440 | + var HTML_BODY_PREPEND = '' + | |
| 441 | + '<div id="barra-brasil" style="background:#7F7F7F; height: 20px; padding:0 0 0 10px;display:block;"> ' + | |
| 442 | + '<ul id="menu-barra-temp" style="list-style:none;">' + | |
| 443 | + '<li style="display:inline; float:left;padding-right:10px; margin-right:10px; border-right:1px solid #EDEDED"><a href="http://brasil.gov.br" style="font-family:sans,sans-serif; text-decoration:none; color:white;">Portal do Governo Brasileiro</a></li> ' + | |
| 444 | + '<li><a style="font-family:sans,sans-serif; text-decoration:none; color:white;" href="http://epwg.governoeletronico.gov.br/barra/atualize.html">Atualize sua Barra de Governo</a></li>' + | |
| 445 | + '</ul>' + | |
| 446 | + '</div>'; | |
| 447 | + | |
| 448 | + var HTML_BODY_APPEND = ''+ | |
| 449 | + '<footer id="footer-brasil"></footer>' + | |
| 450 | + '<script defer="defer" src="http://barra.brasil.gov.br/barra.js" type="text/javascript"></script>'; | |
| 451 | + | |
| 452 | + var STYLE_TEMA_AZUL = '' + | |
| 453 | + '<style>'+ | |
| 454 | + '#footer-brasil {'+ | |
| 455 | + 'background: none repeat scroll 0% 0% #0042b1;'+ | |
| 456 | + 'padding: 1em 0px;'+ | |
| 457 | + 'max-width: 100%;'+ | |
| 458 | + 'margin-top: 40px;'+ | |
| 459 | + '}'+ | |
| 460 | + '#barra-brasil ul {'+ | |
| 461 | + 'width: auto;'+ | |
| 462 | + '}'+ | |
| 463 | + '<style>'; | |
| 464 | + | |
| 465 | + var $body = $(document.body); | |
| 466 | + $body.prepend(HTML_BODY_PREPEND); | |
| 467 | + $body.append(HTML_BODY_APPEND); | |
| 468 | + $body.append(STYLE_TEMA_AZUL); | |
| 469 | + | |
| 470 | + BARRA_ADDED = true; | |
| 471 | + }, | |
| 472 | + updateHash: function(hash){ | |
| 473 | + var id = hash.replace(/^.*#/, ''); | |
| 474 | + var elem = document.getElementById(id); | |
| 446 | 475 | |
| 447 | - BARRA_ADDED = true; | |
| 448 | - }, | |
| 449 | - updateHash: function(hash){ | |
| 450 | - var id = hash.replace(/^.*#/, ''); | |
| 451 | - var elem = document.getElementById(id); | |
| 452 | - | |
| 453 | - // preserve the query param | |
| 454 | - // if (HIDE_BARRA_DO_GOVERNO && (hash.indexOf('?barra=false') === -1)){ | |
| 455 | - // hash += '?barra=false'; | |
| 456 | - // } | |
| 457 | - | |
| 458 | - if ( !elem ) { | |
| 459 | - window.location.hash = hash; | |
| 460 | - return; | |
| 461 | - } | |
| 476 | + // preserve the query param | |
| 477 | + // if (HIDE_BARRA_DO_GOVERNO && (hash.indexOf('?barra=false') === -1)){ | |
| 478 | + // hash += '?barra=false'; | |
| 479 | + // } | |
| 462 | 480 | |
| 463 | - elem.id = id+'-tmp'; | |
| 481 | + if ( !elem ) { | |
| 464 | 482 | window.location.hash = hash; |
| 465 | - elem.id = id; | |
| 466 | - }, | |
| 467 | - locationHashChanged: function(){ | |
| 468 | - var hash = window.location.hash; | |
| 469 | - this.navigateTo(hash, lastHash); | |
| 470 | - lastHash = hash; | |
| 471 | - }, | |
| 472 | - navigateTo: function(hash, lastHash) { | |
| 473 | - var scrollTop = 0; | |
| 474 | - var $nav = $('nav[role="tabpanel"]'); | |
| 475 | - var navOffset = $nav.offset(); | |
| 476 | - | |
| 477 | - var regexProposals = /#\/programas/; | |
| 478 | - var regexCategory = /#\/temas/; | |
| 479 | - var regexHideBarra = /barra=false$/; | |
| 480 | - var regexArticle = /#\/artigo/; | |
| 481 | - | |
| 482 | - if( !(regexHideBarra.exec(hash) !== null) && !HIDE_BARRA_DO_GOVERNO ){ | |
| 483 | - this.addBarraDoGoverno(); | |
| 484 | - }else{ | |
| 485 | - HIDE_BARRA_DO_GOVERNO = true; | |
| 486 | - } | |
| 483 | + return; | |
| 484 | + } | |
| 487 | 485 | |
| 488 | - // remove query params | |
| 489 | - hash = hash.split('?')[0]; | |
| 486 | + elem.id = id+'-tmp'; | |
| 487 | + window.location.hash = hash; | |
| 488 | + elem.id = id; | |
| 489 | + }, | |
| 490 | + locationHashChanged: function(){ | |
| 491 | + var hash = window.location.hash; | |
| 492 | + this.navigateTo(hash, lastHash); | |
| 493 | + lastHash = hash; | |
| 494 | + }, | |
| 495 | + navigateTo: function(hash, lastHash) { | |
| 496 | + var scrollTop = 0; | |
| 497 | + var $nav = $('nav[role="tabpanel"]'); | |
| 498 | + var navOffset = $nav.offset(); | |
| 499 | + | |
| 500 | + var regexProposals = /#\/programas/; | |
| 501 | + var regexCategory = /#\/temas/; | |
| 502 | + var regexHideBarra = /barra=false$/; | |
| 503 | + var regexArticle = /#\/artigo/; | |
| 504 | + var regexResultados = /resultados$/; | |
| 505 | + | |
| 506 | + if( !(regexHideBarra.exec(hash) !== null) && !HIDE_BARRA_DO_GOVERNO ){ | |
| 507 | + this.addBarraDoGoverno(); | |
| 508 | + }else{ | |
| 509 | + HIDE_BARRA_DO_GOVERNO = true; | |
| 510 | + } | |
| 490 | 511 | |
| 491 | - var parts = hash.split('/'); | |
| 512 | + // remove query params | |
| 513 | + hash = hash.split('?')[0]; | |
| 492 | 514 | |
| 493 | - var isProposal = regexProposals.exec(hash) !== null; | |
| 494 | - var isCategory = regexCategory.exec(hash) !== null; | |
| 495 | - var isArticle = regexArticle.exec(hash) !== null; | |
| 515 | + var parts = hash.split('/'); | |
| 496 | 516 | |
| 497 | - if(isArticle) { | |
| 498 | - this.display_article(hash.split('/')[2], lastHash); | |
| 499 | - } | |
| 517 | + var isProposal = regexProposals.exec(hash) !== null; | |
| 518 | + var isCategory = regexCategory.exec(hash) !== null; | |
| 519 | + var isArticle = regexArticle.exec(hash) !== null; | |
| 520 | + var isResultados = regexResultados.exec(hash) !== null; | |
| 500 | 521 | |
| 501 | - if( isProposal ){ | |
| 522 | + if(isArticle) { | |
| 523 | + this.display_article(hash.split('/')[2], lastHash); | |
| 524 | + } | |
| 502 | 525 | |
| 503 | - // go to proposal | |
| 504 | - var proposalId = parts[2]; | |
| 505 | - this.navigateToProposal(proposalId); | |
| 526 | + if( isProposal ){ | |
| 506 | 527 | |
| 507 | - var $proposal = $('#proposal-item-' + proposalId); | |
| 508 | - var proposalOffset = $proposal.offset(); | |
| 509 | - if(proposalOffset){ | |
| 510 | - scrollTop = proposalOffset.top; | |
| 511 | - }else{ | |
| 512 | - if(navOffset){ | |
| 513 | - scrollTop = navOffset.top; | |
| 514 | - } else { | |
| 515 | - scrollTop = $('#proposal-group').offset().top; | |
| 516 | - } | |
| 528 | + // go to proposal | |
| 529 | + var proposalId = parts[2]; | |
| 530 | + this.navigateToProposal(proposalId); | |
| 531 | + | |
| 532 | + var $proposal = $('#proposal-item-' + proposalId); | |
| 533 | + var proposalOffset = $proposal.offset(); | |
| 534 | + if(proposalOffset){ | |
| 535 | + scrollTop = proposalOffset.top; | |
| 536 | + }else{ | |
| 537 | + if(navOffset){ | |
| 538 | + scrollTop = navOffset.top; | |
| 539 | + } else { | |
| 540 | + scrollTop = $('#proposal-group').offset().top; | |
| 517 | 541 | } |
| 518 | 542 | } |
| 519 | 543 | |
| 520 | - if( isCategory ){ | |
| 544 | + if(isResultados){ | |
| 545 | + var $resultsContainer = $proposal.find('.results-container'); | |
| 521 | 546 | |
| 522 | - // go to category | |
| 523 | - var categoryId = parts[3]; | |
| 524 | - this.navigateToCategory(categoryId); | |
| 547 | + if($resultsContainer.css('display') === 'none') { | |
| 548 | + Main.loadRanking($resultsContainer, proposalId, 1); | |
| 549 | + } else { | |
| 550 | + $proposalDetail.find('.experience-proposal-container').show(); | |
| 551 | + $proposalDetail.find('.talk-proposal-container').show(); | |
| 552 | + $resultsContainer.hide(); | |
| 553 | + } | |
| 525 | 554 | |
| 526 | - var $category = $('#proposal-item-' + categoryId); | |
| 527 | - var categoryOffset = $category.offset(); | |
| 528 | - if(categoryOffset){ | |
| 529 | - scrollTop = categoryOffset.top; | |
| 530 | - }else{ | |
| 531 | - if(navOffset){ | |
| 532 | - scrollTop = navOffset.top; | |
| 533 | - } | |
| 555 | + var proposalOffset = $resultsContainer.offset(); | |
| 556 | + if(proposalOffset){ | |
| 557 | + scrollTop = proposalOffset.top; | |
| 534 | 558 | } |
| 535 | 559 | } |
| 560 | + } | |
| 536 | 561 | |
| 537 | - // default | |
| 538 | - if( !isProposal && !isCategory ){ | |
| 539 | - // show the 'index' -> category tab | |
| 540 | - this.display_category_tab(); | |
| 541 | - | |
| 562 | + if( isCategory ){ | |
| 542 | 563 | |
| 543 | - // if(navOffset){ | |
| 544 | - // scrollTop = navOffset.top; | |
| 545 | - // } | |
| 546 | - } | |
| 564 | + // go to category | |
| 565 | + var categoryId = parts[3]; | |
| 566 | + this.navigateToCategory(categoryId); | |
| 547 | 567 | |
| 548 | - $('html, body').animate({ scrollTop: scrollTop }, 'fast'); | |
| 549 | - }, | |
| 550 | - navigateToProposal: function(proposalId){ | |
| 551 | - var regexSubpages = /sobre-o-programa$/; | |
| 552 | - if(proposalId === undefined){ | |
| 553 | - this.display_proposals_tab(); | |
| 554 | - }else if(regexSubpages.exec(window.location.hash) == null){ | |
| 555 | - this.display_proposal('proposal-item-' + proposalId); | |
| 556 | - }else{ | |
| 557 | - this.display_proposal_detail(proposalId); | |
| 558 | - } | |
| 559 | - }, | |
| 560 | - navigateToCategory: function(categoryId){ | |
| 561 | - if(categoryId === undefined){ | |
| 562 | - this.display_category_tab(); | |
| 568 | + var $category = $('#proposal-item-' + categoryId); | |
| 569 | + var categoryOffset = $category.offset(); | |
| 570 | + if(categoryOffset){ | |
| 571 | + scrollTop = categoryOffset.top; | |
| 563 | 572 | }else{ |
| 564 | - this.display_proposal_by_category('proposal-item-' + categoryId); | |
| 573 | + if(navOffset){ | |
| 574 | + scrollTop = navOffset.top; | |
| 575 | + } | |
| 565 | 576 | } |
| 566 | - }, | |
| 567 | - oauthClientAction: function(url) { | |
| 568 | - var child = window.open(url, "_blank"); | |
| 569 | - var interval = setInterval(function() { | |
| 570 | - try { | |
| 571 | - if(!child.closed) { | |
| 572 | - child.postMessage({ message: "requestOauthClientPluginResult" }, "*"); | |
| 573 | - } | |
| 574 | - } | |
| 575 | - catch(e) { | |
| 576 | - // we're here when the child window has been navigated away or closed | |
| 577 | - if (child.closed) { | |
| 578 | - clearInterval(interval); | |
| 579 | - return; | |
| 580 | - } | |
| 577 | + } | |
| 578 | + | |
| 579 | + // default | |
| 580 | + if( !isProposal && !isCategory ){ | |
| 581 | + // show the 'index' -> category tab | |
| 582 | + this.display_category_tab(); | |
| 583 | + } | |
| 584 | + | |
| 585 | + $('html, body').animate({ scrollTop: scrollTop }, 'fast'); | |
| 586 | + }, | |
| 587 | + navigateToProposal: function(proposalId){ | |
| 588 | + var regexSobreOPrograma = /sobre-o-programa$/; | |
| 589 | + if(proposalId === undefined){ | |
| 590 | + this.display_proposals_tab(); | |
| 591 | + }else if(regexSobreOPrograma.exec(window.location.hash) == null){ | |
| 592 | + this.display_proposal('proposal-item-' + proposalId); | |
| 593 | + }else{ | |
| 594 | + this.display_proposal_detail(proposalId); | |
| 595 | + } | |
| 596 | + }, | |
| 597 | + navigateToCategory: function(categoryId){ | |
| 598 | + if(categoryId === undefined){ | |
| 599 | + this.display_category_tab(); | |
| 600 | + }else{ | |
| 601 | + this.display_proposal_by_category('proposal-item-' + categoryId); | |
| 602 | + } | |
| 603 | + }, | |
| 604 | + oauthClientAction: function(url) { | |
| 605 | + var child = window.open(url, "_blank"); | |
| 606 | + var interval = setInterval(function() { | |
| 607 | + try { | |
| 608 | + if(!child.closed) { | |
| 609 | + child.postMessage({ message: "requestOauthClientPluginResult" }, "*"); | |
| 581 | 610 | } |
| 582 | - }, 300); | |
| 583 | - }, | |
| 584 | - displaySuccess: function(container, text, timeout, iconClass) { | |
| 585 | - timeout = typeof timeout !== 'undefined' ? timeout : 2000; | |
| 586 | - container.css('opacity', 0.1); | |
| 587 | - var successPanel = $('.success-panel').clone(); | |
| 588 | - successPanel.find('.icon').addClass(iconClass); | |
| 589 | - successPanel.find('.message').html(text); | |
| 590 | - successPanel.appendTo(container.closest('.categories')); | |
| 591 | - successPanel.show(); | |
| 592 | - successPanel.css("top", Math.max(0, ((container.height() - successPanel.outerHeight()) / 2) + container.offset().top) + "px"); | |
| 593 | - successPanel.css("left", Math.max(0, ((container.width() - successPanel.outerWidth()) / 2) + container.offset().left) + "px"); | |
| 594 | - | |
| 595 | - var interval = setTimeout(function() { | |
| 596 | - successPanel.hide(); | |
| 597 | - container.css('opacity', 1); | |
| 598 | - successPanel.remove(); | |
| 599 | - }, timeout); | |
| 600 | - }, | |
| 601 | - setUser: function(user){ | |
| 602 | - this.user = user; | |
| 603 | - }, | |
| 604 | - getUser: function(){ | |
| 605 | - return this.user; | |
| 606 | - }, | |
| 607 | - showLogin: function(){ | |
| 608 | - $('.entrar').show(); | |
| 609 | - $('.logout').hide(); | |
| 610 | - }, | |
| 611 | - showLogout: function(){ | |
| 612 | - $('.entrar').hide(); | |
| 613 | - var name = ''; | |
| 614 | - if(this.user){ | |
| 615 | - name = this.user.person.name + ' | '; | |
| 616 | - } | |
| 617 | - $('.logout').text(name + 'Sair'); | |
| 618 | - $('.logout').show(); | |
| 619 | - }, | |
| 611 | + } | |
| 612 | + catch(e) { | |
| 613 | + // we're here when the child window has been navigated away or closed | |
| 614 | + if (child.closed) { | |
| 615 | + clearInterval(interval); | |
| 616 | + return; | |
| 617 | + } | |
| 618 | + } | |
| 619 | + }, 300); | |
| 620 | + }, | |
| 621 | + displaySuccess: function(container, text, timeout, iconClass) { | |
| 622 | + timeout = typeof timeout !== 'undefined' ? timeout : 2000; | |
| 623 | + container.css('opacity', 0.1); | |
| 624 | + var successPanel = $('.success-panel').clone(); | |
| 625 | + successPanel.find('.icon').addClass(iconClass); | |
| 626 | + successPanel.find('.message').html(text); | |
| 627 | + successPanel.appendTo(container.closest('.categories')); | |
| 628 | + successPanel.show(); | |
| 629 | + successPanel.css("top", Math.max(0, ((container.height() - successPanel.outerHeight()) / 2) + container.offset().top) + "px"); | |
| 630 | + successPanel.css("left", Math.max(0, ((container.width() - successPanel.outerWidth()) / 2) + container.offset().left) + "px"); | |
| 631 | + | |
| 632 | + var interval = setTimeout(function() { | |
| 633 | + successPanel.hide(); | |
| 634 | + container.css('opacity', 1); | |
| 635 | + successPanel.remove(); | |
| 636 | + }, timeout); | |
| 637 | + }, | |
| 638 | + setUser: function(user){ | |
| 639 | + this.user = user; | |
| 640 | + }, | |
| 641 | + getUser: function(){ | |
| 642 | + return this.user; | |
| 643 | + }, | |
| 644 | + showLogin: function(){ | |
| 645 | + $('#login-button').show(); | |
| 646 | + $('#logout-button').hide(); | |
| 647 | + }, | |
| 648 | + showLogout: function(){ | |
| 649 | + $('#login-button').hide(); | |
| 650 | + var name = ''; | |
| 651 | + if(this.user){ | |
| 652 | + name = this.user.person.name + ' - '; | |
| 653 | + } | |
| 654 | + $('#logout-button .name').text(name); | |
| 655 | + $('#logout-button').show(); | |
| 656 | + }, | |
| 620 | 657 | responseToText: function(responseJSONmessage){ |
| 621 | 658 | var o = JSON.parse(responseJSONmessage); |
| 622 | 659 | var msg = ""; |
| ... | ... | @@ -641,20 +678,83 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 641 | 678 | // /api/v1/communities/64/articles?from=2013-04-04-14:41:43&until=2015-06-11-14:41:43&limit=10&categories_ids[]=7&categories_ids[]=8&private_token=a97b6a5cae2c4c54e4ae18dde1829a49 |
| 642 | 679 | var url; |
| 643 | 680 | count = 0; |
| 644 | - for(var i = 0; i < window.themes_cat.length; ++i){ | |
| 645 | - url = host + '/api/v1/communities/' + window.dialoga_community + '/articles?categories_ids[]=' + window.themes_cat[i] + '&content_type=Event&private_token=' + Main.private_token; | |
| 681 | + for (var i = 0; i < window.themes_cat.length; ++i) { | |
| 682 | + url = host + '/api/v1/communities/' + window.dialoga_community + '/articles?categories_ids[]=' + window.themes_cat[i] + '&content_type=Event&private_token=' + Main.private_token; | |
| 646 | 683 | console.log(url); |
| 647 | - $.getJSON(url).done(function( data ) { | |
| 684 | + $.getJSON(url).done(function (data) { | |
| 648 | 685 | console.log(data); |
| 649 | 686 | $('#ep' + count).text(data.articles[0].author.name); |
| 650 | 687 | var dt = data.articles[0].start_date; |
| 651 | - dia = dt.substr(8,2); | |
| 652 | - mes = dt.substr(5,2); | |
| 653 | - ano = dt.substr(0,4); | |
| 688 | + dia = dt.substr(8, 2); | |
| 689 | + mes = dt.substr(5, 2); | |
| 690 | + ano = dt.substr(0, 4); | |
| 654 | 691 | $('#ed' + count).text(dia + '/' + mes + '/' + ano); |
| 655 | 692 | count++; |
| 656 | 693 | }); |
| 657 | 694 | } |
| 695 | + }, | |
| 696 | + computeBoxHeight: function(){ | |
| 697 | + var hPerLineOnTitle = 25; | |
| 698 | + var hPerLineOnParagraph = 20; | |
| 699 | + var maxLinesByParagraph = 0; | |
| 700 | + var maxLinesByTitle = 0; | |
| 701 | + var $visibleProposals = $('.proposal-list .proposal-item:visible'); | |
| 702 | + | |
| 703 | + // get the bigger paragraph | |
| 704 | + $visibleProposals.each(function(index, proposalItemEl){ | |
| 705 | + var $proposalItemEl = $(proposalItemEl); | |
| 706 | + var $paragraph = $proposalItemEl.find('p'); | |
| 707 | + var lines = Main.computeLines($paragraph); | |
| 708 | + if(lines > maxLinesByParagraph ){ | |
| 709 | + maxLinesByParagraph = lines | |
| 710 | + } | |
| 711 | + }); | |
| 712 | + // console.log('maxLinesByParagraph', maxLinesByParagraph); | |
| 713 | + | |
| 714 | + // get the bigger title | |
| 715 | + $visibleProposals.each(function(index, proposalItemEl){ | |
| 716 | + var $proposalItemEl = $(proposalItemEl); | |
| 717 | + var $title = $proposalItemEl.find('.box__title'); | |
| 718 | + var lines = Main.computeLines($title); | |
| 719 | + if(lines > maxLinesByTitle ){ | |
| 720 | + maxLinesByTitle = lines | |
| 721 | + } | |
| 722 | + }); | |
| 723 | + // console.log('maxLinesByTitle', maxLinesByTitle); | |
| 724 | + | |
| 725 | + $visibleProposals.each(function(index, proposalItemEl){ | |
| 726 | + var $proposalItemEl = $(proposalItemEl); | |
| 727 | + var $title = $proposalItemEl.find('.box__title'); | |
| 728 | + var $paragraph = $proposalItemEl.find('p'); | |
| 729 | + | |
| 730 | + var newTitleHeight = maxLinesByTitle * hPerLineOnTitle; | |
| 731 | + var newParagraphHeight = maxLinesByParagraph * hPerLineOnParagraph; | |
| 732 | + | |
| 733 | + $title.css('height', newTitleHeight + 'px'); | |
| 734 | + $paragraph.css('height', newParagraphHeight + 'px'); | |
| 735 | + }); | |
| 736 | + | |
| 737 | + // recalc box heights | |
| 738 | + var setAsPx = true; | |
| 739 | + $visibleProposals.equalHeights(setAsPx); | |
| 740 | + }, | |
| 741 | + computeLines: function ($el) { | |
| 742 | + // reset height | |
| 743 | + $el.height('auto'); | |
| 744 | + | |
| 745 | + var divHeight = $el.height(); | |
| 746 | + var lineHeight = parseInt($el.css('lineHeight')); | |
| 747 | + var lines = Math.ceil(divHeight / lineHeight); | |
| 748 | + return lines; | |
| 749 | + }, | |
| 750 | + handleLoginSuccess: function (e, data){ | |
| 751 | + if(data.person){ | |
| 752 | + Main.setUser({person: data.person}); | |
| 753 | + } | |
| 754 | + Main.loginCallback(true, data.private_token); | |
| 755 | + }, | |
| 756 | + handleLoginFail: function (e){ | |
| 757 | + // console.log('Event', e); | |
| 658 | 758 | } |
| 659 | 759 | } |
| 660 | 760 | })(); |
| ... | ... | @@ -721,8 +821,8 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 721 | 821 | e.preventDefault(); |
| 722 | 822 | |
| 723 | 823 | var oldHash = window.location.hash; |
| 724 | - var regexSubpages = /sobre-o-programa$/; | |
| 725 | - var isSubpage = regexSubpages.exec(oldHash) !== null; | |
| 824 | + var regexSobreOPrograma = /sobre-o-programa$/; | |
| 825 | + var isSubpage = regexSobreOPrograma.exec(oldHash) !== null; | |
| 726 | 826 | var newHash = '#/temas'; // default page |
| 727 | 827 | |
| 728 | 828 | if(isSubpage){ |
| ... | ... | @@ -742,10 +842,10 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 742 | 842 | |
| 743 | 843 | //display form to send proposal (or login form for non-logged users) |
| 744 | 844 | var $this = $(this); |
| 745 | - loginButton = $this.parents('.button-send'); | |
| 845 | + loginButton = $this.closest('.button-send'); | |
| 746 | 846 | loginButton.hide(); |
| 747 | - $this.parents('.success-proposal-sent').hide(); | |
| 748 | - $wrapper = $this.parents('.make-proposal'); | |
| 847 | + $this.closest('.success-proposal-sent').hide(); | |
| 848 | + var $wrapper = $this.closest('.make-proposal'); | |
| 749 | 849 | $wrapper.find('.subtitle').show(); |
| 750 | 850 | $wrapper.find('.info').show(); |
| 751 | 851 | Main.loginCallback(logged_in); |
| ... | ... | @@ -859,30 +959,50 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 859 | 959 | }); |
| 860 | 960 | } |
| 861 | 961 | |
| 962 | + $(document).on('login:success', Main.handleLoginSuccess); | |
| 963 | + $(document).on('login:fail', Main.handleLoginFail); | |
| 964 | + | |
| 862 | 965 | $(document).on('click', '.login-action', function(e) { |
| 863 | - var message = $('.login .message'); | |
| 864 | - message.hide(); | |
| 865 | - message.text(''); | |
| 866 | - var button = $(this); | |
| 966 | + e.preventDefault(); | |
| 967 | + // console.log('obj', obj); | |
| 968 | + | |
| 969 | + var $this = $(this); // button | |
| 970 | + var $form = $this.closest('#login-form'); | |
| 971 | + var $message = $form.find('.message'); | |
| 972 | + $message.text('').hide(); | |
| 973 | + | |
| 974 | + loginButton = $this; | |
| 975 | + | |
| 867 | 976 | $.ajax({ |
| 868 | 977 | type: 'post', |
| 869 | 978 | url: host + '/api/v1/login', |
| 870 | - data: $(this).parents('.login').serialize(), | |
| 979 | + data: $form.serialize(), | |
| 871 | 980 | xhrFields: { |
| 872 | 981 | //withCredentials: true |
| 873 | 982 | } |
| 874 | 983 | }).done(function(data) { |
| 875 | - Main.loginCallback(true, data.private_token); | |
| 876 | - Main.displaySuccess(button.closest('.section-content'), 'Login efetuado com sucesso', 1000, 'icon-login-success'); | |
| 984 | + $(document).trigger('login:success', data); | |
| 985 | + | |
| 986 | + var $sectionContent = $form.closest('.section-content'); | |
| 987 | + if($sectionContent && $sectionContent.length > 0){ | |
| 988 | + Main.displaySuccess($sectionContent, 'Login efetuado com sucesso', 1000, 'icon-login-success'); | |
| 989 | + } | |
| 990 | + | |
| 991 | + var $loginPanel = $form.closest('#login-panel'); | |
| 992 | + if($loginPanel && $loginPanel.length > 0){ | |
| 993 | + $loginPanel.hide(); | |
| 994 | + } | |
| 995 | + | |
| 877 | 996 | }).fail(function(data) { |
| 878 | - message.show(); | |
| 997 | + $(document).trigger('login:fail', data); | |
| 998 | + | |
| 999 | + $message.show(); | |
| 879 | 1000 | if(data.status==401){ |
| 880 | - message.text('Nome de usuário, e-mail ou senha incorretos, não foi possível acessar.'); | |
| 1001 | + $message.text('Nome de usuário, e-mail ou senha incorretos, não foi possível acessar.'); | |
| 881 | 1002 | }else{ |
| 882 | - message.text('Um erro inesperado ocorreu'); | |
| 1003 | + $message.text('Um erro inesperado ocorreu'); | |
| 883 | 1004 | } |
| 884 | 1005 | }); |
| 885 | - e.preventDefault(); | |
| 886 | 1006 | }); |
| 887 | 1007 | |
| 888 | 1008 | $(document).on('click', '.social .fb-share', function(e) { |
| ... | ... | @@ -973,7 +1093,7 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 973 | 1093 | e.preventDefault(); |
| 974 | 1094 | }); |
| 975 | 1095 | |
| 976 | - $(document).on('click', '.logout', function (e){ | |
| 1096 | + $(document).on('click', '#logout-button', function (e){ | |
| 977 | 1097 | var self = $(this); |
| 978 | 1098 | $.removeCookie('_dialoga_session'); |
| 979 | 1099 | $.removeCookie('votedProposals'); |
| ... | ... | @@ -984,6 +1104,29 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 984 | 1104 | e.preventDefault(); |
| 985 | 1105 | }); |
| 986 | 1106 | |
| 1107 | + // create login panel on header | |
| 1108 | + (function (){ | |
| 1109 | + var $loginPanel = $('#login-panel'); | |
| 1110 | + $loginPanel.hide(); | |
| 1111 | + $loginPanel.removeClass('hide'); | |
| 1112 | + $loginPanel.append(loginTemplate()); | |
| 1113 | + $loginPanel.find('.actions') | |
| 1114 | + .removeClass('col-sm-4') | |
| 1115 | + .addClass('col-sm-12'); | |
| 1116 | + $loginPanel.find('.oauth') | |
| 1117 | + .removeClass('col-sm-8') | |
| 1118 | + .addClass('col-sm-12'); | |
| 1119 | + $loginPanel.find('.new-user').parent() | |
| 1120 | + .removeClass('col-sm-4') | |
| 1121 | + .addClass('col-sm-12'); | |
| 1122 | + | |
| 1123 | + $(document).on('click', '#login-button', function (e){ | |
| 1124 | + e.preventDefault(); | |
| 1125 | + | |
| 1126 | + $loginPanel.toggle(); | |
| 1127 | + }); | |
| 1128 | + })(); | |
| 1129 | + | |
| 987 | 1130 | }); |
| 988 | 1131 | |
| 989 | 1132 | window.addEventListener("message", function(ev) { |
| ... | ... | @@ -1001,5 +1144,45 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F |
| 1001 | 1144 | console.log('The browser not supports the hashchange event!'); |
| 1002 | 1145 | } |
| 1003 | 1146 | |
| 1147 | + // Handle resize event | |
| 1148 | + (function($,sr){ | |
| 1149 | + | |
| 1150 | + // debouncing function from John Hann | |
| 1151 | + // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/ | |
| 1152 | + var debounce = function (func, threshold, execAsap) { | |
| 1153 | + var timeout; | |
| 1154 | + | |
| 1155 | + return function debounced () { | |
| 1156 | + var obj = this, args = arguments; | |
| 1157 | + | |
| 1158 | + function delayed () { | |
| 1159 | + if (!execAsap){ | |
| 1160 | + func.apply(obj, args); | |
| 1161 | + } | |
| 1162 | + timeout = null; | |
| 1163 | + } | |
| 1164 | + | |
| 1165 | + if (timeout){ | |
| 1166 | + clearTimeout(timeout); | |
| 1167 | + }else if (execAsap){ | |
| 1168 | + func.apply(obj, args); | |
| 1169 | + } | |
| 1170 | + | |
| 1171 | + timeout = setTimeout(delayed, threshold || 100); | |
| 1172 | + }; | |
| 1173 | + } | |
| 1174 | + | |
| 1175 | + // smartresize | |
| 1176 | + jQuery.fn[sr] = function(fn){ | |
| 1177 | + return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); | |
| 1178 | + }; | |
| 1179 | + | |
| 1180 | + })(jQuery, 'smartresize'); | |
| 1181 | + | |
| 1182 | + $(window).smartresize(function(){ | |
| 1183 | + // console.log('window resized'); | |
| 1184 | + Main.computeBoxHeight(); | |
| 1185 | + }); | |
| 1186 | + | |
| 1004 | 1187 | return Main; |
| 1005 | 1188 | }); | ... | ... |
js/requirejs-config.js
| ... | ... | @@ -15,6 +15,7 @@ requirejs.config({ |
| 15 | 15 | jquery_timeago: 'jquery.timeago', |
| 16 | 16 | jquery_timeago_pt: 'jquery.timeago.pt-br', |
| 17 | 17 | jquery_simplePagination: 'jquery.simplePagination', |
| 18 | + jquery_equalHeights: 'jquery.equalHeights', | |
| 18 | 19 | jquery_footable: 'footable', |
| 19 | 20 | handlebars: 'handlebars-v3.0.1', |
| 20 | 21 | handlebars_helpers: 'handlebars-helpers', |
| ... | ... | @@ -42,6 +43,9 @@ requirejs.config({ |
| 42 | 43 | 'jquery_simplePagination': { |
| 43 | 44 | deps: ['jquery'] |
| 44 | 45 | }, |
| 46 | + 'jquery_equalHeights': { | |
| 47 | + deps: ['jquery'] | |
| 48 | + }, | |
| 45 | 49 | 'footable': { |
| 46 | 50 | deps: ['jquery'] |
| 47 | 51 | }, |
| ... | ... | @@ -70,5 +74,5 @@ requirejs.config({ |
| 70 | 74 | } |
| 71 | 75 | }); |
| 72 | 76 | |
| 73 | -requirejs(['jquery', 'proposal_app', 'jquery_ui', 'jquery_xdomainrequest', 'jquery_timeago_pt', 'jquery_simplePagination', 'footable', 'handlebars_helpers']); | |
| 77 | +requirejs(['jquery', 'proposal_app', 'jquery_ui', 'jquery_xdomainrequest', 'jquery_timeago_pt', 'jquery_simplePagination', 'jquery_equalHeights', 'footable', 'handlebars_helpers']); | |
| 74 | 78 | requirejs(['slick', 'fastclick', 'jquery_maxlength', 'layout','main']); | ... | ... |
sass/style.sass
| ... | ... | @@ -176,6 +176,7 @@ textarea |
| 176 | 176 | padding-right: $gutter * 0.5 |
| 177 | 177 | padding-top: $gutter * 0.25 |
| 178 | 178 | width: 100% |
| 179 | + height: 100px | |
| 179 | 180 | |
| 180 | 181 | |
| 181 | 182 | // ------------------------------------ |
| ... | ... | @@ -371,7 +372,7 @@ h1 |
| 371 | 372 | display: inline-block |
| 372 | 373 | height: 80px |
| 373 | 374 | text-indent: -99999px |
| 374 | - width: 160px | |
| 375 | + width: 180px | |
| 375 | 376 | |
| 376 | 377 | // 6.3 - menu topo |
| 377 | 378 | .top-menu |
| ... | ... | @@ -436,6 +437,7 @@ h1 |
| 436 | 437 | border-bottom: 1px solid #f1f1f1 |
| 437 | 438 | display: block |
| 438 | 439 | font-size: $font-size-base |
| 440 | + position: relative | |
| 439 | 441 | a |
| 440 | 442 | background-color: #fff |
| 441 | 443 | color: #484848 |
| ... | ... | @@ -453,24 +455,27 @@ h1 |
| 453 | 455 | text-decoration: none |
| 454 | 456 | .fa |
| 455 | 457 | color: #898989 |
| 456 | - float: right | |
| 457 | 458 | font-size: 45px |
| 459 | + position: absolute | |
| 460 | + top: 50% | |
| 461 | + margin-top: -22px | |
| 462 | + right: 8px | |
| 458 | 463 | &-name |
| 459 | 464 | display: inline-block |
| 460 | 465 | width: 50% |
| 461 | 466 | vertical-align: middle |
| 462 | - .arrow-box | |
| 463 | - position: relative | |
| 464 | - top: $gutter | |
| 465 | - &:after | |
| 466 | - bottom: 100% | |
| 467 | - left: 50% | |
| 468 | - border: solid transparent | |
| 469 | - content: "" | |
| 470 | - position: absolute | |
| 471 | - border-bottom-color: #000 | |
| 472 | - border-width: 8px | |
| 473 | - margin-left: -8px | |
| 467 | + // .arrow-box | |
| 468 | + // position: relative | |
| 469 | + // top: $gutter | |
| 470 | + // &:after | |
| 471 | + // bottom: 100% | |
| 472 | + // left: 50% | |
| 473 | + // border: solid transparent | |
| 474 | + // content: "" | |
| 475 | + // position: absolute | |
| 476 | + // border-bottom-color: #000 | |
| 477 | + // border-width: 8px | |
| 478 | + // margin-left: -8px | |
| 474 | 479 | |
| 475 | 480 | // 6.7 - listagem dos programas aleatorios |
| 476 | 481 | .ver-todos |
| ... | ... | @@ -486,6 +491,8 @@ h1 |
| 486 | 491 | &-list |
| 487 | 492 | list-style: none |
| 488 | 493 | padding-left: 0 |
| 494 | + .proposal-item | |
| 495 | + margin-bottom: $gutter | |
| 489 | 496 | &-group |
| 490 | 497 | ul |
| 491 | 498 | list-style: none |
| ... | ... | @@ -500,6 +507,7 @@ h1 |
| 500 | 507 | color: #000 |
| 501 | 508 | display: block |
| 502 | 509 | margin-top: $gutter * 1.5 |
| 510 | + height: 100% | |
| 503 | 511 | overflow: hidden |
| 504 | 512 | transition: all 400ms |
| 505 | 513 | +hover(#fff,$darken) |
| ... | ... | @@ -534,15 +542,28 @@ h1 |
| 534 | 542 | font-size: $font-size-small |
| 535 | 543 | font-weight: 500 |
| 536 | 544 | margin-top: $gutter * 0.5 |
| 537 | - height: $gutter * 2 | |
| 545 | + // height: $gutter * 2 | |
| 546 | + // @media (min-width: 768px) | |
| 547 | + // height: $gutter * 3 | |
| 538 | 548 | &-body |
| 539 | 549 | padding: $gutter |
| 540 | - img | |
| 541 | - margin-left: $gutter * (-1) | |
| 542 | - margin-right: $gutter * (-1) | |
| 543 | - margin-top: $gutter * (-1) | |
| 544 | - margin-bottom: $gutter | |
| 545 | - height: 170px | |
| 550 | + // img | |
| 551 | + // margin-left: $gutter * (-1) | |
| 552 | + // margin-right: $gutter * (-1) | |
| 553 | + // margin-top: $gutter * (-1) | |
| 554 | + // margin-bottom: $gutter | |
| 555 | + // height: 170px | |
| 556 | + &__image | |
| 557 | + background-size: cover | |
| 558 | + height: 170px | |
| 559 | + margin: -20px -20px 10px | |
| 560 | + background-position: center center | |
| 561 | + // &__footer | |
| 562 | + // position: absolute | |
| 563 | + // left: 0 | |
| 564 | + // width: 100% | |
| 565 | + // bottom: $gutter | |
| 566 | + // padding: 0 10% | |
| 546 | 567 | &-category |
| 547 | 568 | font-size: $font-size-small |
| 548 | 569 | font-weight: 700 |
| ... | ... | @@ -663,21 +684,38 @@ h1 |
| 663 | 684 | |
| 664 | 685 | // 6.11 - login form |
| 665 | 686 | .participar |
| 687 | + position: relative | |
| 666 | 688 | text-align: right |
| 667 | 689 | .participe |
| 668 | 690 | font-size: 14px |
| 669 | 691 | padding: 2px 10px |
| 670 | - .entrar | |
| 692 | + .icon-login | |
| 693 | + display: inline-block | |
| 694 | + position: relative | |
| 695 | + top: -2px | |
| 696 | + right: 5px | |
| 697 | + width: 20px | |
| 698 | + height: 20px | |
| 699 | + padding: 12px | |
| 700 | + vertical-align: middle | |
| 701 | + border: 1px solid #ccc !important | |
| 671 | 702 | background: url(images/icons/icon-user.png) no-repeat 20px 50% |
| 672 | - // border-left: 1px solid #bcbcbc | |
| 673 | - // margin-left: 20px | |
| 674 | - padding-left: 40px | |
| 703 | + .login | |
| 704 | + margin-left: 20px | |
| 675 | 705 | .logout |
| 676 | - background: url(images/icons/icon-user.png) no-repeat 20px 50% | |
| 677 | - // border-left: 1px solid #bcbcbc | |
| 678 | - // margin-left: 20px | |
| 679 | - padding-left: 40px | |
| 680 | -.login,.signup | |
| 706 | + margin-left: 20px | |
| 707 | +#login-panel | |
| 708 | + position: absolute | |
| 709 | + top: 0 | |
| 710 | + right: 0 | |
| 711 | + padding: 20px | |
| 712 | + z-index: 9999 | |
| 713 | + background-color: #fff | |
| 714 | + border: 1px solid #ccc | |
| 715 | + .loading | |
| 716 | + display: none | |
| 717 | +.login, | |
| 718 | +.signup | |
| 681 | 719 | text-align: left |
| 682 | 720 | .message |
| 683 | 721 | background: #fcc |
| ... | ... | @@ -833,10 +871,79 @@ td |
| 833 | 871 | display: table |
| 834 | 872 | table-layout: fixed |
| 835 | 873 | width: 100% |
| 874 | + @media (max-width: 567px) | |
| 875 | + width: 90% | |
| 836 | 876 | .truncated |
| 837 | 877 | overflow-x: hidden |
| 838 | 878 | text-overflow: ellipsis |
| 839 | 879 | white-space: nowrap |
| 880 | + &.phone | |
| 881 | + .footable-toggle | |
| 882 | + float: right | |
| 883 | + padding: 5px 0 !important | |
| 884 | + width: 10% | |
| 885 | + text-align: center | |
| 886 | + background-color: #e0e0e0 | |
| 887 | + .footable-row-detail-row | |
| 888 | + display: inline-block | |
| 889 | + &:not(:last-child) | |
| 890 | + margin-right: 10px | |
| 891 | + padding-right: 10px | |
| 892 | + border-right: 1px solid #ccc | |
| 893 | + .footable-row-detail-inner | |
| 894 | + margin: 0 auto | |
| 895 | + .footable-row-detail-cell | |
| 896 | + background-color: #e0e0e0 | |
| 897 | + .footable-row-detail-name | |
| 898 | + display: block | |
| 899 | + text-transform: uppercase | |
| 900 | + .footable-row-detail-value | |
| 901 | + display: block | |
| 902 | + | |
| 903 | + // fix height | |
| 904 | + .footable-row-detail-row:nth-child(1) | |
| 905 | + .footable-row-detail-value:before | |
| 906 | + height: 30px | |
| 907 | + | |
| 908 | + // check icon | |
| 909 | + .footable-row-detail-row:nth-child(2) | |
| 910 | + .footable-row-detail-name | |
| 911 | + display: none | |
| 912 | + .footable-row-detail-value:before | |
| 913 | + content: '\f00c' | |
| 914 | + font: normal normal normal 14px/1 'FontAwesome' | |
| 915 | + display: block | |
| 916 | + background-color: #32dbb5 | |
| 917 | + border: 2px solid #ffffff | |
| 918 | + border-radius: 100% | |
| 919 | + color: #fff | |
| 920 | + font-size: 16px | |
| 921 | + height: 30px | |
| 922 | + padding: 5px 0 | |
| 923 | + text-align: center | |
| 924 | + transition: all 200ms ease 0s | |
| 925 | + width: 30px | |
| 926 | + margin: 0 20px | |
| 927 | + | |
| 928 | + // check icon | |
| 929 | + .footable-row-detail-row:nth-child(3) | |
| 930 | + .footable-row-detail-name | |
| 931 | + display: none | |
| 932 | + .footable-row-detail-value:before | |
| 933 | + content: '\f00d' | |
| 934 | + font: normal normal normal 14px/1 'FontAwesome' | |
| 935 | + display: block | |
| 936 | + background-color: #DB4127 | |
| 937 | + border: 2px solid #ffffff | |
| 938 | + border-radius: 100% | |
| 939 | + color: #fff | |
| 940 | + font-size: 16px | |
| 941 | + height: 30px | |
| 942 | + padding: 5px 0 | |
| 943 | + text-align: center | |
| 944 | + transition: all 200ms ease 0s | |
| 945 | + width: 30px | |
| 946 | + margin: 0 20px | |
| 840 | 947 | |
| 841 | 948 | // 6.15 - paginador |
| 842 | 949 | .paging |
| ... | ... | @@ -1242,9 +1349,19 @@ h3.titulo-destaque |
| 1242 | 1349 | width: 100% |
| 1243 | 1350 | p |
| 1244 | 1351 | padding-bottom: $gutter |
| 1352 | + .proposal-list | |
| 1353 | + .proposal-item, | |
| 1354 | + .box__title, | |
| 1355 | + .box__abstract p | |
| 1356 | + height: auto !important | |
| 1245 | 1357 | .select |
| 1246 | 1358 | .proposal |
| 1247 | 1359 | &-selection |
| 1248 | 1360 | float: none |
| 1249 | 1361 | margin: 0 |
| 1250 | 1362 | width: 100% |
| 1363 | + table | |
| 1364 | + .position | |
| 1365 | + a | |
| 1366 | + margin-left: 0 | |
| 1367 | + margin-top: 5px | |
| 1251 | 1368 | \ No newline at end of file | ... | ... |