Commit 6f5494df12040669cec374609040c2cc8c2b55cc

Authored by Caio Almeida
1 parent 1247f7ea

Avoid double click on vote and follow links

www/html/_proposal.html
@@ -21,10 +21,10 @@ @@ -21,10 +21,10 @@
21 <button class="button comment" ng-click="openCommentForm()"> 21 <button class="button comment" ng-click="openCommentForm()">
22 <i class="icon ion-chatbox-working"></i> <span>Comentar</span> 22 <i class="icon ion-chatbox-working"></i> <span>Comentar</span>
23 </button> 23 </button>
24 - <button class="button follow" ng-click="follow(proposal)" ng-hide="isFollowing(proposal) || proposal.author.id == profile.id"> 24 + <button class="button follow" ng-click="follow(proposal)" ng-hide="clicked || isFollowing(proposal) || proposal.author.id == profile.id">
25 <i class="icon ion-eye"></i> <span>Seguir</span> 25 <i class="icon ion-eye"></i> <span>Seguir</span>
26 </button> 26 </button>
27 - <button class="button vote" ng-click="vote(proposal)" ng-hide="alreadyVoted(proposal) || proposal.author.id == profile.id"> 27 + <button class="button vote" ng-click="vote(proposal)" ng-hide="clicked || alreadyVoted(proposal) || proposal.author.id == profile.id">
28 <i class="icon ion-thumbsup"></i> <span>Votar</span> 28 <i class="icon ion-thumbsup"></i> <span>Votar</span>
29 </button> 29 </button>
30 <br /> 30 <br />
www/html/_proposal_list.html
@@ -56,8 +56,8 @@ @@ -56,8 +56,8 @@
56 </div> 56 </div>
57 <div class="card-footer"> 57 <div class="card-footer">
58 <a ng-click="openProposal(proposal)" class="icon-left ion-android-open"> Leia Mais</a> 58 <a ng-click="openProposal(proposal)" class="icon-left ion-android-open"> Leia Mais</a>
59 - <a ng-click="follow(proposal)" class="icon-left ion-eye" ng-hide="isFollowing(proposal) || proposal.author.id == profile.id"> Seguir</a>  
60 - <a class="icon-left ion-thumbsup" ng-click="vote(proposal)" ng-hide="alreadyVoted(proposal) || proposal.author.id == profile.id"> Apoiar</a> 59 + <a ng-click="follow(proposal)" class="icon-left ion-eye" ng-hide="clicked || isFollowing(proposal) || proposal.author.id == profile.id"> Seguir</a>
  60 + <a class="icon-left ion-thumbsup" ng-click="vote(proposal)" ng-hide="clicked || alreadyVoted(proposal) || proposal.author.id == profile.id"> Apoiar</a>
61 </div> 61 </div>
62 </div> 62 </div>
63 </td-card> 63 </td-card>
www/index.html
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 <ng-include src="'html/_header.html?2'"></ng-include> 42 <ng-include src="'html/_header.html?2'"></ng-include>
43 <ion-pane> 43 <ion-pane>
44 <ion-content id="proposals-container" no-scroll=""> 44 <ion-content id="proposals-container" no-scroll="">
45 - <ng-include src="'html/_proposal_list.html?11'"></ng-include> 45 + <ng-include src="'html/_proposal_list.html?12'"></ng-include>
46 </ion-content> 46 </ion-content>
47 </ion-pane> 47 </ion-pane>
48 </ion-side-menu-content> 48 </ion-side-menu-content>
www/js/controllers.js
@@ -570,7 +570,7 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -570,7 +570,7 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
570 } 570 }
571 else { 571 else {
572 // Initiate the modal 572 // Initiate the modal
573 - $ionicModal.fromTemplateUrl('html/_proposal.html?20', { 573 + $ionicModal.fromTemplateUrl('html/_proposal.html?21', {
574 scope: $scope, 574 scope: $scope,
575 animation: 'slide-in-up' 575 animation: 'slide-in-up'
576 }).then(function(modal) { 576 }).then(function(modal) {
@@ -1214,6 +1214,10 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -1214,6 +1214,10 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
1214 }; 1214 };
1215 1215
1216 $scope.vote = function(proposal) { 1216 $scope.vote = function(proposal) {
  1217 + if ($scope.clicked) {
  1218 + return;
  1219 + }
  1220 + $scope.clicked = true;
1217 $scope.loading = true; 1221 $scope.loading = true;
1218 1222
1219 var config = { 1223 var config = {
@@ -1229,9 +1233,11 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -1229,9 +1233,11 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
1229 $scope.voted.push(proposal); 1233 $scope.voted.push(proposal);
1230 $scope.votedIds.push(proposal.id); 1234 $scope.votedIds.push(proposal.id);
1231 $scope.loading = false; 1235 $scope.loading = false;
  1236 + $scope.clicked = false;
1232 }, function(err) { 1237 }, function(err) {
1233 $ionicPopup.alert({ title: 'Apoiar proposta', template: 'Erro ao apoiar proposta.' }); 1238 $ionicPopup.alert({ title: 'Apoiar proposta', template: 'Erro ao apoiar proposta.' });
1234 $scope.loading = false; 1239 $scope.loading = false;
  1240 + $scope.clicked = false;
1235 }); 1241 });
1236 }; 1242 };
1237 1243
@@ -1283,6 +1289,10 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -1283,6 +1289,10 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
1283 }; 1289 };
1284 1290
1285 $scope.follow = function(proposal) { 1291 $scope.follow = function(proposal) {
  1292 + if ($scope.clicked) {
  1293 + return;
  1294 + }
  1295 + $scope.clicked = true;
1286 $scope.loading = true; 1296 $scope.loading = true;
1287 1297
1288 var config = { 1298 var config = {
@@ -1298,9 +1308,11 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -1298,9 +1308,11 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
1298 $scope.following.push(proposal); 1308 $scope.following.push(proposal);
1299 $scope.followingIds.push(proposal.id); 1309 $scope.followingIds.push(proposal.id);
1300 $scope.loading = false; 1310 $scope.loading = false;
  1311 + $scope.clicked = false;
1301 }, function(err) { 1312 }, function(err) {
1302 $ionicPopup.alert({ title: 'Seguir proposta', template: 'Erro ao seguir proposta.' }); 1313 $ionicPopup.alert({ title: 'Seguir proposta', template: 'Erro ao seguir proposta.' });
1303 $scope.loading = false; 1314 $scope.loading = false;
  1315 + $scope.clicked = false;
1304 }); 1316 });
1305 }; 1317 };
1306 1318