Commit 77f90fa25dc5e3b4abe6dffb6a52b055748c5c81
1 parent
f5d03df5
Exists in
master
and in
8 other branches
Add article-list to Programs page
Showing
4 changed files
with
52 additions
and
12 deletions
Show diff stats
src/app/components/article-box/article-box.directive.js
@@ -33,7 +33,7 @@ | @@ -33,7 +33,7 @@ | ||
33 | vm.category = vm.article.categories[0]; | 33 | vm.category = vm.article.categories[0]; |
34 | } | 34 | } |
35 | 35 | ||
36 | - if(!vm.banner){ | 36 | + if(!vm.banner && vm.article.image){ |
37 | vm.banner = { | 37 | vm.banner = { |
38 | src: $rootScope.basePath + vm.article.image.url, | 38 | src: $rootScope.basePath + vm.article.image.url, |
39 | alt: 'Imagem de destaque do conteúdo' | 39 | alt: 'Imagem de destaque do conteúdo' |
src/app/components/article-grid/article-grid.directive.js
@@ -32,13 +32,9 @@ | @@ -32,13 +32,9 @@ | ||
32 | ArticleGridController.prototype.init = function() { | 32 | ArticleGridController.prototype.init = function() { |
33 | var vm = this; | 33 | var vm = this; |
34 | 34 | ||
35 | - vm.ArticleService.getPrograms(function(programs){ | ||
36 | - vm.articles = programs; | ||
37 | - }); | ||
38 | - | ||
39 | - vm.ArticleService.getCategories(function(categories){ | ||
40 | - vm.categories = categories; | ||
41 | - }); | 35 | + vm.articles = null; |
36 | + vm.filtredArticleList = null; | ||
37 | + vm.categories = null; | ||
42 | 38 | ||
43 | vm.orderCriteries = [ | 39 | vm.orderCriteries = [ |
44 | { label: 'Título', name: 'titulo' }, | 40 | { label: 'Título', name: 'titulo' }, |
@@ -46,7 +42,6 @@ | @@ -46,7 +42,6 @@ | ||
46 | { label: 'Aleatório', name: 'aleatorio' } | 42 | { label: 'Aleatório', name: 'aleatorio' } |
47 | ]; | 43 | ]; |
48 | 44 | ||
49 | - vm.filtredArticleList = vm.getFiltredArticles(); | ||
50 | vm.search = vm.$location.search(); | 45 | vm.search = vm.$location.search(); |
51 | 46 | ||
52 | // Add initial values for the filter | 47 | // Add initial values for the filter |
@@ -70,6 +65,16 @@ | @@ -70,6 +65,16 @@ | ||
70 | angular.element('body').animate({scrollTop: $el.offset().top}, 'slow'); | 65 | angular.element('body').animate({scrollTop: $el.offset().top}, 'slow'); |
71 | } | 66 | } |
72 | 67 | ||
68 | + vm.loadData(function(){ | ||
69 | + vm.filtredArticleList = vm.getFiltredArticles(); | ||
70 | + }); | ||
71 | + | ||
72 | + vm.attachListeners(); | ||
73 | + }; | ||
74 | + | ||
75 | + ArticleGridController.prototype.attachListeners = function() { | ||
76 | + var vm = this; | ||
77 | + | ||
73 | // update window location params | 78 | // update window location params |
74 | vm.$scope.$on('change-selectedCategory', function(event, selectedCategory){ | 79 | vm.$scope.$on('change-selectedCategory', function(event, selectedCategory){ |
75 | vm.selectedCategory = selectedCategory; | 80 | vm.selectedCategory = selectedCategory; |
@@ -116,6 +121,30 @@ | @@ -116,6 +121,30 @@ | ||
116 | }); | 121 | }); |
117 | 122 | ||
118 | }; | 123 | }; |
124 | + ArticleGridController.prototype.loadData = function(cb) { | ||
125 | + var vm = this; | ||
126 | + | ||
127 | + var articlesLoaded = false; | ||
128 | + var categoriesLoaded = false; | ||
129 | + | ||
130 | + vm.ArticleService.getPrograms(function(programs){ | ||
131 | + vm.articles = programs; | ||
132 | + articlesLoaded = true; | ||
133 | + endLoad(); | ||
134 | + }); | ||
135 | + | ||
136 | + vm.ArticleService.getCategories(function(categories){ | ||
137 | + vm.categories = categories; | ||
138 | + categoriesLoaded = true; | ||
139 | + endLoad(); | ||
140 | + }); | ||
141 | + | ||
142 | + function endLoad () { | ||
143 | + if(articlesLoaded && categoriesLoaded){ | ||
144 | + cb(); | ||
145 | + } | ||
146 | + } | ||
147 | + }; | ||
119 | 148 | ||
120 | ArticleGridController.prototype.resetFilterValues = function() { | 149 | ArticleGridController.prototype.resetFilterValues = function() { |
121 | var vm = this; | 150 | var vm = this; |
src/app/index.route.js
@@ -56,7 +56,7 @@ | @@ -56,7 +56,7 @@ | ||
56 | 'main': { | 56 | 'main': { |
57 | templateUrl: 'app/pages/programas/programas.html', | 57 | templateUrl: 'app/pages/programas/programas.html', |
58 | controller: 'ProgramasPageController', | 58 | controller: 'ProgramasPageController', |
59 | - controllerAs: 'pagePrograma' | 59 | + controllerAs: 'pageProgramas' |
60 | }, | 60 | }, |
61 | 'footer': { templateUrl: 'app/pages/footer/footer.html' } | 61 | 'footer': { templateUrl: 'app/pages/footer/footer.html' } |
62 | } | 62 | } |
src/app/pages/programas/programas.html
1 | -<div class="container page--programas"> | ||
2 | - <h1>TODO: Home > Programas</h1> | 1 | +<div class="page--programas"> |
2 | + <section class="section-gray section-space-up"> | ||
3 | + <div class="container"> | ||
4 | + <div id="lista-de-programas" class="row"> | ||
5 | + <div class="col-sm-4 col-md-3"> | ||
6 | + <category-list ng-if="pageProgramas.categories"></category-list> | ||
7 | + </div> | ||
8 | + <div class="col-sm-8 col-md-9"> | ||
9 | + <article-grid></article-grid> | ||
10 | + </div> | ||
11 | + </div> | ||
12 | + </div> | ||
13 | + </section> | ||
3 | </div> | 14 | </div> |