import {Component, OnDestroy, OnInit} from '@angular/core'; import {takeWhile} from 'rxjs/operators'; import {OmpClassDao} from 'src/app/dao/omp-class.dao'; import {LecturerInfoService} from 'src/app/services/lecturer-info.service'; import {ActivatedRoute, Router} from '@angular/router'; import {LecturerDataService} from '../../services/lecturer-data.service'; @Component({ selector: 'app-lecturer-dashboard', templateUrl: './lecturer-dashboard.component.html', styleUrls: ['./lecturer-dashboard.component.css'] }) export class LecturerDashboardComponent implements OnInit, OnDestroy { private isAlive = true; private lecturerId: String; public classList: OmpClassDao[]; constructor(private lecturerInfoService: LecturerInfoService, private lecturerDataService: LecturerDataService, private router: Router, private route: ActivatedRoute) { } ngOnInit(): void { this.route.params.subscribe(params => { this.lecturerId = params.id; }).add(takeWhile(() => this.isAlive)); this.lecturerDataService.lecturerId = this.lecturerId; this.classList = []; this.getClasses(); } ngOnDestroy(): void { this.isAlive = false; } public goToPaperView(classCode: String) { this.classList = []; this.lecturerDataService.classCode = classCode; this.router.navigate(['/paperview']); } private getClasses() { this.lecturerInfoService.getLecturerClasses(this.lecturerId).subscribe((data: OmpClassDao[]) => { data.forEach(c => this.classList.push(c)); }); } // TODO get most recent minute papers? }