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