Commit 8a9c29fb1a2aba064ae2657bb35d208b8cb174bb
1 parent
fbc2b3c7
Exists in
master
and in
8 other branches
add theme color by category on category-list--item
Showing
3 changed files
with
33 additions
and
19 deletions
Show diff stats
src/app/components/programas/programas.directive.js
@@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
9 | function programaList() { | 9 | function programaList() { |
10 | 10 | ||
11 | /** @ngInject */ | 11 | /** @ngInject */ |
12 | - function ProgramaListController($scope, $location, $filter, $anchorScroll, $log) { | 12 | + function ProgramaListController($scope, $element, $location, $filter, $log) { |
13 | $log.debug('ProgramaListController'); | 13 | $log.debug('ProgramaListController'); |
14 | 14 | ||
15 | // alias | 15 | // alias |
@@ -17,10 +17,11 @@ | @@ -17,10 +17,11 @@ | ||
17 | 17 | ||
18 | // dependencies | 18 | // dependencies |
19 | vm.$scope = $scope; | 19 | vm.$scope = $scope; |
20 | + vm.$element = $element; | ||
20 | vm.$location = $location; | 21 | vm.$location = $location; |
21 | vm.$filter = $filter; | 22 | vm.$filter = $filter; |
22 | - vm.$anchorScroll = $anchorScroll; | ||
23 | vm.$log = $log; | 23 | vm.$log = $log; |
24 | + vm.defaultLimit = 6; | ||
24 | 25 | ||
25 | // initialization | 26 | // initialization |
26 | vm.init(); | 27 | vm.init(); |
@@ -47,15 +48,14 @@ | @@ -47,15 +48,14 @@ | ||
47 | 48 | ||
48 | // Add initial values for the filter | 49 | // Add initial values for the filter |
49 | vm.query = (vm.search && vm.search.filtro) ? vm.search.filtro : null; | 50 | vm.query = (vm.search && vm.search.filtro) ? vm.search.filtro : null; |
50 | - vm.limitTo = (vm.search && vm.search.limite) ? parseInt(vm.search.limite, 10) : 4; | 51 | + vm.limitTo = (vm.search && vm.search.limite) ? parseInt(vm.search.limite, 10) : vm.defaultLimit; |
51 | vm.categoryFilter = (vm.search && vm.search.tema) ? vm.getCategoryBySlug(vm.search.tema) : null; | 52 | vm.categoryFilter = (vm.search && vm.search.tema) ? vm.getCategoryBySlug(vm.search.tema) : null; |
52 | vm.orderCriteria = (vm.search && vm.search.ordem) ? { name: vm.search.ordem } : null; | 53 | vm.orderCriteria = (vm.search && vm.search.ordem) ? { name: vm.search.ordem } : null; |
53 | vm.reverse = (vm.search && vm.search.reverso) ? true : false; | 54 | vm.reverse = (vm.search && vm.search.reverso) ? true : false; |
54 | 55 | ||
55 | - if(!angular.equals({}, vm.search)){ | ||
56 | - vm.$location.hash('lista-de-programas'); | ||
57 | - vm.$anchorScroll(); | ||
58 | - console.log('scrolled'); | 56 | + if (!angular.equals({}, vm.search)) { |
57 | + var $el = vm.$element; | ||
58 | + angular.element('body').animate({scrollTop: $el.offset().top}, 'slow'); | ||
59 | } | 59 | } |
60 | 60 | ||
61 | // update window location params | 61 | // update window location params |
@@ -66,7 +66,7 @@ | @@ -66,7 +66,7 @@ | ||
66 | }); | 66 | }); |
67 | 67 | ||
68 | vm.$scope.$watch('vm.limitTo', function(newValue, oldValue){ | 68 | vm.$scope.$watch('vm.limitTo', function(newValue, oldValue){ |
69 | - vm.search.limite = (newValue && newValue !== 4) ? newValue : null; | 69 | + vm.search.limite = (newValue && newValue !== vm.defaultLimit) ? newValue : null; |
70 | vm.$location.search('limite', vm.search.limite); | 70 | vm.$location.search('limite', vm.search.limite); |
71 | vm.filtredProgramList = vm.getFiltredPrograms(); | 71 | vm.filtredProgramList = vm.getFiltredPrograms(); |
72 | }); | 72 | }); |
@@ -95,7 +95,7 @@ | @@ -95,7 +95,7 @@ | ||
95 | var vm = this; | 95 | var vm = this; |
96 | 96 | ||
97 | vm.query = null; | 97 | vm.query = null; |
98 | - vm.limitTo = 4; | 98 | + vm.limitTo = vm.defaultLimit; |
99 | vm.categoryFilter = null; | 99 | vm.categoryFilter = null; |
100 | vm.orderCriteria = null; | 100 | vm.orderCriteria = null; |
101 | }; | 101 | }; |
@@ -154,7 +154,7 @@ | @@ -154,7 +154,7 @@ | ||
154 | var orderBy = vm.$filter('orderBy'); | 154 | var orderBy = vm.$filter('orderBy'); |
155 | var limitTo = vm.$filter('limitTo'); | 155 | var limitTo = vm.$filter('limitTo'); |
156 | var limit = vm.limitTo ? vm.limitTo : 4; | 156 | var limit = vm.limitTo ? vm.limitTo : 4; |
157 | - | 157 | + |
158 | if(categoryFilter){ | 158 | if(categoryFilter){ |
159 | output = _filterByCategory(output, categoryFilter); | 159 | output = _filterByCategory(output, categoryFilter); |
160 | } | 160 | } |
@@ -188,8 +188,8 @@ | @@ -188,8 +188,8 @@ | ||
188 | break; | 188 | break; |
189 | } | 189 | } |
190 | 190 | ||
191 | - output = limitTo(output, limit); | ||
192 | - | 191 | + output = limitTo(output, limit); |
192 | + | ||
193 | return output; | 193 | return output; |
194 | }; | 194 | }; |
195 | 195 | ||
@@ -216,21 +216,21 @@ | @@ -216,21 +216,21 @@ | ||
216 | resultByCategory[prop] = shuffle(categoryWithPrograms); | 216 | resultByCategory[prop] = shuffle(categoryWithPrograms); |
217 | } | 217 | } |
218 | } | 218 | } |
219 | - | 219 | + |
220 | // Concat all into result array | 220 | // Concat all into result array |
221 | // > while has program at Lists on resultByCategory | 221 | // > while has program at Lists on resultByCategory |
222 | var hasProgram = true; | 222 | var hasProgram = true; |
223 | while (hasProgram) { | 223 | while (hasProgram) { |
224 | - | 224 | + |
225 | var foundProgram = false; | 225 | var foundProgram = false; |
226 | // each categoryList with array of program | 226 | // each categoryList with array of program |
227 | for (var prop in resultByCategory){ | 227 | for (var prop in resultByCategory){ |
228 | - | 228 | + |
229 | if( resultByCategory.hasOwnProperty( prop ) ) { | 229 | if( resultByCategory.hasOwnProperty( prop ) ) { |
230 | var categoryWithPrograms = resultByCategory[prop]; | 230 | var categoryWithPrograms = resultByCategory[prop]; |
231 | - | 231 | + |
232 | if (categoryWithPrograms.length > 0 ) { | 232 | if (categoryWithPrograms.length > 0 ) { |
233 | - var pivotProgram = categoryWithPrograms.pop(); | 233 | + var pivotProgram = categoryWithPrograms.pop(); |
234 | result.push(pivotProgram); | 234 | result.push(pivotProgram); |
235 | foundProgram = true; | 235 | foundProgram = true; |
236 | } | 236 | } |
@@ -286,7 +286,7 @@ | @@ -286,7 +286,7 @@ | ||
286 | 286 | ||
287 | var out = []; | 287 | var out = []; |
288 | 288 | ||
289 | - | 289 | + |
290 | 290 | ||
291 | return out; | 291 | return out; |
292 | } | 292 | } |
src/app/components/programas/programas.html
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | <div class="category-list"> | 3 | <div class="category-list"> |
4 | <nav class="navigation"> | 4 | <nav class="navigation"> |
5 | <h3 class="title"><b>Programas</b> por Tema</h3> | 5 | <h3 class="title"><b>Programas</b> por Tema</h3> |
6 | - <div class="list-group category-list"> | 6 | + <div class="list-group category-list" ng-class="vm.categoryFilter.slug"> |
7 | <button type="button" class="list-group-item category-item" | 7 | <button type="button" class="list-group-item category-item" |
8 | ng-repeat="category in vm.categories" | 8 | ng-repeat="category in vm.categories" |
9 | ng-class="{active: vm.categoryFilter.slug === category.slug}" | 9 | ng-class="{active: vm.categoryFilter.slug === category.slug}" |
src/app/components/programas/programas.scss
@@ -11,4 +11,18 @@ | @@ -11,4 +11,18 @@ | ||
11 | top: 2px; | 11 | top: 2px; |
12 | } | 12 | } |
13 | } | 13 | } |
14 | + | ||
15 | +} | ||
16 | + | ||
17 | +.category-list { | ||
18 | + | ||
19 | + @each $category, $color in $categories { | ||
20 | + &.#{$category} { | ||
21 | + .list-group-item.active, | ||
22 | + .list-group-item.active:hover, | ||
23 | + .list-group-item.active:focus { | ||
24 | + background-color: $color; | ||
25 | + } | ||
26 | + } | ||
27 | + } | ||
14 | } | 28 | } |