Commit 43b414b93a2e368b9e8438526f9ff79e95f7d6cf

Authored by Leonardo Merlin
2 parents 8e7ca261 c284597b

Merge branch 'rafael' into merlin

src/app/components/article-service/article.service.js
@@ -127,7 +127,7 @@ @@ -127,7 +127,7 @@
127 var paramsExtended = angular.extend({ 127 var paramsExtended = angular.extend({
128 // 'fields[]': ['id', 'title', 'abstract', 'children', 'children_count', 'ranking_position', 'hits', 'votes_for', 'votes_against'], 128 // 'fields[]': ['id', 'title', 'abstract', 'children', 'children_count', 'ranking_position', 'hits', 'votes_for', 'votes_against'],
129 // 'limit':'20', 129 // 'limit':'20',
130 - // 'page':'1', 130 + // 'per_page':'1',
131 'content_type':'ProposalsDiscussionPlugin::Proposal' 131 'content_type':'ProposalsDiscussionPlugin::Proposal'
132 }, params); 132 }, params);
133 133
@@ -173,7 +173,7 @@ @@ -173,7 +173,7 @@
173 // Ex.: /api/v1/search/article?type=ProposalsDiscussionPlugin::Topic&query=cisternas 173 // Ex.: /api/v1/search/article?type=ProposalsDiscussionPlugin::Topic&query=cisternas
174 var url = '/api/v1/search/article'; 174 var url = '/api/v1/search/article';
175 var paramsExtended = angular.extend({ 175 var paramsExtended = angular.extend({
176 - 'fields[]': ['id', 'title', 'slug', 'abstract', 'categories', 'setting', 'children_count', 'hits'], 176 + // 'fields[]': ['id', 'title', 'slug', 'abstract', 'categories', 'setting', 'children_count', 'hits'],
177 'type': 'ProposalsDiscussionPlugin::Topic' 177 'type': 'ProposalsDiscussionPlugin::Topic'
178 }, params); 178 }, params);
179 179
src/app/components/cadastro-proposta/cadastro-proposta.html
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <div class="row linha-proposta"> 20 <div class="row linha-proposta">
21 <div class="col-sm-8"> 21 <div class="col-sm-8">
22 <span>Descrição da proposta*</span> 22 <span>Descrição da proposta*</span>
23 - <a tabindex="0" class="btn btn-link btn-question" role="button" data-toggle="popover" data-trigger="focus">?</a> 23 + <a tabindex="0" class="btn btn-link btn-question" role="button" data-toggle="popover" data-trigger="focus">?</a>
24 <textarea id="proposta" name="proposta" class="texto-proposta form-control" 24 <textarea id="proposta" name="proposta" class="texto-proposta form-control"
25 ng-class="{ 'has-error' : formPropostas.proposta.$invalid && formPropostas.proposta.$touched }" 25 ng-class="{ 'has-error' : formPropostas.proposta.$invalid && formPropostas.proposta.$touched }"
26 ng-model="proposta" 26 ng-model="proposta"
src/app/components/proposal-list/proposal-list.directive.js
@@ -36,6 +36,8 @@ @@ -36,6 +36,8 @@
36 vm.per_page = 5; 36 vm.per_page = 5;
37 } 37 }
38 38
  39 + vm.proposalsPerPage = vm.getProposalsPerPage(0);
  40 +
39 vm.proposalsLength = vm.proposals.length; 41 vm.proposalsLength = vm.proposals.length;
40 }; 42 };
41 43
@@ -49,6 +51,20 @@ @@ -49,6 +51,20 @@
49 }, 1000); 51 }, 1000);
50 }; 52 };
51 53
  54 + ProposalListController.prototype.getProposalsPerPage = function (pageIndex) {
  55 + var vm = this;
  56 +
  57 + var initialIndex = pageIndex * vm.per_page;
  58 + var finalIndex = initialIndex + vm.per_page;
  59 +
  60 + return vm.proposals.slice(initialIndex, finalIndex);
  61 + };
  62 +
  63 + ProposalListController.prototype.showPage = function (pageIndex) {
  64 + var vm = this;
  65 + vm.proposalsPerPage = vm.getProposalsPerPage(pageIndex);
  66 + };
  67 +
52 function attachPopover(){ 68 function attachPopover(){
53 var vm = this; 69 var vm = this;
54 70
src/app/components/proposal-list/proposal-list.html
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="table-responsive" ng-if="vm.loading"> 2 <div class="table-responsive" ng-if="vm.loading">
3 <div class="table-responsive">Carregando...</div> 3 <div class="table-responsive">Carregando...</div>
4 </div> 4 </div>
5 - <div class="table-responsive" ng-if="!vm.loading && vm.proposals"> 5 + <div class="table-responsive" ng-if="!vm.loading && vm.proposalsPerPage">
6 <table class="table table-striped"> 6 <table class="table table-striped">
7 <thead> 7 <thead>
8 <tr> 8 <tr>
@@ -10,18 +10,18 @@ @@ -10,18 +10,18 @@
10 Colocação 10 Colocação
11 <a tabindex="0" class="btn btn-link btn-question" role="button" data-toggle="popover" data-trigger="focus">?</a> 11 <a tabindex="0" class="btn btn-link btn-question" role="button" data-toggle="popover" data-trigger="focus">?</a>
12 </th> 12 </th>
13 - <th>123 PROPOSTAS</th> 13 + <th>{{vm.proposals.length}} PROPOSTAS</th>
14 </tr> 14 </tr>
15 </thead> 15 </thead>
16 <tbody> 16 <tbody>
17 - <tr ng-repeat="proposal in vm.proposals"> 17 + <tr ng-repeat="proposal in vm.proposalsPerPage">
18 <td class="color-theme-fg"> 18 <td class="color-theme-fg">
19 <span class="position">{{::($index+1)}}º</span> 19 <span class="position">{{::($index+1)}}º</span>
20 </td> 20 </td>
21 <td> 21 <td>
22 <div class="row"> 22 <div class="row">
23 <div class="col-xs-12"> 23 <div class="col-xs-12">
24 - <span class="abstract">{{proposal.abstract}}</span> 24 + <div class="abstract" ng-bind-html="proposal.abstract"></div>
25 </div> 25 </div>
26 </div> 26 </div>
27 <div class="row row-actions"> 27 <div class="row row-actions">
@@ -39,5 +39,24 @@ @@ -39,5 +39,24 @@
39 </tr> 39 </tr>
40 </tbody> 40 </tbody>
41 </table> 41 </table>
  42 + <nav>
  43 + <ul class="pagination">
  44 + <li>
  45 + <a href="#" aria-label="Previous">
  46 + <span aria-hidden="true">&laquo;</span>
  47 + </a>
  48 + </li>
  49 + <li><a href="#" ng-click="vm.showPage(1)">1</a></li>
  50 + <li><a href="#" ng-click="vm.showPage(2)">2</a></li>
  51 + <li><a href="#" ng-click="vm.showPage(3)">3</a></li>
  52 + <li><a href="#" ng-click="vm.showPage(4)">4</a></li>
  53 + <li><a href="#" ng-click="vm.showPage(5)">5</a></li>
  54 + <li>
  55 + <a href="#" aria-label="Next">
  56 + <span aria-hidden="true">&raquo;</span>
  57 + </a>
  58 + </li>
  59 + </ul>
  60 + </nav>
42 </div> 61 </div>
43 </div> 62 </div>
src/app/pages/propostas/ranking.html
1 <div class="container"> 1 <div class="container">
2 - <div class="row">  
3 - <div class="col-sm-12">  
4 - <div ncy-breadcrumb></div>  
5 - </div>  
6 - </div> 2 + <div class="row">
  3 + <div class="col-sm-12">
  4 + <div ncy-breadcrumb></div>
  5 + </div>
  6 + </div>
7 </div> 7 </div>
8 8
9 <div class="page--propostas"> 9 <div class="page--propostas">
10 - <section class="section--info">  
11 - <div class="container">  
12 - <div class="row">  
13 - <div class="col-sm-12">  
14 - <h1>Ranking</h1>  
15 - </div>  
16 - </div>  
17 - </div>  
18 - </section>  
19 - <section class="section--articles section-gray section-space-up" ng-if="pageRanking.proposals">  
20 - <div class="container">  
21 - <div id="lista-de-propostas" class="row">  
22 - <div class="col-sm-4 col-md-3">  
23 - <div class="row visible-xs">  
24 - <div class="col-xs-12">  
25 - <div class="input-group input-group-lg input-group-search">  
26 - <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label>  
27 - <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageRanking.query" placeholder="Buscar propostas" aria-label="Buscar propostas" >  
28 - <span class="input-group-btn">  
29 - <button type="button" class="btn btn-default" ng-click="pageRanking.search()">  
30 - <span class="icon-circle icon-small color-theme-common-bg">  
31 - <span class="glyphicon glyphicon-search"></span>  
32 - </span>  
33 - <span class="sr-only">Buscar</span>  
34 - </button>  
35 - </span>  
36 - </div>  
37 - <br/>  
38 - </div>  
39 - </div>  
40 - <div ng-if="pageRanking.themes">  
41 - <category-list categories="pageRanking.themes" selected-category="pageRanking.selectedTheme"></category-list>  
42 - </div>  
43 - <div ng-if="!pageRanking.themes && pageRanking.loadingThemes">  
44 - <div class="alert alert-info" role="alert">  
45 - Carregando temas.  
46 - </div>  
47 - </div>  
48 - <div ng-if="!pageRanking.themes && pageRanking.themesError">  
49 - <div class="alert alert-danger" role="alert">  
50 - Não foi possível carregar a lista de temas neste momento.  
51 - </div>  
52 - </div>  
53 - </div>  
54 - <div class="col-sm-8 col-md-9">  
55 - <div class="row hidden-xs">  
56 - <div class="col-xs-12">  
57 - <div class="input-group input-group-lg input-group-search">  
58 - <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label>  
59 - <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageRanking.query" placeholder="Buscar propostas" aria-label="Buscar propostas" >  
60 - <span class="input-group-btn">  
61 - <button type="button" class="btn btn-default" ng-click="pageRanking.search()">  
62 - <span class="icon-circle icon-small color-theme-common-bg">  
63 - <span class="glyphicon glyphicon-search"></span>  
64 - </span>  
65 - <span class="sr-only">Buscar</span>  
66 - </button>  
67 - </span>  
68 - </div>  
69 - </div>  
70 - </div>  
71 - <div class="row">  
72 - <div class="col-sm-12">  
73 - <header class="header">  
74 - <h2>Total de Propostas as propostas: "<span>{{::pageRanking.proposals.length}} propostas</span>"</h2>  
75 - </header>  
76 - </div>  
77 - </div> 10 + <section class="section--info">
  11 + <div class="container">
  12 + <div class="row">
  13 + <div class="col-sm-12">
  14 + <h1>Ranking</h1>
  15 + </div>
  16 + </div>
  17 + </div>
  18 + </section>
  19 + <section class="section--articles section-gray section-space-up" ng-if="pageRanking.proposals">
  20 + <div class="container">
  21 + <div id="lista-de-propostas" class="row">
  22 + <div class="col-sm-4 col-md-3">
  23 + <div class="row visible-xs">
  24 + <div class="col-xs-12">
  25 + <div class="input-group input-group-lg input-group-search">
  26 + <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label>
  27 + <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageRanking.query" placeholder="Buscar propostas" aria-label="Buscar propostas" >
  28 + <span class="input-group-btn">
  29 + <button type="button" class="btn btn-default" ng-click="pageRanking.search()">
  30 + <span class="icon-circle icon-small color-theme-common-bg">
  31 + <span class="glyphicon glyphicon-search"></span>
  32 + </span>
  33 + <span class="sr-only">Buscar</span>
  34 + </button>
  35 + </span>
  36 + </div>
  37 + <br/>
  38 + </div>
  39 + </div>
  40 + <div ng-if="pageRanking.themes">
  41 + <category-list categories="pageRanking.themes" selected-category="pageRanking.selectedTheme"></category-list>
  42 + </div>
  43 + <div ng-if="!pageRanking.themes && pageRanking.loadingThemes">
  44 + <div class="alert alert-info" role="alert">
  45 + Carregando temas.
  46 + </div>
  47 + </div>
  48 + <div ng-if="!pageRanking.themes && pageRanking.themesError">
  49 + <div class="alert alert-danger" role="alert">
  50 + Não foi possível carregar a lista de temas neste momento.
  51 + </div>
  52 + </div>
  53 + </div>
  54 + <div class="col-sm-8 col-md-9">
  55 + <div class="row hidden-xs">
  56 + <div class="col-xs-12">
  57 + <div class="input-group input-group-lg input-group-search">
  58 + <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label>
  59 + <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageRanking.query" placeholder="Buscar propostas" aria-label="Buscar propostas" >
  60 + <span class="input-group-btn">
  61 + <button type="button" class="btn btn-default" ng-click="pageRanking.search()">
  62 + <span class="icon-circle icon-small color-theme-common-bg">
  63 + <span class="glyphicon glyphicon-search"></span>
  64 + </span>
  65 + <span class="sr-only">Buscar</span>
  66 + </button>
  67 + </span>
  68 + </div>
  69 + </div>
  70 + </div>
  71 + <div class="row">
  72 + <div class="col-sm-12">
  73 + <header class="header">
  74 + <h2>Total de Propostas as propostas: "<span>{{::pageRanking.proposals.length}} propostas</span>"</h2>
  75 + </header>
  76 + </div>
  77 + </div>
78 78
79 - <div class="row">  
80 - <div class="col-sm-12" ng-if="pageRanking.proposals">  
81 - <proposal-list proposals="pageRanking.filtredProposals"></proposal-list>  
82 - </div>  
83 - <div ng-if="!pageRanking.proposals && pageRanking.loadingProposals">  
84 - <div class="alert alert-info" role="alert">  
85 - Carregando propostas.  
86 - </div>  
87 - </div>  
88 - <div ng-if="!pageRanking.proposals && pageRanking.proposalsError">  
89 - <div class="alert alert-danger" role="alert">  
90 - Não foi possível carregar a lista de propostas neste momento.  
91 - </div>  
92 - </div>  
93 - </div>  
94 - </div>  
95 - </div>  
96 - </div>  
97 - </section> 79 + <div class="row">
  80 + <div class="col-sm-12" ng-if="pageRanking.proposals">
  81 + <proposal-list proposals="pageRanking.filtredProposals"></proposal-list>
  82 + </div>
  83 + <div ng-if="!pageRanking.proposals && pageRanking.loadingProposals">
  84 + <div class="alert alert-info" role="alert">
  85 + Carregando propostas.
  86 + </div>
  87 + </div>
  88 + <div ng-if="!pageRanking.proposals && pageRanking.proposalsError">
  89 + <div class="alert alert-danger" role="alert">
  90 + Não foi possível carregar a lista de propostas neste momento.
  91 + </div>
  92 + </div>
  93 + </div>
  94 + </div>
  95 + </div>
  96 + </div>
  97 + </section>
98 </div> 98 </div>