2 <!-- org unit selector -->
6 <div class="input-group">
7 <div class="input-group-prepend">
8 <div class="input-group-text" i18n>Holdings Maintenance</div>
10 <eg-org-select [initialOrg]="contextOrg"
11 persistKey="catalog.holdings"
12 (onChange)="contextOrgChanged($event)"
13 [orgClassCallback]="orgClassCallback">
19 <!-- Location / Barcode cell template -->
21 <ng-template #locationTemplate let-row="row" let-userContext="userContext">
22 <!-- pl-* is doubled for added impact -->
23 <div class="pl-{{row.locationDepth}}">
24 <span class="pl-{{row.locationDepth}}">
25 <a class="label-with-material-icon" (click)="userContext.toggleExpandRow(row)">
26 <!-- leave the icons in place for all node types, but make them
27 invisible when they are not needed. -->
28 <span *ngIf="row.treeNode.expanded"
29 [ngClass]="{invisible: row.copy || row.treeNode.children.length === 0}"
30 class="material-icons p-0 m-0">keyboard_arrow_down</span>
31 <span *ngIf="!row.treeNode.expanded"
32 [ngClass]="{invisible: row.copy || row.treeNode.children.length === 0}"
33 class="material-icons p-0 m-0">keyboard_arrow_right</span>
34 <span>{{row.locationLabel}}</span>
40 <!-- Holdable true/false display -->
42 <ng-template #holdableTemplate let-row="row" let-userContext="userContext">
43 <ng-container *ngIf="row.copy">
44 <eg-bool [value]="userContext.copyIsHoldable(row.copy)">
49 <eg-mark-damaged-dialog #markDamagedDialog [handleCheckin]="true"></eg-mark-damaged-dialog>
50 <eg-mark-missing-dialog #markMissingDialog></eg-mark-missing-dialog>
51 <eg-copy-alerts-dialog #copyAlertsDialog></eg-copy-alerts-dialog>
52 <eg-copy-tags-dialog #copyTagsDialog></eg-copy-tags-dialog>
53 <eg-copy-notes-dialog #copyNotesDialog></eg-copy-notes-dialog>
54 <eg-replace-barcode-dialog #replaceBarcode></eg-replace-barcode-dialog>
55 <eg-delete-holding-dialog #deleteHolding></eg-delete-holding-dialog>
56 <eg-bucket-dialog #bucketDialog></eg-bucket-dialog>
57 <eg-conjoined-items-dialog #conjoinedDialog></eg-conjoined-items-dialog>
58 <eg-make-bookable-dialog #makeBookableDialog></eg-make-bookable-dialog>
59 <eg-transfer-items #transferItems></eg-transfer-items>
60 <eg-transfer-holdings #transferHoldings></eg-transfer-holdings>
61 <eg-alert-dialog #transferAlert
62 i18n-dialogTitle i18n-dialogBody
63 dialogTitle="No Target Selected"
64 dialogBody="Please select a suitable transfer target"></eg-alert-dialog>
66 <!-- holdings grid -->
67 <div class='eg-copies w-100 mt-3'>
68 <eg-grid #holdingsGrid [dataSource]="gridDataSource"
69 (onRowActivate)="onRowActivate($event)" [disablePaging]="true"
70 [rowClassCallback]="rowClassCallback" [cellTextGenerator]="cellTextGenerator"
71 [sortable]="false" persistKey="cat.holdings">
73 <!-- checkboxes / filters -->
75 <eg-grid-toolbar-checkbox i18n-label label="Show Call Numbers"
76 #callNumsCheckbox (onChange)="toggleShowCallNums($event)">
77 </eg-grid-toolbar-checkbox>
78 <eg-grid-toolbar-checkbox i18n-label label="Show Copies"
79 #copiesCheckbox (onChange)="toggleShowCopies($event)">
80 </eg-grid-toolbar-checkbox>
81 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Call Numbers"
82 #emptyCallNumsCheckbox (onChange)="toggleShowEmptyCallNums($event)">
83 </eg-grid-toolbar-checkbox>
84 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Libs"
85 #emptyLibsCheckbox (onChange)="toggleShowEmptyLibs($event)">
86 </eg-grid-toolbar-checkbox>
90 <!-- row actions : Ungrouped -->
92 <eg-grid-toolbar-action
93 i18n-label label="Print Labels" (onClick)="openItemPrintLabels($event)">
94 </eg-grid-toolbar-action>
96 <eg-grid-toolbar-action
97 i18n-label label="Request Items" (onClick)="requestItems($event)">
98 </eg-grid-toolbar-action>
100 <eg-grid-toolbar-action
101 i18n-label label="Link as Conjoined to Marked Bib Record"
102 (onClick)="openConjoinedDialog($event)">
103 </eg-grid-toolbar-action>
105 <!-- row actions : Add -->
107 <eg-grid-toolbar-action
108 i18n-group group="Add" i18n-label label="Add Call Numbers"
109 (onClick)="openHoldingAdd($event, true, false)">
110 </eg-grid-toolbar-action>
112 <eg-grid-toolbar-action
113 i18n-group group="Add" i18n-label label="Add Items"
114 (onClick)="openHoldingAdd($event, false, true)">
115 </eg-grid-toolbar-action>
117 <eg-grid-toolbar-action
118 i18n-group group="Add" i18n-label label="Add Call Numbers and Items"
119 (onClick)="openHoldingAdd($event, true, true)">
120 </eg-grid-toolbar-action>
122 <eg-grid-toolbar-action
123 i18n-group group="Add" i18n-label label="Add/Manage Item Alerts"
124 (onClick)="openItemAlerts($event)">
125 </eg-grid-toolbar-action>
127 <eg-grid-toolbar-action
128 i18n-group group="Add" i18n-label label="Add/Manage Item Tags"
129 (onClick)="openItemTags($event)">
130 </eg-grid-toolbar-action>
132 <eg-grid-toolbar-action
133 i18n-group group="Add" i18n-label label="Add/Manage Item Notes"
134 (onClick)="openItemNotes($event)">
135 </eg-grid-toolbar-action>
137 <eg-grid-toolbar-action
138 i18n-group group="Add" i18n-label label="Add Items To Bucket"
139 (onClick)="openBucketDialog($event)">
140 </eg-grid-toolbar-action>
142 <!-- row actions: Booking -->
144 <eg-grid-toolbar-action
145 i18n-group group="Booking" i18n-label label="Book Item Now"
146 (onClick)="bookItems($event)">
147 </eg-grid-toolbar-action>
149 <eg-grid-toolbar-action
150 i18n-group group="Booking" i18n-label label="Make Items Bookable"
151 (onClick)="makeBookable($event)">
152 </eg-grid-toolbar-action>
154 <eg-grid-toolbar-action
155 i18n-group group="Booking" i18n-label label="Manage Reservations"
156 (onClick)="manageReservations($event)">
157 </eg-grid-toolbar-action>
159 <!-- row actions: Edit -->
161 <eg-grid-toolbar-action
162 i18n-group group="Edit" i18n-label label="Edit Call Numbers"
163 (onClick)="openHoldingEdit($event, false, true)">
164 </eg-grid-toolbar-action>
166 <eg-grid-toolbar-action
167 i18n-group group="Edit" i18n-label label="Edit Call Numbers And Items"
168 (onClick)="openHoldingEdit($event, false, false)">
169 </eg-grid-toolbar-action>
171 <eg-grid-toolbar-action
172 i18n-group group="Edit" i18n-label label="Edit Items"
173 (onClick)="openHoldingEdit($event, true, false)">
174 </eg-grid-toolbar-action>
176 <eg-grid-toolbar-action
177 i18n-group group="Edit" i18n-label label="Replace Barcodes"
178 (onClick)="openReplaceBarcodeDialog($event)">
179 </eg-grid-toolbar-action>
181 <!-- row actions: Delete -->
183 <eg-grid-toolbar-action
184 i18n-group group="Delete" i18n-label label="Delete Empty Call Numbers"
185 (onClick)="deleteHoldings($event, 'callNums')">
186 </eg-grid-toolbar-action>
188 <eg-grid-toolbar-action
189 i18n-group group="Delete" i18n-label label="Delete Items"
190 (onClick)="deleteHoldings($event, 'copies')">
191 </eg-grid-toolbar-action>
193 <eg-grid-toolbar-action
194 i18n-group group="Delete" i18n-label label="Delete Call Numbers and Items"
195 (onClick)="deleteHoldings($event, 'both')">
196 </eg-grid-toolbar-action>
198 <!-- row actions : Show -->
200 <eg-grid-toolbar-action
201 i18n-group group="Show" i18n-label label="Show Item Status (list)"
202 (onClick)="openItemStatusList($event)"></eg-grid-toolbar-action>
204 <eg-grid-toolbar-action
205 i18n-group group="Show" i18n-label label="Show Item Status (detail)"
206 (onClick)="openItemStatus($event)"></eg-grid-toolbar-action>
208 <eg-grid-toolbar-action
209 i18n-group group="Show" i18n-label label="Show Item Holds"
210 (onClick)="openItemHolds($event)"></eg-grid-toolbar-action>
212 <eg-grid-toolbar-action
213 i18n-group group="Show" i18n-label label="Show Triggered Events"
214 (onClick)="openItemTriggeredEvents($event)"></eg-grid-toolbar-action>
216 <!-- row actions : Mark -->
218 <eg-grid-toolbar-action
219 group="Mark" i18n-group i18n-label label="Mark Item Damaged"
220 (onClick)="showMarkDamagedDialog($event)"></eg-grid-toolbar-action>
222 <eg-grid-toolbar-action
223 i18n-group group="Mark" i18n-label label="Mark Item Missing"
224 (onClick)="showMarkMissingDialog($event)">
225 </eg-grid-toolbar-action>
227 <eg-grid-toolbar-action
228 i18n-group group="Mark"
229 i18n-label label="Mark Library/Call Number as Transfer Destination"
230 (onClick)="markLibCnForTransfer($event)">
231 </eg-grid-toolbar-action>
233 <eg-grid-toolbar-action
234 i18n-group group="Transfer"
235 i18n-label label="Transfer Items to Marked Destination"
236 (onClick)="transferSelectedItems($event)">
237 </eg-grid-toolbar-action>
239 <eg-grid-toolbar-action
240 i18n-group group="Transfer"
241 i18n-label label="Transfer Holdings to Marked Destination"
242 (onClick)="transferSelectedHoldings($event)">
243 </eg-grid-toolbar-action>
246 <!-- NOTE column names were added to match the names from the AngJS grid
247 so grid settings would propagate -->
249 <eg-grid-column path="index" [hidden]="true" [index]="true">
251 <eg-grid-column name="id" path="copy.id" [hidden]="true" label="Item ID" i18n-label>
253 <eg-grid-column path="callNum.id" [hidden]="true" label="Call Number ID" i18n-label>
255 <eg-grid-column name="owner_label" [flex]="4"
256 [cellTemplate]="locationTemplate" [cellContext]="gridTemplateContext"
257 label="Location/Barcode" [disableTooltip]="true" i18n-label>
259 <eg-grid-column path="callNumCount" datatype="number" label="Call Numbers" i18n-label>
261 <eg-grid-column path="copyCount" datatype="number" label="Copies" i18n-label>
263 <eg-grid-column path="callNum._label" name="call_number.label"
264 label="Call Number" i18n-label>
266 <eg-grid-column path="copy.barcode" name="barcode" label="Barcode" i18n-label>
268 <eg-grid-column i18n-label label="Circ Library" path="copy.circ_lib"
269 name="circ_lib.name" datatype="org_unit"></eg-grid-column>
270 <eg-grid-column i18n-label label="Owning Library" path="callNum.owning_lib"
271 datatype="org_unit"></eg-grid-column>
272 <eg-grid-column i18n-label label="Due Date" path="circ.due_date"
273 datatype="timestamp"></eg-grid-column>
274 <eg-grid-column i18n-label label="Shelving Location"
275 path="copy.location.name" name="location.name">
277 <eg-grid-column i18n-label label="Circulation Modifier"
278 path="copy.circ_modifier" name="circ_modifier">
280 <eg-grid-column i18n-label label="Item Number" path="copy.copy_number"
281 name="copy_number" [hidden]="true">
284 <eg-grid-column i18n-label label="Status"
285 path="copy.status.name" name="status_name">
287 <eg-grid-column i18n-label label="Call Number Prefix"
288 path="callNum.prefix.label" name="call_number.prefix.label" [hidden]="true">
290 <eg-grid-column i18n-label label="Call Number Suffix"
291 path="callNum.suffix.label" name="call_number.suffix.label" [hidden]="true">
293 <eg-grid-column i18n-label label="Parts" path="copy._monograph_parts"
294 name="monograph_parts" [hidden]="true">
296 <eg-grid-column i18n-label label="Notes" path="copy.notes.length"
297 name="note_count" [hidden]="true">
299 <eg-grid-column i18n-label label="Tags" path="copy.tags.length"
300 name="tag_count" [hidden]="true">
302 <eg-grid-column i18n-label label="Alerts" path="copy.copy_alerts.length"
303 name="alert_count" [hidden]="true">
305 <eg-grid-column i18n-label label="Circulate As MARC Type"
306 path="copy.circ_as_type" [hidden]="true">
308 <eg-grid-column i18n-label label="Active Date"
309 path="copy.active_date" datatype="timestamp">
311 <eg-grid-column i18n-label label="Total Circ Count"
312 path="copy.total_circ_count.circ_count">
314 <eg-grid-column i18n-label label="Last Circ Date"
315 path="copy.last_circ.last_circ" datatype="timestamp">
317 <eg-grid-column i18n-label label="Create Date"
318 path="copy.create_date" datatype="timestamp">
320 <eg-grid-column i18n-label label="Age Hold Protection"
321 path="copy.age_protect.name" name="age_protect.name"></eg-grid-column>
322 <eg-grid-column i18n-label label="Item Price"
323 path="copy.price" name="price" [hidden]="true"></eg-grid-column>
325 <eg-grid-column i18n-label label="Circulate" path="copy.circulate"
326 name="circulate" datatype="bool" [hidden]="true"></eg-grid-column>
327 <eg-grid-column i18n-label label="Deposit" path="copy.deposit"
328 name="deposit" datatype="bool" [hidden]="true"></eg-grid-column>
329 <eg-grid-column i18n-label label="Deposit Amount" path="copy.deposit_amount"
330 name="deposit_amount" datatype="money" [hidden]="true"></eg-grid-column>
331 <eg-grid-column i18n-label label="Holdable?" name="holdable"
332 [cellTemplate]="holdableTemplate" [cellContext]="gridTemplateContext">
334 <eg-grid-column i18n-label label="Reference?" path="copy.ref"
335 name="ref" datatype="bool" [hidden]="true"></eg-grid-column>
336 <eg-grid-column i18n-label label="Last Inventory Date"
337 path="copy.latest_inventory.inventory_date"
338 name="latest_inventory.inventory_date" datatype="timestamp" [hidden]="true">
340 <eg-grid-column i18n-label label="Last Inventory Workstation"
341 path="copy.latest_inventory.inventory_workstation.name"
342 name="latest_inventory.inventory_workstation.name" [hidden]="true">
344 <eg-grid-column i18n-label label="OPAC Visible?" path="copy.opac_visible"
345 name="opac_visible" datatype="bool" [hidden]="true">