LP1818288 WS Option to pre-fetch record holds
[working/Evergreen.git] / Open-ILS / src / eg2 / src / app / staff / share / holds / grid.component.html
1 <!-- hold grid with jump-off points to detail page and other actions -->
2
3 <!-- our on-demand dialogs-->
4 <eg-progress-dialog #progressDialog></eg-progress-dialog>
5 <eg-hold-transfer-dialog #transferDialog></eg-hold-transfer-dialog>
6 <eg-mark-damaged-dialog #markDamagedDialog></eg-mark-damaged-dialog>
7 <eg-mark-missing-dialog #markMissingDialog></eg-mark-missing-dialog>
8 <eg-hold-retarget-dialog #retargetDialog></eg-hold-retarget-dialog>
9 <eg-hold-cancel-dialog #cancelDialog></eg-hold-cancel-dialog>
10 <eg-hold-manage-dialog #manageDialog></eg-hold-manage-dialog>
11
12 <div class='eg-holds w-100 mt-3'>
13
14   <ng-container *ngIf="mode == 'detail'">
15     <eg-hold-detail [wideHold]="detailHold" (onShowList)="mode='list'">
16     </eg-hold-detail>
17   </ng-container>
18
19   <ng-container *ngIf="mode == 'list' && initComplete()">
20
21     <div class="row" *ngIf="!hidePickupLibFilter">
22       <div class="col-lg-4">
23         <div class="input-group">
24           <div class="input-group-prepend">
25             <div class="input-group-text" i18n>Pickup Library</div>
26           </div>
27           <eg-org-select [initialOrg]="pickupLib" (onChange)="pickupLibChanged($event)">
28           </eg-org-select>
29         </div>
30       </div>
31     </div>
32
33     <eg-grid #holdsGrid [dataSource]="gridDataSource" [sortable]="true"
34       [useLocalSort]="enablePreFetch"
35       [multiSortable]="true" [persistKey]="persistKey"
36       (onRowActivate)="showDetail($event)">
37
38       <eg-grid-toolbar-checkbox (onChange)="preFetchHolds($event)"
39         [initialValue]="enablePreFetch" i18n-label label="Pre-Fetch All Holds">
40       </eg-grid-toolbar-checkbox>
41
42       <eg-grid-toolbar-action
43         i18n-label label="Show Hold Details" i18n-group group="Hold"
44         (onClick)="showDetails($event)"></eg-grid-toolbar-action>
45
46       <eg-grid-toolbar-action
47         i18n-label label="Modify Hold(s)" group="Hold" i18n-group
48         (onClick)="showManageDialog($event)">
49       </eg-grid-toolbar-action>
50
51       <eg-grid-toolbar-action
52         i18n-label label="Show Last Few Circulations" group="Item" i18n-group
53         (onClick)="showRecentCircs($event)"></eg-grid-toolbar-action>
54
55       <eg-grid-toolbar-action
56         i18n-label label="Retrieve Patron" group="Patron" i18n-group
57         (onClick)="showPatron($event)">
58       </eg-grid-toolbar-action>
59
60       <eg-grid-toolbar-action
61         i18n-group group="Hold" i18n-label label="Transfer To Marked Title"
62         (onClick)="showTransferDialog($event)">
63       </eg-grid-toolbar-action>
64
65       <eg-grid-toolbar-action
66         group="Item" i18n-group i18n-label label="Mark Item Damaged"
67         (onClick)="showMarkDamagedDialog($event)"></eg-grid-toolbar-action>
68
69       <eg-grid-toolbar-action
70         i18n-group group="Item" i18n-label label="Mark Item Missing"
71         (onClick)="showMarkMissingDialog($event)">
72       </eg-grid-toolbar-action>
73
74       <eg-grid-toolbar-action
75         i18n-group group="Hold" i18n-label label="Find Another Target"
76         (onClick)="showRetargetDialog($event)"></eg-grid-toolbar-action>
77
78       <eg-grid-toolbar-action
79         i18-group group="Hold" i18n-label label="Cancel Hold"
80         (onClick)="showCancelDialog($event)"></eg-grid-toolbar-action>
81
82       <eg-grid-column i18n-label label="Hold ID" path='id' [index]="true" datatype="id">
83       </eg-grid-column>
84
85       <ng-template #barcodeTmpl let-hold="row">
86         <a href="/eg/staff/cat/item/{{cp_id}}/summary">
87           {{hold.cp_barcode}}
88         </a>
89       </ng-template>
90       <eg-grid-column i18n-label label="Current Item" name='cp_barcode'
91         [cellTemplate]="barcodeTmpl">
92       </eg-grid-column>
93
94       <eg-grid-column i18n-label label="Patron Barcode"
95           path='ucard_barcode' [hidden]="true"></eg-grid-column>
96       <eg-grid-column i18n-label label="Patron alias" path="usr_alias"></eg-grid-column>
97       <eg-grid-column i18n-label label="Request Date"
98           path='request_time' datatype="timestamp"></eg-grid-column>
99       <eg-grid-column i18n-label label="Capture Date" path='capture_time'
100           datatype="timestamp"></eg-grid-column>
101       <eg-grid-column i18n-label label="Available Date" path='shelf_time'
102           datatype="timestamp"></eg-grid-column>
103       <eg-grid-column i18n-label label="Hold Type" path='hold_type'></eg-grid-column>
104       <eg-grid-column i18n-label label="Pickup Library" path='pl_shortname'></eg-grid-column>
105
106       <ng-template #titleTmpl let-hold="row">
107         <a class="no-href" routerLink="/staff/catalog/record/{{hold.record_id}}">
108           {{hold.title}}
109         </a>
110       </ng-template>
111       <eg-grid-column i18n-label label="Title" [hidden]="true"
112           name='title' [cellTemplate]="titleTmpl"></eg-grid-column>
113       <eg-grid-column i18n-label label="Author" path='author'
114           [hidden]="true"></eg-grid-column>
115       <eg-grid-column i18n-label label="Potential Items" path='potentials' datatype="int">
116       </eg-grid-column>
117       <eg-grid-column i18n-label label="Status" path='status_string'>
118       </eg-grid-column>
119       <eg-grid-column i18n-label label="Queue Position"
120           path='relative_queue_position' [hidden]="true" datatype="int"></eg-grid-column>
121       <eg-grid-column path='usr_id' i18n-label label="User ID" [hidden]="true"></eg-grid-column>
122       <eg-grid-column path='usr_usrname' i18n-label label="Username" [hidden]="true"></eg-grid-column>
123
124       <eg-grid-column path='usr_first_given_name' i18n-label label="First Name" [hidden]="true"></eg-grid-column>
125       <eg-grid-column path='usr_family_name' i18n-label label="Last Name" [hidden]="true"></eg-grid-column>
126       <eg-grid-column path='rusr_id' i18n-label label="Requestor ID" [hidden]="true"></eg-grid-column>
127       <eg-grid-column path='rusr_usrname' i18n-label label="Requestor Username" [hidden]="true"></eg-grid-column>
128
129      <eg-grid-column i18n-label label="Item Status" path="cs_name" [hidden]="true"></eg-grid-column>
130
131       <eg-grid-column path='acnp_label' i18n-label label="CN Prefix" [hidden]="true"></eg-grid-column>
132       <eg-grid-column path='acns_label' i18n-label label="CN Suffix" [hidden]="true"></eg-grid-column>
133       <eg-grid-column path='mvr.*' parent-idl-class="mvr" [hidden]="true"></eg-grid-column>
134
135       <eg-grid-column i18n-label label="Fulfillment Date/Time" path='fulfillment_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
136       <eg-grid-column i18n-label label="Checkin Time" path='checkin_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
137       <eg-grid-column i18n-label label="Return Time" path='return_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
138       <eg-grid-column i18n-label label="Last Targeting Date/Time" path='prev_check_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
139       <eg-grid-column i18n-label label="Expire Time" path='expire_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
140       <eg-grid-column i18n-label label="Hold Cancel Date/Time" path='cancel_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
141       <eg-grid-column i18n-label label="Cancelation note" path='cancel_note' [hidden]="true"></eg-grid-column>
142       <eg-grid-column i18n-label label="Hold Target" path='target' [hidden]="true"></eg-grid-column>
143       <eg-grid-column i18n-label label="Current Copy" path='current_copy' [hidden]="true"></eg-grid-column>
144       <eg-grid-column i18n-label label="Fulfilling Staff" path='fulfillment_staff' [hidden]="true"></eg-grid-column>
145       <eg-grid-column i18n-label label="Fulfilling Library" path='fulfillment_lib' [hidden]="true"></eg-grid-column>
146       <eg-grid-column i18n-label label="Requesting Library" path='request_lib' [hidden]="true"></eg-grid-column>
147       <eg-grid-column i18n-label label="Requesting User" path='requestor' [hidden]="true"></eg-grid-column>
148       <eg-grid-column i18n-label label="User" path='usr' [hidden]="true"></eg-grid-column>
149       <eg-grid-column i18n-label label="Selection Library" path='selection_ou' [hidden]="true"></eg-grid-column>
150       <eg-grid-column i18n-label label="Item Selection Depth" path='selection_depth' [hidden]="true"></eg-grid-column>
151       <eg-grid-column i18n-label label="Holdable Formats (for M-type hold)" path='holdable_formats' [hidden]="true"></eg-grid-column>
152       <eg-grid-column i18n-label label="Notifications Phone Number" path='phone_notify' [hidden]="true"></eg-grid-column>
153       <eg-grid-column i18n-label label="Notifications SMS Number" path='sms_notify' [hidden]="true"></eg-grid-column>
154       <eg-grid-column i18n-label label="Notify by Email?" path='email_notify' datatype="bool" [hidden]="true"></eg-grid-column>
155       <eg-grid-column i18n-label label="SMS Carrier" path='sms_carrier' [hidden]="true"></eg-grid-column>
156       <eg-grid-column i18n-label label="Currently Frozen" path='frozen' datatype="bool" [hidden]="true"></eg-grid-column>
157       <eg-grid-column i18n-label label="Activation Date" path='thaw_date' datatype="timestamp" [hidden]="true"></eg-grid-column>
158       <eg-grid-column i18n-label label="Top of Queue" path='cut_in_line' datatype="bool" [hidden]="true"></eg-grid-column>
159       <eg-grid-column i18n-label label="Is Mint Condition" path='mint_condition' datatype="bool" [hidden]="true"></eg-grid-column>
160       <eg-grid-column i18n-label label="Shelf Expire Time" path='shelf_expire_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
161       <eg-grid-column i18n-label label="Current Shelf Library" path='current_shelf_lib' [hidden]="true"></eg-grid-column>
162       <eg-grid-column i18n-label label="Behind Desk" path='behind_desk' datatype="bool" [hidden]="true"></eg-grid-column>
163       <eg-grid-column i18n-label label="Status" path='hold_status' [hidden]="true"></eg-grid-column>
164       <eg-grid-column i18n-label label="Clearable" path='clear_me' datatype="bool" [hidden]="true"></eg-grid-column>
165       <eg-grid-column i18n-label label="Is Staff-placed Hold" path='is_staff_hold' datatype="bool" [hidden]="true"></eg-grid-column>
166       <eg-grid-column i18n-label label="Cancelation Cause ID" path='cc_id' [hidden]="true"></eg-grid-column>
167       <eg-grid-column i18n-label label="Cancelation Cause" path='cc_label' [hidden]="true"></eg-grid-column>
168       <eg-grid-column i18n-label label="Pickup Library" path='pl_shortname'></eg-grid-column>
169       <eg-grid-column i18n-label label="Pickup Library Name" path='pl_name' [hidden]="true"></eg-grid-column>
170       <eg-grid-column i18n-label label="Pickup Library Email" path='pl_email' [hidden]="true"></eg-grid-column>
171       <eg-grid-column i18n-label label="Pickup Library Phone" path='pl_phone' [hidden]="true"></eg-grid-column>
172       <eg-grid-column i18n-label label="Pickup Library Opac Visible" path='pl_opac_visible' [hidden]="true"></eg-grid-column>
173       <eg-grid-column i18n-label label="Transit ID" path='tr_id' [hidden]="true"></eg-grid-column>
174       <eg-grid-column i18n-label label="Transit Send Time" path='tr_source_send_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
175       <eg-grid-column i18n-label label="Transit Receive Time" path='tr_dest_recv_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
176       <eg-grid-column i18n-label label="Transit Copy" path='tr_target_copy' [hidden]="true"></eg-grid-column>
177       <eg-grid-column i18n-label label="Transit Source" path='tr_source' [hidden]="true"></eg-grid-column>
178       <eg-grid-column i18n-label label="Transit Destination" path='tr_dest' [hidden]="true"></eg-grid-column>
179       <eg-grid-column i18n-label label="Transit Copy Status" path='tr_copy_status' [hidden]="true"></eg-grid-column>
180       <eg-grid-column i18n-label label="Transit Hold" path='tr_hold' [hidden]="true"></eg-grid-column>
181       <eg-grid-column i18n-label label="Transit Cancel Time" path='tr_cancel_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
182       <eg-grid-column i18n-label label="Hold Note Count" path='note_count' [hidden]="true"></eg-grid-column>
183       <eg-grid-column i18n-label label="User Display Name" path='usr_display_name' [hidden]="true"></eg-grid-column>
184       <eg-grid-column i18n-label label="Requestor Username" path='rusr_usrname' [hidden]="true"></eg-grid-column>
185       <eg-grid-column i18n-label label="Copy ID" path='cp_id' [hidden]="true"></eg-grid-column>
186       <eg-grid-column i18n-label label="Copy Number on Volume" path='cp_copy_number' [hidden]="true"></eg-grid-column>
187       <eg-grid-column i18n-label label="Fine Level" path='cp_fine_level' [hidden]="true"></eg-grid-column>
188       <eg-grid-column i18n-label label="Can Circulate" path='cp_circulate' datatype="bool" [hidden]="true"></eg-grid-column>
189       <eg-grid-column i18n-label label="Deposit Amount" path='cp_deposit_amount' datatype="bool" [hidden]="true"></eg-grid-column>
190       <eg-grid-column i18n-label label="Is Deposit Required" path='cp_deposit' datatype="bool" [hidden]="true"></eg-grid-column>
191       <eg-grid-column i18n-label label="Is Reference" path='cp_ref' datatype="bool" [hidden]="true"></eg-grid-column>
192       <eg-grid-column i18n-label label="Is Holdable" path='cp_holdable' datatype="bool" [hidden]="true"></eg-grid-column>
193       <eg-grid-column i18n-label label="Price" path='cp_price' [hidden]="true"></eg-grid-column>
194       <eg-grid-column i18n-label label="Copy Barcode" path='cp_barcode' [hidden]="true"></eg-grid-column>
195       <eg-grid-column i18n-label label="Circulation Modifier" path='cp_circ_modifier' [hidden]="true"></eg-grid-column>
196       <eg-grid-column i18n-label label="Circulate as MARC Type" path='cp_circ_as_type' [hidden]="true"></eg-grid-column>
197       <eg-grid-column i18n-label label="Precat Dummy Title" path='cp_dummy_title' [hidden]="true"></eg-grid-column>
198       <eg-grid-column i18n-label label="Precat Dummy Author" path='cp_dummy_author' [hidden]="true"></eg-grid-column>
199       <eg-grid-column i18n-label label="Copy Alert Message (deprecated)" path='cp_alert_message' [hidden]="true"></eg-grid-column>
200       <eg-grid-column i18n-label label="Copy OPAC Visible" path='cp_opac_visible' datatype="bool" [hidden]="true"></eg-grid-column>
201       <eg-grid-column i18n-label label="Copy Deleted" path='cp_deleted' datatype="bool" [hidden]="true"></eg-grid-column>
202       <eg-grid-column i18n-label label="Floating Group" path='cp_floating' [hidden]="true"></eg-grid-column>
203       <eg-grid-column i18n-label label="Precat Dummy ISBN" path='cp_dummy_isbn' [hidden]="true"></eg-grid-column>
204       <eg-grid-column i18n-label label="Copy Status Change Time" path='cp_status_change_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
205       <eg-grid-column i18n-label label="Copy Active Date" path='cp_active_date' datatype="timestamp" [hidden]="true"></eg-grid-column>
206       <eg-grid-column i18n-label label="Copy Is Mint Condition" path='cp_mint_condition' datatype="bool" [hidden]="true"></eg-grid-column>
207       <eg-grid-column i18n-label label="Cost" path='cp_cost' [hidden]="true"></eg-grid-column>
208       <eg-grid-column i18n-label label="Status Is Holdable" path='cs_holdable' datatype="bool" [hidden]="true"></eg-grid-column>
209       <eg-grid-column i18n-label label="Status Is OPAC Visible" path='cs_opac_visible' datatype="bool" [hidden]="true"></eg-grid-column>
210       <eg-grid-column i18n-label label="Status Is Copy-Active" path='cs_copy_active' datatype="bool" [hidden]="true"></eg-grid-column>
211       <eg-grid-column i18n-label label="Status Is Deleted" path='cs_restrict_copy_delete' datatype="bool" [hidden]="true"></eg-grid-column>
212       <eg-grid-column i18n-label label="Status Is Available" path='cs_is_available' datatype="bool" [hidden]="true"></eg-grid-column>
213       <eg-grid-column i18n-label label="Issuance i18n-label label" path='issuance_label' [hidden]="true"></eg-grid-column>
214       <eg-grid-column i18n-label label="Call Number ID" path='cn_id' [hidden]="true"></eg-grid-column>
215       <eg-grid-column i18n-label label="CN i18n-label label" path='cn_label' [hidden]="true"></eg-grid-column>
216       <eg-grid-column i18n-label label="CN i18n-label label Class" path='cn_label_class' [hidden]="true"></eg-grid-column>
217       <eg-grid-column i18n-label label="CN Sort Key" path='cn_label_sortkey' [hidden]="true"></eg-grid-column>
218       <eg-grid-column i18n-label label="Part ID" path='p_id' [hidden]="true"></eg-grid-column>
219       <eg-grid-column i18n-label label="Part i18n-label label" path='p_label' [hidden]="true"></eg-grid-column>
220       <eg-grid-column i18n-label label="Part Sort Key" path='p_label_sortkey' [hidden]="true"></eg-grid-column>
221       <eg-grid-column i18n-label label="Part Is Deleted" path='p_deleted' datatype="bool" [hidden]="true"></eg-grid-column>
222       <eg-grid-column i18n-label label="CN Full i18n-label label" path='cn_full_label' [hidden]="true"></eg-grid-column>
223       <eg-grid-column i18n-label label="Record ID" path='record_id' [hidden]="true"></eg-grid-column>
224       <eg-grid-column i18n-label label="Copy Location ID" path='acpl_id' [hidden]="true"></eg-grid-column>
225       <eg-grid-column i18n-label label="Copy Location" path='acpl_name' [hidden]="true"></eg-grid-column>
226       <eg-grid-column i18n-label label="Copy Location Holdable" path='acpl_holdable' datatype="bool" [hidden]="true"></eg-grid-column>
227       <eg-grid-column i18n-label label="Copy Location Hold-Verify" path='acpl_hold_verify' datatype="bool" [hidden]="true"></eg-grid-column>
228       <eg-grid-column i18n-label label="Copy Location OPAC Visible" path='acpl_opac_visible' datatype="bool" [hidden]="true"></eg-grid-column>
229       <eg-grid-column i18n-label label="Copy Location Can Circulate" path='acpl_circulate' datatype="bool" [hidden]="true"></eg-grid-column>
230       <eg-grid-column i18n-label label="Copy Location Prefix" path='acpl_label_prefix' [hidden]="true"></eg-grid-column>
231       <eg-grid-column i18n-label label="Copy Location Suffix" path='acpl_label_suffix' [hidden]="true"></eg-grid-column>
232       <eg-grid-column i18n-label label="Copy Location Checkin Alert" path='acpl_checkin_alert' datatype="bool" [hidden]="true"></eg-grid-column>
233       <eg-grid-column i18n-label label="Copy Location Is Deleted" path='acpl_deleted' datatype="bool" [hidden]="true"></eg-grid-column>
234       <eg-grid-column i18n-label label="Copy Location URL" path='acpl_url' [hidden]="true"></eg-grid-column>
235       <eg-grid-column i18n-label label="Copy Location Order" path='copy_location_order_position' [hidden]="true"></eg-grid-column>
236       <eg-grid-column i18n-label label="Default Estimated Wait Time" path='default_estimated_wait' [hidden]="true"></eg-grid-column>
237       <eg-grid-column i18n-label label="Minimum Estimated Wait Time" path='min_estimated_wait' [hidden]="true"></eg-grid-column>
238       <eg-grid-column i18n-label label="Peer Hold Count" path='other_holds' [hidden]="true"></eg-grid-column>
239       <eg-grid-column i18n-label label="Total Wait Time" path='total_wait_time' [hidden]="true"></eg-grid-column>
240       <eg-grid-column i18n-label label="Notify Count" path='notification_count' [hidden]="true"></eg-grid-column>
241       <eg-grid-column i18n-label label="Last Notify Time" path='last_notification_time' datatype="timestamp" [hidden]="true"></eg-grid-column>
242
243     </eg-grid>
244
245   </ng-container>
246
247 </div>
248
249