Commit 42ecec409b339f6b24b07c0b0528190a2929aa2f
Exists in
master
and in
4 other branches
Merge branch 'correcoes-votos'
Showing
4 changed files
with
173 additions
and
140 deletions
Show diff stats
src/app/components/article-service/article.service.js
... | ... | @@ -2,8 +2,8 @@ |
2 | 2 | 'use strict'; |
3 | 3 | |
4 | 4 | angular |
5 | - .module('dialoga') | |
6 | - .factory('ArticleService', ArticleService); | |
5 | + .module('dialoga') | |
6 | + .factory('ArticleService', ArticleService); | |
7 | 7 | |
8 | 8 | /** @ngInject */ |
9 | 9 | function ArticleService($http, $q, $rootScope, API, UtilService, Slug, GUID, $log) { |
... | ... | @@ -23,6 +23,7 @@ |
23 | 23 | getProposals: getProposals, |
24 | 24 | getProposalById: getProposalById, |
25 | 25 | getProposalsByTopicId: getProposalsByTopicId, |
26 | + getProposalsByTopicIdRanked: getProposalsByTopicIdRanked, | |
26 | 27 | getResponseByProposalId: getResponseByProposalId, |
27 | 28 | createProposal: createProposal, |
28 | 29 | voteProposal: voteProposal, |
... | ... | @@ -107,8 +108,7 @@ |
107 | 108 | } |
108 | 109 | |
109 | 110 | function getProposalById (proposalId, params, cbSuccess, cbError) { |
110 | - var url = service.apiProposals + proposalId + '/ranking?per_page=5&page=1'; | |
111 | - console.log(url); | |
111 | + var url = service.apiArticles + proposalId; | |
112 | 112 | |
113 | 113 | var paramsExtended = angular.extend({ |
114 | 114 | // 'fields[]': ['id', 'title', 'abstract', 'children', 'children_count', 'ranking_position', 'hits', 'votes_for', 'votes_against'], |
... | ... | @@ -126,6 +126,25 @@ |
126 | 126 | |
127 | 127 | } |
128 | 128 | |
129 | + function getProposalByIdRanked (proposalId, params, cbSuccess, cbError) { | |
130 | + var url = service.apiProposals + proposalId + '/ranking?per_page=5&page=1'; | |
131 | + console.log(url); | |
132 | + var paramsExtended = angular.extend({ | |
133 | + // 'fields[]': ['id', 'title', 'abstract', 'children', 'children_count', 'ranking_position', 'hits', 'votes_for', 'votes_against'], | |
134 | + // 'per_page':'1', | |
135 | + 'limit':'1', | |
136 | + 'content_type':'ProposalsDiscussionPlugin::Proposal' | |
137 | + }, params); | |
138 | + | |
139 | + UtilService.get(url, {params: paramsExtended}).then(function(data){ | |
140 | + _pipeInjectSlugIntoParentProgramRanked(data); | |
141 | + cbSuccess(data); | |
142 | + }).catch(function(error){ | |
143 | + cbError(error); | |
144 | + }); | |
145 | + | |
146 | + } | |
147 | + | |
129 | 148 | /** |
130 | 149 | * Ex.: /api/v1/articles/[article_id]/children?[params]content_type=ProposalsDiscussionPlugin::Proposal |
131 | 150 | * Ex.: /api/v1/articles/103644/children?limit=20&fields=id,name,slug,abstract,created_by&content_type=ProposalsDiscussionPlugin::Proposal |
... | ... | @@ -136,13 +155,17 @@ |
136 | 155 | * @param {Function} cbError callback for error |
137 | 156 | * @return {Array} [description] |
138 | 157 | */ |
139 | - function getProposalsByTopicId (topicId, params, cbSuccess, cbError) { | |
140 | - getProposalById(topicId /*+ '/children'*/, params, cbSuccess, cbError); | |
158 | + function getProposalsByTopicId (topicId, params, cbSuccess, cbError) { | |
159 | + getProposalById(topicId + '/children', params, cbSuccess, cbError); | |
160 | + } | |
161 | + | |
162 | + function getProposalsByTopicIdRanked (topicId, params, cbSuccess, cbError) { | |
163 | + getProposalByIdRanked(topicId, params, cbSuccess, cbError); | |
141 | 164 | } |
142 | 165 | |
143 | 166 | function getResponseByProposalId (proposalId) { |
144 | 167 | var url = service.apiArticles + proposalId + '/children?content_type=ProposalsDiscussionPlugin::Response&limit=1'; |
145 | - | |
168 | + | |
146 | 169 | // var paramsExtended = {}; |
147 | 170 | |
148 | 171 | return UtilService.get(url); |
... | ... | @@ -233,10 +256,10 @@ |
233 | 256 | function sendContactForm (community_id, data){ |
234 | 257 | var url = service.apiCommunities + community_id + '/contact'; |
235 | 258 | var encodedParams = [ |
236 | - 'contact[name]=' + data.name, | |
237 | - 'contact[email]=' + data.email, | |
238 | - 'contact[subject]=' + data.subject, | |
239 | - 'contact[message]=' + data.message | |
259 | + 'contact[name]=' + data.name, | |
260 | + 'contact[email]=' + data.email, | |
261 | + 'contact[subject]=' + data.subject, | |
262 | + 'contact[message]=' + data.message | |
240 | 263 | ].join('&'); |
241 | 264 | |
242 | 265 | return UtilService.post(url, encodedParams); |
... | ... | @@ -258,32 +281,29 @@ |
258 | 281 | } |
259 | 282 | |
260 | 283 | function searchProposals (params, cbSuccess, cbError) { |
261 | - // Search | |
262 | 284 | // Ex.: /api/v1/search/article?type=ProposalsDiscussionPlugin::Proposal&query=cisternas |
263 | - // Propostal Ranking | |
264 | - // api/v1/proposals_discussion_plugin/103521/ranking?per_page=3&page=1 | |
265 | - // var url = service.apiSearch + 'article'; | |
266 | - var url = service.apiProposals; | |
285 | + var url = service.apiSearch + 'article'; | |
267 | 286 | var paramsExtended = angular.extend({ |
268 | 287 | page: 1, |
269 | - per_page: 3, | |
288 | + per_page: 10, | |
289 | + type: 'ProposalsDiscussionPlugin::Proposal', | |
270 | 290 | 'fields[]': [ |
271 | - 'id'/* , | |
272 | - 'abstract', | |
273 | - 'hits', | |
274 | - 'ranking_position', | |
275 | - 'votes_against', | |
276 | - 'votes_count', | |
277 | - 'votes_for', | |
278 | - 'parent', | |
279 | - 'categories', | |
280 | - 'slug', | |
291 | + 'id', | |
292 | + 'abstract', | |
293 | + 'hits', | |
294 | + 'ranking_position', | |
295 | + 'votes_against', | |
296 | + 'votes_count', | |
297 | + 'votes_for', | |
298 | + 'parent', | |
299 | + 'categories', | |
300 | + 'slug', | |
281 | 301 | 'url', // parent.image.url |
282 | 302 | 'image', |
283 | 303 | 'title', |
284 | - 'archived',*/ | |
285 | - ] | |
286 | - }, params); | |
304 | + 'archived', | |
305 | + ] | |
306 | + }, params); | |
287 | 307 | |
288 | 308 | UtilService.get(url, {params: paramsExtended}).then(function(data){ |
289 | 309 | _pipeInjectSlugIntoParentProgram(data); |
... | ... | @@ -294,10 +314,10 @@ |
294 | 314 | } |
295 | 315 | |
296 | 316 | function _pipeInjectSlugIntoParentProgram(data){ |
297 | - if(!data.proposals && data.proposals){ | |
298 | - data.proposals = [data.proposals]; | |
317 | + if(!data.articles && data.article){ | |
318 | + data.articles = [data.article]; | |
299 | 319 | } |
300 | - var proposals = data.proposals; | |
320 | + var proposals = data.articles; | |
301 | 321 | for (var i = proposals.length - 1; i >= 0; i--) { |
302 | 322 | var proposal = proposals[i]; |
303 | 323 | if(proposal.parent && !proposal.parent.slug){ |
... | ... | @@ -306,23 +326,37 @@ |
306 | 326 | } |
307 | 327 | } |
308 | 328 | |
309 | - function _pipeRemoveOldEvents(data){ | |
310 | - if(!data.articles && data.article){ | |
311 | - data.articles = [data.article]; | |
312 | - data.article = null; | |
313 | - } | |
329 | +//Refazer esse método. Não faz sentido | |
330 | +function _pipeInjectSlugIntoParentProgramRanked(data){ | |
331 | + if(!data.proposals && data.proposals){ | |
332 | + data.proposals = [data.proposals]; | |
333 | + } | |
334 | + var proposals = data.proposals; | |
335 | + for (var i = proposals.length - 1; i >= 0; i--) { | |
336 | + var proposal = proposals[i]; | |
337 | + if(proposal.parent && !proposal.parent.slug){ | |
338 | + proposal.parent.slug = Slug.slugify(proposal.parent.title); | |
339 | + } | |
340 | + } | |
341 | +} | |
314 | 342 | |
315 | - var now = (new Date()).getTime(); | |
316 | - var eventDate = null; | |
317 | - var events = data.articles; | |
343 | +function _pipeRemoveOldEvents(data){ | |
344 | + if(!data.articles && data.article){ | |
345 | + data.articles = [data.article]; | |
346 | + data.article = null; | |
347 | + } | |
318 | 348 | |
319 | - var results = []; | |
320 | - for (var i = events.length - 1; i >= 0; i--) { | |
321 | - var event = events[i]; | |
349 | + var now = (new Date()).getTime(); | |
350 | + var eventDate = null; | |
351 | + var events = data.articles; | |
322 | 352 | |
323 | - if(event.end_date){ | |
324 | - eventDate = new Date(event.end_date); | |
325 | - } | |
353 | + var results = []; | |
354 | + for (var i = events.length - 1; i >= 0; i--) { | |
355 | + var event = events[i]; | |
356 | + | |
357 | + if(event.end_date){ | |
358 | + eventDate = new Date(event.end_date); | |
359 | + } | |
326 | 360 | |
327 | 361 | // if(eventDate.getTime() < now){ |
328 | 362 | // event.isOld = true; |
... | ... | @@ -335,4 +369,4 @@ |
335 | 369 | data.articles = results; |
336 | 370 | } |
337 | 371 | } |
338 | 372 | -})(); |
373 | +})(); | |
339 | 374 | \ No newline at end of file | ... | ... |
src/app/components/dialoga-service/dialoga.service.js
src/app/pages/programas/programa.controller.js
... | ... | @@ -83,12 +83,18 @@ |
83 | 83 | } |
84 | 84 | |
85 | 85 | vm.loadingTopProposals = true; |
86 | - vm.DialogaService.getProposalsByTopicId(vm.article.id, { | |
86 | + vm.DialogaService.getProposalsByTopicIdRanked(vm.article.id, { | |
87 | 87 | 'limit': 5 |
88 | 88 | }, function(data) { |
89 | 89 | vm.total_proposals = parseInt(vm.article.children_count); |
90 | 90 | // vm.total_proposals = parseInt(vm.article.amount_of_children); // DEPRECATED?! |
91 | - vm.proposals = data.proposals; | |
91 | + if (data.articles) { | |
92 | + vm.proposals = data.articles; | |
93 | + console.log("1"); | |
94 | + } else { | |
95 | + vm.proposals = data.proposals; | |
96 | + console.log("2"); | |
97 | + } | |
92 | 98 | vm.proposalsTopFive = vm.proposals.slice(0, 5); |
93 | 99 | vm.proposalsTopRated = vm.proposals.slice(0, 3); |
94 | 100 | vm.loadingTopProposals = false; |
... | ... | @@ -335,8 +341,6 @@ |
335 | 341 | ProgramaPageController.prototype.toggleResponseVisibility = function(proposal) { |
336 | 342 | var vm = this; |
337 | 343 | |
338 | - console.log(proposal); | |
339 | - | |
340 | 344 | if(!proposal){ |
341 | 345 | vm.$log.error('Error - proposal is:', proposal); |
342 | 346 | return; |
... | ... | @@ -380,4 +384,4 @@ |
380 | 384 | } |
381 | 385 | }; |
382 | 386 | |
383 | 387 | -})(); |
388 | +})(); | |
384 | 389 | \ No newline at end of file | ... | ... |
src/app/pages/ranking/ranking.controller.js
... | ... | @@ -2,8 +2,8 @@ |
2 | 2 | 'use strict'; |
3 | 3 | |
4 | 4 | angular |
5 | - .module('dialoga') | |
6 | - .controller('RankingPageController', RankingPageController); | |
5 | + .module('dialoga') | |
6 | + .controller('RankingPageController', RankingPageController); | |
7 | 7 | |
8 | 8 | /** @ngInject */ |
9 | 9 | function RankingPageController(DialogaService, $scope, $rootScope, $location, $filter, $log) { |
... | ... | @@ -108,14 +108,14 @@ |
108 | 108 | vm.loadingThemes = false; |
109 | 109 | vm.loading = false; |
110 | 110 | }); |
111 | -}; | |
111 | + }; | |
112 | 112 | |
113 | -RankingPageController.prototype.loadPrograms = function (themeId, cb) { | |
114 | - var vm = this; | |
113 | + RankingPageController.prototype.loadPrograms = function (themeId, cb) { | |
114 | + var vm = this; | |
115 | 115 | |
116 | - vm.DialogaService.getProgramsByThemeId(themeId, function (programs){ | |
116 | + vm.DialogaService.getProgramsByThemeId(themeId, function (programs){ | |
117 | 117 | |
118 | - vm.filtredPrograms = programs; | |
118 | + vm.filtredPrograms = programs; | |
119 | 119 | |
120 | 120 | // 4. Select a random program of T |
121 | 121 | var selectedProgram = null; |
... | ... | @@ -129,16 +129,11 @@ RankingPageController.prototype.loadPrograms = function (themeId, cb) { |
129 | 129 | if(results && results.length > 0){ |
130 | 130 | selectedProgram = results[0]; |
131 | 131 | vm.selectedProgram = selectedProgram; |
132 | - console.log("1"); | |
133 | - console.log(vm.selectedProgram); | |
134 | - console.log("vm.selectedProgram"); | |
135 | 132 | } |
136 | 133 | } |
137 | 134 | |
138 | 135 | if(!selectedProgram){ |
139 | 136 | vm.selectedProgram = vm.filtredPrograms[Math.floor(Math.random() * vm.filtredPrograms.length)]; |
140 | - console.log(vm.selectedProgram); | |
141 | - console.log("2"); | |
142 | 137 | } |
143 | 138 | |
144 | 139 | if(cb){ |
... | ... | @@ -150,95 +145,95 @@ RankingPageController.prototype.loadPrograms = function (themeId, cb) { |
150 | 145 | cb(); |
151 | 146 | } |
152 | 147 | }); |
153 | -}; | |
148 | + }; | |
154 | 149 | |
155 | -RankingPageController.prototype.attachListeners = function() { | |
156 | - var vm = this; | |
150 | + RankingPageController.prototype.attachListeners = function() { | |
151 | + var vm = this; | |
157 | 152 | |
158 | - vm.$scope.$on('change-selectedCategory', function (event, selectedCategory) { | |
159 | - vm.selectedTheme = selectedCategory; | |
160 | - }); | |
153 | + vm.$scope.$on('change-selectedCategory', function (event, selectedCategory) { | |
154 | + vm.selectedTheme = selectedCategory; | |
155 | + }); | |
161 | 156 | |
162 | - vm.$scope.$watch('pageRanking.selectedTheme', function(newValue/*, oldValue*/) { | |
163 | - vm.search.tema = newValue ? newValue.slug : null; | |
164 | - vm.$location.search('tema', vm.search.tema); | |
157 | + vm.$scope.$watch('pageRanking.selectedTheme', function(newValue/*, oldValue*/) { | |
158 | + vm.search.tema = newValue ? newValue.slug : null; | |
159 | + vm.$location.search('tema', vm.search.tema); | |
165 | 160 | |
166 | - if(!vm.loadingFilter && vm.selectedTheme && vm.selectedTheme.id){ | |
167 | - vm.loadPrograms(vm.selectedTheme.id, function(){ | |
168 | - vm.filterProposals(); | |
169 | - }); | |
170 | - } | |
171 | - }); | |
161 | + if(!vm.loadingFilter && vm.selectedTheme && vm.selectedTheme.id){ | |
162 | + vm.loadPrograms(vm.selectedTheme.id, function(){ | |
163 | + vm.filterProposals(); | |
164 | + }); | |
165 | + } | |
166 | + }); | |
172 | 167 | |
173 | - vm.$scope.$on('change-selectedTopic', function (event, selectedTopic) { | |
174 | - vm.selectedProgram = selectedTopic; | |
175 | - }); | |
168 | + vm.$scope.$on('change-selectedTopic', function (event, selectedTopic) { | |
169 | + vm.selectedProgram = selectedTopic; | |
170 | + }); | |
176 | 171 | |
177 | - vm.$scope.$watch('pageRanking.selectedProgram', function(newValue/*, oldValue*/) { | |
178 | - vm.search.programa = newValue ? newValue.slug : null; | |
179 | - vm.$location.search('programa', vm.search.programa); | |
172 | + vm.$scope.$watch('pageRanking.selectedProgram', function(newValue/*, oldValue*/) { | |
173 | + vm.search.programa = newValue ? newValue.slug : null; | |
174 | + vm.$location.search('programa', vm.search.programa); | |
175 | + | |
176 | + if (!vm.loadingFilter) { | |
177 | + vm.filterProposals(); | |
178 | + } | |
179 | + }); | |
180 | 180 | |
181 | - if (!vm.loadingFilter) { | |
182 | - vm.filterProposals(); | |
183 | - } | |
184 | - }); | |
181 | + vm.$scope.$watch('pageRanking.query', function(newValue/*, oldValue*/) { | |
182 | + vm.search.filtro = newValue ? newValue : null; | |
183 | + vm.$location.search('filtro', vm.search.filtro); | |
184 | + | |
185 | + if (!vm.loadingFilter) { | |
186 | + vm.filterProposals(); | |
187 | + } | |
188 | + }); | |
189 | + }; | |
185 | 190 | |
186 | - vm.$scope.$watch('pageRanking.query', function(newValue/*, oldValue*/) { | |
187 | - vm.search.filtro = newValue ? newValue : null; | |
188 | - vm.$location.search('filtro', vm.search.filtro); | |
191 | + RankingPageController.prototype.resetFilterValues = function() { | |
192 | + var vm = this; | |
189 | 193 | |
190 | - if (!vm.loadingFilter) { | |
191 | - vm.filterProposals(); | |
192 | - } | |
193 | - }); | |
194 | -}; | |
194 | + vm.query = null; | |
195 | + vm.selectedTheme = null; | |
196 | + }; | |
195 | 197 | |
196 | -RankingPageController.prototype.resetFilterValues = function() { | |
197 | - var vm = this; | |
198 | + RankingPageController.prototype.changePage = function(pageIndex) { | |
199 | + var vm = this; | |
198 | 200 | |
199 | - vm.query = null; | |
200 | - vm.selectedTheme = null; | |
201 | -}; | |
201 | + vm.page = pageIndex; | |
202 | + vm.filterProposals(pageIndex); | |
203 | + }; | |
202 | 204 | |
203 | -RankingPageController.prototype.changePage = function(pageIndex) { | |
204 | - var vm = this; | |
205 | + RankingPageController.prototype.filterProposals = function(_page, _per_page) { | |
206 | + var vm = this; | |
205 | 207 | |
206 | - vm.page = pageIndex; | |
207 | - vm.filterProposals(pageIndex); | |
208 | -}; | |
208 | + if (vm.loadingProposals){ | |
209 | + vm.$log.debug('Content is not loaded yet.'); | |
210 | + return; | |
211 | + } | |
209 | 212 | |
210 | -RankingPageController.prototype.filterProposals = function(_page, _per_page) { | |
211 | - var vm = this; | |
213 | + var page = _page || vm.page; | |
214 | + var per_page = _per_page || vm.per_page; | |
215 | + var query = vm.query; | |
216 | + var selectedProgram = vm.selectedProgram; | |
217 | + var params = { | |
218 | + page: page, | |
219 | + per_page: per_page | |
220 | + }; | |
221 | + | |
222 | + if (selectedProgram) { | |
223 | + params.parent_id = selectedProgram.id; | |
224 | + } | |
212 | 225 | |
213 | - if (vm.loadingProposals){ | |
214 | - vm.$log.debug('Content is not loaded yet.'); | |
215 | - return; | |
216 | - } | |
226 | + if (query) {params.query = query; } | |
217 | 227 | |
218 | - var page = _page || vm.page; | |
219 | - var per_page = _per_page || vm.per_page; | |
220 | - var query = vm.query; | |
221 | - var selectedProgram = vm.selectedProgram; | |
222 | - var params = { | |
223 | - page: page, | |
224 | - per_page: per_page | |
228 | + vm.loadingProposals = true; | |
229 | + vm.DialogaService.searchProposals(params, function(data){ | |
230 | + vm.total_proposals = parseInt(data._obj.headers('total')); | |
231 | + vm.filtredProposals = data.articles; | |
232 | + vm.loadingProposals = false; | |
233 | + }, function (error) { | |
234 | + vm.error = error; | |
235 | + vm.$log.error(error); | |
236 | + vm.loadingProposals = false; | |
237 | + }); | |
225 | 238 | }; |
226 | - | |
227 | - if (selectedProgram) { | |
228 | - params.parent_id = selectedProgram.id; | |
229 | - } | |
230 | - | |
231 | - if (query) {params.query = query; } | |
232 | - | |
233 | - vm.loadingProposals = true; | |
234 | - vm.DialogaService.searchProposals(params, function(data){ | |
235 | - vm.total_proposals = parseInt(data._obj.headers('total')); | |
236 | - vm.filtredProposals = data.articles; | |
237 | - vm.loadingProposals = false; | |
238 | - }, function (error) { | |
239 | - vm.error = error; | |
240 | - vm.$log.error(error); | |
241 | - vm.loadingProposals = false; | |
242 | - }); | |
243 | -}; | |
244 | 239 | })(); | ... | ... |