lp1895706 - Unarchive Course Button handles correctly
authorKyle Huckins <khuckins@catalyte.io>
Sun, 20 Mar 2022 21:26:43 +0000 (21:26 +0000)
committerJane Sandberg <js7389@princeton.edu>
Wed, 26 Oct 2022 23:54:36 +0000 (16:54 -0700)
- Ensure changes made in 1939994 are reflected properly
- Hide Archive Course button if Course is archived
- Hide Unarchive Course button if Course is active

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Beth Willis <willis@noblenet.org>
Signed-off-by: Jane Sandberg <sandbergja@gmail.com>

Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-page.component.html
Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-page.component.ts
Open-ILS/src/eg2/src/app/staff/share/course.service.ts

index 980b89d..d8bae1b 100644 (file)
@@ -7,14 +7,12 @@
 
 <div class="row">
   <div class="col text-right">
-    <button class="btn btn-danger"
-      (click)="archiveCourse()" [disabled]="currentCourse && (courseIsArchived || currentCourse.is_archived()) === 't' ">
-      <i class="material-icons align-middle"
-        *ngIf="currentCourse && (currentCourse.is_archived() == 't' || currentCourse.is_archived() == true)">block</i>
+    <button class="btn btn-danger" *ngIf="currentCourse && (courseIsArchived || currentCourse.is_archived()) === 'f' "
+      (click)="archiveCourse()">
       <span class="align-middle">Archive Course</span>
     </button>
     <button class="btn btn-primary"
-      (click)="unarchiveCourse()" *ngIf="currentCourse && currentCourse.is_archived() == 't'">
+      (click)="unarchiveCourse()" *ngIf="currentCourse && (courseIsArchived || currentCourse.is_archived()) === 't' ">
       <span class="align-middle">Unarchive Course</span>
     </button>
     <a class="btn btn-warning ml-3" routerLink="/staff/admin/local/asset/course_list" i18n>
@@ -81,3 +79,4 @@
 
 <eg-string #archiveFailedString i18n-text text="Archiving of Course failed or was not allowed"></eg-string>
 <eg-string #archiveSuccessString i18n-text text="Archiving of Course succeeded"></eg-string>
+<eg-string #unarchiveSuccessString i18n-text text="Unarchiving of Course succeeded"></eg-string>
index 3b5be21..0cc26e2 100644 (file)
@@ -72,8 +72,9 @@ export class CoursePageComponent implements OnInit {
         this.course.disassociateMaterials([this.currentCourse]).then(res => {
             this.currentCourse.is_archived('f');
             this.pcrud.update(this.currentCourse).subscribe(val => {
+                this.courseIsArchived = 'f';
+                console.debug('archived: ' + val);
                 this.course.removeNonPublicUsers(this.currentCourse.id());
-                console.debug('unarchived: ' + val);
                 this.unarchiveSuccessString.current()
                     .then(str => this.toast.success(str));
             }, err => {
index 6d8ed30..5b832a8 100644 (file)
@@ -230,23 +230,25 @@ export class CourseService {
             const acmcu_ids = [];
             
             this.getUsers([courseID]).subscribe(nonPublicUser => {
-                if(nonPublicUser.usr_role().is_public() !== 't') acmcu_ids.push(nonPublicUser.id());
+                if(nonPublicUser && nonPublicUser.usr_role().is_public() !== 't') acmcu_ids.push(nonPublicUser.id());
             }, err => {
                 reject(err);
             }, () => {
                 resolve(acmcu_ids);
-                this.pcrud.search('acmcu', {course: courseID, id: acmcu_ids}).subscribe(userToDelete => {
-                    userToDelete.isdeleted(true);
-                    this.pcrud.autoApply(userToDelete).subscribe(val => {
-                        console.debug('deleted: ' + val);
-                    }, err => {
-                        console.log("Error: " + err);
-                        reject(err);
-                    }, () => {
-                        console.log("Resolving");
-                        resolve(userToDelete);
+                if (acmcu_ids.length) {
+                    this.pcrud.search('acmcu', {course: courseID, id: acmcu_ids}).subscribe(userToDelete => {
+                        userToDelete.isdeleted(true);
+                        this.pcrud.autoApply(userToDelete).subscribe(val => {
+                            console.debug('deleted: ' + val);
+                        }, err => {
+                            console.log("Error: " + err);
+                            reject(err);
+                        }, () => {
+                            console.log("Resolving");
+                            resolve(userToDelete);
+                        });
                     });
-                });
+                }
             });
         });
     }