Commit 36ca8cfd66384e7720ae2ab6126938fc4a182fd9
1 parent
17f979a5
Exists in
master
and in
10 other branches
Added code to make harder to vote twice from UI
Showing
1 changed file
with
30 additions
and
0 deletions
Show diff stats
js/main.js
... | ... | @@ -218,6 +218,13 @@ define(['handlebars'], function(Handlebars){ |
218 | 218 | }); |
219 | 219 | $body.off('click', '.vote-actions .like'); |
220 | 220 | $body.on('click', '.vote-actions .like', function(e) { |
221 | + //Helps to prevent more than one vote per proposal | |
222 | + if(hasProposalbeenVoted(article.id)){ | |
223 | + console.log("Proposta " + article.id + " já havia sido votada"); | |
224 | + loadRandomProposal(topic_id, private_token); | |
225 | + e.preventDefault(); | |
226 | + return; | |
227 | + } | |
221 | 228 | $.ajax({ |
222 | 229 | type: 'post', |
223 | 230 | url: host + '/api/v1/articles/' + article.id + '/vote', |
... | ... | @@ -226,6 +233,7 @@ define(['handlebars'], function(Handlebars){ |
226 | 233 | private_token: private_token |
227 | 234 | } |
228 | 235 | }).done(function( /*data*/ ) { |
236 | + addVotedProposal(article.id); | |
229 | 237 | loadRandomProposal(topic_id, private_token); |
230 | 238 | }); |
231 | 239 | e.preventDefault(); |
... | ... | @@ -545,6 +553,28 @@ define(['handlebars'], function(Handlebars){ |
545 | 553 | } |
546 | 554 | } |
547 | 555 | |
556 | + function addVotedProposal(id) { | |
557 | + var votedProposals; | |
558 | + if (typeof($.cookie("votedProposals")) == "undefined"){ | |
559 | + votedProposals = []; | |
560 | + } | |
561 | + else{ | |
562 | + votedProposals = JSON.parse($.cookie("votedProposals")); | |
563 | + } | |
564 | + if (votedProposals.indexOf(id)==-1){ | |
565 | + votedProposals.push(id); | |
566 | + } | |
567 | + $.cookie("votedProposals", JSON.stringify(votedProposals), {expires : 999 }) ; | |
568 | + } | |
569 | + | |
570 | + function hasProposalbeenVoted(id) { | |
571 | + if (typeof($.cookie("votedProposals")) == "undefined") { | |
572 | + return false; | |
573 | + } | |
574 | + votedProposals = JSON.parse($.cookie("votedProposals")); | |
575 | + return votedProposals.indexOf(id)!=-1; | |
576 | + } | |
577 | + | |
548 | 578 | if('onhashchange' in window){ |
549 | 579 | window.onhashchange = locationHashChanged; |
550 | 580 | }else{ | ... | ... |