LP1959716 Follow up to allow managing/deleting in-place copies
authorBill Erickson <berickxx@gmail.com>
Fri, 8 Jul 2022 20:43:42 +0000 (16:43 -0400)
committerGalen Charlton <gmc@equinoxOLI.org>
Mon, 11 Jul 2022 13:49:00 +0000 (09:49 -0400)
Fixes a thinko which prevented management / deletion of existing copies
in the copy editor.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Open-ILS/src/eg2/src/app/staff/share/holdings/copy-alerts-dialog.component.ts
Open-ILS/src/eg2/src/app/staff/share/holdings/copy-notes-dialog.component.ts

index b5a0cd5..85960fc 100644 (file)
@@ -79,7 +79,8 @@ export class CopyAlertsDialogComponent
 
         // In manage mode, we can only manage a single copy.
         // But in create mode, we can add alerts to multiple copies.
-        if (this.copyIds.length === 1 && !this.inPlaceCreateMode) {
+        // We can only manage copies that already exist in the database.
+        if (this.copyIds.length === 1 && this.copyIds[0] > 0) {
             this.mode = 'manage';
         } else {
             this.mode = 'create';
@@ -109,6 +110,11 @@ export class CopyAlertsDialogComponent
     }
 
     getCopies(): Promise<any> {
+
+        // Avoid fetch if we're only adding notes to isnew copies.
+        const ids = this.copyIds.filter(id => id > 0);
+        if (ids.length === 0) { return Promise.resolve(); }
+
         return this.pcrud.search('acp', {id: this.copyIds}, {}, {atomic: true})
         .toPromise().then(copies => {
             this.copies = copies;
index a5fffd0..dffa227 100644 (file)
@@ -84,8 +84,8 @@ export class CopyNotesDialogComponent
 
         // In manage mode, we can only manage a single copy.
         // But in create mode, we can add notes to multiple copies.
-
-        if (this.copyIds.length === 1 && !this.inPlaceCreateMode) {
+        // We can only manage copies that already exist in the database.
+        if (this.copyIds.length === 1 && this.copyIds[0] > 0) {
             this.mode = 'manage';
         } else {
             this.mode = 'create';
@@ -99,6 +99,11 @@ export class CopyNotesDialogComponent
     }
 
     getCopies(): Promise<any> {
+
+        // Avoid fetch if we're only adding notes to isnew copies.
+        const ids = this.copyIds.filter(id => id > 0);
+        if (ids.length === 0) { return Promise.resolve(); }
+
         return this.pcrud.search('acp', {id: this.copyIds},
             {flesh: 1, flesh_fields: {acp: ['notes']}},
             {atomic: true}