From aa1560ed99dc32547197f94835c53307cd78aeba Mon Sep 17 00:00:00 2001 From: Leonardo Merlin Date: Thu, 17 Sep 2015 08:29:38 -0300 Subject: [PATCH] Fix 'no-theme' problem --- src/app/pages/inicio/inicio.controller.js | 12 ++++++++++-- src/app/pages/programas/programas.controller.js | 24 ++++++++++++++++++++---- src/app/pages/propostas/propostas.controller.js | 12 ++++++++---- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/app/pages/inicio/inicio.controller.js b/src/app/pages/inicio/inicio.controller.js index 499880e..977392a 100644 --- a/src/app/pages/inicio/inicio.controller.js +++ b/src/app/pages/inicio/inicio.controller.js @@ -220,7 +220,7 @@ var filter = vm.$filter('filter'); if (selectedTheme) { - output = _filterByCategory(output, selectedTheme); + output = vm._filterByCategory(output, selectedTheme); } if (query) { @@ -234,7 +234,9 @@ return output; }; - function _filterByCategory (input, category) { + InicioPageController.prototype._filterByCategory = function (input, category) { + var vm = this; + input = input || []; if (!category) { @@ -245,6 +247,12 @@ var out = []; for (var i = 0; i < input.length; i++) { var program = input[i]; + + if(!program.categories || program.categories.length === 0){ + vm.$log.warn('Program without theme (category)', program.slug); + continue; + } + if (program.categories[0].slug === category.slug) { out.push(program); } diff --git a/src/app/pages/programas/programas.controller.js b/src/app/pages/programas/programas.controller.js index 31dd004..f95fc88 100644 --- a/src/app/pages/programas/programas.controller.js +++ b/src/app/pages/programas/programas.controller.js @@ -173,7 +173,7 @@ var filter = vm.$filter('filter'); if (selectedTheme) { - output = _filterByCategory(output, selectedTheme); + output = vm._filterByCategory(output, selectedTheme); } if (query) { @@ -181,13 +181,15 @@ } if(!query && !selectedTheme && vm._showAllFlag){ - output = _balanceByCategory(output); + output = vm._balanceByCategory(output); } return output; }; - function _filterByCategory (input, category) { + ProgramasPageController.prototype._filterByCategory = function (input, category) { + var vm = this; + input = input || []; if (!category) { @@ -198,6 +200,12 @@ var out = []; for (var i = 0; i < input.length; i++) { var program = input[i]; + + if(!program.categories || program.categories.length === 0){ + vm.$log.warn('Program without theme (category)', program.slug); + continue; + } + if (program.categories[0].slug === category.slug) { out.push(program); } @@ -206,13 +214,21 @@ return out; } - function _balanceByCategory (input) { + ProgramasPageController.prototype._balanceByCategory = function (input) { + var vm = this; + var result = []; var resultByCategory = {}; // divide by categories for (var i = 0; i < input.length; i++) { var program = input[i]; + + if(!program.categories || program.categories.length === 0){ + vm.$log.warn('Program without theme (category)', program.slug); + continue; + } + var categorySlug = program.categories[0].slug; if (!resultByCategory[categorySlug]) { diff --git a/src/app/pages/propostas/propostas.controller.js b/src/app/pages/propostas/propostas.controller.js index 70da4fc..02704e9 100644 --- a/src/app/pages/propostas/propostas.controller.js +++ b/src/app/pages/propostas/propostas.controller.js @@ -142,11 +142,11 @@ var filter = vm.$filter('filter'); if (selectedTheme) { - output = _filterByCategory(output, selectedTheme); + output = vm._filterByCategory(output, selectedTheme); } if (selectedProgram) { - output = _filterByProgram(output, selectedProgram); + output = vm._filterByProgram(output, selectedProgram); } if (query) { @@ -160,7 +160,9 @@ return output; }; - function _filterByCategory (input, category) { + PropostasPageController.prototype._filterByCategory = function (input, category) { + var vm = this; + input = input || []; if (!category) { @@ -179,7 +181,9 @@ return out; } - function _filterByProgram (input, program) { + PropostasPageController.prototype._filterByProgram = function (input, program) { + var vm = this; + input = input || []; if (!program) { -- libgit2 0.21.2