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" (onChange)="contextOrgChanged($event)">
17 <!-- Location / Barcode cell template -->
19 <ng-template #locationTemplate let-row="row" let-userContext="userContext">
20 <!-- pl-* is doubled for added impact -->
21 <div class="pl-{{row.locationDepth}}">
22 <span class="pl-{{row.locationDepth}}">
23 <a class="label-with-material-icon" (click)="userContext.toggleExpandRow(row)">
24 <!-- leave the icons in place for all node types, but make them
25 invisible when they are not needed. -->
26 <span *ngIf="row.treeNode.expanded"
27 [ngClass]="{invisible: row.copy || row.treeNode.children.length == 0}"
28 class="material-icons p-0 m-0">keyboard_arrow_down</span>
29 <span *ngIf="!row.treeNode.expanded"
30 [ngClass]="{invisible: row.copy || row.treeNode.children.length == 0}"
31 class="material-icons p-0 m-0">keyboard_arrow_right</span>
32 <span>{{row.locationLabel}}</span>
38 <!-- Holdable true/false display -->
40 <ng-template #holdableTemplate let-row="row" let-userContext="userContext">
41 <ng-container *ngIf="row.copy">
42 <eg-bool [value]="userContext.copyIsHoldable(row.copy)">
47 <eg-mark-damaged-dialog #markDamagedDialog></eg-mark-damaged-dialog>
48 <eg-mark-missing-dialog #markMissingDialog></eg-mark-missing-dialog>
49 <eg-copy-alerts-dialog #copyAlertsDialog></eg-copy-alerts-dialog>
50 <eg-copy-tags-dialog #copyTagsDialog></eg-copy-tags-dialog>
51 <eg-replace-barcode-dialog #replaceBarcode></eg-replace-barcode-dialog>
52 <eg-delete-holding-dialog #deleteHolding></eg-delete-holding-dialog>
53 <eg-bucket-dialog #bucketDialog></eg-bucket-dialog>
54 <eg-conjoined-items-dialog #conjoinedDialog></eg-conjoined-items-dialog>
55 <eg-make-bookable-dialog #makeBookableDialog></eg-make-bookable-dialog>
56 <eg-transfer-items #transferItems></eg-transfer-items>
57 <eg-transfer-holdings #transferHoldings></eg-transfer-holdings>
58 <eg-alert-dialog #transferAlert
59 i18n-dialogTitle i18n-dialogBody
60 dialogTitle="No Target Selected"
61 dialogBody="Please select a suitable transfer target"></eg-alert-dialog>
63 <!-- holdings grid -->
64 <div class='eg-copies w-100 mt-3'>
65 <eg-grid #holdingsGrid [dataSource]="gridDataSource"
66 (onRowActivate)="onRowActivate($event)" [disablePaging]="true"
67 [rowClassCallback]="rowClassCallback" [cellTextGenerator]="cellTextGenerator"
68 [sortable]="false" persistKey="cat.holdings">
70 <!-- checkboxes / filters -->
72 <eg-grid-toolbar-checkbox i18n-label label="Show Call Numbers"
73 #callNumsCheckbox (onChange)="toggleShowCallNums($event)">
74 </eg-grid-toolbar-checkbox>
75 <eg-grid-toolbar-checkbox i18n-label label="Show Copies"
76 #copiesCheckbox (onChange)="toggleShowCopies($event)">
77 </eg-grid-toolbar-checkbox>
78 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Call Numbers"
79 #emptyCallNumsCheckbox (onChange)="toggleShowEmptyCallNums($event)">
80 </eg-grid-toolbar-checkbox>
81 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Libs"
82 #emptyLibsCheckbox (onChange)="toggleShowEmptyLibs($event)">
83 </eg-grid-toolbar-checkbox>
87 <!-- row actions : Ungrouped -->
89 <eg-grid-toolbar-action
90 i18n-label label="Print Labels" (onClick)="openItemPrintLabels($event)">
91 </eg-grid-toolbar-action>
93 <eg-grid-toolbar-action
94 i18n-label label="Request Items" (onClick)="requestItems($event)">
95 </eg-grid-toolbar-action>
97 <eg-grid-toolbar-action
98 i18n-label label="Link as Conjoined to Marked Bib Record"
99 (onClick)="openConjoinedDialog($event)">
100 </eg-grid-toolbar-action>
102 <!-- row actions : Add -->
104 <eg-grid-toolbar-action
105 i18n-group group="Add" i18n-label label="Add Call Numbers"
106 (onClick)="openHoldingAdd($event, true, false)">
107 </eg-grid-toolbar-action>
109 <eg-grid-toolbar-action
110 i18n-group group="Add" i18n-label label="Add Items"
111 (onClick)="openHoldingAdd($event, false, true)">
112 </eg-grid-toolbar-action>
114 <eg-grid-toolbar-action
115 i18n-group group="Add" i18n-label label="Add Call Numbers and Items"
116 (onClick)="openHoldingAdd($event, true, true)">
117 </eg-grid-toolbar-action>
119 <eg-grid-toolbar-action
120 i18n-group group="Add" i18n-label label="Add Item Alerts"
121 (onClick)="openItemNotes($event, 'create')">
122 </eg-grid-toolbar-action>
124 <eg-grid-toolbar-action
125 i18n-group group="Add" i18n-label label="Add/Manage Item Tags"
126 (onClick)="openItemTags($event)">
127 </eg-grid-toolbar-action>
129 <eg-grid-toolbar-action
130 i18n-group group="Add" i18n-label label="Add Items To Bucket"
131 (onClick)="openBucketDialog($event)">
132 </eg-grid-toolbar-action>
134 <!-- row actions: Booking -->
136 <eg-grid-toolbar-action
137 i18n-group group="Booking" i18n-label label="Book Item Now"
138 (onClick)="bookItems($event)">
139 </eg-grid-toolbar-action>
141 <eg-grid-toolbar-action
142 i18n-group group="Booking" i18n-label label="Make Items Bookable"
143 (onClick)="makeBookable($event)">
144 </eg-grid-toolbar-action>
146 <eg-grid-toolbar-action
147 i18n-group group="Booking" i18n-label label="Manage Reservations"
148 (onClick)="manageReservations($event)">
149 </eg-grid-toolbar-action>
151 <!-- row actions: Edit -->
153 <eg-grid-toolbar-action
154 i18n-group group="Edit" i18n-label label="Edit Call Numbers"
155 (onClick)="openHoldingEdit($event, false, true)">
156 </eg-grid-toolbar-action>
158 <eg-grid-toolbar-action
159 i18n-group group="Edit" i18n-label label="Edit Call Numbers And Items"
160 (onClick)="openHoldingEdit($event, false, false)">
161 </eg-grid-toolbar-action>
163 <eg-grid-toolbar-action
164 i18n-group group="Edit" i18n-label label="Edit Items"
165 (onClick)="openHoldingEdit($event, true, false)">
166 </eg-grid-toolbar-action>
168 <eg-grid-toolbar-action
169 i18n-group group="Edit" i18n-label label="Edit Item Alerts"
170 (onClick)="openItemNotes($event, 'manage')">
171 </eg-grid-toolbar-action>
173 <eg-grid-toolbar-action
174 i18n-group group="Edit" i18n-label label="Replace Barcodes"
175 (onClick)="openReplaceBarcodeDialog($event)">
176 </eg-grid-toolbar-action>
178 <!-- row actions: Delete -->
180 <eg-grid-toolbar-action
181 i18n-group group="Delete" i18n-label label="Delete Empty Call Numbers"
182 (onClick)="deleteHoldings($event, 'callNums')">
183 </eg-grid-toolbar-action>
185 <eg-grid-toolbar-action
186 i18n-group group="Delete" i18n-label label="Delete Items"
187 (onClick)="deleteHoldings($event, 'copies')">
188 </eg-grid-toolbar-action>
190 <eg-grid-toolbar-action
191 i18n-group group="Delete" i18n-label label="Delete Call Numbers and Items"
192 (onClick)="deleteHoldings($event, 'both')">
193 </eg-grid-toolbar-action>
195 <!-- row actions : Show -->
197 <eg-grid-toolbar-action
198 i18n-group group="Show" i18n-label label="Show Item Status (list)"
199 (onClick)="openItemStatusList($event)"></eg-grid-toolbar-action>
201 <eg-grid-toolbar-action
202 i18n-group group="Show" i18n-label label="Show Item Status (detail)"
203 (onClick)="openItemStatus($event)"></eg-grid-toolbar-action>
205 <eg-grid-toolbar-action
206 i18n-group group="Show" i18n-label label="Show Item Holds"
207 (onClick)="openItemHolds($event)"></eg-grid-toolbar-action>
209 <eg-grid-toolbar-action
210 i18n-group group="Show" i18n-label label="Show Triggered Events"
211 (onClick)="openItemTriggeredEvents($event)"></eg-grid-toolbar-action>
213 <!-- row actions : Mark -->
215 <eg-grid-toolbar-action
216 group="Mark" i18n-group i18n-label label="Mark Item Damaged"
217 (onClick)="showMarkDamagedDialog($event)"></eg-grid-toolbar-action>
219 <eg-grid-toolbar-action
220 i18n-group group="Mark" i18n-label label="Mark Item Missing"
221 (onClick)="showMarkMissingDialog($event)">
222 </eg-grid-toolbar-action>
224 <eg-grid-toolbar-action
225 i18n-group group="Mark"
226 i18n-label label="Mark Library/Call Number as Transfer Destination"
227 (onClick)="markLibCnForTransfer($event)">
228 </eg-grid-toolbar-action>
230 <eg-grid-toolbar-action
231 i18n-group group="Transfer"
232 i18n-label label="Transfer Items to Marked Destination"
233 (onClick)="transferSelectedItems($event)">
234 </eg-grid-toolbar-action>
236 <eg-grid-toolbar-action
237 i18n-group group="Transfer"
238 i18n-label label="Transfer Holdings to Marked Destination"
239 (onClick)="transferSelectedHoldings($event)">
240 </eg-grid-toolbar-action>
243 <!-- NOTE column names were added to match the names from the AngJS grid
244 so grid settings would propagate -->
246 <eg-grid-column path="index" [hidden]="true" [index]="true">
248 <eg-grid-column name="id" path="copy.id" [hidden]="true" label="Item ID" i18n-label>
250 <eg-grid-column path="callNum.id" [hidden]="true" label="Call Number ID" i18n-label>
252 <eg-grid-column name="owner_label" [flex]="4"
253 [cellTemplate]="locationTemplate" [cellContext]="gridTemplateContext"
254 label="Location/Barcode" [disableTooltip]="true" i18n-label>
256 <eg-grid-column path="callNumCount" datatype="number" label="Call Numbers" i18n-label>
258 <eg-grid-column path="copyCount" datatype="number" label="Copies" i18n-label>
260 <eg-grid-column path="callNum._label" name="call_number.label"
261 label="Call Number" i18n-label>
263 <eg-grid-column path="copy.barcode" name="barcode" label="Barcode" i18n-label>
265 <eg-grid-column i18n-label label="Circ Library" path="copy.circ_lib"
266 name="circ_lib.name" datatype="org_unit"></eg-grid-column>
267 <eg-grid-column i18n-label label="Owning Library" path="callNum.owning_lib"
268 datatype="org_unit"></eg-grid-column>
269 <eg-grid-column i18n-label label="Due Date" path="circ.due_date"
270 datatype="timestamp"></eg-grid-column>
271 <eg-grid-column i18n-label label="Shelving Location"
272 path="copy.location.name" name="location.name">
274 <eg-grid-column i18n-label label="Circulation Modifier"
275 path="copy.circ_modifier" name="circ_modifier">
277 <eg-grid-column i18n-label label="Item Number" path="copy.copy_number"
278 name="copy_number" [hidden]="true">
281 <eg-grid-column i18n-label label="Status"
282 path="copy.status.name" name="status_name">
284 <eg-grid-column i18n-label label="Call Number Prefix"
285 path="callNum.prefix.label" name="call_number.prefix.label" [hidden]="true">
287 <eg-grid-column i18n-label label="Call Number Suffix"
288 path="callNum.suffix.label" name="call_number.suffix.label" [hidden]="true">
290 <eg-grid-column i18n-label label="Parts" path="copy._monograph_parts"
291 name="monograph_parts" [hidden]="true">
293 <eg-grid-column i18n-label label="Notes" path="copy.notes.length"
294 name="note_count" [hidden]="true">
296 <eg-grid-column i18n-label label="Tags" path="copy.tags.length"
297 name="tag_count" [hidden]="true">
299 <eg-grid-column i18n-label label="Alerts" path="copy.copy_alerts.length"
300 name="alert_count" [hidden]="true">
302 <eg-grid-column i18n-label label="Circulate As MARC Type"
303 path="copy.circ_as_type" [hidden]="true">
305 <eg-grid-column i18n-label label="Active/Create Date"
306 path="copy.active_date" datatype="timestamp">
308 <eg-grid-column i18n-label label="Age Hold Protection"
309 path="copy.age_protect.name" name="age_protect.name"></eg-grid-column>
310 <eg-grid-column i18n-label label="Item Price"
311 path="copy.price" name="price" [hidden]="true"></eg-grid-column>
313 <eg-grid-column i18n-label label="Circulate" path="copy.circulate"
314 name="circulate" datatype="bool" [hidden]="true"></eg-grid-column>
315 <eg-grid-column i18n-label label="Deposit" path="copy.deposit"
316 name="deposit" datatype="bool" [hidden]="true"></eg-grid-column>
317 <eg-grid-column i18n-label label="Deposit Amount" path="copy.deposit_amount"
318 name="deposit_amount" datatype="money" [hidden]="true"></eg-grid-column>
319 <eg-grid-column i18n-label label="Holdable?" name="holdable"
320 [cellTemplate]="holdableTemplate" [cellContext]="gridTemplateContext">
322 <eg-grid-column i18n-label label="Reference?" path="copy.ref"
323 name="ref" datatype="bool" [hidden]="true"></eg-grid-column>
324 <eg-grid-column i18n-label label="Last Inventory Date"
325 path="copy.latest_inventory.inventory_date"
326 name="latest_inventory.inventory_date" datatype="timestamp" [hidden]="true">
328 <eg-grid-column i18n-label label="Last Inventory Workstation"
329 path="copy.latest_inventory.inventory_workstation.name"
330 name="latest_inventory.inventory_workstation.name" [hidden]="true">