Commit aa1560ed99dc32547197f94835c53307cd78aeba

Authored by Leonardo Merlin
1 parent 95fa2242

Fix 'no-theme' problem

src/app/pages/inicio/inicio.controller.js
@@ -220,7 +220,7 @@ @@ -220,7 +220,7 @@
220 var filter = vm.$filter('filter'); 220 var filter = vm.$filter('filter');
221 221
222 if (selectedTheme) { 222 if (selectedTheme) {
223 - output = _filterByCategory(output, selectedTheme); 223 + output = vm._filterByCategory(output, selectedTheme);
224 } 224 }
225 225
226 if (query) { 226 if (query) {
@@ -234,7 +234,9 @@ @@ -234,7 +234,9 @@
234 return output; 234 return output;
235 }; 235 };
236 236
237 - function _filterByCategory (input, category) { 237 + InicioPageController.prototype._filterByCategory = function (input, category) {
  238 + var vm = this;
  239 +
238 input = input || []; 240 input = input || [];
239 241
240 if (!category) { 242 if (!category) {
@@ -245,6 +247,12 @@ @@ -245,6 +247,12 @@
245 var out = []; 247 var out = [];
246 for (var i = 0; i < input.length; i++) { 248 for (var i = 0; i < input.length; i++) {
247 var program = input[i]; 249 var program = input[i];
  250 +
  251 + if(!program.categories || program.categories.length === 0){
  252 + vm.$log.warn('Program without theme (category)', program.slug);
  253 + continue;
  254 + }
  255 +
248 if (program.categories[0].slug === category.slug) { 256 if (program.categories[0].slug === category.slug) {
249 out.push(program); 257 out.push(program);
250 } 258 }
src/app/pages/programas/programas.controller.js
@@ -173,7 +173,7 @@ @@ -173,7 +173,7 @@
173 var filter = vm.$filter('filter'); 173 var filter = vm.$filter('filter');
174 174
175 if (selectedTheme) { 175 if (selectedTheme) {
176 - output = _filterByCategory(output, selectedTheme); 176 + output = vm._filterByCategory(output, selectedTheme);
177 } 177 }
178 178
179 if (query) { 179 if (query) {
@@ -181,13 +181,15 @@ @@ -181,13 +181,15 @@
181 } 181 }
182 182
183 if(!query && !selectedTheme && vm._showAllFlag){ 183 if(!query && !selectedTheme && vm._showAllFlag){
184 - output = _balanceByCategory(output); 184 + output = vm._balanceByCategory(output);
185 } 185 }
186 186
187 return output; 187 return output;
188 }; 188 };
189 189
190 - function _filterByCategory (input, category) { 190 + ProgramasPageController.prototype._filterByCategory = function (input, category) {
  191 + var vm = this;
  192 +
191 input = input || []; 193 input = input || [];
192 194
193 if (!category) { 195 if (!category) {
@@ -198,6 +200,12 @@ @@ -198,6 +200,12 @@
198 var out = []; 200 var out = [];
199 for (var i = 0; i < input.length; i++) { 201 for (var i = 0; i < input.length; i++) {
200 var program = input[i]; 202 var program = input[i];
  203 +
  204 + if(!program.categories || program.categories.length === 0){
  205 + vm.$log.warn('Program without theme (category)', program.slug);
  206 + continue;
  207 + }
  208 +
201 if (program.categories[0].slug === category.slug) { 209 if (program.categories[0].slug === category.slug) {
202 out.push(program); 210 out.push(program);
203 } 211 }
@@ -206,13 +214,21 @@ @@ -206,13 +214,21 @@
206 return out; 214 return out;
207 } 215 }
208 216
209 - function _balanceByCategory (input) { 217 + ProgramasPageController.prototype._balanceByCategory = function (input) {
  218 + var vm = this;
  219 +
210 var result = []; 220 var result = [];
211 var resultByCategory = {}; 221 var resultByCategory = {};
212 222
213 // divide by categories 223 // divide by categories
214 for (var i = 0; i < input.length; i++) { 224 for (var i = 0; i < input.length; i++) {
215 var program = input[i]; 225 var program = input[i];
  226 +
  227 + if(!program.categories || program.categories.length === 0){
  228 + vm.$log.warn('Program without theme (category)', program.slug);
  229 + continue;
  230 + }
  231 +
216 var categorySlug = program.categories[0].slug; 232 var categorySlug = program.categories[0].slug;
217 233
218 if (!resultByCategory[categorySlug]) { 234 if (!resultByCategory[categorySlug]) {
src/app/pages/propostas/propostas.controller.js
@@ -142,11 +142,11 @@ @@ -142,11 +142,11 @@
142 var filter = vm.$filter('filter'); 142 var filter = vm.$filter('filter');
143 143
144 if (selectedTheme) { 144 if (selectedTheme) {
145 - output = _filterByCategory(output, selectedTheme); 145 + output = vm._filterByCategory(output, selectedTheme);
146 } 146 }
147 147
148 if (selectedProgram) { 148 if (selectedProgram) {
149 - output = _filterByProgram(output, selectedProgram); 149 + output = vm._filterByProgram(output, selectedProgram);
150 } 150 }
151 151
152 if (query) { 152 if (query) {
@@ -160,7 +160,9 @@ @@ -160,7 +160,9 @@
160 return output; 160 return output;
161 }; 161 };
162 162
163 - function _filterByCategory (input, category) { 163 + PropostasPageController.prototype._filterByCategory = function (input, category) {
  164 + var vm = this;
  165 +
164 input = input || []; 166 input = input || [];
165 167
166 if (!category) { 168 if (!category) {
@@ -179,7 +181,9 @@ @@ -179,7 +181,9 @@
179 return out; 181 return out;
180 } 182 }
181 183
182 - function _filterByProgram (input, program) { 184 + PropostasPageController.prototype._filterByProgram = function (input, program) {
  185 + var vm = this;
  186 +
183 input = input || []; 187 input = input || [];
184 188
185 if (!program) { 189 if (!program) {