Skip to content
Snippets Groups Projects
app.component.ts 2.69 KiB
Newer Older
import { DegreePlannerApiService } from './degree-planner/services/api.service';
pnogal's avatar
pnogal committed
import { FormBuilder, FormGroup } from '@angular/forms';
import { SidenavService } from './core/service/sidenav.service';
import { Component, ViewChild, OnInit } from '@angular/core';
import { MatSidenav } from '@angular/material';
import { ActivatedRoute } from '@angular/router';
pnogal's avatar
pnogal committed
import { Observable } from 'rxjs';
import { debounceTime, switchMap, tap } from 'rxjs/operators';
import { MatDialog } from '@angular/material';
import { CourseDetailsDialogComponent } from './degree-planner/dialogs/course-details-dialog/course-details-dialog.component';
import { ErrorStateMatcher } from '@angular/material/core';
import { FormControl, FormGroupDirective, NgForm, Validators } from '@angular/forms';
jvanboxtel@wisc.edu's avatar
jvanboxtel@wisc.edu committed

@Component({
pnogal's avatar
pnogal committed
    selector: 'cse-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.scss']
jvanboxtel@wisc.edu's avatar
jvanboxtel@wisc.edu committed
})
pnogal's avatar
pnogal committed

export class AppComponent implements OnInit {
pnogal's avatar
pnogal committed
    coursesData$: any;
    selectedDegreePlan: number;
    courses: Observable<any>;
    coursesForm: FormGroup;
pnogal's avatar
pnogal committed
    coursesInput = {};
pnogal's avatar
pnogal committed
    @ViewChild('rightAddCourse') public rightAddCourse: MatSidenav;
pnogal's avatar
pnogal committed

pnogal's avatar
pnogal committed
    constructor(
        public dialog: MatDialog,
        private route: ActivatedRoute,
        private sidenavService: SidenavService,
        private fb: FormBuilder,
        private api: DegreePlannerApiService) {
pnogal's avatar
pnogal committed
            this.coursesInput = new FormControl('', [Validators.required]);
            this.selectedDegreePlan = 520224;
pnogal's avatar
pnogal committed
            this.coursesForm = this.fb.group({
                coursesInput: null
            });
            // Uncomment following code when working on Course Search form in +Add Course
            // It will need to be modified to fix error: TS2531: Object is possibly 'null'
            // this.courses = this.coursesForm.get('coursesInput').valueChanges
            // .pipe(
            //     debounceTime(300),
            //     switchMap(value => this.api.autocomplete(value)),
            //     tap(x => console.log( x))
            // );
pnogal's avatar
pnogal committed
    }
pnogal's avatar
pnogal committed
    ngOnInit() {
        this.sidenavService.setSidenav(this.rightAddCourse);
    }
pnogal's avatar
pnogal committed
    openCourseDetailsDialog(course) {
        this.api.getCourseDetails(course.payload.subject.subjectCode, course.payload.courseId)
pnogal's avatar
pnogal committed
        .subscribe(courseDetails => {
            const dialogRef = this.dialog.open(CourseDetailsDialogComponent, {
                data: { courseDetails: courseDetails }
            });
        });
    }

}
document.addEventListener('WebComponentsReady', function() {
pnogal's avatar
pnogal committed
    const customEvent = new CustomEvent('myuw-login', {
        detail: {
            person: {
            // 'firstName': 'Bucky'
            }
        }
    });
    document.dispatchEvent(customEvent);