Skip to content
Snippets Groups Projects
course-item.component.ts 2.43 KiB
Newer Older
import { DegreePlannerDataService } from './../../../core/service/degree-planner-data.service';
import { ActivatedRoute } from '@angular/router';
import { Component, Input, ChangeDetectorRef, OnInit } from '@angular/core';
import { Course } from '../../../core/models/course';
import { Subject } from '@app/core/models/course-details';
import { Term } from '../../../core/models/term';
import { DegreePlan } from '../../../core/models/degree-plan';
import { SavedForLaterCourse } from '../../../core/models/saved-for-later-course';
import { DataService } from '../../../core/data.service';
import { CourseDetailsDialogComponent } from '../../dialogs/course-details-dialog/course-details-dialog.component';
// tslint:disable-next-line:max-line-length
import { RemoveCourseConfirmDialogComponent } from '../../dialogs/remove-course-confirm-dialog/remove-course-confirm-dialog.component';
import { MatDialog } from '@angular/material';

@Component({
Joe Van Boxtel's avatar
Joe Van Boxtel committed
	selector: 'cse-course-item',
	templateUrl: './course-item.component.html',
	styleUrls: ['./course-item.component.scss']

export class CourseItemComponent implements OnInit {
	termsInAcademicYear: [];
	// favoriteCourse: FavoriteCourse;
	degreePlans: DegreePlan[];
	termCodes: any;
	@Input() course: Course;
	@Input() status: string;
	@Input() disabled: string;
	@Input() type: 'saved' | 'course' | 'search';
	@Input() savedForLater: Boolean;

	constructor(
		private dataService: DataService,
		public dialog: MatDialog,
		private route: ActivatedRoute,
		private degreePlannerDataSvc: DegreePlannerDataService,
		private cdRef: ChangeDetectorRef) {
			this.degreePlans = route.snapshot.data.requiredData.degreePlans;
			this.selectedDegreePlan = this.degreePlans[0].roadmapId;
			this.subjects = route.snapshot.data.requiredData.subjects;
			this.termCodes =  this.degreePlannerDataSvc.getAllTerms();
		}

	ngOnInit() {
	}

	openCourseDetailsDialog(course) {
		this.dataService.getCourseDetails(course.termCode, course.subjectCode, course.courseId)
		.subscribe(courseDetails => {
			const dialogRef = this.dialog.open(CourseDetailsDialogComponent, {
				data: { courseDetails: courseDetails }
			});
		});
	}

		const dialogRef = this.dialog.open(RemoveCourseConfirmDialogComponent, {
			data: { course: this.course, type: this.type }