LP1840773 SCKO Angular
authorBill Erickson <berickxx@gmail.com>
Wed, 29 Jun 2022 16:32:32 +0000 (12:32 -0400)
committerBill Erickson <berickxx@gmail.com>
Wed, 29 Jun 2022 16:32:32 +0000 (12:32 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/scko/scko.component.html
Open-ILS/src/eg2/src/app/scko/scko.service.ts
Open-ILS/src/eg2/src/app/scko/summary.component.html
Open-ILS/src/eg2/src/app/scko/summary.component.ts

index 97098d6..5d6ce82 100644 (file)
@@ -9,7 +9,7 @@
   <div class="flex-1"></div>
 </div>
 
-<div *ngIf="scko.auth.token() && scko.patronSummary" class="row mt-5">
+<div *ngIf="scko.auth.token() && scko.patronSummary" class="row mr-0 mt-5">
   <div class="col-lg-9">
     <div class="ml-2 scko-page">
       <router-outlet></router-outlet>
index 4dfdaec..13e2202 100644 (file)
@@ -69,6 +69,7 @@ export class SckoService {
     logoutDialog: ConfirmDialogComponent;
     alertDialog: AlertDialogComponent;
     focusBarcode: EventEmitter<void> = new EventEmitter<void>();
+    patronLoaded: EventEmitter<void> = new EventEmitter<void>();
 
     constructor(
         private router: Router,
@@ -215,7 +216,8 @@ export class SckoService {
         .then(patron => this.patronSummary = new PatronSummary(patron))
         .then(_ => this.patrons.getVitalStats(this.patronSummary.patron))
         .then(stats => this.patronSummary.stats = stats)
-        .then(_ => this.resetPatronTimeout());
+        .then(_ => this.resetPatronTimeout())
+        .then(_ => this.patronLoaded.emit());
     }
 
     resetPatronTimeout() {
index 94730fd..dd9cf29 100644 (file)
@@ -16,7 +16,8 @@
 
   <div class="pl-2 mt-3">
     <span class="mr-2" i18n>Receipt: </span>
-    <div class="form-check form-check-inline">
+
+    <div *ngIf="showEmailOption" class="form-check form-check-inline">
       <input class="form-check-input" name="receipt-type" type="radio" 
         [(ngModel)]="receiptType" id="receipt-email" value="email">
       <label class="form-check-label" for="receipt-email" i18n>Email</label>
index a1f153e..fa46b22 100644 (file)
@@ -15,6 +15,7 @@ import {EventService, EgEvent} from '@eg/core/event.service';
 
 export class SckoSummaryComponent implements OnInit {
 
+    showEmailOption = false;
     receiptType = 'email';
 
     constructor(
@@ -23,6 +24,32 @@ export class SckoSummaryComponent implements OnInit {
 
     ngOnInit() {
 
+        this.scko.patronLoaded.subscribe(() => {
+            if (this.canEmail()) {
+                this.showEmailOption = true;
+                this.receiptType = 'email';
+            } else {
+                this.showEmailOption = false;
+                this.receiptType = 'print';
+            }
+        });
+
+    }
+
+    canEmail(): boolean {
+        if (!this.scko.patronSummary) { return false; }
+
+        const patron = this.scko.patronSummary.patron;
+
+        const setting = patron.settings().filter(
+            s => s.name() === 'circ.send_email_checkout_receipts')[0];
+
+        return (
+            Boolean(patron.email())
+            && patron.email().match(/.*@.*/) !== null
+            && setting
+            && setting.value() === "true" // JSON
+        );
     }
 }