LP1821382 Request items menu action
authorBill Erickson <berickxx@gmail.com>
Mon, 25 Mar 2019 20:18:55 +0000 (20:18 +0000)
committerDan Wells <dbw2@calvin.edu>
Wed, 29 May 2019 19:30:50 +0000 (15:30 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>

Open-ILS/src/eg2/src/app/staff/catalog/hold/hold.component.ts
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 8322b7a..539c434 100644 (file)
@@ -1,7 +1,5 @@
 import {Component, OnInit, Input, ViewChild, Renderer2} from '@angular/core';
 import {Router, ActivatedRoute, ParamMap} from '@angular/router';
-import {Observable} from 'rxjs';
-import {tap} from 'rxjs/operators';
 import {EventService} from '@eg/core/event.service';
 import {NetService} from '@eg/core/net.service';
 import {AuthService} from '@eg/core/auth.service';
@@ -10,7 +8,6 @@ import {PermService} from '@eg/core/perm.service';
 import {IdlObject} from '@eg/core/idl.service';
 import {OrgService} from '@eg/core/org.service';
 import {BibRecordService, BibRecordSummary} from '@eg/share/catalog/bib-record.service';
-import {CatalogSearchContext, CatalogSearchState} from '@eg/share/catalog/search-context';
 import {CatalogService} from '@eg/share/catalog/catalog.service';
 import {StaffCatalogService} from '../catalog.service';
 import {HoldsService, HoldRequest,
@@ -89,13 +86,14 @@ export class HoldComponent implements OnInit {
 
         this.holdType = this.route.snapshot.params['type'];
         this.holdTargets = this.route.snapshot.queryParams['target'];
+        this.holdFor = this.route.snapshot.queryParams['holdFor'] || 'patron';
 
         if (!Array.isArray(this.holdTargets)) {
             this.holdTargets = [this.holdTargets];
         }
 
         this.holdTargets = this.holdTargets.map(t => Number(t));
-        this.holdFor = 'patron';
+
         this.requestor = this.auth.user();
         this.pickupLib = this.auth.user().ws_ou();
 
@@ -104,6 +102,10 @@ export class HoldComponent implements OnInit {
             return ctx;
         });
 
+        if (this.holdFor === 'staff') {
+            this.holdForChanged();
+        }
+
         this.getTargetMeta();
 
         this.org.settings('sms.enable').then(sets => {
index 31b6e0c..42366ed 100644 (file)
       i18n-label label="Print Labels" (onClick)="openItemPrintLabels($event)">
     </eg-grid-toolbar-action>
 
+    <eg-grid-toolbar-action
+      i18n-label label="Request Items" (onClick)="requestItems($event)">
+    </eg-grid-toolbar-action>
+
     <!-- row actions : Add -->
 
     <eg-grid-toolbar-action
index bf375bc..623b547 100644 (file)
@@ -1,4 +1,5 @@
 import {Component, OnInit, Input, ViewChild} from '@angular/core';
+import {Router} from '@angular/router';
 import {Observable, Observer, of} from 'rxjs';
 import {map} from 'rxjs/operators';
 import {Pager} from '@eg/share/util/pager';
@@ -133,6 +134,7 @@ export class HoldingsMaintenanceComponent implements OnInit {
     contextOrg: IdlObject;
 
     constructor(
+        private router: Router,
         private org: OrgService,
         private idl: IdlService,
         private pcrud: PcrudService,
@@ -830,4 +832,11 @@ export class HoldingsMaintenanceComponent implements OnInit {
             dismissed => {}
         );
     }
+
+    requestItems(rows: HoldingsEntry[]) {
+        const copyIds = this.selectedCopyIds(rows);
+        if (copyIds.length === 0) { return; }
+        const params = {target: copyIds, holdFor: 'staff'};
+        this.router.navigate(['/staff/catalog/hold/C'], {queryParams: params});
+    }
 }