Skip to content
Snippets Groups Projects
Commit 72f9e7a9 authored by jvanboxtel@wisc.edu's avatar jvanboxtel@wisc.edu
Browse files

ROENROLL-1381

parent 7837657d
No related branches found
No related tags found
No related merge requests found
...@@ -54,16 +54,12 @@ ...@@ -54,16 +54,12 @@
<button mat-button class="sidenav-link-btn" (click)="print()"> <button mat-button class="sidenav-link-btn" (click)="print()">
<i class="material-icons">print</i> Print <i class="material-icons">print</i> Print
</button> </button>
<button mat-button class="sidenav-link-btn"> <a href="/api/degreeplanpdf?roadmapId={{planId}}" mat-button class="sidenav-link-btn">
<svg <svg class="material-icons" style="width:24px;height:24px" viewBox="0 0 24 24" >
class="material-icons"
style="width:24px;height:24px"
viewBox="0 0 24 24"
>
<path fill="#0479a8" d="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z" /> <path fill="#0479a8" d="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z" />
</svg> </svg>
Download PDF Download PDF
</button> </a>
<button mat-button class="sidenav-link-btn" (click)="onCreatePlanClick()"> <button mat-button class="sidenav-link-btn" (click)="onCreatePlanClick()">
<i class="material-icons">add_box</i> Add Degree Plan <i class="material-icons">add_box</i> Add Degree Plan
</button> </button>
......
// Libraries // Libraries
import { Component } from '@angular/core'; import { Component, OnDestroy } from '@angular/core';
import { Store } from '@ngrx/store';
import { MatDialog } from '@angular/material'; import { MatDialog } from '@angular/material';
import { FormGroup } from '@angular/forms'; import { FormGroup } from '@angular/forms';
import { MatSnackBar } from '@angular/material'; import { MatSnackBar } from '@angular/material';
import { Observable } from 'rxjs'; import { Observable, Subscription } from 'rxjs';
import { map, filter } from 'rxjs/operators';
// State management // State management
import { GlobalState } from '@app/core/state'; import { GlobalState } from '@app/core/state';
import { Store, select } from '@ngrx/store';
import { AddAcademicYearRequest } from '@app/degree-planner/store/actions/addAcademicYear.actions'; import { AddAcademicYearRequest } from '@app/degree-planner/store/actions/addAcademicYear.actions';
import { PromptDialogComponent } from '@app/shared/dialogs/prompt-dialog/prompt-dialog.component'; import { PromptDialogComponent } from '@app/shared/dialogs/prompt-dialog/prompt-dialog.component';
import { CreatePlan } from '@app/degree-planner/store/actions/plan.actions'; import { CreatePlan } from '@app/degree-planner/store/actions/plan.actions';
import * as selectors from '@app/degree-planner/store/selectors';
@Component({ @Component({
selector: 'cse-sidenav-menu-item', selector: 'cse-sidenav-menu-item',
templateUrl: './sidenav-menu-item.component.html', templateUrl: './sidenav-menu-item.component.html',
styleUrls: ['./sidenav-menu-item.component.scss'], styleUrls: ['./sidenav-menu-item.component.scss'],
}) })
export class SidenavMenuItemComponent { export class SidenavMenuItemComponent implements OnDestroy {
public inputForm: FormGroup; public inputForm: FormGroup;
public yearCodes$: Observable<string[]>; public yearCodes$: Observable<string[]>;
public activeRoadmapId: Subscription;
public planId: number;
constructor( constructor(
private store: Store<GlobalState>, private store: Store<GlobalState>,
public dialog: MatDialog, public dialog: MatDialog,
private snackBar: MatSnackBar, private snackBar: MatSnackBar,
) {} ) {
this.activeRoadmapId = this.store
.pipe(
select(selectors.selectVisibleDegreePlan),
filter(isntUndefined),
map(plan => plan.roadmapId),
)
.subscribe(planId => {
this.planId = planId;
});
}
// Unsubscribe from subs to prevent memeory leaks
public ngOnDestroy() {
this.activeRoadmapId.unsubscribe();
}
public onAddAcademicYear() { public onAddAcademicYear() {
this.store.dispatch(new AddAcademicYearRequest()); this.store.dispatch(new AddAcademicYearRequest());
...@@ -55,3 +73,7 @@ export class SidenavMenuItemComponent { ...@@ -55,3 +73,7 @@ export class SidenavMenuItemComponent {
}); });
} }
} }
const isntUndefined = <T>(anything: T | undefined): anything is T => {
return anything !== undefined;
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment