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 127 var paramsExtended = angular.extend({
128 128 // 'fields[]': ['id', 'title', 'abstract', 'children', 'children_count', 'ranking_position', 'hits', 'votes_for', 'votes_against'],
129 129 // 'limit':'20',
130   - // 'page':'1',
  130 + // 'per_page':'1',
131 131 'content_type':'ProposalsDiscussionPlugin::Proposal'
132 132 }, params);
133 133  
... ... @@ -173,7 +173,7 @@
173 173 // Ex.: /api/v1/search/article?type=ProposalsDiscussionPlugin::Topic&query=cisternas
174 174 var url = '/api/v1/search/article';
175 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 177 'type': 'ProposalsDiscussionPlugin::Topic'
178 178 }, params);
179 179  
... ...
src/app/components/cadastro-proposta/cadastro-proposta.html
... ... @@ -20,7 +20,7 @@
20 20 <div class="row linha-proposta">
21 21 <div class="col-sm-8">
22 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 24 <textarea id="proposta" name="proposta" class="texto-proposta form-control"
25 25 ng-class="{ 'has-error' : formPropostas.proposta.$invalid && formPropostas.proposta.$touched }"
26 26 ng-model="proposta"
... ...
src/app/components/proposal-list/proposal-list.directive.js
... ... @@ -36,6 +36,8 @@
36 36 vm.per_page = 5;
37 37 }
38 38  
  39 + vm.proposalsPerPage = vm.getProposalsPerPage(0);
  40 +
39 41 vm.proposalsLength = vm.proposals.length;
40 42 };
41 43  
... ... @@ -49,6 +51,20 @@
49 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 68 function attachPopover(){
53 69 var vm = this;
54 70  
... ...
src/app/components/proposal-list/proposal-list.html
... ... @@ -2,7 +2,7 @@
2 2 <div class="table-responsive" ng-if="vm.loading">
3 3 <div class="table-responsive">Carregando...</div>
4 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 6 <table class="table table-striped">
7 7 <thead>
8 8 <tr>
... ... @@ -10,18 +10,18 @@
10 10 Colocação
11 11 <a tabindex="0" class="btn btn-link btn-question" role="button" data-toggle="popover" data-trigger="focus">?</a>
12 12 </th>
13   - <th>123 PROPOSTAS</th>
  13 + <th>{{vm.proposals.length}} PROPOSTAS</th>
14 14 </tr>
15 15 </thead>
16 16 <tbody>
17   - <tr ng-repeat="proposal in vm.proposals">
  17 + <tr ng-repeat="proposal in vm.proposalsPerPage">
18 18 <td class="color-theme-fg">
19 19 <span class="position">{{::($index+1)}}º</span>
20 20 </td>
21 21 <td>
22 22 <div class="row">
23 23 <div class="col-xs-12">
24   - <span class="abstract">{{proposal.abstract}}</span>
  24 + <div class="abstract" ng-bind-html="proposal.abstract"></div>
25 25 </div>
26 26 </div>
27 27 <div class="row row-actions">
... ... @@ -39,5 +39,24 @@
39 39 </tr>
40 40 </tbody>
41 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 61 </div>
43 62 </div>
... ...
src/app/pages/propostas/ranking.html
1 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 7 </div>
8 8  
9 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 98 </div>
... ...