2 [% INCLUDE 'doc-head-open.inc' %]
3 <title>[% IF ( LibraryNameTitle ) %][% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %][% ELSE %]Koha online[% END %] catalog › Your messaging settings</title>
4 [% INCLUDE 'doc-head-close.inc' %]
5 [% BLOCK cssinclude %][% END %]
7 [% INCLUDE 'bodytag.inc' bodyid='opac-messaging' %]
8 [% INCLUDE 'masthead.inc' %]
11 <nav aria-label="breadcrumb">
12 <ul class="breadcrumb">
13 <li class="breadcrumb-item">
14 <a href="/cgi-bin/koha/opac-main.pl">Home</a>
16 <li class="breadcrumb-item">
17 <a href="/cgi-bin/koha/opac-user.pl">[% INCLUDE 'patron-title.inc' patron = logged_in_user %]</a>
19 <li class="breadcrumb-item" aria-current="IsPatronPage">
20 <a href="#">Your messaging settings</a>
25 <div class="container-fluid">
27 <div class="col col-lg-2 order-2 order-lg-1">
29 [% INCLUDE 'navigation.inc' IsPatronPage=1 %]
32 <div class="col-md-12 col-lg-10 order-1">
34 [% IF Koha.Preference( 'EnhancedMessagingPreferencesOPAC' ) %]
35 <div id="usermessaging" class="maincontent">
36 <h3>Your messaging settings</h3>
37 [% IF ( settings_updated ) %]
38 <div class="alert alert-success"><h4>Settings updated</h4></div>
40 <form action="/cgi-bin/koha/opac-messaging.pl" method="post" name="opacmessaging">
41 <input type="hidden" name="csrf_token" value="[% csrf_token | html %]" />
42 <input type="hidden" name="modify" value="yes" />
44 <table class="table table-bordered table-condensed table-striped">
48 <th>Days in advance</th>
49 [% IF ( SMSSendDriver ) %]<th>SMS</th>[% END %]
50 [% IF ( TalkingTechItivaPhone ) %]<th>Phone</th>[% END %]
51 [% IF Koha.Preference('PhoneNotification') %]<th>Phone</th>[% END %]
53 <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 [% FOREACH messaging_preference IN messaging_preferences %]
58 [% NEXT IF !Koha.Preference( 'ILLModule' ) && messaging_preference.message_name.match('^Ill_') %]
59 [% NEXT IF messaging_preference.Auto_Renewals && Koha.Preference('AutoRenewalNotices') != 'preferences' %]
61 <td>[% IF ( messaging_preference.Item_Due ) %]Item due
62 [% ELSIF ( messaging_preference.Advance_Notice ) %]Advance notice
63 [% ELSIF ( messaging_preference.Hold_Filled ) %]Hold filled
64 [% ELSIF ( messaging_preference.Item_Check_in ) %]Item check-in
65 [% ELSIF ( messaging_preference.Item_Checkout ) %]
66 [% IF Koha.Preference( 'RenewalSendNotice' ) %]
67 Item checkout and renewal
71 [% ELSIF ( messaging_preference.Ill_ready ) %]Interlibrary loan ready
72 [% ELSIF ( messaging_preference.Ill_unavailable ) %]Interlibrary loan unavailable
73 [% ELSIF ( messaging_preference.Auto_Renewals ) %]Auto renewal
74 [% ELSE %]Unknown [% END %]</td>
75 [% IF ( messaging_preference.takes_days ) %]
76 <td><select class="input-mini" name="[% messaging_preference.message_attribute_id | html %]-DAYS">
77 [% FOREACH select_day IN messaging_preference.select_days %]
78 [% IF ( select_day.selected ) %]
79 <option value="[% select_day.day | html %]" selected="selected">[% select_day.day | html %]</option>
81 <option value="[% select_day.day | html %]">[% select_day.day | html %]</option>
88 [% IF ( SMSSendDriver ) %]
89 [% IF ( messaging_preference.transport_sms ) %]
90 <td class="selectcol">
91 [% IF ( messaging_preference.transports_sms ) %]
92 <input type="checkbox" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" checked="checked" />
94 <input type="checkbox" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" />
101 [% IF Koha.Preference('PhoneNotification') %]
102 [% IF ( messaging_preference.transport_phone ) %]
103 <td class="selectcol">
104 [% IF ( messaging_preference.transports_phone ) %]
105 <input type="checkbox"
106 id="phone[% messaging_preference.message_attribute_id | html %]"
107 name="[% messaging_preference.message_attribute_id | html %]"
108 value="phone" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
110 <input type="checkbox"
111 id="phone[% messaging_preference.message_attribute_id | html %]"
112 name="[% messaging_preference.message_attribute_id | html %]"
113 value="phone" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
120 [% IF ( TalkingTechItivaPhone ) %]
121 [% IF ( messaging_preference.transport_itiva ) %]
122 <td class="selectcol">
123 [% IF ( messaging_preference.transports_itiva ) %]
124 <input type="checkbox"
125 id="itiva[% messaging_preference.message_attribute_id | html %]"
126 name="[% messaging_preference.message_attribute_id | html %]"
127 value="itiva" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
129 <input type="checkbox"
130 id="itiva[% messaging_preference.message_attribute_id | html %]"
131 name="[% messaging_preference.message_attribute_id | html %]"
132 value="itiva" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
140 [% IF ( messaging_preference.transport_email ) %]
141 <td class="selectcol">
142 [% IF ( messaging_preference.transports_email ) %]
143 <input type="checkbox" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
145 <input type="checkbox" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
152 [% IF ( messaging_preference.has_digest ) %]
153 <td class="selectcol">
154 [% IF ( messaging_preference.digest ) %]
155 <input type="checkbox" id="digest[% messaging_preference.message_attribute_id | html %]" value="[% messaging_preference.message_attribute_id | html %]" name="digest" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
157 <input type="checkbox" id="digest[% messaging_preference.message_attribute_id | html %]" value="[% messaging_preference.message_attribute_id | html %]" name="digest" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
165 [% END # / FOREACH messaging_preferences%]
169 [% IF ( SMSSendDriver || Koha.Preference('TranslateNotices') ) %]
170 <fieldset class="rows">
172 [% IF ( SMSSendDriver ) %]
174 <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.
177 <label for="SMSnumber">SMS number:</label>
178 <input type="text" id="SMSnumber" name="SMSnumber" value="[% SMSnumber | html %]" pattern="^(\+[1-9]\d{0,2})?\d{1,12}$" />
179 <span class="hint sms_number_help">Please enter numbers only. Prefix the number with + if including the country code.</span>
182 [% IF ( SMSSendDriver == 'Email' ) %]
184 <label for="sms_provider_id">SMS provider:</label>
185 <select id="sms_provider_id" name="sms_provider_id">
186 <option value="">Unknown</option>
187 [% FOREACH s IN sms_providers %]
188 [% IF s.id == sms_provider_id %]
189 <option value="[% s.id | html %]" selected="selected">[% s.name | html %]</option>
191 <option value="[% s.id | html %]">[% s.name | html %]</option>
195 <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>
197 [% END # /IF ( SMSSendDriver == 'Email' ) %]
198 [% END # /IF SMSSendDriver %]
200 [% IF Koha.Preference('TranslateNotices') %]
202 <label for="lang">Preferred language for notices: </label>
203 <select id="lang" name="lang">
204 <option value="default">Default</option>
205 [% FOR language IN languages %]
206 [% FOR sublanguage IN language.sublanguages_loop %]
207 [% IF language.plural %]
208 [% IF sublanguage.rfc4646_subtag == patron_lang %]
209 <option value="[% sublanguage.rfc4646_subtag | html %]" selected="selected">[% sublanguage.native_description | html %] [% sublanguage.region_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
211 <option value="[% sublanguage.rfc4646_subtag | html %]">[% sublanguage.native_description | html %] [% sublanguage.region_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
214 [% IF sublanguage.rfc4646_subtag == patron_lang %]
215 <option value="[% sublanguage.rfc4646_subtag | html %]" selected="selected">[% sublanguage.native_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
217 <option value="[% sublanguage.rfc4646_subtag | html %]">[% sublanguage.native_description | html %] ([% sublanguage.rfc4646_subtag | html %])</option>
219 [% END # /IF language.plural %]
220 [% END # /FOR sublanguage %]
221 [% END #/FOR language %]
222 </select> <!-- /#lang -->
224 [% END #/IF Koha.Preference('TranslateNotices') %]
227 [% END #/IF SMSSendDriver || Koha.Preference('TranslateNotices') %]
229 <fieldset class="action">
230 <input type="submit" value="Submit changes" class="btn btn-primary" />
231 <a class="cancel" href="/cgi-bin/koha/opac-user.pl">Cancel</a>
234 </div> <!-- / #usermessaging -->
236 <h4>You are not allowed to call this page directly</h4>
237 [% END # /IF Koha.Preference( 'EnhancedMessagingPreferencesOPAC' ) %]
238 </div> <!-- / .col-lg-10 -->
239 </div> <!-- / .row -->
240 </div> <!-- / .container-fluid -->
241 </div> <!-- / .main -->
243 [% INCLUDE 'opac-bottom.inc' %]
244 [% BLOCK jsinclude %]
246 $(document).ready(function(){
247 $(".none").click(function(){
248 if($(this).attr("checked")){
249 var rowid = $(this).attr("id");
250 newid = Number(rowid.replace("none",""))
251 $("#sms"+newid).removeAttr("checked");
252 $("#email"+newid).removeAttr("checked");
253 $("#digest"+newid).removeAttr("checked");
254 $("#rss"+newid).removeAttr("checked");
257 $("#info_digests").tooltip();
260 function normalizeSMS(value){
261 let has_plus = value.charAt(0) === '+';
262 let new_value = value.replace(/\D/g,'');
263 if ( has_plus ) new_value = '+' + new_value;
267 var sms_input = document.getElementById('SMSnumber');
269 if (typeof sms_input !== 'undefined' && sms_input !== null) {
270 sms_input.addEventListener('keyup', function(){
271 var field = sms_input.value;
272 sms_input.value = normalizeSMS(field);
275 sms_input.addEventListener('paste', function(event) {
276 let paste = (event.clipboardData || window.clipboardData).getData('text');
277 setTimeout(function () {
278 sms_input.value = normalizeSMS(paste);