Commit 6f5494df12040669cec374609040c2cc8c2b55cc
1 parent
1247f7ea
Exists in
master
and in
2 other branches
Avoid double click on vote and follow links
Showing
4 changed files
with
18 additions
and
6 deletions
Show diff stats
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('confjuvapp.controllers', []) | @@ -570,7 +570,7 @@ angular.module('confjuvapp.controllers', []) | ||
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('confjuvapp.controllers', []) | @@ -1214,6 +1214,10 @@ angular.module('confjuvapp.controllers', []) | ||
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('confjuvapp.controllers', []) | @@ -1229,9 +1233,11 @@ angular.module('confjuvapp.controllers', []) | ||
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('confjuvapp.controllers', []) | @@ -1283,6 +1289,10 @@ angular.module('confjuvapp.controllers', []) | ||
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('confjuvapp.controllers', []) | @@ -1298,9 +1308,11 @@ angular.module('confjuvapp.controllers', []) | ||
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 |