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