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">arrow_drop_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">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-volcopy-dialog #deleteVolcopy></eg-delete-volcopy-dialog>
52 <eg-bucket-dialog #bucketDialog></eg-bucket-dialog>
53 <eg-conjoined-items-dialog #conjoinedDialog></eg-conjoined-items-dialog>
55 <!-- holdings grid -->
56 <div class='eg-copies w-100 mt-3'>
57 <eg-grid #holdingsGrid [dataSource]="gridDataSource"
58 (onRowActivate)="onRowActivate($event)" [disablePaging]="true"
59 [rowClassCallback]="rowClassCallback"
60 [sortable]="false" persistKey="cat.holdings">
62 <!-- checkboxes / filters -->
64 <eg-grid-toolbar-checkbox i18n-label label="Show Volumes"
65 #volsCheckbox (onChange)="toggleShowVolumes($event)">
66 </eg-grid-toolbar-checkbox>
67 <eg-grid-toolbar-checkbox i18n-label label="Show Copies"
68 #copiesCheckbox (onChange)="toggleShowCopies($event)">
69 </eg-grid-toolbar-checkbox>
70 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Volumes"
71 #emptyVolsCheckbox (onChange)="toggleShowEmptyVolumes($event)">
72 </eg-grid-toolbar-checkbox>
73 <eg-grid-toolbar-checkbox i18n-label label="Show Empty Libs"
74 #emptyLibsCheckbox (onChange)="toggleShowEmptyLibs($event)">
75 </eg-grid-toolbar-checkbox>
79 <!-- row actions : Ungrouped -->
81 <eg-grid-toolbar-action
82 i18n-label label="Print Labels" (onClick)="openItemPrintLabels($event)">
83 </eg-grid-toolbar-action>
85 <eg-grid-toolbar-action
86 i18n-label label="Request Items" (onClick)="requestItems($event)">
87 </eg-grid-toolbar-action>
89 <eg-grid-toolbar-action
90 i18n-label label="Link as Conjoined to Marked Bib Record"
91 (onClick)="openConjoinedDialog($event)">
92 </eg-grid-toolbar-action>
94 <!-- row actions : Add -->
96 <eg-grid-toolbar-action
97 i18n-group group="Add" i18n-label label="Add Call Numbers"
98 (onClick)="openVolCopyEdit($event, true, false)">
99 </eg-grid-toolbar-action>
101 <eg-grid-toolbar-action
102 i18n-group group="Add" i18n-label label="Add Items"
103 (onClick)="openVolCopyEdit($event, false, true)">
104 </eg-grid-toolbar-action>
106 <eg-grid-toolbar-action
107 i18n-group group="Add" i18n-label label="Add Call Numbers and Items"
108 (onClick)="openVolCopyEdit($event, true, true)">
109 </eg-grid-toolbar-action>
111 <eg-grid-toolbar-action
112 i18n-group group="Add" i18n-label label="Add Item Alerts"
113 (onClick)="openItemNotes($event, 'create')">
114 </eg-grid-toolbar-action>
116 <eg-grid-toolbar-action
117 i18n-group group="Add" i18n-label label="Add Items To Bucket"
118 (onClick)="openBucketDialog($event)">
119 Z</eg-grid-toolbar-action>
121 <!-- row actions: Edit -->
123 <eg-grid-toolbar-action
124 i18n-group group="Edit" i18n-label label="Edit Call Numbers"
125 (onClick)="openVolCopyEdit($event, true, false)">
126 </eg-grid-toolbar-action>
128 <eg-grid-toolbar-action
129 i18n-group group="Edit" i18n-label label="Edit Call Numbers And Items"
130 (onClick)="openVolCopyEdit($event, true, true)">
131 </eg-grid-toolbar-action>
133 <eg-grid-toolbar-action
134 i18n-group group="Edit" i18n-label label="Edit Items"
135 (onClick)="openVolCopyEdit($event, false, true)">
136 </eg-grid-toolbar-action>
138 <eg-grid-toolbar-action
139 i18n-group group="Edit" i18n-label label="Edit Item Alerts"
140 (onClick)="openItemNotes($event, 'manage')">
141 </eg-grid-toolbar-action>
143 <eg-grid-toolbar-action
144 i18n-group group="Edit" i18n-label label="Replace Barcodes"
145 (onClick)="openReplaceBarcodeDialog($event)">
146 </eg-grid-toolbar-action>
148 <!-- row actions: Delete -->
150 <eg-grid-toolbar-action
151 i18n-group group="Delete" i18n-label label="Delete Empty Call Numbers"
152 (onClick)="deleteHoldings($event, 'vols')">
153 </eg-grid-toolbar-action>
155 <eg-grid-toolbar-action
156 i18n-group group="Delete" i18n-label label="Delete Items"
157 (onClick)="deleteHoldings($event, 'copies')">
158 </eg-grid-toolbar-action>
160 <eg-grid-toolbar-action
161 i18n-group group="Delete" i18n-label label="Delete Call Numbers and Items"
162 (onClick)="deleteHoldings($event, 'both')">
163 </eg-grid-toolbar-action>
165 <!-- row actions : Show -->
167 <eg-grid-toolbar-action
168 i18n-group group="Show" i18n-label label="Show Item Status (list)"
169 (onClick)="openItemStatusList($event)"></eg-grid-toolbar-action>
171 <eg-grid-toolbar-action
172 i18n-group group="Show" i18n-label label="Show Item Status (detail)"
173 (onClick)="openItemStatus($event)"></eg-grid-toolbar-action>
175 <eg-grid-toolbar-action
176 i18n-group group="Show" i18n-label label="Show Item Holds"
177 (onClick)="openItemHolds($event)"></eg-grid-toolbar-action>
179 <eg-grid-toolbar-action
180 i18n-group group="Show" i18n-label label="Show Triggered Events"
181 (onClick)="openItemTriggeredEvents($event)"></eg-grid-toolbar-action>
183 <!-- row actions : Mark -->
185 <eg-grid-toolbar-action
186 group="Mark" i18n-group i18n-label label="Mark Item Damaged"
187 (onClick)="showMarkDamagedDialog($event)"></eg-grid-toolbar-action>
189 <eg-grid-toolbar-action
190 i18n-group group="Mark" i18n-label label="Mark Item Missing"
191 (onClick)="showMarkMissingDialog($event)">
192 </eg-grid-toolbar-action>
194 <eg-grid-toolbar-action
195 i18n-group group="Mark"
196 i18n-label label="Mark Library/Call Number as Transfer Destination"
197 (onClick)="markLibCnForTransfer($event)">
198 </eg-grid-toolbar-action>
202 <!-- NOTE column names were added to match the names from the AngJS grid
203 so grid settings would propagate -->
205 <eg-grid-column path="index" [hidden]="true" [index]="true">
207 <eg-grid-column name="id" path="copy.id" [hidden]="true" label="Copy ID" i18n-label>
209 <eg-grid-column path="volume.id" [hidden]="true" label="Volume ID" i18n-label>
211 <eg-grid-column name="owner_label" [flex]="4"
212 [cellTemplate]="locationTemplate" [cellContext]="gridTemplateContext"
213 label="Location/Barcode" [disableTooltip]="true" i18n-label>
215 <eg-grid-column path="volumeCount" datatype="number" label="Volumes" i18n-label>
217 <eg-grid-column path="copyCount" datatype="number" label="Copies" i18n-label>
219 <eg-grid-column path="volume._label" name="call_number.label" label="Call Number" i18n-label>
221 <eg-grid-column path="copy.barcode" name="barcode" label="Barcode" i18n-label>
223 <eg-grid-column i18n-label label="Circ Library" path="copy.circ_lib"
224 name="circ_lib.name" datatype="org_unit"></eg-grid-column>
225 <eg-grid-column i18n-label label="Owning Library" path="volume.owning_lib"
226 datatype="org_unit"></eg-grid-column>
227 <eg-grid-column i18n-label label="Due Date" path="circ.due_date"
228 datatype="timestamp"></eg-grid-column>
229 <eg-grid-column i18n-label label="Shelving Location" path="copy.location.name" name="location.name">
231 <eg-grid-column i18n-label label="Circulation Modifier"
232 path="copy.circ_modifier" name="circ_modifier">
234 <eg-grid-column i18n-label label="Copy Number" path="copy.copy_number" name="copy_number" [hidden]="true">
237 <eg-grid-column i18n-label label="Status" path="copy.status.name" name="status_name">
239 <eg-grid-column i18n-label label="Call Number Prefix"
240 path="volume.prefix.label" name="call_number.prefix.label" [hidden]="true">
242 <eg-grid-column i18n-label label="Call Number Suffix"
243 path="volume.suffix.label" name="call_number.suffix.label" [hidden]="true">
245 <eg-grid-column i18n-label label="Active/Create Date"
246 path="copy.active_date" datatype="timestamp">
248 <eg-grid-column i18n-label label="Age Hold Protection"
249 path="copy.age_protect.name" name="age_protect.name"></eg-grid-column>
250 <eg-grid-column i18n-label label="Copy Price"
251 path="copy.price" name="price" [hidden]="true"></eg-grid-column>
253 <eg-grid-column i18n-label label="Circulate" path="copy.circulate"
254 name="circulate" datatype="bool" [hidden]="true"></eg-grid-column>
255 <eg-grid-column i18n-label label="Deposit" path="copy.deposit"
256 name="deposit" datatype="bool" [hidden]="true"></eg-grid-column>
257 <eg-grid-column i18n-label label="Deposit Amount" path="copy.deposit_amount"
258 name="deposit_amount" datatype="money" [hidden]="true"></eg-grid-column>
259 <eg-grid-column i18n-label label="Holdable?" name="holdable"
260 [cellTemplate]="holdableTemplate" [cellContext]="gridTemplateContext">
262 <eg-grid-column i18n-label label="Reference?" path="copy.ref"
263 name="ref" datatype="bool" [hidden]="true"></eg-grid-column>
264 <eg-grid-column i18n-label label="Last Inventory Date"
265 path="copy.latest_inventory.inventory_date"
266 name="latest_inventory.inventory_date" datatype="timestamp" [hidden]="true">
268 <eg-grid-column i18n-label label="Last Inventory Workstation"
269 path="copy.latest_inventory.inventory_workstation.name"
270 name="latest_inventory.inventory_workstation.name" [hidden]="true">