diff --git a/README.md b/README.md index 52c50fd209f4654a8ce6bd045285177bbb417fd3..fa9b426af98d6bf3396e8c67116c7d67090574bb 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ works great with typescript ecosystem. ## Development server -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. +Run `ng serve --proxy-config proxy.json` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. ## Code scaffolding diff --git a/src/app/core/data.service.ts b/src/app/core/data.service.ts index 78d8f0f21c509fb0a57a2ad4197ffff0fc4dbd90..d3cb826cf993c74035ce52f5d5dbb63949cd3487 100644 --- a/src/app/core/data.service.ts +++ b/src/app/core/data.service.ts @@ -45,6 +45,11 @@ export class DataService { .pipe(catchError(this.errorHandler)); } + getSubjectsMap(): Observable<Object> { + return this.http.get(this.searchApiUrl + '/subjectsMap/0000', httpOptions) + .pipe(catchError(this.errorHandler)); + } + getFavoriteCourses(): Observable<FavoriteCourse[]> { return this.http.get<FavoriteCourse[]>(this.plannerApiUrl + '/favorites') .pipe(catchError(this.errorHandler)); diff --git a/src/app/degree-planner/degree-planner.component.html b/src/app/degree-planner/degree-planner.component.html index 3fbf31de27c68c805033059672ee3d99e1678619..b2d765232aae423a5e1d70944f0c223b6fb9b9ee 100644 --- a/src/app/degree-planner/degree-planner.component.html +++ b/src/app/degree-planner/degree-planner.component.html @@ -1,7 +1,7 @@ <mat-sidenav-container id="plans-container"> <!-- Menu side nav --> <mat-sidenav #rightSideNav position="end" mode="side" [opened]="true" disableClose> - <cse-sidenav-menu-item [favoriteDropZone]="getTermDropZone()"></cse-sidenav-menu-item> + <cse-sidenav-menu-item [favoriteDropZone]="getTermDropZone()" [subjectsMap]="subjectsMap"></cse-sidenav-menu-item> </mat-sidenav> <!-- Add course sidenav --> @@ -48,6 +48,7 @@ [courses]="termsByAcademicYear[year.key].terms[term.key]['courses']" [termCodes]="getTermDropZone()" [termsByAcademicYear]="termsByAcademicYear" + [subjectsMap]="subjectsMap" fxFlex="33%" ></cse-term-container> </div> diff --git a/src/app/degree-planner/degree-planner.component.ts b/src/app/degree-planner/degree-planner.component.ts index 846f4c0481d184c2676c3026c5f2be4728bf5d07..b05de228d4032e62a4439f41c4e3a5442b851a59 100644 --- a/src/app/degree-planner/degree-planner.component.ts +++ b/src/app/degree-planner/degree-planner.component.ts @@ -17,6 +17,8 @@ export class DegreePlannerComponent { selectedDegreePlan: number; terms: Term[]; termsByAcademicYear: Object; + subjectsMap: Object; + constructor(private dataService: DataService) { this.dataService.getDegreePlans() @@ -51,6 +53,11 @@ export class DegreePlannerComponent { } }); + this.dataService.getSubjectsMap() + .subscribe( subjectsMap => { + this.subjectsMap = subjectsMap; + }); + this.dataService.getTerms() .subscribe(terms => {}); } diff --git a/src/app/degree-planner/favorites-container/favorites-container.component.html b/src/app/degree-planner/favorites-container/favorites-container.component.html index 9c9ef4d2734769207a56fcfdb96fb0531bd1a57f..728914fdfc38b5e986f21dfc5df785fce00ca517 100644 --- a/src/app/degree-planner/favorites-container/favorites-container.component.html +++ b/src/app/degree-planner/favorites-container/favorites-container.component.html @@ -8,7 +8,12 @@ (cdkDropListDropped)="drop($event)"> <div class="course-wrapper" [cdkDragData]="course" *ngFor="let course of favoriteCourses" cdkDrag> <div class="course-wrapper-inner"> - <cse-course-item [course]="course" [status]="'favorite'" class="course-favorite"></cse-course-item> + <cse-course-item + [course]="course" + [status]="'favorite'" + [subject]="subjectsMap[course.subjectCode]" + class="course-favorite" + ></cse-course-item> </div> </div> <p *ngIf="!favoriteCourses || favoriteCourses.length === 0" class="no-courses text-center semi-bold">No Favorite Courses</p> diff --git a/src/app/degree-planner/favorites-container/favorites-container.component.ts b/src/app/degree-planner/favorites-container/favorites-container.component.ts index 756020a666883974eb5ff1fd850a4bbd4118b0e1..6c611678d6fc58de90992b5a156b77f7127e6b11 100644 --- a/src/app/degree-planner/favorites-container/favorites-container.component.ts +++ b/src/app/degree-planner/favorites-container/favorites-container.component.ts @@ -12,6 +12,7 @@ import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/dr export class FavoritesContainerComponent implements OnInit { favoriteCourses: FavoriteCourse[]; favoriteCourse: FavoriteCourse; + @Input() subjectsMap: Object; @Input() favoriteDropZone: []; constructor(private dataService: DataService) { diff --git a/src/app/degree-planner/shared/course-item/course-item.component.html b/src/app/degree-planner/shared/course-item/course-item.component.html index b3ceb5801664e188b35e3a306d6625b5473eefe3..3730f586c312b530fb5e89ee63c45972e4959d4e 100644 --- a/src/app/degree-planner/shared/course-item/course-item.component.html +++ b/src/app/degree-planner/shared/course-item/course-item.component.html @@ -2,7 +2,7 @@ <div class="course-row course-info"> <div class="icon-number-wrapper"> <p class="course-number"> - {{course.subjectCode}} {{course.catalogNumber}} + {{subject}} {{course.catalogNumber}} </p> <div [ngSwitch]="status"> <i *ngSwitchCase="'complete'" class="material-icons complete-icon">check_circle</i> diff --git a/src/app/degree-planner/shared/course-item/course-item.component.ts b/src/app/degree-planner/shared/course-item/course-item.component.ts index 0e1cc14893661838579501105f04b9afb93f7202..3b783ab20d722c27f72469a3101abec74d079bf6 100644 --- a/src/app/degree-planner/shared/course-item/course-item.component.ts +++ b/src/app/degree-planner/shared/course-item/course-item.component.ts @@ -9,6 +9,7 @@ import { Course } from '../../../core/models/course'; export class CourseItemComponent { @Input() course: Course; @Input() status: string; + @Input() subject: string; constructor() {} diff --git a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html index 384cca7f934f2a04b388796059a4ee0fd7599bcb..f7ffa7af3226bf51ff7b03e34e772b5cf8a02af9 100644 --- a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html +++ b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html @@ -20,7 +20,7 @@ <h3>Favorites</h3> </mat-panel-title> </mat-expansion-panel-header> - <cse-favorites-container [favoriteDropZone]='favoriteDropZone'></cse-favorites-container> + <cse-favorites-container [favoriteDropZone]='favoriteDropZone' [subjectsMap]="subjectsMap"></cse-favorites-container> </mat-expansion-panel> <mat-expansion-panel id="menu-items-container" expanded="true"> diff --git a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts index 185f8212c2ec8f646ba463411e48371d91c67fc3..9c32d9240b93329ea8499a19ba23703b3db2b392 100644 --- a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts +++ b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts @@ -9,6 +9,7 @@ export class SidenavMenuItemComponent implements OnInit { events: string[] = []; opened: boolean; @Input() favoriteDropZone: []; + @Input() subjectsMap: Object; constructor() { } diff --git a/src/app/degree-planner/term-container/term-container.component.html b/src/app/degree-planner/term-container/term-container.component.html index 8cfd400026610183d7c3883bd829fdf71b9600a2..211d4d33ceb5109523839b5d93aedb1e8e236acd 100644 --- a/src/app/degree-planner/term-container/term-container.component.html +++ b/src/app/degree-planner/term-container/term-container.component.html @@ -11,7 +11,12 @@ (cdkDropListDropped)="drop($event)"> <div class="course-wrapper" [cdkDragData]="course" *ngFor="let course of courses" cdkDrag> <div class="course-wrapper-inner"> - <cse-course-item [course]="course" [status]="'in-progress'" (click)="openCourseDetailsDialog(course)"></cse-course-item> + <cse-course-item + [course]="course" + [status]="'in-progress'" + [subject]="subjectsMap[course.subjectCode]" + (click)="openCourseDetailsDialog(course)" + ></cse-course-item> </div> </div> <p *ngIf="!courses || courses.length === 0" class="no-courses text-center semi-bold">No Courses Taken</p> diff --git a/src/app/degree-planner/term-container/term-container.component.ts b/src/app/degree-planner/term-container/term-container.component.ts index a20077f40ff58a5ef1f254ac6a3736ac594ffa59..66a96025b7dc7528cf91a693af26ae38e7e6e27d 100644 --- a/src/app/degree-planner/term-container/term-container.component.ts +++ b/src/app/degree-planner/term-container/term-container.component.ts @@ -19,6 +19,7 @@ export class TermContainerComponent { @Input() termCodes: String[]; @Input() termsByAcademicYear: Object; @Input() course: CourseDetails; + @Input() subjectsMap: Object; terms: any[];