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