Angular holdings maintenance wip
authorBill Erickson <berickxx@gmail.com>
Mon, 18 Mar 2019 19:05:51 +0000 (15:05 -0400)
committerBill Erickson <berickxx@gmail.com>
Mon, 18 Mar 2019 19:05:51 +0000 (15:05 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.ts

index db65e99..92135a1 100644 (file)
   </div>
 </ng-template>
 
+<ng-template #holdableTemplate let-row="row" let-userContext="userContext">
+  <ng-container *ngIf="row.copy">
+    <ng-container *ngIf="userContext.copyIsHoldable(row.copy); else notHoldable">
+      <span i18n>Yes</span>
+    </ng-container>
+    <ng-template #notHoldable><span i18n>No</span></ng-template>
+  </ng-container>
+</ng-template>
+
 
 <div class='eg-copies w-100 mt-3'>
   <eg-grid #holdingsGrid [dataSource]="gridDataSource"
     <eg-grid-column i18n-label label="Age Hold Protection" 
       path="copy.age_protect.name"></eg-grid-column>
 
-  <!--
     <eg-grid-column i18n-label label="Holdable?" name="holdable" 
-      [cellTemplate]="holdableTemplate" [cellContext]="copyContext">
+      [cellTemplate]="holdableTemplate" [cellContext]="gridTemplateContext">
     </eg-grid-column>
-  -->
 
   </eg-grid>
 </div>
index ebead26..0f9e4ad 100644 (file)
@@ -129,6 +129,12 @@ export class HoldingsMaintenanceComponent implements OnInit {
                 }
 
                 this.holdingsGrid.reload();
+            },
+
+            copyIsHoldable: (copy: IdlObject): boolean => {
+                return copy.holdable() === 't'
+                    && copy.location().holdable() === 't'
+                    && copy.status().holdable() === 't';
             }
         }
     }
@@ -351,6 +357,7 @@ export class HoldingsMaintenanceComponent implements OnInit {
         this.renderFromPrefs = false;
     }
 
+
     fetchHoldings(pager: Pager): Observable<any> {
         if (!this.recId) { return of([]); }