import { Component } from '@angular/core'; import { DataService } from '../core/data.service'; import { DegreePlan } from '../core/models/degree-plan'; import { Course } from '../core/models/course'; import { Term } from '../core/models/term'; @Component({ selector: 'app-degree-planner', templateUrl: './degree-planner.component.html', styleUrls: ['./degree-planner.component.scss'] }) export class DegreePlannerComponent { degreePlans: DegreePlan[]; degreePlanCourses: any[]; selectedDegreePlan: number; terms: Term[]; termsByAcademicYear: Object; constructor(private dataService: DataService) { this.dataService.getDegreePlans() .subscribe(data => { this.degreePlans = data; this.selectedDegreePlan = this.degreePlans[0].roadmapId; }); this.dataService.getDegreePlannerCourseData() .subscribe(degreePlanCourses => { this.degreePlanCourses = degreePlanCourses; }); this.dataService.getTerms() .subscribe(terms => { this.terms = terms; this.termsByAcademicYear = {}; this.terms.forEach(term => { const year = term.termCode.substring(0, 3); if (this.termsByAcademicYear[year]) { this.termsByAcademicYear[year].terms.push(term); } else { this.termsByAcademicYear[year] = { year: year, terms: [term] }; } }); }); } getCoursesByTerm(termCode) { if (!this.degreePlanCourses) { return false; } for ( const term of this.degreePlanCourses ) { if (term.termCode === termCode) { return term.courses; } } } }