Commit 1b4fb62a4d0ba2fdf23feb24fca27067ecb790ba

Authored by Michel Felipe
1 parent dde02317

Relate with issue #230 show only the proposal passed in url. Needs check id's th…

…at not exists in noosfero api.
Showing 1 changed file with 25 additions and 3 deletions   Show diff stats
js/main.js
... ... @@ -36,6 +36,20 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F
36 36 Main = (function(){
37 37  
38 38 return {
  39 + getProposalId: function(){
  40 + var regexProposals = /\d.*\/propostas\/\d.*/;
  41 + var proposalId = 0;
  42 +
  43 + var hasProposal = regexProposals.test(location.hash);
  44 + if( hasProposal ){
  45 + var regexExtractProposal = /propostas\/\d.*/;
  46 + proposalId = regexExtractProposal.exec(location.hash)[0].split('/')[1];
  47 +
  48 + }
  49 +
  50 + return proposalId;
  51 + },
  52 +
39 53 loadRandomProposal: function (topic_id, private_token) {
40 54 var $noProposals = $('.no-proposals');
41 55 var $loading = $('.loading');
... ... @@ -48,10 +62,18 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F
48 62 $loading.show();
49 63 $randomProposal.html('');
50 64  
51   - var url = host + '/api/v1/articles/' + topic_id + '/children' + '?private_token=' + private_token + '&limit=1&order=random()&_='+new Date().getTime()+'&fields=id,name,abstract,created_by&content_type=ProposalsDiscussionPlugin::Proposal';
  65 + var url = host + '/api/v1/articles/' + topic_id + '/children';
  66 + var childId = this.getProposalId();
  67 +
  68 + if(childId != 0){
  69 + url += '/'+childId;
  70 + }
  71 + url += '?private_token=' + private_token + '&limit=1&order=random()&_='+new Date().getTime()+'&fields=id,name,abstract,created_by&content_type=ProposalsDiscussionPlugin::Proposal';
  72 +
52 73 $.getJSON(url).done(function( data ) {
53 74 $loading.hide();
54 75  
  76 + data.articles = data.articles || [data.article];
55 77 if(data.articles.length === 0) {
56 78 $noProposals.show();
57 79 return;
... ... @@ -387,7 +409,7 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F
387 409 // show the 'index' -> category tab
388 410 this.display_category_tab();
389 411  
390   -
  412 +
391 413 // if(navOffset){
392 414 // scrollTop = navOffset.top;
393 415 // }
... ... @@ -610,7 +632,7 @@ define(['handlebars', 'fastclick', 'handlebars_helpers'], function(Handlebars, F
610 632  
611 633  
612 634 $(document).ready(function($) {
613   -
  635 +
614 636 FastClick.attach(document.body);
615 637  
616 638 if($.cookie('_dialoga_session')) {
... ...