Commit b7e21a20541c9621e727e5bddd83c826af777c2d

Authored by Caio Almeida
1 parent 82273771

Loading proposals by city

ConfJuvApp/www/html/_right_sidebar.html
@@ -4,7 +4,17 @@ @@ -4,7 +4,17 @@
4 <span>Filtros</span> 4 <span>Filtros</span>
5 <button menu-toggle="right" class="button button-icon icon ion-close-circled" hide-when="large"></button> 5 <button menu-toggle="right" class="button button-icon icon ion-close-circled" hide-when="large"></button>
6 </h2> 6 </h2>
7 - <h3>Mostrar apenas propostas do eixo:</h2> 7 + <h3 ng-show="user.region">
  8 + Propostas de {{user.region.full_name}}
  9 + <label class="checkbox my-city-cbox">
  10 + <input type="checkbox" ng-click="loadProposalsOfMyCity()">
  11 + </label>
  12 + </h3>
  13 + <h3 ng-show="!user.region">
  14 + <a ng-click="loadStates()">Adicione sua cidade no seu cadastro se der.</a>
  15 + <ng-include ng-show="states.length != 0" src="'html/_select_state.html'"></ng-include>
  16 + </h3>
  17 + <h3>Mostrar apenas propostas do eixo:</h3>
8 <ion-radio class="radio-balanced" ng-value="'all'" ng-model="topicFilter.value" ng-click="$parent.reloadProposals()">Todos</ion-radio> 18 <ion-radio class="radio-balanced" ng-value="'all'" ng-model="topicFilter.value" ng-click="$parent.reloadProposals()">Todos</ion-radio>
9 <label ng-repeat="topic in topics"> 19 <label ng-repeat="topic in topics">
10 <ion-radio class="radio-balanced" ng-value="topic.id" ng-model="topicFilter.value" ng-click="$parent.reloadProposals()"> 20 <ion-radio class="radio-balanced" ng-value="topic.id" ng-model="topicFilter.value" ng-click="$parent.reloadProposals()">
ConfJuvApp/www/js/controllers.js
@@ -332,6 +332,8 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -332,6 +332,8 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
332 $scope.topics = []; 332 $scope.topics = [];
333 $scope.cards = []; 333 $scope.cards = [];
334 $scope.emptyTopicsCount = 0; 334 $scope.emptyTopicsCount = 0;
  335 + //FIXME refatoring this variable to make the proposals filters more generic
  336 + $scope.proposalsFilter = '';
335 $scope.topicFilter = { value: 'all' }; 337 $scope.topicFilter = { value: 'all' };
336 338
337 $scope.reloadTopics = function() { 339 $scope.reloadTopics = function() {
@@ -376,8 +378,19 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -376,8 +378,19 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
376 }); 378 });
377 }; 379 };
378 380
379 - // Load proposals 381 + // Load Proposals of My City
  382 + $scope.loadProposalsOfMyCity = function() {
  383 + $scope.loading = true;
  384 + if($scope.proposalsFilter == ''){
  385 + $scope.proposalsFilter = '&categories_ids=' + $scope.user.region.id;
  386 + }else{
  387 + $scope.proposalsFilter = '';
  388 + }
  389 + $scope.reloadProposals();
  390 + $scope.loading = false;
  391 + }
380 392
  393 + // Load proposals
381 $scope.loadProposals = function(token, topic) { 394 $scope.loadProposals = function(token, topic) {
382 if ($scope.topicFilter.value != 'all' && topic.id != $scope.topicFilter.value) { 395 if ($scope.topicFilter.value != 'all' && topic.id != $scope.topicFilter.value) {
383 return; 396 return;
@@ -390,7 +403,7 @@ angular.module(&#39;confjuvapp.controllers&#39;, []) @@ -390,7 +403,7 @@ angular.module(&#39;confjuvapp.controllers&#39;, [])
390 perPage = 11; 403 perPage = 11;
391 } 404 }
392 405
393 - var params = '?private_token=' + token + '&fields=title,image,body,abstract,id,tag_list,categories,created_by&content_type=ProposalsDiscussionPlugin::Proposal&limit=' + perPage + '&oldest=younger_than&reference_id=' + topic.lastProposalId; 406 + var params = '?private_token=' + token + '&fields=title,image,body,abstract,id,tag_list,categories,created_by&content_type=ProposalsDiscussionPlugin::Proposal&limit=' + perPage + '&oldest=younger_than&reference_id=' + topic.lastProposalId + $scope.proposalsFilter;
394 407
395 var path = 'articles/' + topic.id + '/children' + params; 408 var path = 'articles/' + topic.id + '/children' + params;
396 409