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