]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates/staff/circ/patron/index.tt2
07c967e2f1ce06fad39dac4ff256ca68c364e68a
[Evergreen.git] / Open-ILS / src / templates / staff / circ / patron / index.tt2
1 [%
2   WRAPPER "staff/base.tt2";
3   ctx.page_title = l("Patron"); 
4   ctx.page_app = "egPatronApp";
5   ctx.page_ctrl = "PatronCtrl";
6 %]
7
8 [% BLOCK APP_JS %]
9 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/grid.js"></script>
10 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/ui.js"></script>
11 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/user.js"></script>
12 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/eframe.js"></script>
13 <script src="[% ctx.media_prefix %]/js/ui/default/staff/services/date.js"></script>
14 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/services/billing.js"></script>
15 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/services/circ.js"></script>
16 [% INCLUDE 'staff/circ/share/circ_strings.tt2' %]
17 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/services/holds.js"></script>
18 [% INCLUDE 'staff/circ/share/hold_strings.tt2' %]
19 <script src="[% ctx.media_prefix %]/js/ui/default/staff/cat/services/record.js"></script>
20 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/app.js"></script>
21 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/regctl.js"></script>
22
23 <!-- load the rest on demand? -->
24
25 <!-- required for credentials verify API -->
26 <script src="[% ctx.media_prefix %]/js/dojo/opensrf/md5.js"></script>
27
28 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/checkout.js"></script>
29 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/items_out.js"></script>
30 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/holds.js"></script>
31 <script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/bills.js"></script>
32
33 <!-- TODO: APP_JS should really be called APP_ADDONS or some such.
34     It just means "load these things, too, and load them last" -->
35 <link rel="stylesheet" href="[% ctx.base_path %]/staff/css/circ.css" />
36
37 <script>
38 angular.module('egCoreMod').run(['egStrings', function(s) {
39   s.ANNOTATE_PAYMENT_MSG = "[% l('Please annotate this payment') %]";
40   s.CONFIRM_REFUND_PAYMENT = 
41     "[% |l('{{xactIds}}') -%]Are you sure you would like to refund excess payment on bills [_1]?  This action will simply put the amount in the Payment Pending column as a negative value.  You must still select Apply Payment!  Certain types of payments may not be refunded.  The refund may be applied to checked transactions that follow the refunded transaction.[% END %]";
42   s.EDIT_BILL_PAY_NOTE = "[% l('Enter new note for #[_1]:','{{ids}}') %]";
43   s.GROUP_ADD_USER = "[% l('Enter the patron barcode') %]";
44   s.RENEW_ITEMS = "[% l('Renew Items?') %]";
45   s.RENEW_ALL_ITEMS = "[% l('Renew All Items?') %]";
46   s.CHECK_IN_CONFIRM = "[% l('Check In Items?') %]";
47   s.REG_INVALID_FIELDS = 
48     "[% l('Please enter valid values for all required fields.') %]"
49 }]);
50 </script>
51
52 <!-- add room for the fixed navigation elements -->
53 <style ng-if="is_patron_edit">
54   #top-content-container { padding-top: 120px; }
55 </style>
56 <style ng-if="!is_patron_edit">
57   #top-content-container { padding-top: 80px; }
58 </style>
59
60 [% END %]
61
62 <div class="row" id="patron-fixed-tabs">
63   <div class="col-md-3 patron-name-header">
64     <div ng-show="patron()">
65       <h4 title="{{patron().id()}}">
66         <div class="flex-row">
67           <div class="flex-cell">
68             [% l('[_1], [_2] [_3]', 
69                 '{{patron().family_name()}}',
70                 '{{patron().first_given_name()}}',
71                 '{{patron().second_given_name()}}') %]
72           </div>
73           <div ng-show="tab != 'search'">
74             <a href ng-click="toggle_expand_summary()"
75               title="[% l('Collapse Patron Summary Display') %]"
76               ng-hide="collapse_summary()">
77               <span class="glyphicon glyphicon-resize-small"></span>
78             </a>
79             <a href ng-click="toggle_expand_summary()"
80               title="[% l('Expand Patron Summary Display') %]"
81               ng-show="collapse_summary()">
82               <span class="glyphicon glyphicon-resize-full"></span>
83             </a>
84           </div>
85         </div>
86       </h4>
87     </div>
88   </div>
89
90   <div class="col-md-9">
91     <ul class="nav nav-pills nav-pills-like-tabs">
92       <li ng-class="{active : tab == 'checkout', disabled : !patron()}">
93         <a a-disabled="!patron()" href="./circ/patron/{{patron().id()}}/checkout">[% l('Check Out') %]</a>
94       </li>
95       <li ng-class="{active : tab == 'items_out', disabled : !patron()}">
96         <a a-disabled="!patron()" href="./circ/patron/{{patron().id()}}/items_out">
97           [% l('Items Out') %] 
98           <span ng-if="patron()"><!-- lack of space / newline below intentional -->
99           (<span ng-class="{'patron-summary-alert-small' : patron_stats().checkouts.overdue}">{{patron_stats().checkouts.total_out}}</span>)
100           </span>
101         </a>
102       </li>
103       <li ng-class="{active : tab == 'holds', disabled : !patron()}">
104         <a a-disabled="!patron()" href="./circ/patron/{{patron().id()}}/holds">
105           [% l('Holds') %]
106           <span ng-if="patron()">
107             (<span>{{patron_stats().holds.total}} / {{patron_stats().holds.ready}}</span>)
108           </span>
109         </a>
110       </li>
111       <li ng-class="{active : tab == 'bills', disabled : !patron()}">
112         <a a-disabled="!patron()" href="./circ/patron/{{patron().id()}}/bills">
113           [% l('Bills') %]
114           <span ng-if="patron()">
115             (<span ng-class="{'patron-summary-alert-small' : patron_stats().fines.balance_owed}">{{patron_stats().fines.balance_owed | currency}}</span>)
116           </span>
117         </a>
118       </li>
119       <li ng-class="{active : tab == 'messages', disabled : !patron()}">
120         <a a-disabled="!patron()" href="./circ/patron/{{patron().id()}}/messages">[% l('Messages') %]</a>
121       </li>
122       <li ng-class="{active : tab == 'edit', disabled : !patron()}">
123         <a href="./circ/patron/{{patron().id()}}/edit">[% l('Edit') %]</a>
124       </li>
125       <li uib-dropdown ng-class="{active : tab == 'other', disabled : !patron()}">
126         <a a-disabled="!patron()" href uib-dropdown-toggle>
127             [% l('Other') %]
128             <b class="caret"></b>
129         </a>
130         <ul uib-dropdown-menu>
131           <li>
132             <a href="./circ/patron/{{patron().id()}}/alerts">
133               [% l('Display Alert and Messages') %]
134             </a>
135           </li>
136           <li>
137             <a href="./circ/patron/{{patron().id()}}/notes">
138               [% l('Notes') %]
139             </a>
140           </li>
141           <li>
142             <a href="./circ/patron/{{patron().id()}}/triggered_events">
143               [% l('Triggered Events / Notifications') %]
144             </a>
145           </li>
146           <li>
147             <a href="./circ/patron/{{patron().id()}}/stat_cats">
148               [% l('Statistical Categories') %]
149             </a>
150           </li>
151           <li>
152             <a href="./circ/patron/{{patron().id()}}/group">
153               [% l('Group Member Details') %]
154             </a>
155           </li>
156           <li>
157             <a href="./circ/patron/{{patron().id()}}/edit_perms">
158               [% l('User Permission Editor') %]
159             </a>
160           </li>
161           <li>
162             <a href="./circ/patron/{{patron().id()}}/credentials">
163               [% l('Test Password') %]
164             </a>
165           </li>
166        </ul>
167       </li>
168       <li ng-class="{active : tab == 'search'}" class="pull-right">
169         <a href="./circ/patron/search">[% l('Patron Search') %]</a>
170       </li>
171     </ul>
172     <div class="flex-row patron-reg-actions-bar" ng-if="is_patron_edit()">
173       [% INCLUDE 'staff/circ/patron/reg_actions.tt2' %]
174     </div>
175
176   </div><!-- col -->
177 </div><!-- row -->
178
179 <div class="row">
180   <div class="col-md-3" ng-hide="collapse_summary()">
181     [% INCLUDE 'staff/circ/patron/t_summary.tt2' %]
182   </div>
183   <div ng-class="{'col-md-12' : collapse_summary(),'col-md-9' : !collapse_summary()}">
184     <div class="tab-content">
185       <div class="tab-pane active">
186         <div ng-view></div>
187       </div>
188     </div>
189   </div><!-- col -->
190 </div><!-- row -->
191
192 [% END %]