Newer
Older
<mat-sidenav-container [hasBackdrop]="mobileView.matches">
<mat-progress-bar id="loading-plan-progress" mode="indeterminate" *ngIf="(isLoadingPlan$ | async)"></mat-progress-bar>
<mat-sidenav-container id="plans-container" ngClass.sm="hide-navigation-bar" ngClass.xs="hide-navigation-bar">
<mat-sidenav-content
id="degree-plan-wrapper"
[ngClass]="{ isLoadingPlan: isLoadingPlan$ | async }"
*ngIf="(degreePlan$ | async) as degreePlan">
<cse-alert-container
[alerts]="alerts$ | async"
(dismiss)="onDismissAlert($event)">
</cse-alert-container>
<div
fxLayout="row"
fxLayoutGap="20px"
fxLayoutAlign="start center"
<mat-form-field class="degree-plans-form-field" floatLabel="always">
<mat-label>Degree Plans</mat-label>
attr.aria-label="Degree plans list - {{ degreePlan.name }} selected"
[disabled]="isLoadingPlan$ | async"
class="degree-plan-selector"
[value]="degreePlan.roadmapId"
[disableOptionCentering]="true"
(selectionChange)="handleDegreePlanChange($event)">
<!-- Render the name of the currently visible degree plan. -->
<mat-select-trigger>
<mat-icon
class="primary-star"
*ngIf="degreePlan.primary"
alt="Primary degree plan star"
matTooltip="Primary plan"
matTooltipPosition="above"
>star_rate</mat-icon>
<span class="plan-name">{{ degreePlan.name }}</span>
</mat-select-trigger>
<!-- Show all degree plans in the dropdown list and ddd a star next to the user's primary plan. -->
<mat-option
*ngFor="let degreePlan of (allDegreePlans$ | async)"
class="primary-star"
*ngIf="degreePlan.primary"
alt="Primary degree plan star"
matTooltip="Primary plan"
matTooltipPosition="above"
>star_rate</mat-icon>
<span *ngIf="degreePlan.primary" aria-labelledby="primary-plan-star"></span>
<span class="plan-name">{{ degreePlan.name }}</span>
[disabled]="isLoadingPlan$ | async">
<mat-icon
aria-label="Degree plan settings"
alt="Degree plan settings"
pnogal
committed
matTooltipPosition="above"
<button mat-menu-item (click)="onAddAcademicYear()">
Add academic year
</button>
<button mat-menu-item (click)="onRenamePlanClick(degreePlan)">
Rename plan
</button>
<button
mat-menu-item
(click)="onMakePrimayClick(degreePlan)"
<a mat-menu-item target="_blank" href="/api/degreeplanpdf?roadmapId={{ degreePlan.roadmapId }}&hideGrades={{ !(showGrades$ | async) }}">Create PDF</a>
<button
mat-menu-item
(click)="onDeletePlanClick(degreePlan)"
Delete plan
</button>
<hr />
<button mat-menu-item (click)="onCreatePlanClick()">
Add degree plan
</button>
<div
id="year-wrapper"
fxLayout="column"
fxLayoutGap="20px"
fxLayoutAlign="start stretch"
style="margin:24px 24px 72px 24px">
<div id="year-mask" *ngIf="(isLoadingPlan$ | async)"></div>
pnogal
committed
<mat-slide-toggle
color="primary"
labelPosition="before"
(change)="changeGradeVisibility($event)">
Show Grades
</mat-slide-toggle>
</div>
<div class="expand-collapse">
<button mat-button color="primary" (click)="toggleAllYears(true)" aria-label="Expand All Years">Expand All</button>
<span>|</span>
<button mat-button color="primary" (click)="toggleAllYears(false)" aria-label="Collapse All Years">Collapse All</button>
</div>
<cse-year-container
*ngFor="let yearCode of yearCodes$ | async; trackBy: trackYearCodes"
[yearCode]="yearCode">
</cse-year-container>
<!-- Menu side nav -->
<mat-sidenav position="end" role="region" cdkFocusRegionEnd (closedStart)="closeSidenav()"
[mode]="mobileView.matches ? 'over' : 'side'"
[disableClose]="!mobileView.matches"
[opened]="(isSidenavOpen$ | async) || !mobileView.matches">
<cse-sidenav-menu-item></cse-sidenav-menu-item>
<p class="version-number">v{{ version }}</p>
</mat-sidenav>
</mat-sidenav-container>
</mat-sidenav-content>
<mat-sidenav #addMenu position="end" mode="over" role="region" [opened]="isCourseSearchOpen$ | async" (closedStart)="closeCourseSearch()">
<mat-toolbar color="primary" class="dialog-toolbar">
<span class="dialog-toolbar-title">Course Search</span>
<button mat-button aria-label="Close course search sidenav" class="close-btn" (click)="closeCourseSearch()">
<i class="material-icons" alt="Close course search sidenav" matTooltip="Close sidenav" matTooltipPosition="above">close</i>
</button>
</mat-toolbar>
<cse-course-search></cse-course-search>
</mat-sidenav>
</mat-sidenav-container>