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> |