]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates/opac/myopac/prefs.tt2
lp1777677 Security tweaks
[Evergreen.git] / Open-ILS / src / templates / opac / myopac / prefs.tt2
1 [%  PROCESS "opac/parts/header.tt2";
2     WRAPPER "opac/parts/myopac/prefs_base.tt2";
3     myopac_page = "prefs";
4     prefs_page = 'prefs';
5     can_call_action_trigger = 'true' %]
6
7 <h3 class="sr-only">[% l('Account Preferences') %]</h3>
8 <div id="acct_info_main">
9
10     <table width='70%' title="[% l('Account preference') %]"
11         class='light_border data_grid'>
12         <tbody id='myopac_summary_tbody'>
13             <tr>
14                 <td width='30%'
15                     class='color_4 light_border'>[% l("Name") %]</td>
16
17                 <td class='light_border'>[% l(
18                     HUMAN_NAME_FORMAT,
19                     ctx.user.prefix, 
20                     ctx.user.first_given_name,
21                     ctx.user.second_given_name, 
22                     ctx.user.family_name,
23                     ctx.user.suffix
24                 ) | html %]</td>
25
26                 <td></td>
27                 <td></td>
28             </tr>
29             [% IF ctx.user.pref_first_given_name || ctx.user.pref_second_given_name || ctx.user.pref_family_name %]
30             <tr>
31                 <td width='30%'
32                     class='color_4 light_border'>[% l("Preferred Name") %]</td>
33
34                 <td class='light_border'>[% l(
35                     HUMAN_NAME_FORMAT,
36                     ctx.user.pref_prefix, 
37                     (ctx.user.pref_first_given_name || ctx.user.first_given_name),
38                     ctx.user.pref_second_given_name, 
39                     (ctx.user.pref_family_name || ctx.user.family_name),
40                     ctx.user.pref_suffix
41                 ) | html %]</td>
42
43                 <td></td>
44                 <td></td>
45             </tr>
46             [%  END %]
47
48             <tr>
49                 <td class='color_4 light_border'>[% l("Day Phone") %]</td>
50                 <td class='light_border'>[% ctx.user.day_phone | html %]</td>
51                 <td></td>
52                 <td></td>
53             </tr>
54
55             <tr>
56                 <td class='color_4 light_border'>[% l("Evening Phone") %]</td>
57                 <td class='light_border'>[% ctx.user.evening_phone | html %]</td>
58                 <td></td>
59                 <td></td>
60             </tr>
61
62             <tr>
63                 <td class='color_4 light_border'>[% l("Other Phone") %]</td>
64                 <td class='light_border'>[% ctx.user.other_phone | html %]</td>
65                 <td></td>
66                 <td></td>
67             </tr>
68
69             <tr>
70                 <td class='color_4 light_border'>
71                     <div style="position:absolute">
72                    </div>[% l("Username") %]
73                 </td>
74                 <td class='light_border'>[% ctx.user.usrname | html %]</td>
75                 <td></td>
76                 [%- IF ctx.username_change_disallowed %]
77                 <td></td>
78                 [%- ELSE %]
79                 <td class='light_border'><a href='update_username'
80                     title="[% l('Change Username') %]">[% l("Change") %]</a></td>
81                 [%- END %]
82             </tr>
83             <tr>
84                 <td class='color_4 light_border'>[% l("Password") %]</td>
85                 <td class='light_border'>[% l("(not shown)") %]</td>
86                 <td></td>
87                 [%- IF disable_password_change == 'true' %]
88                 <td></td>
89                 [%- ELSE %]
90                 <td class='light_border'><a href='update_password'
91                     title="[% l('Change Password') %]">[% l("Change") %]</a></td>
92                 [%- END %]
93             </tr>
94             <tr id="test_notification_banner" style="display:none">
95                 <td colspan="4">
96                     [% INCLUDE "opac/myopac/test_notification.tt2" message_type = "email" %]
97                 </td>
98             </tr>
99             <tr>
100                 <td class='color_4 light_border'>[% l("Email Address") %]</td>
101                 <td class='light_border'>[% ctx.user.email | html %]</td>
102                 <td class='light_border'>
103                 [%- IF ctx.user.email %]
104                 <a href="#" onclick="sendTestEmail(
105                         [% ctx.user.id %], '[% ctx.authtoken %]'
106                     )"
107                     title="[% l('Send Test Email') %]">[% l('Send Test Email') %]</a></td>
108                 [%- END %]
109                 [%- IF disable_email_change == 'true' %]
110                 <td></td>
111                 [%- ELSE %]
112                 <td class='light_border'><a href='update_email'
113                     title="[% l('Update Email Address') %]">[% l('Change') %]</a></td>
114                 [%- END %]
115             </tr>
116             <tr>
117             [% IF ctx.user.ident_value %]<tr class="hide_me">
118                 <td class='color_4 light_border'>
119                 [% l("Primary Identification") %]</td>
120
121                 <td class='light_border'>
122                     [%
123                     # l('[_1] ([_2])', ctx.user.ident_value, ctx.user.ident_type.name) | html
124                     # XXX uncomment the above line to show primary
125                     # identification. With a minor tweak it could
126                     # alternatively be shown but partially obscured. 
127                     %]
128                 </td>
129                 <td></td>
130                 <td></td>
131             </tr>[% END %]
132
133             <tr>
134                 <td class='color_4 light_border'>[% l("Active Barcode") %]</td>
135                 <td class='light_border'>[% ctx.user.card.barcode %]</td>
136                 <td></td>
137                 <td></td>
138             </tr>
139
140             <tr>
141                 <td class='color_4 light_border'>[% l("Home Library") %]</td>
142                 <td class='light_border'>
143                     [% ctx.get_aou(ctx.user.home_ou.parent_ou).name | html %]<br/>
144                     [% ctx.user.home_ou.name | html %]<br/>
145                     [% ctx.user.home_ou.billing_address.street1 | html %]<br/>
146                     [% IF ctx.user.home_ou.billing_address.street2; ctx.user.home_ou.billing_address.street2 | html; "<br/>"; END %]
147                     [% ctx.user.home_ou.billing_address.city | html %], [% ctx.user.home_ou.billing_address.state | html %]
148                     [% ctx.user.home_ou.billing_address.post_code | html %]<br/>
149                     <br/>
150
151                     [% IF ctx.user.home_ou.phone; ctx.user.home_ou.phone | html; "<br/>"; END %]
152
153                     [% IF ctx.user.home_ou.email; '<a href="mailto:'; ctx.user.home_ou.email | html; '">'; ctx.user.home_ou.email | html; "</a><br/>"; END %]
154                     [% lib_url = ctx.get_org_setting(ctx.user.home_ou.id, 'lib.info_url');
155                         IF lib_url;
156                             '<a href="'; lib_url | html; '" property="url">'; lib_url | html;  '</a>';
157                         END;
158                     %]
159                 </td>
160                 <td></td>
161                 <td></td>
162             </tr>
163             <tr>
164                 <td class='color_4 light_border'>[% l("Account Creation Date") %]</td>
165                 <td class='light_border'>[% date.format(ctx.parse_datetime(ctx.user.create_date), DATE_FORMAT) %]</td>
166                 <td></td>
167                 <td></td>
168             </tr>
169             <tr>
170                 <td class='color_4 light_border'>[% l("Account Expiration Date") %]</td>
171                 <td class='light_border'>
172                     [%- IF date.format(ctx.parse_datetime(ctx.user.expire_date), '%s') < date.format(date.now , '%s'); -%]
173                         <span class="alert" style="font-weight:bold;">[% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]</span>
174                         </td>
175                     [% ELSE %]
176                         [% date.format(ctx.parse_datetime(ctx.user.expire_date), DATE_FORMAT) %]
177                     [% END %]
178                 </td>
179                 <td></td>
180                 <td></td>
181             </tr>
182         </tbody>
183     </table><br />
184     <hr class='opac-auto-013' color="#DCDBDB" />
185     <br />
186
187     <table width='100%' class='light_border data_grid' title="[% l('Addresses') %]">
188         <thead>
189             <tr>
190                 <td><strong>[% l("Addresses") %]</strong></td>
191                 <td><strong>[% l("Pending Addresses") %]</strong></td>
192             </tr>
193         </thead>
194         <tbody>
195             [% 
196                 # cycle through the non-pending address.  For each non-pending addr
197                 # that has a corresponding pending addr, render the pending addr 
198                 # along the right inside it's own edit form
199                 pending = {};
200                 regular = [];
201                 edit_addr_id = CGI.param('edit_address');
202                 FOR addr IN ctx.user.addresses;
203                     IF addr.pending == 't';
204                         replaces = addr.replaces;
205                         pending.$replaces = addr;
206                     ELSE;
207                         regular.push(addr);
208                     END;
209                 END;
210             FOR addr IN regular;
211                 cur_id = addr.id; 
212                 pending_addr = pending.$cur_id;
213             %]
214             <tr>
215                 <td>
216                     <!-- read-only address display -->
217                     <table class='light_border' title="[% l('Active Addresses') %]">
218                         <tr><td>[% l("Address Type") %]</td><td>[% addr.address_type | html %]</td></tr>
219                         <tr><td>[% l("Street") %]</td><td>[% addr.street1 | html %]</td></tr>
220                         <tr><td>[% l("Street") %]</td><td>[% addr.street2 | html %]</td></tr>
221                         <tr><td>[% l("City") %]</td><td>[% addr.city | html %]</td></tr>
222                         <tr><td>[% l("County") %]</td><td>[% addr.county| html  %]</td></tr>
223                         <tr><td>[% l("State") %]</td><td>[% addr.state | html %]</td></tr>
224                         <tr><td>[% l("Country") %]</td><td>[% addr.country | html %]</td></tr>
225                         <tr><td>[% l("Zip") %]</td><td>[% addr.post_code | html %]</td></tr>
226                         [% IF ctx.get_org_setting(ctx.user.home_ou.id, 'opac.allow_pending_address') 
227                                 AND !pending_addr AND edit_addr_id != cur_id %]
228                         <tr>
229                             <td colspan='2'>
230                                 <a href='?edit_address=[% addr.id %]'>[% l('Edit Address') %]</a>
231                             </td>
232                         </tr>
233                         [% END %]
234                     </table>
235                 </td>
236
237                 <!-- pending address form -->
238                 [% IF pending_addr OR edit_addr_id == cur_id;
239                     update_addr = pending_addr || addr %]
240                 <td>
241                     <form method='post'>
242                         [% IF pending_addr %]
243                             <input type='hidden' name='pending_addr' value='[% pending_addr.id %]'/>
244                         [% ELSE %]
245                             <input type='hidden' name='replace_addr' value='[% edit_addr_id | html %]'/>
246                         [% END %]
247                         <table class='pending-addr' title="[% l('Pending Addresses') %]">
248                         [% addr_fields = [
249                             {label => l("Address Type"), name => 'address_type', value => update_addr.address_type},
250                             {label => l("Street"), name => 'street1', value => update_addr.street1},
251                             {label => l("Street"), name => 'street2', value => update_addr.street2},
252                             {label => l("City"), name => 'city', value => update_addr.city},
253                             {label => l("County"), name => 'county', value => update_addr.county},
254                             {label => l("State"), name => 'state', value => update_addr.state},
255                             {label => l("Country"), name => 'country', value => update_addr.country},
256                             {label => l("ZIP"), name => 'post_code', value => update_addr.post_code},
257                         ];
258                         FOR field IN addr_fields %]
259                             <tr>
260                                 <td><label for="addr-form-[% field.name %]">[% field.label %]</label></td>
261                                 <td><input name="[% field.name %]" 
262                                     id="addr-form-[% field.name %]"
263                                     value="[% field.value | html %]">
264                                 </td>
265                             </tr>
266                         [% END %]
267                             <tr>
268                                 <td><input type='submit' value="[% l('Save Changes') %]"/></td>
269                                 <td>
270                                     [% params = (pending_addr) ? {delete_pending => pending_addr.id} : {} %]
271                                     <a href="[% mkurl('', params, 1) %]">[% l('Discard Pending Address') %]</a>
272                                 </td>
273                             </tr>
274                             <tr><td colspan='2'><i>[% l('Address changes will be verified by staff') %]</i></td></tr>
275                         </table>
276                     </form>
277                 </td>
278                 [% END %] <!-- if pending_addr -->
279             </tr>
280             [% END %]
281         </tbody>
282     </table>
283 </div>
284
285 [% END %]