LP1904036 Patron search Clear Form clears visible results/summary
[evergreen-equinox.git] / Open-ILS / src / eg2 / src / app / staff / circ / patron / patron.component.html
1
2 <ng-container *ngIf="!context.summary">
3   <eg-staff-banner bannerText="Manage Patrons" i18n-bannerText>
4   </eg-staff-banner>
5 </ng-container>
6
7 <eg-confirm-dialog #pendingChangesDialog
8   i18n-dialogTitle dialogTitle="Unsaved Changes Confirmation" 
9   i18n-dialogBoby  dialogBody="Unsaved changes will be lost.  Continue navigation?">
10 </eg-confirm-dialog>
11
12 <eg-confirm-dialog #purgeConfirm1
13   i18n-dialogTitle dialogTitle="Completely Purge Patron Account?"
14   i18n-dialogBody dialogBody="Completely OBLITERATE this patron 
15     account, including bills, payments, bookbags, etc? This is IRREVERSIBLE.">
16 </eg-confirm-dialog>
17
18 <eg-confirm-dialog #purgeConfirm2
19   i18n-dialogTitle dialogTitle="Completely Purge Patron Account?"
20   i18n-dialogBody dialogBody="Last chance, are you sure you want to 
21     completely delete this account?">
22 </eg-confirm-dialog>
23
24 <eg-confirm-dialog #purgeConfirmOverride
25   i18n-dialogTitle dialogTitle="Completely Purge Patron Account?"
26   i18n-dialogBody dialogBody="The account has open transactions 
27     (circulations and/or unpaid bills). Purge anyway?">
28 </eg-confirm-dialog>
29
30 <eg-alert-dialog #purgeBadBarcode
31   i18n-dialogTitle dialogTitle="Bad Barcode"
32   i18n-dialogBody dialogBody="Could not retrieve a destination account 
33     with the barcode provided. Aborting the purge...">
34 </eg-alert-dialog>
35
36 <eg-prompt-dialog #purgeStaffDialog
37   i18n-dialogTitle dialogTitle="Completely Purge Patron Account?"
38   i18n-dialogBody dialogBody="The account you are attempting to delete has 
39     STAFF_LOGIN privileges. Please enter the barcode for a destination 
40     account to receive miscellaneous staff artifacts (reports, etc.) from 
41     the account to be deleted.">
42 </eg-prompt-dialog>
43
44 <ng-container *ngIf="context.summary">
45   <eg-staff-banner i18n-bannerText bannerText="Patron: 
46     {{patronService.namePart(context.summary.patron, 'family_name')}}, 
47     {{patronService.namePart(context.summary.patron, 'first_given_name')}} 
48     {{patronService.namePart(context.summary.patron, 'second_given_name')}}">
49   </eg-staff-banner>
50 </ng-container>
51
52 <eg-circ-components></eg-circ-components>
53 <eg-worklog-strings-components></eg-worklog-strings-components>                
54
55 <div class="row">
56
57   <ng-container *ngIf="showSummaryPane()">
58     <div class="col-lg-3">
59       <div class="sticky-top-with-nav bg-white">
60         <ng-container *ngIf="context.summary">
61           <eg-patron-summary [summary]="context.summary"></eg-patron-summary>
62         </ng-container>
63       </div>
64     </div>
65   </ng-container>
66
67   <div [ngClass]="{'col-lg-9': showSummaryPane(), 'col-lg-12': !showSummaryPane()}">
68
69     <div class="sticky-top-with-nav bg-white">
70       <ul ngbNav #patronNav="ngbNav" class="nav-tabs"
71         [activeId]="patronTab" (navChange)="beforeTabChange($event)">
72
73         <ng-container *ngIf="patronTab !== 'search'">
74           <li ngbDropdown ngbNavItem="toggle">
75             <a href class="nav-link" (click)="toggleSummaryPane(); false"
76               title="Toggle Summary Pane" i18n-title>
77               <ng-container *ngIf="showSummaryPane()">
78                 <span class="material-icons">fullscreen</span>
79               </ng-container>
80               <ng-container *ngIf="!showSummaryPane()">
81                 <span class="material-icons">fullscreen_exit</span>
82               </ng-container>
83             </a>
84           </li>
85         </ng-container>
86
87         <li ngbNavItem="checkout" [disabled]="!context.summary">
88           <a ngbNavLink i18n>Check Out</a>
89           <ng-template ngbNavContent>
90             <div class="">
91               <eg-patron-checkout></eg-patron-checkout> 
92             </div>
93           </ng-template>
94         </li>
95
96         <li ngbNavItem="items_out" [disabled]="!context.summary">
97           <a ngbNavLink i18n>
98             Items Out ({{counts('checkouts', 'total_out')}})
99           </a>
100           <ng-template ngbNavContent>
101             <div class="">
102               <eg-patron-items [patronId]="patronId"></eg-patron-items>
103             </div>
104           </ng-template>
105         </li>
106
107         <li ngbNavItem="holds" [disabled]="!context.summary">
108           <a ngbNavLink i18n>
109             Holds ({{counts('holds', 'ready')}} / {{counts('holds', 'total')}})
110           </a>
111           <ng-template ngbNavContent>
112             <eg-patron-holds></eg-patron-holds>
113           </ng-template>
114         </li>
115
116         <li ngbNavItem="bills" [disabled]="!context.summary">
117           <a ngbNavLink (click)="billsTabClicked()" i18n>
118             Bills 
119             <span [ngClass]="{'text-danger': counts('fines', 'balance_owed') > 0}">
120               ({{counts('fines', 'balance_owed') | currency}})
121             </span>
122           </a>
123           <ng-template ngbNavContent>
124             <ng-container *ngIf="statementXact">
125               <eg-patron-bill-statement [patronId]="patronId" [xactId]="statementXact">
126               </eg-patron-bill-statement>
127             </ng-container>
128             <ng-container *ngIf="billingHistoryTab">
129               <eg-patron-billing-history [patronId]="patronId" [tab]="billingHistoryTab">
130               </eg-patron-billing-history>
131             </ng-container>
132             <ng-container *ngIf="!statementXact && !billingHistoryTab">
133               <eg-patron-bills [patronId]="patronId"></eg-patron-bills>
134             </ng-container>
135           </ng-template>
136         </li>
137
138         <li ngbNavItem="messages" [disabled]="!context.summary">
139           <a ngbNavLink i18n>Messages</a>
140           <ng-template ngbNavContent>
141             <div class="">
142               <eg-patron-messages [patronId]="patronId"></eg-patron-messages>
143             </div>
144           </ng-template>
145         </li>
146
147         <li ngbNavItem="edit" [disabled]="!context.summary">
148           <a ngbNavLink i18n>Edit</a>
149           <ng-template ngbNavContent>
150             <eg-patron-edit #patronEditor [patronId]="patronId" [toolbar]="editorToolbar">
151             </eg-patron-edit> 
152           </ng-template>
153         </li>
154
155         <li ngbDropdown ngbNavItem="other" [disabled]="!context.summary">
156           <a [attr.href]="context.summary ? '' : null" 
157             (click)="false" class="nav-link" ngbDropdownToggle>Other</a>
158           <div ngbDropdownMenu>
159             <a routerLink="/staff/circ/patron/{{patronId}}/alerts" 
160               ngbDropdownItem i18n>Alerts and Messages</a>
161             <a routerLink="/staff/circ/patron/{{patronId}}/notes" [disabled]="true"
162               ngbDropdownItem i18n>Notes</a>
163             <a routerLink="/staff/circ/patron/{{patronId}}/triggered_events" [disabled]="true"
164               ngbDropdownItem i18n>Triggered Events / Notifications</a>
165             <a routerLink="/staff/circ/patron/{{patronId}}/message_center" [disabled]="true"
166               ngbDropdownItem i18n>Message Center</a>
167             <a routerLink="/staff/circ/patron/{{patronId}}/stat_cats"
168               ngbDropdownItem i18n>Statistical Categories</a>
169             <a routerLink="/staff/circ/patron/{{patronId}}/surveys"
170               ngbDropdownItem i18n>Surveys</a>
171             <a routerLink="/staff/circ/patron/{{patronId}}/group"
172               ngbDropdownItem i18n>Group Member Details</a>
173             <a routerLink="/staff/circ/patron/{{patronId}}/perms"
174               ngbDropdownItem i18n>User Permission Editor</a>
175             <a routerLink="/staff/circ/patron/{{patronId}}/credentials"
176               ngbDropdownItem i18n>Test Password</a>
177             <a href="/eg/staff/acq/requests/user/{{patronId}}" 
178               target="_top"
179               ngbDropdownItem i18n>Acquisition Patron Requests</a>
180             <a routerLink="/staff/booking/manage_reservations/by_patron/{{patronId}}"
181               target="_top"
182               ngbDropdownItem i18n>Booking: Manage Reservations</a>
183             <a routerLink="/staff/booking/create_reservation/for_patron/{{patronId}}"
184               target="_top"
185               ngbDropdownItem i18n>Booking: Create Reservation</a>
186             <a routerLink="/staff/booking/pickup/by_patron/{{patronId}}"
187               target="_top"
188               ngbDropdownItem i18n>Booking: Pick Up Reservations</a>
189             <a routerLink="/staff/booking/return/by_patron/{{patronId}}"
190               target="_top" ngbDropdownItem i18n></a>
191             <a href (click)="purgeAccount(); false"
192               [disabled]="disablePurge()"
193               ngbDropdownItem i18n>Completely Purge Account</a>
194           </div>
195           <ng-template ngbNavContent>
196             <ng-container [ngSwitch]="altTab">
197               <div *ngSwitchCase="'alerts'">
198                 <eg-patron-alerts></eg-patron-alerts>
199               </div>
200               <div *ngSwitchCase="'credentials'">
201                 <eg-patron-test-password [patronId]="patronId">
202                 </eg-patron-test-password>
203               </div>
204               <div *ngSwitchCase="'surveys'">
205                 <eg-patron-survey-responses [patronId]="patronId">
206                 </eg-patron-survey-responses>
207               </div>
208               <div *ngSwitchCase="'stat_cats'">
209                 <eg-patron-statcats [patronId]="patronId">
210                 </eg-patron-statcats>
211               </div>
212               <div *ngSwitchCase="'group'">
213                 <eg-patron-group [patronId]="patronId">
214                 </eg-patron-group>
215               </div>
216               <div *ngSwitchCase="'perms'">
217                 <eg-patron-perms [patronId]="patronId">
218                 </eg-patron-perms>
219               </div>
220             </ng-container>
221           </ng-template>
222         </li>
223
224         <li ngbNavItem="search" class="ml-auto">
225           <a ngbNavLink i18n>Patron Search</a>
226           <ng-template ngbNavContent>
227             <div class="">
228               <eg-patron-search
229                 [patronIds]="recentPatronIds()"
230                 [startWithSearch]="context.lastPatronSearch"
231                 (searchFired)="patronSearchFired($event)"
232                 (formCleared)="patronSearchCleared()"
233                 (selectionChange)="patronSelectionChange($event)"
234                 (patronsActivated)="patronsActivated($event)">
235               </eg-patron-search> 
236             </div>
237           </ng-template>
238         </li>
239       </ul>
240
241       <ng-container *ngIf="patronTab === 'edit'">
242         <!-- put the editor toolbar up here in the sticky section -->
243         <eg-patron-edit-toolbar #editorToolbar [patronId]="patronId">
244         </eg-patron-edit-toolbar>
245       </ng-container>
246
247     </div><!-- end of sticky top -->
248
249     <div *ngIf="!loading" class="pt-3">
250       <div [ngbNavOutlet]="patronNav"></div>
251     </div>
252   </div>
253 </div>
254