]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
LP1888723 Angular Holdings Maintenance / Item Attributes Editor
[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       <div class="input-group-prepend">
8         <div class="input-group-text" i18n>Holdings Maintenance</div>
9       </div>
10       <eg-org-select [initialOrg]="contextOrg" 
11         persistKey="catalog.holdings" (onChange)="contextOrgChanged($event)">
12       </eg-org-select>
13     </div>
14   </div>
15 </div>
16
17 <!-- Location / Barcode cell template -->
18
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>
33       </a>
34     </span>
35   </div>
36 </ng-template>
37
38 <!-- Holdable true/false display -->
39
40 <ng-template #holdableTemplate let-row="row" let-userContext="userContext">
41   <ng-container *ngIf="row.copy">
42     <eg-bool [value]="userContext.copyIsHoldable(row.copy)">
43     </eg-bool>
44   </ng-container>
45 </ng-template>
46
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>
62
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">
69
70     <!-- checkboxes / filters -->
71
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> 
84
85     <!-- row actions -->
86
87     <!-- row actions : Ungrouped -->
88
89     <eg-grid-toolbar-action
90       i18n-label label="Print Labels" (onClick)="openItemPrintLabels($event)">
91     </eg-grid-toolbar-action>
92
93     <eg-grid-toolbar-action
94       i18n-label label="Request Items" (onClick)="requestItems($event)">
95     </eg-grid-toolbar-action>
96
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>
101
102     <!-- row actions : Add -->
103
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>
108
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>
113
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>
118
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>
123
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>
128
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>
133
134     <!-- row actions: Booking -->
135
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>
140
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>
145
146     <eg-grid-toolbar-action
147       i18n-group group="Booking" i18n-label label="Manage Reservations"
148       (onClick)="manageReservations($event)">
149     </eg-grid-toolbar-action>
150     
151     <!-- row actions: Edit -->
152
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>
157
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>
162
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>
167     
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>
172
173     <eg-grid-toolbar-action
174       i18n-group group="Edit" i18n-label label="Replace Barcodes"
175       (onClick)="openReplaceBarcodeDialog($event)">
176     </eg-grid-toolbar-action>
177
178     <!-- row actions: Delete -->
179
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>
184
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>
189
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>
194     
195     <!-- row actions : Show -->
196
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>
200
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>
204
205     <eg-grid-toolbar-action
206       i18n-group group="Show" i18n-label label="Show Item Holds"
207       (onClick)="openItemHolds($event)"></eg-grid-toolbar-action>
208
209     <eg-grid-toolbar-action
210       i18n-group group="Show" i18n-label label="Show Triggered Events"
211       (onClick)="openItemTriggeredEvents($event)"></eg-grid-toolbar-action>
212
213     <!-- row actions : Mark -->
214
215     <eg-grid-toolbar-action
216       group="Mark" i18n-group i18n-label label="Mark Item Damaged"
217       (onClick)="showMarkDamagedDialog($event)"></eg-grid-toolbar-action>
218
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>
223
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>
229
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>
235
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>
241
242     <!-- fields -->
243     <!-- NOTE column names were added to match the names from the AngJS grid
244         so grid settings would propagate -->
245
246     <eg-grid-column path="index" [hidden]="true" [index]="true">
247     </eg-grid-column>
248     <eg-grid-column name="id" path="copy.id" [hidden]="true" label="Item ID" i18n-label>
249     </eg-grid-column>
250     <eg-grid-column path="callNum.id" [hidden]="true" label="Call Number ID" i18n-label>
251     </eg-grid-column>
252     <eg-grid-column name="owner_label" [flex]="4"
253       [cellTemplate]="locationTemplate" [cellContext]="gridTemplateContext" 
254       label="Location/Barcode" [disableTooltip]="true" i18n-label>
255     </eg-grid-column>
256     <eg-grid-column path="callNumCount" datatype="number" label="Call Numbers" i18n-label>
257     </eg-grid-column>
258     <eg-grid-column path="copyCount" datatype="number" label="Copies" i18n-label>
259     </eg-grid-column>
260     <eg-grid-column path="callNum._label" name="call_number.label" 
261       label="Call Number" i18n-label>
262     </eg-grid-column>
263     <eg-grid-column path="copy.barcode" name="barcode" label="Barcode" i18n-label>
264     </eg-grid-column>
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">
273     </eg-grid-column>
274     <eg-grid-column i18n-label label="Circulation Modifier" 
275       path="copy.circ_modifier" name="circ_modifier">
276     </eg-grid-column>
277     <eg-grid-column i18n-label label="Item Number" path="copy.copy_number" 
278       name="copy_number" [hidden]="true">
279     </eg-grid-column>
280
281     <eg-grid-column i18n-label label="Status" 
282       path="copy.status.name" name="status_name">
283     </eg-grid-column>
284     <eg-grid-column i18n-label label="Call Number Prefix" 
285       path="callNum.prefix.label" name="call_number.prefix.label" [hidden]="true">
286     </eg-grid-column>
287     <eg-grid-column i18n-label label="Call Number Suffix" 
288       path="callNum.suffix.label" name="call_number.suffix.label" [hidden]="true">
289     </eg-grid-column>
290     <eg-grid-column i18n-label label="Parts" path="copy._monograph_parts"
291       name="monograph_parts" [hidden]="true">
292     </eg-grid-column>
293     <eg-grid-column i18n-label label="Notes" path="copy.notes.length"
294       name="note_count" [hidden]="true">
295     </eg-grid-column>
296     <eg-grid-column i18n-label label="Tags" path="copy.tags.length"
297       name="tag_count" [hidden]="true">
298     </eg-grid-column>
299     <eg-grid-column i18n-label label="Alerts" path="copy.copy_alerts.length"
300       name="alert_count" [hidden]="true">
301     </eg-grid-column>
302     <eg-grid-column i18n-label label="Circulate As MARC Type"
303       path="copy.circ_as_type" [hidden]="true">
304     </eg-grid-column>
305     <eg-grid-column i18n-label label="Active/Create Date" 
306       path="copy.active_date" datatype="timestamp">
307     </eg-grid-column>
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>
312
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">
321     </eg-grid-column>
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">
327     </eg-grid-column>
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">
331     </eg-grid-column>
332   </eg-grid>
333 </div>
334