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 33 vm.category = vm.article.categories[0];
34 34 }
35 35  
36   - if(!vm.banner){
  36 + if(!vm.banner && vm.article.image){
37 37 vm.banner = {
38 38 src: $rootScope.basePath + vm.article.image.url,
39 39 alt: 'Imagem de destaque do conteúdo'
... ...
src/app/components/article-grid/article-grid.directive.js
... ... @@ -32,13 +32,9 @@
32 32 ArticleGridController.prototype.init = function() {
33 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 39 vm.orderCriteries = [
44 40 { label: 'Título', name: 'titulo' },
... ... @@ -46,7 +42,6 @@
46 42 { label: 'Aleatório', name: 'aleatorio' }
47 43 ];
48 44  
49   - vm.filtredArticleList = vm.getFiltredArticles();
50 45 vm.search = vm.$location.search();
51 46  
52 47 // Add initial values for the filter
... ... @@ -70,6 +65,16 @@
70 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 78 // update window location params
74 79 vm.$scope.$on('change-selectedCategory', function(event, selectedCategory){
75 80 vm.selectedCategory = selectedCategory;
... ... @@ -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 149 ArticleGridController.prototype.resetFilterValues = function() {
121 150 var vm = this;
... ...
src/app/index.route.js
... ... @@ -56,7 +56,7 @@
56 56 'main': {
57 57 templateUrl: 'app/pages/programas/programas.html',
58 58 controller: 'ProgramasPageController',
59   - controllerAs: 'pagePrograma'
  59 + controllerAs: 'pageProgramas'
60 60 },
61 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 14 </div>
... ...