LP1888723 Avoid save warning on vol load; vol save thinko
authorBill Erickson <berickxx@gmail.com>
Wed, 11 Aug 2021 19:01:06 +0000 (15:01 -0400)
committerGalen Charlton <gmc@equinoxOLI.org>
Sun, 15 Aug 2021 23:56:54 +0000 (19:56 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Open-ILS/src/eg2/src/app/staff/cat/volcopy/vol-edit.component.ts
Open-ILS/src/eg2/src/app/staff/cat/volcopy/volcopy.component.ts

index 5b28baa..ab9309c 100644 (file)
@@ -95,7 +95,7 @@ export class VolEditComponent implements OnInit {
         .then(_ => this.addStubCopies())
         // It's possible the loaded data is not strictly allowed,
         // e.g. empty string call number labels
-        .then(_ => this.emitSaveChange());
+        .then(_ => this.emitSaveChange(true));
     }
 
     copyStatLabel(copy: IdlObject): string {
@@ -544,9 +544,15 @@ export class VolEditComponent implements OnInit {
 
     // Called any time a change occurs that could affect the
     // save-ability of the form.
-    emitSaveChange() {
+    emitSaveChange(initialLoad?: boolean) {
+        const saveable = this.canSave();
+
+        // Avoid emitting a save change event when this was called
+        // during page load and the resulting data is saveable.
+        if (initialLoad && saveable) { return; }
+
         setTimeout(() => {
-            this.canSaveChange.emit(this.canSave());
+            this.canSaveChange.emit(saveable);
         });
     }
 
index 6d2a0b6..e288b8d 100644 (file)
@@ -336,7 +336,10 @@ export class VolCopyComponent implements OnInit {
     save(close?: boolean): Promise<any> {
         this.loading = true;
 
-        this.copyAttrs.applyPendingChanges();
+        if (this.copyAttrs) {
+            // Won't exist on any non-attrs page.
+            this.copyAttrs.applyPendingChanges();
+        }
 
         // Volume update API wants volumes fleshed with copies, instead
         // of the other way around, which is what we have here.