From deab1a43898380b1c4a077abf5809dd67ec68718 Mon Sep 17 00:00:00 2001
From: ievavold <ievavold@wisc.edu>
Date: Mon, 8 Apr 2019 13:58:11 -0500
Subject: [PATCH] ROENROLL-1545 show message when clicking on no-longer-offered
 course

---
 .../shared/course-item/course-item.component.html   | 10 +++++++++-
 .../shared/course-item/course-item.component.scss   |  3 ++-
 .../shared/course-item/course-item.component.ts     | 13 +++++++++++--
 3 files changed, 22 insertions(+), 4 deletions(-)

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 b79a214..dc56524 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
@@ -1,5 +1,5 @@
 <div
-  class="course-item {{ disabled ? 'disabled' : '' }} {{ status | lowercase }}"
+  class="course-item {{ disabled ? 'disabled' : '' }} {{ status }}"
   isFocusable="true"
   isTabbable="true"
   tabindex="0"
@@ -53,6 +53,14 @@
               matTooltipPosition="above">
               error
             </i>
+            <i
+              *ngSwitchCase="'NoLongerOffered'"
+              class="material-icons not-offered-icon"
+              alt="Course no longer offered icon"
+              matTooltip="Course no longer offered"
+              matTooltipPosition="above">
+              remove
+            </i>
           </span>
         </div>
       </div>
diff --git a/src/app/degree-planner/shared/course-item/course-item.component.scss b/src/app/degree-planner/shared/course-item/course-item.component.scss
index c2b0623..e2abfb5 100644
--- a/src/app/degree-planner/shared/course-item/course-item.component.scss
+++ b/src/app/degree-planner/shared/course-item/course-item.component.scss
@@ -16,7 +16,8 @@
   transition: border-color 0.25s ease, box-shadow 0.25s ease;
   cursor: pointer;
 
-  &.notofferedinterm {
+  &.NotOfferedInTerm,
+  &.NoLongerOffered {
     border-color: map-get($uw-accent, 600);
   }
 
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 db78b98..9b5da77 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
@@ -1,5 +1,5 @@
 import { Component, Input, OnInit } from '@angular/core';
-import { MatDialog } from '@angular/material';
+import { MatDialog, MatSnackBar } from '@angular/material';
 import { Store, select } from '@ngrx/store';
 import { Observable } from 'rxjs';
 import * as utils from '@app/degree-planner/shared/utils';
@@ -58,6 +58,7 @@ export class CourseItemComponent implements OnInit {
     public dialog: MatDialog,
     private store: Store<GlobalState>,
     private constants: ConstantsService,
+    private snackBar: MatSnackBar,
   ) {}
 
   ngOnInit() {
@@ -84,6 +85,8 @@ export class CourseItemComponent implements OnInit {
       this.status = 'InProgress';
     } else if (isNotOffered) {
       this.status = 'NotOfferedInTerm';
+    } else if (isNoLongerOffered) {
+      this.status = 'NoLongerOffered';
     } else {
       this.status = 'Normal';
     }
@@ -316,7 +319,13 @@ export class CourseItemComponent implements OnInit {
   }
 
   openCourseDetailsDialog() {
-    const { subjectCode, courseId } = this.course;
+    const { subjectCode, courseId, catalogNumber } = this.course;
+    if (this.course.studentEnrollmentStatus === 'DOESNOTEXIST') {
+      const { short } = this.constants.subjectDescription(subjectCode);
+      this.snackBar.open(`'${short} ${catalogNumber}' no longer offered`);
+      return;
+    }
+
     this.api
       .getCourseDetails(subjectCode, courseId)
       .subscribe(courseDetails => {
-- 
GitLab