2 <div ng-cloak class="patron-summary-grid-wrapper">
3 <div ng-show="patron()" id="patron-summary-grid">
4 <div class="row patron-summary-pref-name"
5 ng-if="patron().pref_family_name() || patron().pref_first_given_name() || patron().second_given_name()">
6 <div class="col-md-12">
7 [% l('[_1], [_2] [_3] (Preferred)',
8 '{{patron().pref_family_name() || patron().family_name()}}',
9 '{{patron().pref_first_given_name() || patron().first_given_name()}}',
10 '{{patron().pref_second_given_name() || patron().second_given_name()}}')
14 <div ng-if="patron().name_keywords()" class="row patron-summary-pref-name">
15 <div class="col-md-12">
16 <a title="{{patron().name_keywords()}}">[% l('Name Keywords') %]</a>
20 ng-class="{'patron-summary-divider' : !$index}"
21 ng-repeat="penalty in alert_penalties()">
23 class="col-md-9 patron-summary-alert"
24 title="{{penalty.standing_penalty().name()}}">
25 {{penalty.note() || penalty.standing_penalty().label()}}
27 <div class="col-md-3">
28 {{penalty.set_date() | date:$root.egDateFormat}}
31 <div class="row patron-summary-divider">
33 class="col-md-9 patron-summary-alert"
34 title="[% l('Patron Alert Message') %]"
35 ng-if="patron().alert_message()">
36 {{patron().alert_message()}}
39 <div ng-if="patron().photo_url()" class="row">
40 <div class="col-md-8 patron_photo_wrap"><img class="img-responsive img-rounded" src="{{patron().photo_url()}}" alt=""></div>
43 ng-class="{'patron-summary-divider' : alert_penalties().length || patron().alert_message()}">
44 <div class="col-md-5">[% l('Profile') %]</div>
45 <div class="col-md-7">{{patron().profile().name()}}</div>
47 <div class="row" ng-if="show_name()">
48 <div class="col-md-5">[% l('ID') %]</div>
49 <div class="col-md-7">{{patron().id()}}</div>
51 <div class="row" ng-if="show_name()">
52 <div class="col-md-5">[% l('Name') %]</div>
53 <div class="col-md-7">
54 [% l('[_1], [_2] [_3]',
55 '{{patron().family_name()}}',
56 '{{patron().first_given_name()}}',
57 '{{patron().second_given_name()}}') %]
61 <div class="col-md-5">[% l('Home Library') %]</div>
62 <div class="col-md-7">{{patron().home_ou().shortname()}}</div>
65 <div class="col-md-5">[% l('Net Access') %]</div>
66 <div class="col-md-7">{{patron().net_access_level().name()}}</div>
69 ng-class="{'patron-summary-alert' : !patron().dob()}">
70 <a class="col-md-5" ng-if="obscure_dob()" ng-click="show_dob(true)">[% l('Date of Birth') %]</a>
71 <div class="col-md-5" ng-if="!obscure_dob()">[% l('Date of Birth') %]</div>
72 <div class="col-md-7" ng-show="now_show_dob()">{{patron().dob() | date:$root.egDateFormat}}</div>
75 <div class="col-md-5">[% l('Last Activity') %]</div>
76 <div class="col-md-7">{{patron().usr_activity()[0].event_time() | date:$root.egDateFormat}}</div>
79 <div class="col-md-5">[% l('Last Updated') %]</div>
80 <div class="col-md-7">{{patron().last_update_time() | date:$root.egDateFormat}}</div>
83 <div class="col-md-5">[% l('Create Date') %]</div>
84 <div class="col-md-7">{{patron().create_date() | date:$root.egDateFormat}}</div>
87 ng-class="{'patron-summary-alert' : isPatronExpired()}">
88 <div class="col-md-5">[% l('Expire Date') %]</div>
89 <div class="col-md-7">{{patron().expire_date() | date:$root.egDateFormat}}</div>
91 <div class="row patron-summary-divider"
92 ng-class="{'patron-summary-alert' : patron_stats().fines.balance_owed}">
93 <div class="col-md-5">[% l('Fines Owed') %]</div>
94 <div class="col-md-7">
95 {{patron_stats().fines.balance_owed | currency}}
99 ng-show="patron_stats().fines.group_balance_owed > patron_stats().fines.balance_owed"
100 ng-class="{'patron-summary-alert' : patron_stats().fines.group_balance_owed}">
101 <div class="col-md-5">[% l('Group Fines') %]</div>
102 <div class="col-md-7">
103 {{patron_stats().fines.group_balance_owed | currency}}
107 <div class="col-md-5">[% l('Items Out') %]</div>
108 <div class="col-md-7">{{patron_stats().checkouts.total_out}}</div>
111 ng-class="{'patron-summary-alert' : patron_stats().checkouts.overdue}">
112 <div class="col-md-5">[% l('Overdue') %]</div>
113 <div class="col-md-7">{{patron_stats().checkouts.overdue}}</div>
116 ng-class="{'patron-summary-alert' : patron_stats().checkouts.long_overdue}">
117 <div class="col-md-5">[% l('Long Overdue') %]</div>
118 <div class="col-md-7">{{patron_stats().checkouts.long_overdue}}</div>
121 ng-class="{'patron-summary-alert' : patron_stats().checkouts.claims_returned}">
122 <div class="col-md-5">[% l('Claimed Returned') %]</div>
123 <div class="col-md-7">{{patron_stats().checkouts.claims_returned}}</div>
126 ng-class="{'patron-summary-alert' : patron_stats().checkouts.lost}">
127 <div class="col-md-5">[% l('Lost') %]</div>
128 <div class="col-md-7">{{patron_stats().checkouts.lost}}</div>
131 <div class="col-md-5">[% l('Non-Cataloged') %]</div>
132 <div class="col-md-7">{{patron_stats().checkouts.noncat}}</div>
135 <div class="col-md-5">[% l('Holds') %]</div>
136 <div class="col-md-7">
137 {{patron_stats().holds.ready}} / {{patron_stats().holds.total}}
140 <div class="row patron-summary-divider">
141 <div class="col-md-5">[% l('Card') %]</div>
142 <div class="col-md-7">{{patron().card().barcode()}}</div>
145 <div class="col-md-5">[% l('Username') %]</div>
146 <div class="col-md-7">{{patron().usrname()}}</div>
149 <div class="col-md-5">[% l('Day Phone') %]</div>
150 <div class="col-md-7">{{patron().day_phone()}}</div>
153 <div class="col-md-5">[% l('Evening Phone') %]</div>
154 <div class="col-md-7">{{patron().evening_phone()}}</div>
157 <div class="col-md-5">[% l('Other Phone') %]</div>
158 <div class="col-md-7">{{patron().other_phone()}}</div>
161 <div class="col-md-5">[% l('ID1') %] <span ng-if="hasIdentTypeName" class="ident_type">({{patron().ident_type().name()}})</span></div>
162 <div class="col-md-7">{{patron().ident_value()}}</div>
165 <div class="col-md-5">[% l('ID2') %]</div>
166 <div class="col-md-7">{{patron().ident_value2()}}</div>
169 <div class="col-md-5">[% l('Email') %]</div>
170 <!-- Bound href="mailto: patron().email()" to an anchor tag to allow the patron's email address to be clicked directly from the summary. -->
171 <div class="col-md-7"><a ng-href="mailto:{{patron().email()}}">{{patron().email()}}</a></div>
173 <div class="row" ng-repeat="map in summary_stat_cats()">
174 <div class="col-md-5">{{map.stat_cat().name()}}</div>
175 <div class="col-md-7">{{map.stat_cat_entry()}}</div>
177 <div class="row" ng-if="patron().name_keywords()">
178 <div class="col-md-5">[% l('Name Keywords') %]</div>
179 <div class="col-md-7">{{patron().name_keywords()}}</div>
183 <div class="row" ng-repeat="addr in patron().addresses()">
185 <div class="panel-body">
187 <legend ng-class="{'patron-summary-alert': addr.valid() == 'f'}">
188 {{addr.address_type()}}
189 <a href class="pad-horiz patron-summary-act-link"
190 ng-click="print_address(addr)">[% l('(print)') %]</a>
192 <div>{{addr.street1()}} {{addr.street2()}}</div>
193 <div>{{addr.city()}}, {{addr.state()}} {{addr.post_code()}}</div>