Bug 13618: Add html filters to all the variables
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / tools / letter.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% USE Koha %]
4 [% USE Branches %]
5 [% SET footerjs = 1 %]
6 [% INCLUDE 'doc-head-open.inc' %]
7 <title>Koha &rsaquo; Tools &rsaquo; Notices[% IF ( add_form or copy_form ) %][% IF ( modify ) %] &rsaquo; Modify notice[% ELSE %] &rsaquo; Add notice[% END %][% END %][% IF ( add_validate or copy_validate) %] &rsaquo; Notice added[% END %][% IF ( delete_confirm ) %] &rsaquo; Confirm deletion[% END %]</title>
8 [% INCLUDE 'doc-head-close.inc' %]
9 [% Asset.css("css/datatables.css") | $raw %]
10 <style type="text/css">#preview_template .modal-dialog { width : 80%; } .spinner { display: none; } @media (max-width: 767px) { #preview_template { margin: 0; width : auto; } }</style>
11 </head>
12
13 <body id="tools_letter" class="tools">
14 [% INCLUDE 'header.inc' %]
15 [% INCLUDE 'letters-search.inc' %]
16
17 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; [% IF ( add_form or copy_form) %][% IF ( modify ) %]<a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; slips</a> &rsaquo; Modify notice[% ELSE %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; slips</a> &rsaquo; Add notice[% END %][% ELSE %][% IF ( add_validate or copy_validate) %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; slips</a> &rsaquo; Notice added[% ELSE %][% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; slips</a> &rsaquo; Confirm deletion[% ELSE %]Notices &amp; slips[% END %][% END %][% END %]</div>
18
19 <div id="preview_template" class="modal in" tabindex="-1" role="dialog" aria-labelledby="preview_template_label" aria-hidden="true">
20     <div class="modal-dialog modal-lg">
21     <div class="modal-content">
22     <div class="modal-header">
23         <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
24         <h3 id="preview_template_label">Preview notice template</h3>
25     </div>
26     <div class="modal-body">
27         <div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
28     </div>
29     <div class="modal-footer">
30         <!-- TODO <a href="#" class="btn btn-default" id="preview_template_button" role="button" data-toggle="modal">Convert using the Template Toolkit syntax</a>-->
31         <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
32     </div>
33     </div>
34     </div>
35 </div>
36
37 [% IF add_form or copy_form %]
38     <div class="main container-fluid">
39         <div class="row">
40             <div class="col-md-8 col-md-offset-2">
41 [% ELSE %]
42     <div id="doc3" class="yui-t2">
43         <div id="bd">
44             <div id="yui-main">
45                 <div class="yui-b">
46 [% END %]
47
48 [% IF ( no_op_set ) %]
49     <h1>Notices &amp; slips</h1>
50     <form method="get" action="/cgi-bin/koha/tools/letter.pl" id="selectlibrary">
51       <input type="hidden" name="searchfield" value="[% searchfield | html %]" />
52     [% UNLESS independant_branch %]
53       <p>
54         Select a library :
55             <select name="branchcode" id="branch" style="width:20em;">
56                 <option value="*">All libraries</option>
57                 [% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode ) %]
58             </select>
59       </p>
60     [% END %]
61       <div id="toolbar" class="btn-toolbar">
62           <button type="submit" class="btn btn-default btn-sm" id="newnotice"><i class="fa fa-plus"></i> New notice</button>
63         <input type="hidden" id="op" name="op" />
64       </div>
65     </form>
66
67                 [% IF ( search ) %]
68         <p>You searched for <b>[% searchfield | html %]</b></p>
69                 [% END %]
70                 [% IF ( letter && !independant_branch) %]
71             [% select_for_copy = BLOCK | html %]
72             <select name="branchcode">
73                 [% FOREACH l IN Branches.all() %]
74                 <option value="[% l.branchcode | html %]">Copy to [% l.branchname | html %]</option>
75                 [% END %]
76             </select>
77             [% END %]
78         [% END %]
79         [% IF letter %]
80           <table id="lettert">
81             <thead>
82               <tr>
83                 <th>Library</th>
84                 <th>Module</th>
85                 <th>Code</th>
86                 <th>Name</th>
87                 <th class="nosort">Copy notice</th>
88                 <th class="nosort">Actions</th>
89               </tr>
90             </thead>
91             <tbody>
92               [% FOREACH lette IN letter %]
93                 [% can_edit = lette.branchcode || !independant_branch | html %]
94                 <tr>
95                   <td>[% IF lette.branchname %][% lette.branchname | html %][% ELSE %](All libraries)[% END %]</td>
96                   <td>[% lette.module | html %]</td>
97                   <td>[% lette.code | html %]</td>
98                   <td>[% lette.name | html %]</td>
99                   <td class="actions">
100                     [% IF !independant_branch || !lette.branchcode %]
101                       <form method="post" action="/cgi-bin/koha/tools/letter.pl">
102                         <input type="hidden" name="op" value="copy_form" />
103                         <input type="hidden" name="oldbranchcode" value="[% lette.branchcode | html %]" />
104                         <input type="hidden" name="module" value="[% lette.module | html %]" />
105                         <input type="hidden" name="code" value="[% lette.code | html %]" />
106                         [% IF independant_branch %]
107                           <input type="hidden" name="branchcode" value="[% independant_branch | html %]" />
108                         [% ELSE %]
109                           [% select_for_copy | $raw %]
110                         [% END %]
111                         <button class="btn btn-default btn-xs"><i class="fa fa-clone"></i> Copy</button>
112                       </form>
113                     [% END %]
114                   </td>
115                   <td class="actions">
116                     [% IF can_edit %]
117                       <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/letter.pl?op=add_form&amp;branchcode=[% lette.branchcode | html %]&amp;module=[% lette.module | html %]&amp;code=[% lette.code | html %]"><i class="fa fa-pencil"></i> Edit</a>
118                     [% END %]
119                     [% IF !lette.protected && can_edit %]
120                       <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/letter.pl?op=delete_confirm&amp;branchcode=[% lette.branchcode | html %]&amp;module=[% lette.module | html %]&amp;code=[% lette.code | html %]"><i class="fa fa-trash"></i> Delete</a>
121                     [% END %]
122                   </td>
123                 </tr>
124               [% END %]
125             </tbody>
126           </table>
127         [% ELSE %]
128           <div class="dialog message">
129           [% IF ( branchcode ) %]
130              <p>There are no notices for this library.</p>
131           [% ELSE %]
132               <p>There are no notices.</p>
133           [% END %]
134           </div>
135         [% END %]
136 [% END %]
137
138         
139 [% IF add_form or copy_form %]
140 <h1>[% IF ( modify ) %]Modify notice[% ELSE %]Add notice[% END %]</h1>
141
142     <div id="toolbar" class="btn-toolbar">
143         <div class="btn-group">
144             <button class="btn btn-default btn-sm" id="submit_form"><i class="fa fa-save"></i> Save</button>
145             <button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
146             <span class="caret"></span>
147             </button>
148             <ul class="dropdown-menu">
149                 <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
150             </ul>
151         </div>
152         <a class="btn btn-default btn-sm cancel" href="/cgi-bin/koha/tools/letter.pl"><i class="fa fa-remove"></i> Cancel</a>
153     </div>
154
155         <form id="add_notice" name="Aform" method="post" enctype="multipart/form-data" class="validate">
156         [% IF add_form %]
157           <input type="hidden" name="op" id="op" value="add_validate" />
158         [% ELSE %]
159           <input type="hidden" name="op" id="op" value="copy_validate" />
160         [% END %]
161
162                 <input type="hidden" name="checked" value="0" />
163                 [% IF ( modify ) %]
164                 <input type="hidden" name="add" value="0" />
165                 [% ELSE %]
166                 <input type="hidden" name="add" value="1" />
167                 [% END %]
168                 <fieldset class="rows">
169             <input type="hidden" name="oldbranchcode" value="[% oldbranchcode | html %]" />
170             <ol>
171             [% IF independant_branch %]
172                 <input type="hidden" name="branchcode" value="[% independant_branch | html %]" />
173             [% ELSE %]
174             <li>
175
176                 [% IF adding %]
177                     <label for="branch">Library:</label>
178                     <select name="branchcode" id="branch" style="width:20em;">
179                         <option value="">All libraries</option>
180                         [% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode ) %]
181                     </select>
182                 [% ELSE %]
183                     <span class="label">Library:</span>
184                     <input type="hidden" id="branch" name="branchcode" value="[% branchcode | html %]" />
185                     [% IF ( branchcode ) %]
186                        [% Branches.GetName( branchcode ) | html %]
187                     [% ELSE %]
188                         All libraries
189                     [% END %]
190                 [% END %]
191             </li>
192             [% END %]
193                         <li>
194                                 <label for="module">Koha module:</label>
195                                 <input type="hidden" name="oldmodule" value="[% module | html %]" />
196                 [% IF adding  %]
197                   <select name="module" id="newmodule">
198                 [% ELSE %]
199                   <select name="module" id="module">
200                 [% END %]
201                                     [% IF ( module == "acquisition" ) %]
202                                       <option value="acquisition" selected="selected">Acquisition</option>
203                                     [% ELSE %]
204                                       <option value="acquisition" >Acquisition</option>
205                                     [% END %]
206                                     [% IF ( module == "catalogue" ) %]
207                                       <option value="catalogue" selected="selected">Catalog</option>
208                                     [% ELSE %]
209                                       <option value="catalogue" >Catalog</option>
210                                     [% END %]
211                                     [% IF ( module == "circulation" ) %]
212                                       <option value="circulation" selected="selected">Circulation</option>
213                                     [% ELSE %]
214                                       <option value="circulation">Circulation</option>
215                                     [% END %]
216                                     [% IF ( module == "orderacquisition" ) %]
217                                       <option value="orderacquisition" selected="selected">Order acquisition</option>
218                                     [% ELSE %]
219                                       <option value="orderacquisition">Order acquisition</option>
220                                     [% END %]
221                                     [% IF ( module == "claimacquisition" ) %]
222                                       <option value="claimacquisition" selected="selected">Claim acquisition</option>
223                                     [% ELSE %]
224                                       <option value="claimacquisition">Claim acquisition</option>
225                                     [% END %]
226                                     [% IF ( module == "claimissues" ) %]
227                                       <option value="claimissues" selected="selected">Claim serial issue</option>
228                                     [% ELSE %]
229                                       <option value="claimissues">Claim serial issue</option>
230                                     [% END %]
231                                     [% IF ( module == "reserves" ) %]
232                                       <option value="reserves" selected="selected">Holds</option>
233                                     [% ELSE %]
234                                       <option value="reserves">Holds</option>
235                                     [% END %]
236                                     [% IF ( module == "members" ) %]
237                                       <option value="members" selected="selected">Members</option>
238                                     [% ELSE %]
239                                       <option value="members">Members</option>
240                                     [% END %]
241                                     [% IF ( module == "serial" ) %]
242                                       <option value="serial" selected="selected">Serials (new issue)</option>
243                                     [% ELSE %]
244                                       <option value="serial">Serials (new issue)</option>
245                                     [% END %]
246                                     [% IF ( module == "suggestions" ) %]
247                                       <option value="suggestions" selected="selected">Suggestions</option>
248                                     [% ELSE %]
249                                       <option value="suggestions">Suggestions</option>
250                                     [% END %]
251                 </select>
252             </li>
253             <li>
254               [% IF adding %]
255                   <label for="code" class="required">Code:</label>
256                   <input type="text" id="code" name="code" size="20" maxlength="20" value="" required="required"/>
257                   <span class="required">Required</span>
258               [% ELSE %]
259                   <span class="label">Code:</span>
260                   <input type="hidden" id="code" name="code" value="[% code | html %]" />
261                   [% code | html %]
262               [% END %]
263             </li>
264             <li>
265               <label for="name" class="required">Name:</label>
266               <input type="text" id="name" name="name" size="60" value="[% letter_name | html %]" required="required" />
267               <span class="required">Required</span>
268             </li>
269             [% IF code and preview_is_available%]
270                 <li>
271                     <label for="name">Data for preview:</label>
272                     [% SWITCH code %]
273                     [% CASE 'CHECKIN' %]
274                         <input type="text" id="data_preview" name="data_preview" value="" placeholder="barcode" />
275                     [% CASE 'CHECKOUT' %]
276                         <input type="text" id="data_preview" name="data_preview" value="" placeholder="barcode|borrowernumber" />
277                     [% CASE 'HOLD_SLIP' %]
278                         <input type="text" id="data_preview" name="data_preview" value="" placeholder="biblionumber|borrowernumber" />
279                     [% CASE %]
280                         Not supported yet.
281                     [% END %]
282                     </li>
283             [% END %]
284         </ol>
285     </fieldset>
286         [% IF Koha.Preference('TranslateNotices') %]
287         <div style="clear:both"></div>
288             <div id="tabs">
289                 <ul>
290                     <li><a href="#lang_default">Default</a></li>
291                     [% FOR language IN languages %]
292                         [% FOR sublanguage IN language.sublanguages_loop %]
293                             [% IF language.plural %]
294                                 <li><a href="#lang_[% sublanguage.rfc4646_subtag | html %]">[% sublanguage.native_description | html %] [% sublanguage.region_description | html %] ([% sublanguage.rfc4646_subtag | html %])</a></li>
295                             [% ELSE %]
296                                 <li><a href="#lang_[% sublanguage.rfc4646_subtag | html %]">[% sublanguage.native_description | html %] ([% sublanguage.rfc4646_subtag | html %])</a></li>
297                             [% END %]
298                         [% END %]
299                     [% END %]
300                 </ul>
301         [% END %]
302
303         [% FOREACH lang IN letters.keys %]
304             <div id="lang_[% lang | html %]">
305         <div class="transport-types" style="clear:both">
306         [% FOR mtt IN letters.$lang.templates.keys.sort %]
307             [% SET letter = letters.$lang.templates.$mtt %]
308             <h3>
309                 [% SWITCH letter.message_transport_type %]
310                 [% CASE 'email' %]
311                   Email
312                 [% CASE 'print' %]
313                   Print
314                 [% CASE 'sms' %]
315                   SMS
316                 [% CASE 'feed' %]
317                   Feed
318                 [% CASE 'phone' %]
319                   Phone
320                 [% CASE %]
321                   [% letter.message_transport_type | html %]
322                 [% END %]
323             </h3>
324             [% IF letter.message_transport_type == "sms" and not Koha.Preference("SMSSendDriver") %]
325               <fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]" disabled="disabled">
326                 <div class="dialog message">You should enable the SMSSendDriver preference to use the SMS templates.</div>
327             [% ELSIF letter.message_transport_type == "phone" and not Koha.Preference("TalkingTechItivaPhoneNotification") %]
328               <fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]" disabled="disabled">
329                 <div class="dialog message">You should enable the TalkingTechItivaPhoneNotification preference to use the phone templates.</div>
330             [% ELSE %]
331               <fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]">
332             [% END %]
333               <ol>
334                 <li>
335                   <input type="hidden" name="message_transport_type" value="[% letter.message_transport_type | html %]" />
336                   <input type="hidden" name="lang" value="[% lang | html %]" />
337                   <label for="is_html_[% letter.message_transport_type | html %]_[% lang | html %]">HTML message:</label>
338                   [% IF letter.is_html %]
339                     <input type="checkbox" name="is_html_[% letter.message_transport_type | html %]" id="is_html_[% letter.message_transport_type | html %]_[% lang | html %]" value="1" checked="checked" />
340                   [% ELSE %]
341                     <input type="checkbox" name="is_html_[% letter.message_transport_type | html %]" id="is_html_[% letter.message_transport_type | html %]_[% lang | html %]" value="1" />
342                   [% END %]
343                 </li>
344                 <li>
345                   <label for="title_[% letter.message_transport_type | html %]_[% lang | html %]">Message subject:</label><input type="text" id="title_[% letter.message_transport_type | html %]_[% lang | html %]" name="title" size="60" value="[% letter.title | html %]" />
346                 </li>
347                 <li>
348                   <label for="SQLfieldname_[% letter.message_transport_type | html %]_[% lang | html %]">Message body:</label>
349                   [% IF letter.message_transport_type == 'sms' %]
350                     <span class="sms_counter" id="sms_counter_[% lang | html %]">[% IF letter.content && letter.content.length > 0 %][% letter.content.length | html %][% ELSE %]0[% END %]/160 characters</span>
351                   [% END %]
352                   <table>
353                     <tr>
354                       <td>
355                         <select name="SQLfieldname" id="SQLfieldname_[% letter.message_transport_type | html %]_[% lang | html %]" multiple="multiple" size="9">
356                           [% FOREACH SQLfieldname IN SQLfieldnames %]
357                             <option value="[% SQLfieldname.value | html %]">[% SQLfieldname.text | html %]</option>
358                           [% END %]
359                         </select>
360                       </td>
361                         <td class="actions">
362                             <button type="button" data-containerid="[% letter.message_transport_type | html %]_[% lang | html %]" class="btn btn-default btn-sm insert">Insert <i class="fa fa-long-arrow-right"></i></button>
363                         </td>
364                       <td><textarea name="content" data-lang="[% lang | html %]" class="content_[% letter.message_transport_type | html %]" id="content_[% letter.message_transport_type | html %]_[% lang | html %]" cols="80" rows="15">[% letter.content | html %]</textarea></td>
365                     </tr>
366                   </table>
367                 </li>
368                 [% IF preview_is_available %]
369                     <li>
370                         <a href="/cgi-bin/koha/svc/letters/preview" class="preview_template btn btn-default btn-xs" title="Preview this notice template" data-mtt="[% letter.message_transport_type | html %]" data-lang="[% lang | html %]"><i class="fa fa-eye"></i> Preview</a>
371                     </li>
372                 [% END %]
373               </ol>
374             </fieldset>
375             [% END %]
376             </div>
377         </div> <!-- / #transport-types -->
378         [% END %]
379         [% IF Koha.Preference('TranslateNotices') %]
380         </div>
381         [% END %]
382
383         [% IF code.search('DGST') %] <span class="overdue">Warning, this is a template for a Digest, as such, any references to branch data ( e.g. branches.branchname ) will refer to the borrower's home branch.</span> [% END %]
384
385         <input type="hidden" id="redirect" name="redirect" value="" />
386         <input type="hidden" name="searchfield" value="[% searchfield | html %]" />
387     </form>
388 [% END %]
389
390 [% IF ( add_validate or copy_validate) %]
391         Data recorded
392         <form action="[% action | html %]" method="post">
393         <input type="submit" value="OK" />
394         </form>
395 [% END %]
396
397 [% IF ( delete_confirm ) %]
398     <div class="dialog alert">
399         <h3>Delete notice?</h3>
400         <table>
401             <thead>
402             <tr>
403                 <th>Library</th>
404                 <th>Module</th>
405                 <th>Code</th>
406                 <th>Name</th>
407             </tr>
408             </thead>
409             <tr>
410                 <td>[% IF letter.branchcode %][% Branches.GetName( letter.branchcode ) | html %][% ELSE %](All libraries)[% END %]</td>
411                 <td>[% letter.module | html %]</td>
412                 <td>[% letter.code | html %]</td>
413                 <td>[% letter.name | html %]</td>
414             </tr>
415         </table>
416             <form action="[% action | html %]" method="post">
417             <input type="hidden" name="op" value="delete_confirmed">
418             <input type="hidden" name="branchcode" value="[% letter.branchcode | html %]" />
419             <input type="hidden" name="code" value="[% letter.code | html %]" />
420             <input type="hidden" name="module" value="[% letter.module | html %]" />
421             <button type="submit" class="approve"><i class="fa fa-check"></i> Yes, delete</button>
422         </form>
423
424         <form action="[% action | html %]" method="get">
425             <button type="submit" class="deny"><i class="fa fa-times"></i> No, do not delete</button>
426         </form>
427     </div>
428 [% END %]
429
430 [% IF ( delete_confirmed ) %]
431         Data deleted
432         <form action="[% action | html %]" method="post">
433         <input type="submit" value="OK" />
434         </form>
435 [% END %]
436
437 </div>
438 </div>
439 [% UNLESS add_form or copy_form %]
440     <div class="yui-b noprint">
441         [% INCLUDE 'tools-menu.inc' %]
442     </div>
443 [% END %]
444 </div>
445
446 [% MACRO jsinclude BLOCK %]
447     [% Asset.js("js/tools-menu.js") | $raw %]
448     [% INCLUDE 'datatables.inc' %]
449     [% Asset.js("lib/jquery/plugins/jquery.fixFloat.js") | $raw %]
450     [% Asset.js("lib/jquery/plugins/jquery.insertatcaret.js") | $raw %]
451     <script>
452         var no_op_set = '[% no_op_set | html %]';
453         var interface = '[% interface | html %]';
454         var theme = '[% theme | html %]';
455         var add_form = '[% add_form | html %]';
456         var copy_form = '[% copy_form | html %]';
457         var code = '[% code | html %]';
458         var new_lettercode = '[% new_lettercode | html %]';
459         var new_branchcode = '[% new_branchcode | html %]';
460         var MSG_CODE_EXISTS = _("A default letter with the code '%s' already exists.");
461         var MSG_CODE_EXISTS_FOR_LIBRARY = _("A letter with the code '%s' already exists for '%s'.");
462         var MSG_EMPTY_TITLE_AND_CONTENT = _("Please specify title and content for %s");
463         var MSG_EMPTY_TEMPLATES = _("Please fill at least one template.");
464         var MSG_LOADING = _("Loading");
465      </script>
466     [% Asset.js("js/letter.js") | $raw %]
467 [% END %]
468
469 [% INCLUDE 'intranet-bottom.inc' %]