Commit 77f90fa25dc5e3b4abe6dffb6a52b055748c5c81

Authored by Leonardo Merlin
1 parent f5d03df5

Add article-list to Programs page

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>