| 49 | } |
| 50 | |
| 51 | processLevels () { |
| 52 | this.processedLevels = {} |
| 53 | for (const key in this.levels) { |
| 54 | const level = this.levels[key] |
| 55 | const tasks = level.get('tasks') |
| 56 | const name = level.get('name') |
| 57 | if (this.processedLevels[key]) { continue } |
| 58 | if (!new RegExp(`${$('#name-search')[0].value}`, 'i').test(name)) { continue } |
| 59 | const filteredTasks = (tasks != null ? tasks : []).filter(elem => // Similar case-insensitive search of input vs description (name). |
| 60 | new RegExp(`${$('#desc-search')[0].value}`, 'i').test(elem.name)) |
| 61 | this.processedLevels[key] = { |
| 62 | tasks: filteredTasks, |
| 63 | name, |
| 64 | } |
| 65 | } |
| 66 | return this.renderSelectors('#level-table') |
| 67 | } |
| 68 | |
| 69 | // Jade helper |
| 70 | hasIncompleteTasks (level) { |