import {Component, OnDestroy, OnInit} from '@angular/core'; import {LoginService} from 'src/app/services/login.service'; import {Router} from '@angular/router'; import {LecturerViewService} from 'src/app/services/lecturer-view.service'; import {takeWhile} from 'rxjs/operators'; import {LecturerDataService} from '../../services/lecturer-data.service'; @Component({ selector: 'app-lecturer-navbar', templateUrl: './lecturer-navbar.component.html', styleUrls: ['./lecturer-navbar.component.css'] }) export class LecturerNavbarComponent implements OnInit, OnDestroy { public onDashboard: Boolean; public onCreatePaper: Boolean; public onCreateTemplate: Boolean; public onTemplateView: Boolean; public isAlive = true; constructor(private loginService: LoginService, private lecturerDataService: LecturerDataService, private lecturerViewService: LecturerViewService, private router: Router) { } public logout(): void { this.loginService.logout(); this.router.navigate(['/login']); } ngOnInit(): void { this.lecturerViewService.onDashboard$.subscribe(flag => { this.onDashboard = !flag; }).add(takeWhile(() => this.isAlive)); this.lecturerViewService.onCreatePaper$.subscribe(flag => { this.onCreatePaper = !flag; }).add(takeWhile(() => this.isAlive)); this.lecturerViewService.onCreateTemplate$.subscribe(flag => { this.onCreateTemplate = !flag; }).add(takeWhile(() => this.isAlive)); this.lecturerViewService.onTemplateView$.subscribe(flag => { this.onTemplateView = !flag; }).add(takeWhile(() => this.isAlive)); } ngOnDestroy(): void { this.isAlive = false; } public goToDashboard() { this.router.navigate(['ldashboard']); } public createPaper() { this.lecturerDataService.isTemplate = false; this.router.navigate(['creation-view']); } public createTemplate() { this.lecturerDataService.isTemplate = true; this.lecturerDataService.classCode = 'NO_CLASS'; this.router.navigate(['creation-template-view']); } public goToTemplateView() { this.router.navigate(['template-view']); } }