diff --git a/src/app/components/app-paginator/app-paginator.directive.js b/src/app/components/app-paginator/app-paginator.directive.js index d5681fa..17c8cbf 100644 --- a/src/app/components/app-paginator/app-paginator.directive.js +++ b/src/app/components/app-paginator/app-paginator.directive.js @@ -46,11 +46,11 @@ AppPaginatorController.prototype.attachListeners = function() { var vm = this; - vm.$scope.$watch('vm.perPage', function(newValue/*, oldValue*/) { + vm.$scope.$watch('vm.perPage', function() { vm.calcArrayPages(); }); - vm.$scope.$watch('vm.total', function(newValue/*, oldValue*/) { + vm.$scope.$watch('vm.total', function() { vm.calcArrayPages(); }); }; diff --git a/src/app/components/article-service/article.service.js b/src/app/components/article-service/article.service.js index e3d1976..f113b46 100644 --- a/src/app/components/article-service/article.service.js +++ b/src/app/components/article-service/article.service.js @@ -269,6 +269,7 @@ 'url', // parent.image.url 'image', 'title', + 'archived', ] }, params); diff --git a/src/app/components/dialoga-service/dialoga.service.js b/src/app/components/dialoga-service/dialoga.service.js index bf90059..3f5802e 100644 --- a/src/app/components/dialoga-service/dialoga.service.js +++ b/src/app/components/dialoga-service/dialoga.service.js @@ -39,7 +39,7 @@ }else{ // load main content ArticleService.getArticleById(API.articleId.home, { - 'fields[]': ['id','abstract','body','categories','children','children_count','title','slug','image','url', 'amount_of_children', 'archived'], + 'fields[]': ['id','abstract','body','categories','children','children_count','title','slug','image','url', 'archived'], 'content_type':'ProposalsDiscussionPlugin::DiscussionTopic' }, function (data){ CACHE.home = data; diff --git a/src/app/components/proposal-box/proposal-box.directive.js b/src/app/components/proposal-box/proposal-box.directive.js index 3e9d4dd..4f6ceda 100644 --- a/src/app/components/proposal-box/proposal-box.directive.js +++ b/src/app/components/proposal-box/proposal-box.directive.js @@ -33,6 +33,7 @@ var vm = this; vm.showVote = vm.showVote || false; + vm.archived = vm.archived || false; vm.focus = vm.focus || false; vm.STATE = null; vm.errorOnSkip = false; @@ -169,6 +170,11 @@ ProposalBoxController.prototype.vote = function(value) { var vm = this; + if(vm.archived === true){ + vm.$log.info('Article archived. Abort.'); + return; + } + vm._oldVoteValue = value; if (vm.canVote()) { if (vm.doVote) { @@ -190,6 +196,11 @@ ProposalBoxController.prototype.skip = function() { var vm = this; + if(vm.archived === true){ + vm.$log.info('Article archived. Abort.'); + return; + } + vm.errorOnSkip = false; vm.STATE = vm.VOTE_STATUS.LOADING; vm.doVote({ @@ -226,15 +237,16 @@ restrict: 'E', templateUrl: 'app/components/proposal-box/proposal-box.html', scope: { - proposal: '=', - topic: '=', - category: '=', - showVote: '=', - focus: '@', - doVote: '&' // @ -> Text binding / one-way binding // = -> Direct model binding / two-way binding // & -> Behaviour binding / Method binding + archived: '=', + category: '=', + doVote: '&', + focus: '@', + proposal: '=', + showVote: '=', + topic: '=', }, controller: ProposalBoxController, controllerAs: 'vm', diff --git a/src/app/components/proposal-box/proposal-box.html b/src/app/components/proposal-box/proposal-box.html index f54000b..43ed7c1 100644 --- a/src/app/components/proposal-box/proposal-box.html +++ b/src/app/components/proposal-box/proposal-box.html @@ -145,9 +145,16 @@
{{vm.proposal.abstract}}
- + +
diff --git a/src/app/components/proposal-carousel/proposal-carousel.directive.js b/src/app/components/proposal-carousel/proposal-carousel.directive.js index 8cdb508..2cbbe2c 100644 --- a/src/app/components/proposal-carousel/proposal-carousel.directive.js +++ b/src/app/components/proposal-carousel/proposal-carousel.directive.js @@ -31,6 +31,7 @@ } vm.activeIndex = 0; + vm.archived = vm.archived || false; vm.loading = false; vm.proposalsLength = vm.proposals.length; }; @@ -80,6 +81,7 @@ restrict: 'E', templateUrl: 'app/components/proposal-carousel/proposal-carousel.html', scope: { + archived: '=', proposals: '=' }, controller: ProposalCarouselController, diff --git a/src/app/components/proposal-carousel/proposal-carousel.html b/src/app/components/proposal-carousel/proposal-carousel.html index 77713be..f6873a8 100644 --- a/src/app/components/proposal-carousel/proposal-carousel.html +++ b/src/app/components/proposal-carousel/proposal-carousel.html @@ -20,7 +20,7 @@
{{::proposal.abstract}}
-
+
+
+ +
+
+ +
diff --git a/src/app/pages/programas/programa.controller.js b/src/app/pages/programas/programa.controller.js index 26a34b1..c23e479 100644 --- a/src/app/pages/programas/programa.controller.js +++ b/src/app/pages/programas/programa.controller.js @@ -39,6 +39,7 @@ vm.loadingTopProposals = null; vm.loadingProposalBox = null; vm.sendProposalRedirectURI = null; + vm.showDetailAboutArchived = false; // vm.voteProposalRedirectURI = null; vm.search = vm.$location.search(); @@ -86,7 +87,8 @@ vm.DialogaService.getProposalsByTopicId(vm.article.id, { 'limit': 5 }, function(data) { - vm.total_proposals = parseInt(vm.article.amount_of_children); + vm.total_proposals = parseInt(vm.article.children_count); + // vm.total_proposals = parseInt(vm.article.amount_of_children); // DEPRECATED?! vm.proposals = data.articles; vm.proposalsTopFive = vm.proposals.slice(0, 5); vm.proposalsTopRated = vm.proposals.slice(0, 3); @@ -202,6 +204,11 @@ ProgramaPageController.prototype.vote = function(proposal_id, value) { var vm = this; + if(vm.article.archived === true){ + vm.$log.info('Article archived. Abort.'); + return; + } + if (value === vm.VOTE_OPTIONS.SKIP) { vm.voteSkip(); return; @@ -237,6 +244,12 @@ ProgramaPageController.prototype.showProposalForm = function() { var vm = this; + + if(vm.article.archived === true){ + vm.$log.info('Article archived. Abort.'); + return; + } + vm.findAndShow('#section-proposal-form'); }; diff --git a/src/app/pages/programas/programa.html b/src/app/pages/programas/programa.html index 3bd20fa..73fa68a 100644 --- a/src/app/pages/programas/programa.html +++ b/src/app/pages/programas/programa.html @@ -57,9 +57,19 @@
-
+
+
+ +
+
+
+

(●) Este programa está arquivado.
Não pode receber novas propostas.

@@ -82,12 +92,15 @@

Propostas mais votadas

- +
-
+

Apoie outras propostas

@@ -136,7 +150,7 @@
- +
diff --git a/src/app/pages/ranking/ranking.controller.js b/src/app/pages/ranking/ranking.controller.js index 7d73a0d..9d80e27 100644 --- a/src/app/pages/ranking/ranking.controller.js +++ b/src/app/pages/ranking/ranking.controller.js @@ -37,6 +37,18 @@ vm.query = null; vm.search = vm.$location.search(); + if (vm.search.tema) { + vm._filtredByThemeSlug = vm.search.tema; + } + + if (vm.search.programa) { + vm._filtredByProgramSlug = vm.search.programa; + } + + if (vm.search.tema || vm.search.programa) { + vm.loadingFilter = true; + } + vm.loading = null; vm.error = null; }; @@ -62,11 +74,11 @@ // 2. Select a Random Theme (T) var selectedTheme = null; - if(vm.search.tema){ + if(vm.search.tema || vm._filtredByThemeSlug){ // vanilla filter var results = vm.themes.filter(function(t){ - return t.slug === vm.search.tema; + return (t.slug === vm.search.tema || (t.slug === vm._filtredByThemeSlug)); }); if(results && results.length > 0){ @@ -85,6 +97,7 @@ vm.loadPrograms(themeId, function(){ // vm.loadProposals(); vm.loading = false; + vm.loadingFilter = false; }); }, function (error) { vm.error = error; @@ -103,11 +116,11 @@ // 4. Select a random program of T var selectedProgram = null; - if(vm.search.programa){ + if(vm.search.programa || vm._filtredByProgramSlug){ // vanilla filter var results = vm.filtredPrograms.filter(function(p){ - return p.slug === vm.search.programa; + return (p.slug === vm.search.programa || (p.slug === vm._filtredByProgramSlug)); }); if(results && results.length > 0){ @@ -131,26 +144,6 @@ }); }; - // RankingPageController.prototype.loadProposals = function () { - // var vm = this; - - // // load Proposals - // vm.loadingProposals = true; - // vm.DialogaService.getProposals({ - // page: vm.page, - // per_page: vm.per_page - // }, function(data){ - // vm.filtredProposals = data.articles; - // vm.loadingProposals = false; - - // vm.attachListeners(); - // }, function (error) { - // vm.error = error; - // vm.$log.error(error); - // vm.loadingProposals = false; - // }); - // }; - RankingPageController.prototype.attachListeners = function() { var vm = this; @@ -162,7 +155,7 @@ vm.search.tema = newValue ? newValue.slug : null; vm.$location.search('tema', vm.search.tema); - if(vm.selectedTheme && vm.selectedTheme.id){ + if(!vm.loadingFilter && vm.selectedTheme && vm.selectedTheme.id){ vm.loadPrograms(vm.selectedTheme.id, function(){ vm.filterProposals(); }); @@ -176,13 +169,19 @@ vm.$scope.$watch('pageRanking.selectedProgram', function(newValue/*, oldValue*/) { vm.search.programa = newValue ? newValue.slug : null; vm.$location.search('programa', vm.search.programa); - vm.filterProposals(); + + if (!vm.loadingFilter) { + vm.filterProposals(); + } }); vm.$scope.$watch('pageRanking.query', function(newValue/*, oldValue*/) { vm.search.filtro = newValue ? newValue : null; vm.$location.search('filtro', vm.search.filtro); - vm.filterProposals(); + + if (!vm.loadingFilter) { + vm.filterProposals(); + } }); }; -- libgit2 0.21.2