1 <!-- hold grid with jump-off points to detail page and other actions -->
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>
12 <ng-template #statusTemplate let-hold="row">
13 <ng-container [ngSwitch]="hold.hold_status">
14 <div *ngSwitchCase="-1" i18n>Unknown Error</div>
15 <div *ngSwitchCase="1" i18n>Waiting for Item</div>
16 <div *ngSwitchCase="2" i18n>Waiting for Capture</div>
17 <div *ngSwitchCase="3" i18n>In Transit</div>
18 <div *ngSwitchCase="4" i18n>Ready for Pickup</div>
19 <div *ngSwitchCase="5" i18n>Hold Shelf Delay</div>
20 <div *ngSwitchCase="6" i18n>Canceled</div>
21 <div *ngSwitchCase="7" i18n>Suspended</div>
22 <div *ngSwitchCase="8" i18n>Wrong Shelf</div>
23 <div *ngSwitchCase="9" i18n>Fulfilled</div>
27 <div class='eg-holds w-100 mt-3'>
29 <ng-container *ngIf="mode == 'detail'">
30 <eg-hold-detail [wideHold]="detailHold" (onShowList)="mode='list'">
34 <ng-container *ngIf="mode == 'list' && initComplete()">
36 <div class="row" *ngIf="!hidePickupLibFilter">
37 <div class="col-lg-4">
38 <div class="input-group">
39 <div class="input-group-prepend">
40 <div class="input-group-text" i18n>Pickup Library</div>
42 <eg-org-select [persistKey]="persistKey" [fallbackOrg]="pickupLib"
43 (componentLoaded)="plCompLoaded = true" (onChange)="pickupLibChanged($event)">
49 <eg-grid #holdsGrid [dataSource]="gridDataSource" [sortable]="true"
50 [useLocalSort]="enablePreFetch" [cellTextGenerator]="cellTextGenerator"
51 [showFields]="showFields"
52 [multiSortable]="true" [persistKey]="persistKey"
53 (onRowActivate)="showDetail($event)">
55 <eg-grid-toolbar-checkbox (onChange)="preFetchHolds($event)" *ngIf="!hopeless"
56 [initialValue]="enablePreFetch" i18n-label label="Pre-Fetch All Holds">
57 </eg-grid-toolbar-checkbox>
59 <eg-grid-toolbar-action
60 i18n-label label="Show Hold Details" i18n-group group="Hold"
61 (onClick)="showDetails($event)"></eg-grid-toolbar-action>
63 <eg-grid-toolbar-action
64 i18n-label label="Modify Hold(s)" group="Hold" i18n-group
65 (onClick)="showManageDialog($event)">
66 </eg-grid-toolbar-action>
68 <eg-grid-toolbar-action
69 i18n-label label="Show Last Few Circulations" group="Item" i18n-group
70 (onClick)="showRecentCircs($event)"></eg-grid-toolbar-action>
72 <eg-grid-toolbar-action
73 i18n-label label="Retrieve Patron" group="Patron" i18n-group
74 (onClick)="showPatron($event)">
75 </eg-grid-toolbar-action>
77 <eg-grid-toolbar-action
78 i18n-group group="Hold" i18n-label label="Transfer To Marked Title"
79 [disableOnRows]="nonTitleHoldsSelected"
80 (onClick)="showTransferDialog($event)">
81 </eg-grid-toolbar-action>
83 <eg-grid-toolbar-action
84 group="Item" i18n-group i18n-label label="Mark Item Damaged"
85 (onClick)="showMarkDamagedDialog($event)"></eg-grid-toolbar-action>
87 <eg-grid-toolbar-action
88 i18n-group group="Item" i18n-label label="Mark Item Missing"
89 (onClick)="showMarkMissingDialog($event)">
90 </eg-grid-toolbar-action>
92 <eg-grid-toolbar-action
93 i18n-group group="Hold" i18n-label label="Find Another Target"
94 (onClick)="showRetargetDialog($event)"></eg-grid-toolbar-action>
96 <eg-grid-toolbar-action
97 i18-group group="Hold" i18n-label label="Cancel Hold"
98 (onClick)="showCancelDialog($event)"></eg-grid-toolbar-action>
100 <eg-grid-toolbar-action
101 i18-group group="Hold" i18n-label label="Print Holds"
102 (onClick)="printHolds()"></eg-grid-toolbar-action>
104 <eg-grid-toolbar-action *ngIf="hopeless"
105 i18-group group="Item" i18n-label label="View/Place Orders"
106 [disableOnRows]="metaRecordHoldsSelected"
107 (onClick)="showOrder($event)"></eg-grid-toolbar-action>
109 <eg-grid-toolbar-action *ngIf="hopeless"
110 i18-group group="Item" i18n-label label="Add Holdings"
111 [disableOnRows]="metaRecordHoldsSelected"
112 (onClick)="addVolume($event)"></eg-grid-toolbar-action>
114 <eg-grid-toolbar-action *ngIf="hopeless"
115 i18-group group="Item" i18n-label label="Show in Catalog"
116 (onClick)="showTitle($event)"></eg-grid-toolbar-action>
118 <eg-grid-column i18n-label label="Hold ID" path='id' [index]="true" datatype="id">
121 <ng-template #barcodeTmpl let-hold="row">
122 <a href="/eg/staff/cat/item/{{hold.cp_id}}/summary">
126 <eg-grid-column i18n-label label="Current Item" name='cp_barcode'
127 [cellTemplate]="barcodeTmpl">
130 <ng-template #userBarcodeTmpl let-hold="row">
131 <a href="/eg/staff/circ/patron/{{hold.usr_id}}/checkout">
132 {{hold.ucard_barcode}}
135 <eg-grid-column i18n-label label="Patron Barcode" name="patron_barcode"
136 [cellTemplate]="userBarcodeTmpl" [hidden]="true"></eg-grid-column>
138 <eg-grid-column i18n-label label="Patron alias" path="usr_alias"></eg-grid-column>
139 <eg-grid-column i18n-label label="Request Date"
140 path='request_time' datatype="timestamp" [datePlusTime]="true"></eg-grid-column>
141 <eg-grid-column i18n-label label="Capture Date" path='capture_time'
142 datatype="timestamp" [datePlusTime]="true"></eg-grid-column>
143 <eg-grid-column i18n-label label="Available Date" path='shelf_time'
144 datatype="timestamp" [datePlusTime]="true"></eg-grid-column>
145 <eg-grid-column i18n-label label="Hold Type" path='hold_type'></eg-grid-column>
146 <eg-grid-column i18n-label label="Pickup Library" path='pl_shortname'></eg-grid-column>
148 <ng-template #titleTmpl let-hold="row">
149 <a class="no-href" routerLink="/staff/catalog/record/{{hold.record_id}}">
153 <eg-grid-column i18n-label label="Title" [hidden]="true" name='title'
154 [cellTemplate]="titleTmpl"></eg-grid-column>
155 <eg-grid-column i18n-label label="Author" path='author'
156 [hidden]="true"></eg-grid-column>
157 <eg-grid-column i18n-label label="Potential Items" path='potentials' datatype="int">
159 <eg-grid-column i18n-label label="Status" [cellTemplate]="statusTemplate">
161 <eg-grid-column i18n-label label="Queue Position"
162 path='relative_queue_position' [hidden]="true" datatype="int"></eg-grid-column>
163 <eg-grid-column path='usr_id' i18n-label label="User ID" [hidden]="true"></eg-grid-column>
164 <eg-grid-column path='usr_usrname' i18n-label label="Username" [hidden]="true"></eg-grid-column>
166 <eg-grid-column path='usr_first_given_name' i18n-label label="First Name" [hidden]="true"></eg-grid-column>
167 <eg-grid-column path='usr_family_name' i18n-label label="Last Name" [hidden]="true"></eg-grid-column>
168 <eg-grid-column path='rusr_id' i18n-label label="Requestor ID" [hidden]="true"></eg-grid-column>
169 <eg-grid-column path='rusr_usrname' i18n-label label="Requestor Username" [hidden]="true"></eg-grid-column>
171 <eg-grid-column i18n-label label="Item Status" path="cs_name" [hidden]="true"></eg-grid-column>
173 <eg-grid-column path='acnp_label' i18n-label label="CN Prefix" [hidden]="true"></eg-grid-column>
174 <eg-grid-column path='acns_label' i18n-label label="CN Suffix" [hidden]="true"></eg-grid-column>
176 <eg-grid-column i18n-label label="Fulfillment Date/Time" path='fulfillment_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
177 <eg-grid-column i18n-label label="Checkin Time" path='checkin_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
178 <eg-grid-column i18n-label label="Return Time" path='return_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
179 <eg-grid-column i18n-label label="Last Targeting Date/Time" path='prev_check_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
180 <eg-grid-column i18n-label label="Expire Time" path='expire_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
181 <eg-grid-column i18n-label label="Hold Cancel Date/Time" path='cancel_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
182 <eg-grid-column i18n-label label="Cancelation note" path='cancel_note' [hidden]="true"></eg-grid-column>
183 <eg-grid-column i18n-label label="Hold Target" path='target' [hidden]="true"></eg-grid-column>
184 <eg-grid-column i18n-label label="Current Item" path='current_copy' [hidden]="true"></eg-grid-column>
185 <eg-grid-column i18n-label label="Fulfilling Staff" path='fulfillment_staff' [hidden]="true"></eg-grid-column>
186 <eg-grid-column i18n-label label="Fulfilling Library" path='fulfillment_lib' [hidden]="true"></eg-grid-column>
187 <eg-grid-column i18n-label label="Requesting Library" path='request_lib' [hidden]="true"></eg-grid-column>
188 <eg-grid-column i18n-label label="Requesting User" path='requestor' [hidden]="true"></eg-grid-column>
189 <eg-grid-column i18n-label label="User" path='usr' [hidden]="true"></eg-grid-column>
190 <eg-grid-column i18n-label label="Selection Library" path='selection_ou' [hidden]="true"></eg-grid-column>
191 <eg-grid-column i18n-label label="Item Selection Depth" path='selection_depth' [hidden]="true"></eg-grid-column>
192 <eg-grid-column i18n-label label="Holdable Formats (for M-type hold)" path='holdable_formats' [hidden]="true"></eg-grid-column>
193 <eg-grid-column i18n-label label="Notifications Phone Number" path='phone_notify' [hidden]="true"></eg-grid-column>
194 <eg-grid-column i18n-label label="Notifications SMS Number" path='sms_notify' [hidden]="true"></eg-grid-column>
195 <eg-grid-column i18n-label label="Notify by Email?" path='email_notify' datatype="bool" [hidden]="true"></eg-grid-column>
196 <eg-grid-column i18n-label label="SMS Carrier" path='sms_carrier' [hidden]="true"></eg-grid-column>
197 <eg-grid-column i18n-label label="Currently Frozen" path='frozen' datatype="bool" [hidden]="true"></eg-grid-column>
198 <eg-grid-column i18n-label label="Activation Date" path='thaw_date' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
199 <eg-grid-column i18n-label label="Top of Queue" path='cut_in_line' datatype="bool" [hidden]="true"></eg-grid-column>
200 <eg-grid-column i18n-label label="Is Mint Condition" path='mint_condition' datatype="bool" [hidden]="true"></eg-grid-column>
201 <eg-grid-column i18n-label label="Shelf Expire Time" path='shelf_expire_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
202 <eg-grid-column i18n-label label="Current Shelf Library" path='current_shelf_lib' [hidden]="true"></eg-grid-column>
203 <eg-grid-column i18n-label label="Behind Desk" path='behind_desk' datatype="bool" [hidden]="true"></eg-grid-column>
204 <eg-grid-column i18n-label label="Hopeless Date" path='hopeless_date' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
205 <eg-grid-column i18n-label label="Clearable" path='clear_me' datatype="bool" [hidden]="true"></eg-grid-column>
206 <eg-grid-column i18n-label label="Is Staff-placed Hold" path='is_staff_hold' datatype="bool" [hidden]="true"></eg-grid-column>
207 <eg-grid-column i18n-label label="Cancelation Cause ID" path='cc_id' [hidden]="true"></eg-grid-column>
208 <eg-grid-column i18n-label label="Cancelation Cause" path='cc_label' [hidden]="true"></eg-grid-column>
209 <eg-grid-column i18n-label label="Pickup Library" path='pl_shortname'></eg-grid-column>
210 <eg-grid-column i18n-label label="Pickup Library Name" path='pl_name' [hidden]="true"></eg-grid-column>
211 <eg-grid-column i18n-label label="Pickup Library Email" path='pl_email' [hidden]="true"></eg-grid-column>
212 <eg-grid-column i18n-label label="Pickup Library Phone" path='pl_phone' [hidden]="true"></eg-grid-column>
213 <eg-grid-column i18n-label label="Pickup Library Opac Visible" path='pl_opac_visible' [hidden]="true"></eg-grid-column>
214 <eg-grid-column i18n-label label="Transit ID" path='tr_id' [hidden]="true"></eg-grid-column>
215 <eg-grid-column i18n-label label="Transit Send Time" path='tr_source_send_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
216 <eg-grid-column i18n-label label="Transit Receive Time" path='tr_dest_recv_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
217 <eg-grid-column i18n-label label="Transit Item" path='tr_target_copy' [hidden]="true"></eg-grid-column>
218 <eg-grid-column i18n-label label="Transit Source" path='tr_source' [hidden]="true"></eg-grid-column>
219 <eg-grid-column i18n-label label="Transit Destination" path='tr_dest' [hidden]="true"></eg-grid-column>
220 <eg-grid-column i18n-label label="Transit Item Status" path='tr_copy_status' [hidden]="true"></eg-grid-column>
221 <eg-grid-column i18n-label label="Transit Hold" path='tr_hold' [hidden]="true"></eg-grid-column>
222 <eg-grid-column i18n-label label="Transit Cancel Time" path='tr_cancel_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
223 <eg-grid-column i18n-label label="Hold Note Count" path='note_count' [hidden]="true"></eg-grid-column>
224 <eg-grid-column i18n-label label="User Display Name" path='usr_display_name' [hidden]="true"></eg-grid-column>
225 <eg-grid-column i18n-label label="Requestor Username" path='rusr_usrname' [hidden]="true"></eg-grid-column>
226 <eg-grid-column i18n-label label="Item ID" path='cp_id' [hidden]="true"></eg-grid-column>
227 <eg-grid-column i18n-label label="Item Number on Call Number" path='cp_copy_number' [hidden]="true"></eg-grid-column>
228 <eg-grid-column i18n-label label="Fine Level" path='cp_fine_level' [hidden]="true"></eg-grid-column>
229 <eg-grid-column i18n-label label="Can Circulate" path='cp_circulate' datatype="bool" [hidden]="true"></eg-grid-column>
230 <eg-grid-column i18n-label label="Deposit Amount" path='cp_deposit_amount' datatype="bool" [hidden]="true"></eg-grid-column>
231 <eg-grid-column i18n-label label="Is Deposit Required" path='cp_deposit' datatype="bool" [hidden]="true"></eg-grid-column>
232 <eg-grid-column i18n-label label="Is Reference" path='cp_ref' datatype="bool" [hidden]="true"></eg-grid-column>
233 <eg-grid-column i18n-label label="Is Holdable" path='cp_holdable' datatype="bool" [hidden]="true"></eg-grid-column>
234 <eg-grid-column i18n-label label="Price" path='cp_price' [hidden]="true"></eg-grid-column>
235 <eg-grid-column i18n-label label="Item Barcode" path='cp_barcode' [hidden]="true"></eg-grid-column>
236 <eg-grid-column i18n-label label="Circulation Modifier" path='cp_circ_modifier' [hidden]="true"></eg-grid-column>
237 <eg-grid-column i18n-label label="Circulate as MARC Type" path='cp_circ_as_type' [hidden]="true"></eg-grid-column>
238 <eg-grid-column i18n-label label="Precat Dummy Title" path='cp_dummy_title' [hidden]="true"></eg-grid-column>
239 <eg-grid-column i18n-label label="Precat Dummy Author" path='cp_dummy_author' [hidden]="true"></eg-grid-column>
240 <eg-grid-column i18n-label label="Item Alert Message (deprecated)" path='cp_alert_message' [hidden]="true"></eg-grid-column>
241 <eg-grid-column i18n-label label="Item OPAC Visible" path='cp_opac_visible' datatype="bool" [hidden]="true"></eg-grid-column>
242 <eg-grid-column i18n-label label="Item Deleted" path='cp_deleted' datatype="bool" [hidden]="true"></eg-grid-column>
243 <eg-grid-column i18n-label label="Floating Group" path='cp_floating' [hidden]="true"></eg-grid-column>
244 <eg-grid-column i18n-label label="Precat Dummy ISBN" path='cp_dummy_isbn' [hidden]="true"></eg-grid-column>
245 <eg-grid-column i18n-label label="Item Status Change Time" path='cp_status_change_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
246 <eg-grid-column i18n-label label="Item Active Date" path='cp_active_date' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>
247 <eg-grid-column i18n-label label="Item Is Mint Condition" path='cp_mint_condition' datatype="bool" [hidden]="true"></eg-grid-column>
248 <eg-grid-column i18n-label label="Cost" path='cp_cost' [hidden]="true"></eg-grid-column>
249 <eg-grid-column i18n-label label="Status Is Holdable" path='cs_holdable' datatype="bool" [hidden]="true"></eg-grid-column>
250 <eg-grid-column i18n-label label="Status Is OPAC Visible" path='cs_opac_visible' datatype="bool" [hidden]="true"></eg-grid-column>
251 <eg-grid-column i18n-label label="Status Is Item-Active" path='cs_copy_active' datatype="bool" [hidden]="true"></eg-grid-column>
252 <eg-grid-column i18n-label label="Status Is Deleted" path='cs_restrict_copy_delete' datatype="bool" [hidden]="true"></eg-grid-column>
253 <eg-grid-column i18n-label label="Status Is Available" path='cs_is_available' datatype="bool" [hidden]="true"></eg-grid-column>
254 <eg-grid-column i18n-label label="Issuance label" path='issuance_label' [hidden]="true"></eg-grid-column>
255 <eg-grid-column i18n-label label="Call Number ID" path='cn_id' [hidden]="true"></eg-grid-column>
256 <eg-grid-column i18n-label label="CN label" path='cn_label' [hidden]="true"></eg-grid-column>
257 <eg-grid-column i18n-label label="CN label Class" path='cn_label_class' [hidden]="true"></eg-grid-column>
258 <eg-grid-column i18n-label label="CN Sort Key" path='cn_label_sortkey' [hidden]="true"></eg-grid-column>
259 <eg-grid-column i18n-label label="Part ID" path='p_id' [hidden]="true"></eg-grid-column>
260 <eg-grid-column i18n-label label="Part label" path='p_label' [hidden]="true"></eg-grid-column>
261 <eg-grid-column i18n-label label="Part Sort Key" path='p_label_sortkey' [hidden]="true"></eg-grid-column>
262 <eg-grid-column i18n-label label="Part Is Deleted" path='p_deleted' datatype="bool" [hidden]="true"></eg-grid-column>
263 <eg-grid-column i18n-label label="CN Full label" path='cn_full_label' [hidden]="true"></eg-grid-column>
264 <eg-grid-column i18n-label label="Record ID" path='record_id' [hidden]="true"></eg-grid-column>
265 <eg-grid-column i18n-label label="Item Location ID" path='acpl_id' [hidden]="true"></eg-grid-column>
266 <eg-grid-column i18n-label label="Item Location" path='acpl_name' [hidden]="true"></eg-grid-column>
267 <eg-grid-column i18n-label label="Item Location Holdable" path='acpl_holdable' datatype="bool" [hidden]="true"></eg-grid-column>
268 <eg-grid-column i18n-label label="Item Location Hold-Verify" path='acpl_hold_verify' datatype="bool" [hidden]="true"></eg-grid-column>
269 <eg-grid-column i18n-label label="Item Location OPAC Visible" path='acpl_opac_visible' datatype="bool" [hidden]="true"></eg-grid-column>
270 <eg-grid-column i18n-label label="Item Location Can Circulate" path='acpl_circulate' datatype="bool" [hidden]="true"></eg-grid-column>
271 <eg-grid-column i18n-label label="Item Location Prefix" path='acpl_label_prefix' [hidden]="true"></eg-grid-column>
272 <eg-grid-column i18n-label label="Item Location Suffix" path='acpl_label_suffix' [hidden]="true"></eg-grid-column>
273 <eg-grid-column i18n-label label="Item Location Checkin Alert" path='acpl_checkin_alert' datatype="bool" [hidden]="true"></eg-grid-column>
274 <eg-grid-column i18n-label label="Item Location Is Deleted" path='acpl_deleted' datatype="bool" [hidden]="true"></eg-grid-column>
275 <eg-grid-column i18n-label label="Item Location URL" path='acpl_url' [hidden]="true"></eg-grid-column>
276 <eg-grid-column i18n-label label="Item Location Order" path='copy_location_order_position' [hidden]="true"></eg-grid-column>
277 <eg-grid-column i18n-label label="Default Estimated Wait Time" path='default_estimated_wait' [hidden]="true"></eg-grid-column>
278 <eg-grid-column i18n-label label="Minimum Estimated Wait Time" path='min_estimated_wait' [hidden]="true"></eg-grid-column>
279 <eg-grid-column i18n-label label="Peer Hold Count" path='other_holds' [hidden]="true"></eg-grid-column>
280 <eg-grid-column i18n-label label="Total Wait Time" path='total_wait_time' [hidden]="true"></eg-grid-column>
281 <eg-grid-column i18n-label label="Notify Count" path='notification_count' [hidden]="true"></eg-grid-column>
282 <eg-grid-column i18n-label label="Last Notify Time" path='last_notification_time' datatype="timestamp" [datePlusTime]="true" [hidden]="true"></eg-grid-column>