2 <div ng-cloak class="patron-summary-grid-wrapper">
4 <div class="col-md-12">
5 <h4 title="{{patron().id()}}">
7 <div class="flex-cell">
8 [% l('[_1], [_2] [_3]',
9 '{{patron().family_name()}}',
10 '{{patron().first_given_name()}}',
11 '{{patron().second_given_name()}}') %]
13 <div ng-show="tab != 'search'">
14 <a href ng-click="toggle_expand_summary()"
15 title="[% l('Collapse Patron Summary Display') %]"
16 ng-hide="collapse_summary()">
17 <span class="glyphicon glyphicon-resize-small"></span>
19 <a href ng-click="toggle_expand_summary()"
20 title="[% l('Expand Patron Summary Display') %]"
21 ng-show="collapse_summary()">
22 <span class="glyphicon glyphicon-resize-full"></span>
29 <div ng-show="patron()" id="patron-summary-grid">
31 ng-class="{'patron-summary-divider' : !$index}"
32 ng-repeat="penalty in alert_penalties()">
34 class="col-md-9 patron-summary-alert"
35 title="{{penalty.standing_penalty().name()}}">
36 {{penalty.note() || penalty.standing_penalty().label()}}
38 <div class="col-md-3">
39 {{penalty.set_date() | date:'shortDate'}}
43 ng-class="{'patron-summary-divider' : alert_penalties().length}">
44 <div class="col-md-5">[% l('Profile') %]</div>
45 <div class="col-md-7">{{patron().profile().name()}}</div>
48 <div class="col-md-5">[% l('Home Library') %]</div>
49 <div class="col-md-7">{{patron().home_ou().shortname()}}</div>
52 <div class="col-md-5">[% l('Net Access') %]</div>
53 <div class="col-md-7">{{patron().net_access_level().name()}}</div>
56 ng-class="{'patron-summary-alert' : !patron().dob()}">
57 <a class="col-md-5" ng-if="obscure_dob()" ng-click="show_dob(true)">[% l('Date of Birth') %]</a>
58 <div class="col-md-5" ng-if="!obscure_dob()">[% l('Date of Birth') %]</div>
59 <div class="col-md-7" ng-show="now_show_dob()">{{patron().dob() | date:'shortDate'}}</div>
62 <div class="col-md-5">[% l('Last Activity') %]</div>
63 <div class="col-md-7">{{patron().usr_activity()[0].event_time() | date:'shortDate'}}</div>
66 <div class="col-md-5">[% l('Last Updated') %]</div>
67 <div class="col-md-7">{{patron().last_update_time() | date:'shortDate'}}</div>
70 <div class="col-md-5">[% l('Create Date') %]</div>
71 <div class="col-md-7">{{patron().create_date() | date:'shortDate'}}</div>
74 <div class="col-md-5">[% l('Expire Date') %]</div>
75 <div class="col-md-7">{{patron().expire_date() | date:'shortDate'}}</div>
77 <div class="row patron-summary-divider"
78 ng-class="{'patron-summary-alert' : patron_stats().fines.balance_owed}">
79 <div class="col-md-5">[% l('Fines Owed') %]</div>
80 <div class="col-md-7">
81 {{patron_stats().fines.balance_owed | currency}}
85 ng-show="patron_stats().fines.group_balance_owed > patron_stats().fines.balance_owed"
86 ng-class="{'patron-summary-alert' : patron_stats().fines.group_balance_owed}">
87 <div class="col-md-5">[% l('Group Fines') %]</div>
88 <div class="col-md-7">
89 {{patron_stats().fines.group_balance_owed | currency}}
93 <div class="col-md-5">[% l('Items Out') %]</div>
94 <div class="col-md-7">{{patron_stats().checkouts.out}}</div>
97 ng-class="{'patron-summary-alert' : patron_stats().checkouts.overdue}">
98 <div class="col-md-5">[% l('Overdue') %]</div>
99 <div class="col-md-7">{{patron_stats().checkouts.overdue}}</div>
102 ng-class="{'patron-summary-alert' : patron_stats().checkouts.long_overdue}">
103 <div class="col-md-5">[% l('Long Overdue') %]</div>
104 <div class="col-md-7">{{patron_stats().checkouts.long_overdue}}</div>
107 ng-class="{'patron-summary-alert' : patron_stats().checkouts.claims_returned}">
108 <div class="col-md-5">[% l('Claimed Returned') %]</div>
109 <div class="col-md-7">{{patron_stats().checkouts.claims_returned}}</div>
112 ng-class="{'patron-summary-alert' : patron_stats().checkouts.lost}">
113 <div class="col-md-5">[% l('Lost') %]</div>
114 <div class="col-md-7">{{patron_stats().checkouts.lost}}</div>
117 <div class="col-md-5">[% l('Non-Cataloged') %]</div>
118 <div class="col-md-7">{{patron_stats().checkouts.noncat}}</div>
121 <div class="col-md-5">[% l('Holds') %]</div>
122 <div class="col-md-7">
123 {{patron_stats().holds.total}} / {{patron_stats().holds.ready}}
126 <div class="row patron-summary-divider">
127 <div class="col-md-5">[% l('Card') %]</div>
128 <div class="col-md-7">{{patron().card().barcode()}}</div>
131 <div class="col-md-5">[% l('Username') %]</div>
132 <div class="col-md-7">{{patron().usrname()}}</div>
135 <div class="col-md-5">[% l('Day Phone') %]</div>
136 <div class="col-md-7">{{patron().day_phone()}}</div>
139 <div class="col-md-5">[% l('Evening Phone') %]</div>
140 <div class="col-md-7">{{patron().evening_phone()}}</div>
143 <div class="col-md-5">[% l('Other Phone') %]</div>
144 <div class="col-md-7">{{patron().other_phone()}}</div>
147 <div class="col-md-5">[% l('ID1') %]</div>
148 <div class="col-md-7">{{patron().ident_type().name()}}</div>
151 <div class="col-md-5">[% l('ID2') %]</div>
152 <div class="col-md-7">{{patron().ident_type2().name()}}</div>
155 <div class="col-md-5">[% l('Email') %]</div>
156 <div class="col-md-7">{{patron().email()}}</div>
158 <div class="row" ng-repeat="map in summary_stat_cats()">
159 <div class="col-md-5">{{map.stat_cat().name()}}</div>
160 <div class="col-md-7">{{map.stat_cat_entry()}}</div>
164 <div class="row" ng-repeat="addr in patron().addresses()">
166 <div class="panel-body">
168 <legend ng-class="{'patron-summary-alert': addr.valid() == 'f'}">
169 {{addr.address_type()}}
170 <a href class="pad-horiz patron-summary-act-link"
171 ng-click="print_address(addr)">[% l('(print)') %]</a>
173 <div>{{addr.street1()}} {{addr.street2()}}</div>
174 <div>{{addr.city()}}, {{addr.state()}} {{addr.post_code()}}</div>