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