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 (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-replace-barcode-dialog #replaceBarcode></eg-replace-barcode-dialog>
51 <eg-delete-holding-dialog #deleteHolding></eg-delete-holding-dialog>
52 <eg-bucket-dialog #bucketDialog></eg-bucket-dialog>
53 <eg-conjoined-items-dialog #conjoinedDialog></eg-conjoined-items-dialog>
54 <eg-make-bookable-dialog #makeBookableDialog></eg-make-bookable-dialog>
55 <eg-transfer-items #transferItems></eg-transfer-items>
56 <eg-transfer-holdings #transferHoldings></eg-transfer-holdings>
57 <eg-alert-dialog #transferAlert
58 i18n-dialogTitle i18n-dialogBody
59 dialogTitle="No Target Selected"
60 dialogBody="Please select a suitable transfer target"></eg-alert-dialog>
62 <!-- holdings grid -->
63 <div class='eg-copies w-100 mt-3'>
64 <eg-grid #holdingsGrid [dataSource]="gridDataSource"
65 (onRowActivate)="onRowActivate($event)" [disablePaging]="true"
66 [rowClassCallback]="rowClassCallback" [cellTextGenerator]="cellTextGenerator"
67 [sortable]="false" persistKey="cat.holdings">
69 <!-- checkboxes / filters -->
71 <eg-grid-toolbar-checkbox i18n-label label="Show Call Numbers"
72 #callNumsCheckbox (onChange)="toggleShowCallNums($event)">
73 </eg-grid-toolbar-checkbox>
74 <eg-grid-toolbar-checkbox i18n-label label="Show Copies"
75 #copiesCheckbox (onChange)="toggleShowCopies($event)">
76 </eg-grid-toolbar-checkbox>
77 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Call Numbers"
78 #emptyCallNumsCheckbox (onChange)="toggleShowEmptyCallNums($event)">
79 </eg-grid-toolbar-checkbox>
80 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Libs"
81 #emptyLibsCheckbox (onChange)="toggleShowEmptyLibs($event)">
82 </eg-grid-toolbar-checkbox>
86 <!-- row actions : Ungrouped -->
88 <eg-grid-toolbar-action
89 i18n-label label="Print Labels" (onClick)="openItemPrintLabels($event)">
90 </eg-grid-toolbar-action>
92 <eg-grid-toolbar-action
93 i18n-label label="Request Items" (onClick)="requestItems($event)">
94 </eg-grid-toolbar-action>
96 <eg-grid-toolbar-action
97 i18n-label label="Link as Conjoined to Marked Bib Record"
98 (onClick)="openConjoinedDialog($event)">
99 </eg-grid-toolbar-action>
101 <!-- row actions : Add -->
103 <eg-grid-toolbar-action
104 i18n-group group="Add" i18n-label label="Add Call Numbers"
105 (onClick)="openHoldingAdd($event, true, false)">
106 </eg-grid-toolbar-action>
108 <eg-grid-toolbar-action
109 i18n-group group="Add" i18n-label label="Add Items"
110 (onClick)="openHoldingAdd($event, false, true)">
111 </eg-grid-toolbar-action>
113 <eg-grid-toolbar-action
114 i18n-group group="Add" i18n-label label="Add Call Numbers and Items"
115 (onClick)="openHoldingAdd($event, true, true)">
116 </eg-grid-toolbar-action>
118 <eg-grid-toolbar-action
119 i18n-group group="Add" i18n-label label="Add Item Alerts"
120 (onClick)="openItemNotes($event, 'create')">
121 </eg-grid-toolbar-action>
123 <eg-grid-toolbar-action
124 i18n-group group="Add" i18n-label label="Add Items To Bucket"
125 (onClick)="openBucketDialog($event)">
126 </eg-grid-toolbar-action>
128 <!-- row actions: Booking -->
130 <eg-grid-toolbar-action
131 i18n-group group="Booking" i18n-label label="Book Item Now"
132 (onClick)="bookItems($event)">
133 </eg-grid-toolbar-action>
135 <eg-grid-toolbar-action
136 i18n-group group="Booking" i18n-label label="Make Items Bookable"
137 (onClick)="makeBookable($event)">
138 </eg-grid-toolbar-action>
140 <eg-grid-toolbar-action
141 i18n-group group="Booking" i18n-label label="Manage Reservations"
142 (onClick)="manageReservations($event)">
143 </eg-grid-toolbar-action>
145 <!-- row actions: Edit -->
147 <eg-grid-toolbar-action
148 i18n-group group="Edit" i18n-label label="Edit Call Numbers"
149 (onClick)="openHoldingEdit($event, false, true)">
150 </eg-grid-toolbar-action>
152 <eg-grid-toolbar-action
153 i18n-group group="Edit" i18n-label label="Edit Call Numbers And Items"
154 (onClick)="openHoldingEdit($event, false, false)">
155 </eg-grid-toolbar-action>
157 <eg-grid-toolbar-action
158 i18n-group group="Edit" i18n-label label="Edit Items"
159 (onClick)="openHoldingEdit($event, true, false)">
160 </eg-grid-toolbar-action>
162 <eg-grid-toolbar-action
163 i18n-group group="Edit" i18n-label label="Edit Item Alerts"
164 (onClick)="openItemNotes($event, 'manage')">
165 </eg-grid-toolbar-action>
167 <eg-grid-toolbar-action
168 i18n-group group="Edit" i18n-label label="Replace Barcodes"
169 (onClick)="openReplaceBarcodeDialog($event)">
170 </eg-grid-toolbar-action>
172 <!-- row actions: Delete -->
174 <eg-grid-toolbar-action
175 i18n-group group="Delete" i18n-label label="Delete Empty Call Numbers"
176 (onClick)="deleteHoldings($event, 'callNums')">
177 </eg-grid-toolbar-action>
179 <eg-grid-toolbar-action
180 i18n-group group="Delete" i18n-label label="Delete Items"
181 (onClick)="deleteHoldings($event, 'copies')">
182 </eg-grid-toolbar-action>
184 <eg-grid-toolbar-action
185 i18n-group group="Delete" i18n-label label="Delete Call Numbers and Items"
186 (onClick)="deleteHoldings($event, 'both')">
187 </eg-grid-toolbar-action>
189 <!-- row actions : Show -->
191 <eg-grid-toolbar-action
192 i18n-group group="Show" i18n-label label="Show Item Status (list)"
193 (onClick)="openItemStatusList($event)"></eg-grid-toolbar-action>
195 <eg-grid-toolbar-action
196 i18n-group group="Show" i18n-label label="Show Item Status (detail)"
197 (onClick)="openItemStatus($event)"></eg-grid-toolbar-action>
199 <eg-grid-toolbar-action
200 i18n-group group="Show" i18n-label label="Show Item Holds"
201 (onClick)="openItemHolds($event)"></eg-grid-toolbar-action>
203 <eg-grid-toolbar-action
204 i18n-group group="Show" i18n-label label="Show Triggered Events"
205 (onClick)="openItemTriggeredEvents($event)"></eg-grid-toolbar-action>
207 <!-- row actions : Mark -->
209 <eg-grid-toolbar-action
210 group="Mark" i18n-group i18n-label label="Mark Item Damaged"
211 (onClick)="showMarkDamagedDialog($event)"></eg-grid-toolbar-action>
213 <eg-grid-toolbar-action
214 i18n-group group="Mark" i18n-label label="Mark Item Missing"
215 (onClick)="showMarkMissingDialog($event)">
216 </eg-grid-toolbar-action>
218 <eg-grid-toolbar-action
219 i18n-group group="Mark"
220 i18n-label label="Mark Library/Call Number as Transfer Destination"
221 (onClick)="markLibCnForTransfer($event)">
222 </eg-grid-toolbar-action>
224 <eg-grid-toolbar-action
225 i18n-group group="Transfer"
226 i18n-label label="Transfer Items to Marked Destination"
227 (onClick)="transferSelectedItems($event)">
228 </eg-grid-toolbar-action>
230 <eg-grid-toolbar-action
231 i18n-group group="Transfer"
232 i18n-label label="Transfer Holdings to Marked Destination"
233 (onClick)="transferSelectedHoldings($event)">
234 </eg-grid-toolbar-action>
237 <!-- NOTE column names were added to match the names from the AngJS grid
238 so grid settings would propagate -->
240 <eg-grid-column path="index" [hidden]="true" [index]="true">
242 <eg-grid-column name="id" path="copy.id" [hidden]="true" label="Item ID" i18n-label>
244 <eg-grid-column path="callNum.id" [hidden]="true" label="Call Number ID" i18n-label>
246 <eg-grid-column name="owner_label" [flex]="4"
247 [cellTemplate]="locationTemplate" [cellContext]="gridTemplateContext"
248 label="Location/Barcode" [disableTooltip]="true" i18n-label>
250 <eg-grid-column path="callNumCount" datatype="number" label="Call Numbers" i18n-label>
252 <eg-grid-column path="copyCount" datatype="number" label="Copies" i18n-label>
254 <eg-grid-column path="callNum._label" name="call_number.label"
255 label="Call Number" i18n-label>
257 <eg-grid-column path="copy.barcode" name="barcode" label="Barcode" i18n-label>
259 <eg-grid-column i18n-label label="Circ Library" path="copy.circ_lib"
260 name="circ_lib.name" datatype="org_unit"></eg-grid-column>
261 <eg-grid-column i18n-label label="Owning Library" path="callNum.owning_lib"
262 datatype="org_unit"></eg-grid-column>
263 <eg-grid-column i18n-label label="Due Date" path="circ.due_date"
264 datatype="timestamp"></eg-grid-column>
265 <eg-grid-column i18n-label label="Shelving Location"
266 path="copy.location.name" name="location.name">
268 <eg-grid-column i18n-label label="Circulation Modifier"
269 path="copy.circ_modifier" name="circ_modifier">
271 <eg-grid-column i18n-label label="Item Number" path="copy.copy_number"
272 name="copy_number" [hidden]="true">
275 <eg-grid-column i18n-label label="Status"
276 path="copy.status.name" name="status_name">
278 <eg-grid-column i18n-label label="Call Number Prefix"
279 path="callNum.prefix.label" name="call_number.prefix.label" [hidden]="true">
281 <eg-grid-column i18n-label label="Call Number Suffix"
282 path="callNum.suffix.label" name="call_number.suffix.label" [hidden]="true">
284 <eg-grid-column i18n-label label="Active/Create Date"
285 path="copy.active_date" datatype="timestamp">
287 <eg-grid-column i18n-label label="Age Hold Protection"
288 path="copy.age_protect.name" name="age_protect.name"></eg-grid-column>
289 <eg-grid-column i18n-label label="Item Price"
290 path="copy.price" name="price" [hidden]="true"></eg-grid-column>
292 <eg-grid-column i18n-label label="Circulate" path="copy.circulate"
293 name="circulate" datatype="bool" [hidden]="true"></eg-grid-column>
294 <eg-grid-column i18n-label label="Deposit" path="copy.deposit"
295 name="deposit" datatype="bool" [hidden]="true"></eg-grid-column>
296 <eg-grid-column i18n-label label="Deposit Amount" path="copy.deposit_amount"
297 name="deposit_amount" datatype="money" [hidden]="true"></eg-grid-column>
298 <eg-grid-column i18n-label label="Holdable?" name="holdable"
299 [cellTemplate]="holdableTemplate" [cellContext]="gridTemplateContext">
301 <eg-grid-column i18n-label label="Reference?" path="copy.ref"
302 name="ref" datatype="bool" [hidden]="true"></eg-grid-column>
303 <eg-grid-column i18n-label label="Last Inventory Date"
304 path="copy.latest_inventory.inventory_date"
305 name="latest_inventory.inventory_date" datatype="timestamp" [hidden]="true">
307 <eg-grid-column i18n-label label="Last Inventory Workstation"
308 path="copy.latest_inventory.inventory_workstation.name"
309 name="latest_inventory.inventory_workstation.name" [hidden]="true">