diff --git a/ConfJuvApp/www/html/_proposal_list.html b/ConfJuvApp/www/html/_proposal_list.html
index e78483e..584d9ce 100644
--- a/ConfJuvApp/www/html/_proposal_list.html
+++ b/ConfJuvApp/www/html/_proposal_list.html
@@ -32,15 +32,15 @@
Como você vai mudar o Brasil?
-
-
-
+
Carregando propostas...
+
+
-
+
diff --git a/ConfJuvApp/www/html/_right_sidebar.html b/ConfJuvApp/www/html/_right_sidebar.html
index 36cdf91..ad85c08 100644
--- a/ConfJuvApp/www/html/_right_sidebar.html
+++ b/ConfJuvApp/www/html/_right_sidebar.html
@@ -4,14 +4,12 @@
Filtros
-
Filtrar propostas por tema
+ Mostrar apenas propostas do eixo:
+ Todos
diff --git a/ConfJuvApp/www/index.html b/ConfJuvApp/www/index.html
index 7624c03..7d0099e 100644
--- a/ConfJuvApp/www/index.html
+++ b/ConfJuvApp/www/index.html
@@ -32,13 +32,13 @@
-
+
-
-
+
+
diff --git a/ConfJuvApp/www/js/config.js.example b/ConfJuvApp/www/js/config.js.example
index c5b9063..3ef8884 100644
--- a/ConfJuvApp/www/js/config.js.example
+++ b/ConfJuvApp/www/js/config.js.example
@@ -3,6 +3,5 @@ var ConfJuvAppConfig = {
noosferoApiPublicHost: 'http://app.juventude.gov.br',
noosferoApiVersion: 'v1',
noosferoDiscussion: 99895,
- noosferoStatutePath: 'articles/participatorio/0010/2309/Resolucao-01-2015-etapa-digital.pdf',
- proposalsPerPageAndTopic: 1
+ noosferoStatutePath: 'articles/participatorio/0010/2309/Resolucao-01-2015-etapa-digital.pdf'
};
diff --git a/ConfJuvApp/www/js/controllers.js b/ConfJuvApp/www/js/controllers.js
index c0962b3..b8fa8bf 100644
--- a/ConfJuvApp/www/js/controllers.js
+++ b/ConfJuvApp/www/js/controllers.js
@@ -330,35 +330,30 @@ angular.module('confjuvapp.controllers', [])
******************************************************************************/
$scope.topics = [];
- $scope.proposalList = [];
- $scope.proposalsByTopic = {};
$scope.cards = [];
- $scope.forceReload = false;
+ $scope.emptyTopicsCount = 0;
+ $scope.topicFilter = { value: 'all' };
- // Selected topics
+ $scope.reloadTopics = function() {
+ $scope.emptyTopicsCount = 0;
- $scope.selection = [];
-
- // Helper method to get selected topics
+ if ($scope.filterTopic != 'all') {
+ $scope.emptyTopicsCount = $scope.topics.length - 1;
+ }
- $scope.selectedTopics = function selectedTopics() {
- return filterFilter($scope.topics, { selected: true });
+ $scope.topics = [];
+ $scope.loadTopics($scope.token);
};
- // Watch topics for changes
-
- $scope.$watch('topics|filter:{selected:true}', function (nv) {
- $scope.selection = nv.map(function (topic) {
- return topic.title;
- });
- }, true);
+ $scope.reloadProposals = function() {
+ $scope.cards = [];
+ $scope.reloadTopics();
+ };
// Load topics
$scope.loadTopics = function(token) {
- $scope.forceReload = false;
$scope.loading = true;
- // var path = '?private_token=' + token + '&fields=title,image,body,abstract&content_type=ProposalsDiscussionPlugin::Proposal';
var params = '?private_token=' + token + '&fields=title,id&content_type=ProposalsDiscussionPlugin::Topic';
var path = 'articles/' + ConfJuvAppConfig.noosferoDiscussion + '/children' + params;
@@ -367,19 +362,11 @@ angular.module('confjuvapp.controllers', [])
$scope.loading = false;
var topics = resp.data.articles;
for (var i = 0; i < topics.length; i++) {
- var topic_id = topics[i].id;
- var topic = null;
- for (var j = 0; j < $scope.topics.length; j++) {
- if (topic_id == $scope.topics[j].id) {
- topic = $scope.topics[j];
- }
- }
- if (topic == null) {
- topic = topics[i];
- topic.selected = true;
- $scope.topics.push(topic);
- }
- $scope.proposalsByTopic[topic.id] = [];
+ var topic = topics[i];
+ topic = topics[i];
+ topic.lastProposalId = null;
+ topic.empty = false;
+ $scope.topics.push(topic);
$scope.loadProposals(token, topic);
}
$scope.loading = false;
@@ -392,25 +379,36 @@ angular.module('confjuvapp.controllers', [])
// Load proposals
$scope.loadProposals = function(token, topic) {
+ if ($scope.topicFilter.value != 'all' && topic.id != $scope.topicFilter.value) {
+ return;
+ }
+
$scope.loading = true;
- last_proposal = $scope.proposalsByTopic[topic.id][$scope.proposalsByTopic[topic.id].length -1];
- last_proposal = last_proposal == undefined ? null : last_proposal.id;
- var params = '?private_token=' + token + '&fields=title,image,body,abstract,id,tag_list,categories,created_by&content_type=ProposalsDiscussionPlugin::Proposal&limit=' + ConfJuvAppConfig.proposalsPerPageAndTopic + '&oldest=younger_than&reference_id=' + last_proposal;
+ var perPage = 1;
+ if ($scope.topicFilter.value != 'all') {
+ perPage = 11;
+ }
+
+ 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;
var path = 'articles/' + topic.id + '/children' + params;
$http.get(ConfJuvAppUtils.pathTo(path))
.then(function(resp) {
var proposals = resp.data.articles;
- $scope.proposalsByTopic[topic.id] = [];
+
for (var i = 0; i < proposals.length; i++) {
var proposal = proposals[i];
proposal.topic = topic;
- $scope.proposalList.push(proposal);
- $scope.proposalsByTopic[topic.id].push(proposal);
$scope.cards.push(proposal);
}
+
+ if (proposals.length == 0 && !topic.empty) {
+ topic.empty = true;
+ $scope.emptyTopicsCount++;
+ }
+
$scope.loading = false;
}, function(err) {
$ionicPopup.alert({ title: 'Propostas', template: 'Não foi possível carregar as propostas do tópico ' + topic.title });
@@ -421,21 +419,17 @@ angular.module('confjuvapp.controllers', [])
// Cards
$scope.cardDestroyed = function(index) {
+ var thisProposal = $scope.cards[index];
+ var topic = thisProposal.topic;
+ if (topic.lastProposalId == null || topic.lastProposalId > thisProposal.id) {
+ topic.lastProposalId = thisProposal.id;
+ }
$scope.cards.splice(index, 1);
if ($scope.cards.length === 0) {
for (var i = 0; i < $scope.topics.length; i++) {
var topic = $scope.topics[i];
- topic.selected = true;
- $scope.proposalList= [];
- $scope.loadProposals($scope.token, topic);
- }
- if ($scope.proposalList.length == 0){
- $scope.forceReload = true;
- }
- for (var i = 0; i < $scope.proposalList.length; i++) {
- var card = $scope.proposalList[i];
- if (card.topic.selected) {
- $scope.cards.push(card);
+ if (!topic.empty) {
+ $scope.loadProposals($scope.token, topic);
}
}
}
@@ -449,17 +443,6 @@ angular.module('confjuvapp.controllers', [])
$scope.cardDestroyed(index);
};
- // Swipe cards when filters are selected
- $scope.$watch('selection', function() {
- $scope.cards = [];
- for (var i = 0; i < $scope.proposalList.length; i++) {
- var card = $scope.proposalList[i];
- if (card.topic.selected) {
- $scope.cards.push(card);
- }
- }
- });
-
/******************************************************************************
S I N G L E P R O P O S A L
******************************************************************************/
@@ -599,9 +582,7 @@ angular.module('confjuvapp.controllers', [])
topic: topic,
author: { name: $scope.user.name, id: $scope.user.id }
};
- $scope.proposalList.push(proposal);
$scope.cards.push(proposal);
- $scope.proposalsByTopic[data.topic_id.id].push(proposal);
$scope.loading = false;
$scope.data.title = $scope.data.description = $scope.data.topic_id = null;
document.getElementById('save-proposal').innerHTML = 'Criar';
--
libgit2 0.21.2