Bug 24223: Convert OpacNav system preference to additional content
[koha.git] / koha-tmpl / opac-tmpl / bootstrap / en / modules / opac-messaging.tt
1 [% USE Koha %]
2 [% USE AdditionalContents %]
3 [% SET OpacNav = AdditionalContents.get( location => "OpacNav", lang => lang, library => logged_in_user.branchcode, blocktitle => 0 ) %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>Your messaging settings &rsaquo; [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog</title>
6 [% INCLUDE 'doc-head-close.inc' %]
7 [% BLOCK cssinclude %][% END %]
8 </head>
9 [% INCLUDE 'bodytag.inc' bodyid='opac-messaging' %]
10 [% INCLUDE 'masthead.inc' %]
11
12 <div class="main">
13     <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumbs">
14         <ol class="breadcrumb">
15             <li class="breadcrumb-item">
16                 <a href="/cgi-bin/koha/opac-main.pl">Home</a>
17             </li>
18             <li class="breadcrumb-item">
19                 <a href="/cgi-bin/koha/opac-user.pl">[% INCLUDE 'patron-title.inc' patron = logged_in_user %]</a>
20             </li>
21             <li class="breadcrumb-item active">
22                 <a href="#" aria-current="page">Your messaging settings</a>
23             </li>
24         </ol>
25     </nav> <!-- /#breadcrumbs -->
26
27     <div class="container-fluid">
28         <div class="row">
29             <div class="col col-lg-2 order-2 order-lg-1">
30                 <div id="navigation">
31                     [% INCLUDE 'navigation.inc' IsPatronPage=1 %]
32                 </div>
33             </div>
34             <div class="col-md-12 col-lg-10 order-1">
35
36                 [% IF Koha.Preference( 'EnhancedMessagingPreferencesOPAC' )  %]
37                     <div id="usermessaging" class="maincontent">
38                         <h1>Your messaging settings</h1>
39                         [% IF ( settings_updated ) %]
40                         <div class="alert alert-success"><p><strong>Settings updated</strong></p></div>
41                         [% END %]
42                         <form action="/cgi-bin/koha/opac-messaging.pl" method="post" name="opacmessaging">
43                             <input type="hidden" name="csrf_token" value="[% csrf_token | html %]" />
44                             <input type="hidden" name="modify" value="yes" />
45
46                                 <table class="table table-bordered table-condensed table-striped">
47                                     <caption class="sr-only">Your messaging settings</caption>
48                                     <thead>
49                                         <tr>
50                                             <th>&nbsp;</th>
51                                             <th>Days in advance</th>
52                                             [% IF ( SMSSendDriver ) %]<th>SMS</th>[% END %]
53                                             [% IF ( TalkingTechItivaPhone ) %]<th>Phone</th>[% END %]
54                                             [% IF Koha.Preference('PhoneNotification') %]<th>Phone</th>[% END %]
55                                             <th>Email</th>
56                                             <th>Digests only <i id="info_digests" data-toggle="tooltip" title="You can ask for a digest to reduce the number of messages. Messages will be saved and sent as a single message." data-placement="right" class="fa fa-info-circle"></i></th>
57                                         </tr>
58                                     </thead>
59                                     <tbody>
60                                     [% FOREACH messaging_preference IN messaging_preferences %]
61                                         [% NEXT IF !Koha.Preference( 'ILLModule' ) && messaging_preference.message_name.match('^Ill_') %]
62                                         [% NEXT IF messaging_preference.Auto_Renewals && Koha.Preference('AutoRenewalNotices') != 'preferences' %]
63                                         <tr>
64                                             <td>[% IF ( messaging_preference.Item_Due ) %]Item due
65                                                 [% ELSIF ( messaging_preference.Advance_Notice ) %]Advance notice
66                                                 [% ELSIF ( messaging_preference.Hold_Filled ) %]Hold filled
67                                                 [% ELSIF ( messaging_preference.Hold_Reminder ) %]Hold reminder
68                                                 [% ELSIF ( messaging_preference.Item_Check_in ) %]Item check-in
69                                                 [% ELSIF ( messaging_preference.Item_Checkout ) %]
70                                                     [% IF Koha.Preference( 'RenewalSendNotice' ) %]
71                                                         Item checkout and renewal
72                                                     [% ELSE %]
73                                                         Item checkout
74                                                     [% END %]
75                                                 [% ELSIF ( messaging_preference.Ill_ready ) %]Interlibrary loan ready
76                                                 [% ELSIF ( messaging_preference.Ill_unavailable ) %]Interlibrary loan unavailable
77                                                 [% ELSIF ( messaging_preference.Auto_Renewals ) %]Auto renewal
78                                                 [% ELSE %]Unknown [% END %]</td>
79                                             [% IF ( messaging_preference.takes_days ) %]
80                                                 <td><select class="input-mini" name="[% messaging_preference.message_attribute_id | html %]-DAYS">
81                                                 [% FOREACH select_day IN messaging_preference.select_days %]
82                                                     [% IF ( select_day.selected ) %]
83                                                         <option value="[% select_day.day | html %]" selected="selected">[% select_day.day | html %]</option>
84                                                     [% ELSE %]
85                                                         <option value="[% select_day.day | html %]">[% select_day.day | html %]</option>
86                                                     [% END %]
87                                                 [% END %]
88                                                 </select></td>
89                                             [% ELSE %]
90                                                 <td>-</td>
91                                             [% END %]
92                                             [% IF ( SMSSendDriver ) %]
93                                                 [% IF ( messaging_preference.transport_sms ) %]
94                                                     <td class="selectcol">
95                                                         [% IF ( messaging_preference.transports_sms ) %]
96                                                         <input type="checkbox" class="pmp_sms" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" checked="checked" />
97                                                         [% ELSE %]
98                                                             <input type="checkbox" class="pmp_sms" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" />
99                                                         [% END %]
100                                                     </td>
101                                                 [% ELSE %]
102                                                     <td>-</td>
103                                                 [% END %]
104                                             [% END %]
105                                             [% IF Koha.Preference('PhoneNotification') %]
106                                                 [% IF ( messaging_preference.transport_phone ) %]
107                                                     <td class="selectcol">
108                                                         [% IF ( messaging_preference.transports_phone ) %]
109                                                             <input type="checkbox"
110                                                                    class="phone"
111                                                                    id="phone[% messaging_preference.message_attribute_id | html %]"
112                                                                    name="[% messaging_preference.message_attribute_id | html %]"
113                                                                    value="phone" checked="checked" />
114                                                         [% ELSE %]
115                                                             <input type="checkbox"
116                                                                    class="phone"
117                                                                    id="phone[% messaging_preference.message_attribute_id | html %]"
118                                                                    name="[% messaging_preference.message_attribute_id | html %]"
119                                                                    value="phone" />
120                                                         [% END %]
121                                                     </td>
122                                                 [% ELSE %]
123                                                     <td>-</td>
124                                                 [% END %]
125                                             [% END %]
126                                             [% IF ( TalkingTechItivaPhone ) %]
127                                                 [% IF ( messaging_preference.transport_itiva ) %]
128                                                 <td class="selectcol">
129                                                 [% IF ( messaging_preference.transports_itiva ) %]
130                                                 <input type="checkbox"
131                                                             class="itiva"
132                                                             id="itiva[% messaging_preference.message_attribute_id | html %]"
133                                                             name="[% messaging_preference.message_attribute_id | html %]"
134                                                             value="itiva" checked="checked" />
135                                                 [% ELSE %]
136                                                 <input type="checkbox"
137                                                             class="itiva"
138                                                             id="itiva[% messaging_preference.message_attribute_id | html %]"
139                                                             name="[% messaging_preference.message_attribute_id | html %]"
140                                                             value="itiva" />
141                                                 [% END %]
142                                                 </td>
143                                                 [% ELSE %]
144                                                     <td>-</td>
145                                                 [% END %]
146                                             [% END %]
147
148                                             [% IF ( messaging_preference.transport_email ) %]
149                                                 <td class="selectcol">
150                                                     [% IF ( messaging_preference.transports_email ) %]
151                                                         <input type="checkbox" class="pmp_email" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" checked="checked" />
152                                                     [% ELSE %]
153                                                         <input type="checkbox" class="pmp_email" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" />
154                                                     [% END %]
155                                                 </td>
156                                             [% ELSE %]
157                                                 <td>-</td>
158                                             [% END %]
159
160                                             [% IF ( messaging_preference.has_digest ) %]
161                                                 <td class="selectcol">
162                                                     [% IF ( messaging_preference.digest ) %]
163                                                         <input type="checkbox" id="digest[% messaging_preference.message_attribute_id | html %]" value="[% messaging_preference.message_attribute_id | html %]" name="digest" checked="checked" data-toggle="tooltip" title="You must select a digestible transport to select digests" />
164                                                     [% ELSE %]
165                                                         <input type="checkbox" id="digest[% messaging_preference.message_attribute_id | html %]" value="[% messaging_preference.message_attribute_id | html %]" name="digest" data-toggle="tooltip" title="You must select a digestible transport to select digests" />
166                                                     [% END %]
167                                                 </td>
168                                             [% ELSE %]
169                                             <td>-</td>
170                                             [% END %]
171
172                                         </tr>
173                                     [% END # / FOREACH messaging_preferences%]
174                                 </tbody>
175                             </table>
176
177                             [% IF ( SMSSendDriver || Koha.Preference('TranslateNotices') ) %]
178                                 <fieldset class="rows">
179                                     <ol>
180                                         [% IF ( SMSSendDriver ) %]
181                                             <li>
182                                                 <strong>Notice:</strong> Some charges for text messages may be incurred when using this service. Please check with your mobile service provider if you have questions.
183                                             </li>
184                                             <li>
185                                                 <label for="SMSnumber">SMS number:</label>
186                                                 <input type="text" id="SMSnumber" name="SMSnumber" value="[% SMSnumber | html %]" pattern="^(\+[1-9]\d{0,2})?\d{1,12}$" />
187                                                 <span class="hint sms_number_help">Please enter numbers only. Prefix the number with + if including the country code.</span>
188                                             </li>
189
190                                             [% IF ( SMSSendDriver == 'Email' ) %]
191                                                 <li>
192                                                     <label for="sms_provider_id">SMS provider:</label>
193                                                     <select id="sms_provider_id" name="sms_provider_id">
194                                                         <option value="">Unknown</option>
195                                                         [% FOREACH s IN sms_providers %]
196                                                             [% IF s.id == sms_provider_id %]
197                                                                 <option value="[% s.id | html %]" selected="selected">[% s.name | html %]</option>
198                                                             [% ELSE %]
199                                                                 <option value="[% s.id | html %]">[% s.name | html %]</option>
200                                                             [% END %]
201                                                         [% END %]
202                                                     </select>
203                                                     <div class="hint">Please contact a library staff member if you are unsure of your mobile service provider, or you do not see your provider in this list.</div>
204                                                 </li>
205                                             [% END # /IF ( SMSSendDriver == 'Email' ) %]
206                                         [% END # /IF SMSSendDriver %]
207
208                                         [% IF Koha.Preference('TranslateNotices') %]
209                                             <li>
210                                                 <label for="lang">Preferred language for notices: </label>
211                                                 <select id="lang" name="lang">
212                                                     <option value="default">Default</option>
213                                                     [% FOR language IN languages %]
214                                                         [% FOR sublanguage IN language.sublanguages_loop %]
215                                                             [% IF language.plural %]
216                                                                 [% IF sublanguage.rfc4646_subtag == patron_lang %]
217                                                                     <option value="[% sublanguage.rfc4646_subtag | html %]" selected="selected">[% sublanguage.native_description | html %] [% sublanguage.region_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
218                                                                 [% ELSE %]
219                                                                     <option value="[% sublanguage.rfc4646_subtag | html %]">[% sublanguage.native_description | html %] [% sublanguage.region_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
220                                                                 [% END %]
221                                                             [% ELSE %]
222                                                                 [% IF sublanguage.rfc4646_subtag == patron_lang %]
223                                                                     <option value="[% sublanguage.rfc4646_subtag | html %]" selected="selected">[% sublanguage.native_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
224                                                                 [% ELSE %]
225                                                                     <option value="[% sublanguage.rfc4646_subtag | html %]">[% sublanguage.native_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
226                                                                 [% END %]
227                                                             [% END # /IF language.plural %]
228                                                         [% END # /FOR sublanguage %]
229                                                     [% END #/FOR language %]
230                                                 </select> <!-- /#lang -->
231                                             </li>
232                                         [% END #/IF Koha.Preference('TranslateNotices') %]
233                                     </ol>
234                                 </fieldset>
235                             [% END #/IF SMSSendDriver || Koha.Preference('TranslateNotices') %]
236
237                             <fieldset class="action">
238                                 <input type="submit" value="Submit changes" class="btn btn-primary" />
239                                 <a class="cancel" href="/cgi-bin/koha/opac-user.pl">Cancel</a>
240                             </fieldset>
241                         </form>
242                     </div> <!-- / #usermessaging -->
243                 [% ELSE %]
244                 <p><strong>You are not allowed to call this page directly</strong></p>
245                 [% END # /IF Koha.Preference( 'EnhancedMessagingPreferencesOPAC' ) %]
246            </div> <!-- / .col-lg-10 -->
247         </div> <!-- / .row -->
248     </div> <!-- / .container-fluid -->
249 </div> <!-- / .main -->
250
251 [% INCLUDE 'opac-bottom.inc' %]
252 [% BLOCK jsinclude %]
253     <script>
254         $(document).ready(function(){
255             $("#info_digests").tooltip();
256
257             function toggle_digest(id){
258                 if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
259                     $("#digest"+id).attr("disabled", false).tooltip('disable');
260                 } else {
261                     $("#digest"+id).attr("disabled", true).prop("checked",false).tooltip('enable');
262                 }
263
264             }
265             // At load time, we want digest disabled if no digest using transport is enabled
266             $(".pmp_email").each(function(){
267                 toggle_digest(Number($(this).attr("id").replace("email", "")));
268             });
269
270             // If user clears all digest using transports for a notice, disable digest checkbox
271             $(".pmp_email").click(function(){
272                 toggle_digest(Number($(this).attr("id").replace("email", "")));
273             });
274             $(".pmp_sms").click(function(){
275                 toggle_digest(Number($(this).attr("id").replace("sms", "")));
276             });
277
278         });
279
280         function normalizeSMS(value){
281             let has_plus = value.charAt(0) === '+';
282             let new_value = value.replace(/\D/g,'');
283             if ( has_plus ) new_value = '+' + new_value;
284             return new_value;
285         }
286
287         var sms_input = document.getElementById('SMSnumber');
288
289         if (typeof sms_input !== 'undefined' && sms_input !== null) {
290             sms_input.addEventListener('keyup', function(){
291                 var field = sms_input.value;
292                 sms_input.value = normalizeSMS(field);
293             });
294
295             sms_input.addEventListener('paste', function(event) {
296                 let paste = (event.clipboardData || window.clipboardData).getData('text');
297                 setTimeout(function () {
298                 sms_input.value = normalizeSMS(paste);
299                 }, 100);
300             });
301         }
302     </script>
303 [% END %]