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