5 [% USE TablesSettings %]
7 [% INCLUDE 'doc-head-open.inc' %]
9 Koha › Tools › Notices
10 [% IF ( add_form or copy_form ) %]
12 › Modify notice
17 [% IF ( add_validate or copy_validate) %]
20 [% IF ( delete_confirm ) %]
21 › Confirm deletion
24 [% INCLUDE 'doc-head-close.inc' %]
25 <style>#preview_template .modal-dialog { width : 80%; } .spinner { display: none; } @media (max-width: 767px) { #preview_template { margin: 0; width : auto; } }</style>
28 <body id="tools_letter" class="tools">
29 [% INCLUDE 'header.inc' %]
30 [% INCLUDE 'letters-search.inc' %]
32 <div id="breadcrumbs">
33 <a href="/cgi-bin/koha/mainpage.pl">Home</a> ›
34 <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> ›
35 [% IF ( add_form or copy_form) %]
37 <a href="/cgi-bin/koha/tools/letter.pl">Notices & slips</a> ›
40 <a href="/cgi-bin/koha/tools/letter.pl">Notices & slips</a> ›
44 [% IF ( add_validate or copy_validate) %]
45 <a href="/cgi-bin/koha/tools/letter.pl">Notices & slips</a> ›
48 [% IF ( delete_confirm ) %]
49 <a href="/cgi-bin/koha/tools/letter.pl">Notices & slips</a> ›
56 </div> <!-- /#breadcrumbs -->
58 <div id="preview_template" class="modal in" tabindex="-1" role="dialog" aria-labelledby="preview_template_label" aria-hidden="true">
59 <div class="modal-dialog modal-lg">
60 <div class="modal-content">
61 <div class="modal-header">
62 <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
63 <h3 id="preview_template_label">Preview notice template</h3>
65 <div class="modal-body">
67 <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading
70 <div class="modal-footer">
71 <!-- TODO <a href="#" class="btn btn-default" id="preview_template_button" role="button" data-toggle="modal">Convert using the Template Toolkit syntax</a>-->
72 <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
74 </div> <!-- /.modal-content -->
75 </div> <!-- /.modal-dialog -->
76 </div> <!-- /#preview_template -->
78 [% IF add_form or copy_form %]
79 <div class="main container-fluid">
81 <div class="col-md-8 col-md-offset-2">
83 <div class="main container-fluid">
85 <div class="col-sm-10 col-sm-push-2">
89 [% IF ( no_op_set ) %]
90 <h1>Notices & slips</h1>
91 <form method="get" action="/cgi-bin/koha/tools/letter.pl" id="selectlibrary">
92 <input type="hidden" name="searchfield" value="[% searchfield | html %]" />
93 [% UNLESS independant_branch %]
96 <select name="branchcode" id="branch" style="width:20em;">
97 <option value="*">All libraries</option>
98 [% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode ) %]
102 </form> <!-- /#selectlibrary -->
104 <div id="toolbar" class="btn-toolbar">
105 <div class="btn-group">
106 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-plus"></i> New notice <span class="caret"></span></button>
107 <ul class="dropdown-menu">
108 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=acquisition">Acquisition</a></li>
109 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=catalogue">Catalog</a></li>
110 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=circulation">Circulation</a></li>
111 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=claimacquisition">Claim acquisition</a></li>
112 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=claimissues">Claim serial issue</a></li>
113 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=reserves">Holds</a></li>
114 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=orderacquisition">Order acquisition</a></li>
115 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=members">Patrons</a></li>
116 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=serial">Serials (new issue)</a></li>
117 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=suggestions">Suggestions</a></li>
118 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=pos">Point of sale</a></li>
121 </div> <!-- /#toolbar -->
124 <p>You searched for <b>[% searchfield | html %]</b></p>
127 [% IF ( letter && !independant_branch) %]
128 [% select_for_copy = BLOCK %]
129 <select name="branchcode">
130 [% FOREACH l IN Branches.all() %]
131 <option value="[% l.branchcode | html %]">Copy to [% l.branchname | html %]</option>
145 <th class="nosort">Copy notice</th>
146 <th class="nosort">Actions</th>
150 [% FOREACH lette IN letter %]
151 [% can_edit = lette.branchcode || !independant_branch %]
154 [% IF lette.branchname %]
155 [% lette.branchname | html %]
161 [% SWITCH lette.module %]
162 [% CASE 'acquisition' %]<span>Acquisition</span>
163 [% CASE 'catalogue' %]<span>Catalog</span>
164 [% CASE 'circulation' %]<span>Circulation</span>
165 [% CASE 'orderacquisition' %]<span>Order acquisition</span>
166 [% CASE 'claimacquisition' %]<span>Claim acquisition</span>
167 [% CASE 'claimissues' %]<span>Claim serial issue</span>
168 [% CASE 'reserves' %]<span>Holds</span>
169 [% CASE 'members' %]<span>Patrons</span>
170 [% CASE 'serial' %]<span>Serials (new issue)</span>
171 [% CASE 'suggestions' %]<span>Suggestions</span>
172 [% CASE 'pos' %]<span>Point of sale</span>
173 [% CASE %]<span>[% lette.module | html %]</span>
176 <td>[% lette.code | html %]</td>
177 <td>[% lette.name | html %]</td>
179 [% IF !independant_branch || !lette.branchcode %]
180 <form method="post" action="/cgi-bin/koha/tools/letter.pl">
181 <input type="hidden" name="op" value="copy_form" />
182 <input type="hidden" name="oldbranchcode" value="[% lette.branchcode | html %]" />
183 <input type="hidden" name="module" value="[% lette.module | html %]" />
184 <input type="hidden" name="code" value="[% lette.code | html %]" />
185 [% IF independant_branch %]
186 <input type="hidden" name="branchcode" value="[% independant_branch | html %]" />
188 [% select_for_copy | $raw %]
190 <button class="btn btn-default btn-xs"><i class="fa fa-clone"></i> Copy</button>
192 [% END # /IF !independent_branch %]
196 <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/letter.pl?op=add_form&branchcode=[% lette.branchcode | html %]&module=[% lette.module | html %]&code=[% lette.code | html %]"><i class="fa fa-pencil"></i> Edit</a>
198 [% IF !lette.protected && can_edit %]
199 <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/letter.pl?op=delete_confirm&branchcode=[% lette.branchcode | html %]&module=[% lette.module | html %]&code=[% lette.code | html %]"><i class="fa fa-trash"></i> Delete</a>
203 [% END # /FOREACH lette %]
205 </table> <!-- /#lettert -->
206 [% ELSE # IF lette %]
207 <div class="dialog message">
208 [% IF ( branchcode ) %]
209 <p>There are no notices for this library.</p>
211 <p>There are no notices.</p>
214 [% END # /IF lette %]
215 [% END # /IF no_op_set %]
217 [% IF add_form or copy_form %]
218 <h1>[% IF ( modify ) %]Modify notice[% ELSE %]Add notice[% END %]</h1>
220 <div id="toolbar" class="btn-toolbar">
221 <div class="btn-group">
222 <button class="btn btn-default" id="submit_form"><i class="fa fa-save"></i> Save</button>
223 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
224 <span class="caret"></span>
226 <ul class="dropdown-menu">
227 <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
230 <a class="btn btn-default cancel" href="/cgi-bin/koha/tools/letter.pl"><i class="fa fa-remove"></i> Cancel</a>
231 </div> <!-- /#toolbar -->
233 <form id="add_notice" name="Aform" method="post" enctype="multipart/form-data" class="validate">
235 <input type="hidden" name="op" id="op" value="add_validate" />
237 <input type="hidden" name="op" id="op" value="copy_validate" />
240 <input type="hidden" name="checked" value="0" />
243 <input type="hidden" name="add" value="0" />
245 <input type="hidden" name="add" value="1" />
248 <fieldset class="rows">
249 <input type="hidden" name="oldbranchcode" value="[% oldbranchcode | html %]" />
250 [% IF independant_branch %]
251 <input type="hidden" name="branchcode" value="[% independant_branch | html %]" />
257 <label for="branch">Library:</label>
258 <select name="branchcode" id="branch" style="width:20em;">
259 <option value="">All libraries</option>
260 [% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode ) %]
263 <span class="label">Library:</span>
264 <input type="hidden" id="branch" name="branchcode" value="[% branchcode | html %]" />
265 [% IF ( branchcode ) %]
266 [% Branches.GetName( branchcode ) | html %]
272 [% END # /IF independant_branch %]
274 <label for="module">Koha module:</label>
275 <input type="hidden" name="oldmodule" value="[% module | html %]" />
277 <select name="module" id="newmodule">
279 <select name="module" id="module">
281 [% IF ( module == "acquisition" ) %]
282 <option value="acquisition" selected="selected">Acquisition</option>
284 <option value="acquisition" >Acquisition</option>
286 [% IF ( module == "catalogue" ) %]
287 <option value="catalogue" selected="selected">Catalog</option>
289 <option value="catalogue" >Catalog</option>
291 [% IF ( module == "circulation" ) %]
292 <option value="circulation" selected="selected">Circulation</option>
294 <option value="circulation">Circulation</option>
296 [% IF ( module == "orderacquisition" ) %]
297 <option value="orderacquisition" selected="selected">Order acquisition</option>
299 <option value="orderacquisition">Order acquisition</option>
301 [% IF ( module == "claimacquisition" ) %]
302 <option value="claimacquisition" selected="selected">Claim acquisition</option>
304 <option value="claimacquisition">Claim acquisition</option>
306 [% IF ( module == "claimissues" ) %]
307 <option value="claimissues" selected="selected">Claim serial issue</option>
309 <option value="claimissues">Claim serial issue</option>
311 [% IF ( module == "reserves" ) %]
312 <option value="reserves" selected="selected">Holds</option>
314 <option value="reserves">Holds</option>
316 [% IF ( module == "members" ) %]
317 <option value="members" selected="selected">Patrons</option>
319 <option value="members">Patrons</option>
321 [% IF ( module == "serial" ) %]
322 <option value="serial" selected="selected">Serials (new issue)</option>
324 <option value="serial">Serials (new issue)</option>
326 [% IF ( module == "suggestions" ) %]
327 <option value="suggestions" selected="selected">Suggestions</option>
329 <option value="suggestions">Suggestions</option>
331 [% IF ( module == "pos" ) %]
332 <option value="pos" selected="selected">Point of sale</option>
334 <option value="pos">Point of sale</option>
340 <label for="code" class="required">Code:</label>
341 <input type="text" id="code" name="code" size="20" maxlength="20" value="" required="required"/>
342 <span class="required">Required</span>
344 <span class="label">Code:</span>
345 <input type="hidden" id="code" name="code" value="[% code | html %]" />
350 <label for="name" class="required">Name:</label>
351 <input type="text" id="name" name="name" size="60" value="[% letter_name | html %]" required="required" />
352 <span class="required">Required</span>
354 [% IF code and preview_is_available%]
356 <label for="name">Data for preview:</label>
359 <input type="text" id="data_preview" name="data_preview" value="" placeholder="barcode" />
360 [% CASE 'CHECKOUT' %]
361 <input type="text" id="data_preview" name="data_preview" value="" placeholder="barcode|borrowernumber" />
362 [% CASE 'HOLD_SLIP' %]
363 <input type="text" id="data_preview" name="data_preview" value="" placeholder="biblionumber|borrowernumber" />
370 </fieldset> <!-- /#add_notice -->
372 [% IF Koha.Preference('TranslateNotices') %]
373 <div style="clear:both"></div>
376 <li><a href="#lang_default">Default</a></li>
377 [% FOR language IN languages %]
378 [% FOR sublanguage IN language.sublanguages_loop %]
379 [% IF language.plural %]
380 <li><a href="#lang_[% sublanguage.rfc4646_subtag | uri %]">[% sublanguage.native_description | html %] [% sublanguage.region_description | html %] ([% sublanguage.rfc4646_subtag | html %])</a></li>
382 <li><a href="#lang_[% sublanguage.rfc4646_subtag | uri %]">[% sublanguage.native_description | html %] ([% sublanguage.rfc4646_subtag | html %])</a></li>
387 [% END # /IF TranslateNotices %]
389 [% FOREACH lang IN letters.keys %]
390 <div id="lang_[% lang | html %]">
391 <div class="transport-types" style="clear:both">
392 [% FOR mtt IN letters.$lang.templates.keys.sort %]
393 [% SET letter = letters.$lang.templates.$mtt %]
395 [% SWITCH letter.message_transport_type %]
407 [% letter.message_transport_type | html %]
410 [% IF letter.message_transport_type == "sms" and not Koha.Preference("SMSSendDriver") %]
411 <fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]" disabled="disabled">
412 <div class="dialog message">You should enable the SMSSendDriver preference to use the SMS templates.</div>
413 [% ELSIF letter.message_transport_type == "phone" and not Koha.Preference("TalkingTechItivaPhoneNotification") %]
414 <fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]" disabled="disabled">
415 <div class="dialog message">You should enable the TalkingTechItivaPhoneNotification preference to use the phone templates.</div>
417 <fieldset class="rows mtt" id="[% letter.message_transport_type | html %]_[% lang | html %]">
421 <input type="hidden" name="message_transport_type" value="[% letter.message_transport_type | html %]" />
422 <input type="hidden" name="lang" value="[% lang | html %]" />
423 <label for="is_html_[% letter.message_transport_type | html %]_[% lang | html %]">HTML message:</label>
424 [% IF letter.is_html %]
425 <input type="checkbox" name="is_html_[% letter.message_transport_type | html %]_[% lang | html %]" id="is_html_[% letter.message_transport_type | html %]_[% lang | html %]" value="1" checked="checked" />
427 <input type="checkbox" name="is_html_[% letter.message_transport_type | html %]_[% lang | html %]" id="is_html_[% letter.message_transport_type | html %]_[% lang | html %]" value="1" />
431 <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 %]" />
434 <label for="SQLfieldname_[% letter.message_transport_type | html %]_[% lang | html %]">Message body:</label>
435 [% IF letter.message_transport_type == 'sms' %]
436 <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>
441 <select name="SQLfieldname" id="SQLfieldname_[% letter.message_transport_type | html %]_[% lang | html %]" multiple="multiple" size="9">
442 [% FOREACH SQLfieldname IN SQLfieldnames %]
443 <option value="[% SQLfieldname.value | html %]">[% SQLfieldname.text | html %]</option>
448 <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>
451 <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>
456 [% IF preview_is_available %]
458 <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>
462 </fieldset> <!-- /.rows.mtt -->
465 </div> <!-- / #transport-types -->
466 [% END # /FOREACH lang %]
468 [% IF Koha.Preference('TranslateNotices') %]
472 <input type="hidden" id="redirect" name="redirect" value="" />
473 <input type="hidden" id="section" name="section" value="[% section | html %]" />
474 <input type="hidden" name="searchfield" value="[% searchfield | html %]" />
475 </form> <!-- /#add_notice -->
476 [% END # /IF add_form %]
478 [% IF ( add_validate or copy_validate) %]
480 <form action="[% action | html %]" method="post">
481 <input type="submit" value="OK" />
485 [% IF ( delete_confirm ) %]
486 <div class="dialog alert">
487 <h3>Delete notice?</h3>
498 <td>[% IF letter.branchcode %][% Branches.GetName( letter.branchcode ) | html %][% ELSE %](All libraries)[% END %]</td>
499 <td>[% letter.module | html %]</td>
500 <td>[% letter.code | html %]</td>
501 <td>[% letter.name | html %]</td>
504 <form action="[% action | html %]" method="post">
505 <input type="hidden" name="op" value="delete_confirmed">
506 <input type="hidden" name="branchcode" value="[% letter.branchcode | html %]" />
507 <input type="hidden" name="code" value="[% letter.code | html %]" />
508 <input type="hidden" name="module" value="[% letter.module | html %]" />
509 <button type="submit" class="approve"><i class="fa fa-check"></i> Yes, delete</button>
512 <form action="[% action | html %]" method="get">
513 <button type="submit" class="deny"><i class="fa fa-times"></i> No, do not delete</button>
516 [% END # /IF delete_confirm %]
518 [% IF ( delete_confirmed ) %]
520 <form action="[% action | html %]" method="post">
521 <input type="submit" value="OK" />
525 [% IF add_form or copy_form %]
526 </div> <!-- /.col-md-8 -->
527 </div> <!-- /.row -->
530 </div> <!-- /.col-sm-10.col-sm-push-2 -->
532 <div class="col-sm-2 col-sm-pull-10">
534 [% INCLUDE 'tools-menu.inc' %]
536 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
537 </div> <!-- /.row -->
540 [% MACRO jsinclude BLOCK %]
541 [% Asset.js("js/tools-menu.js") | $raw %]
542 [% INCLUDE 'datatables.inc' %]
543 [% INCLUDE 'columns_settings.inc' %]
544 [% Asset.js("lib/hc-sticky.js") | $raw %]
545 [% Asset.js("lib/jquery/plugins/jquery.insertatcaret.js") | $raw %]
547 var no_op_set = '[% no_op_set | html %]';
548 var interface = '[% interface | html %]';
549 var theme = '[% theme | html %]';
550 var add_form = '[% add_form | html %]';
551 var copy_form = '[% copy_form | html %]';
552 var code = '[% code | html %]';
553 var new_lettercode = '[% new_lettercode | html %]';
554 var new_branchcode = '[% new_branchcode | html %]';
555 var MSG_CODE_EXISTS = _("A default letter with the code '%s' already exists.");
556 var MSG_CODE_EXISTS_FOR_LIBRARY = _("A letter with the code '%s' already exists for '%s'.");
557 var MSG_EMPTY_TITLE_AND_CONTENT = _("Please specify title and content for %s");
558 var MSG_EMPTY_TEMPLATES = _("Please fill at least one template.");
559 var MSG_LOADING = _("Loading");
560 var MSG_NO_NOTICE_FOUND = _("No matching notices found");
561 var columns_settings = [% TablesSettings.GetColumns( 'tools', 'notices', 'lettert', 'json' ) | $raw %];
563 [% Asset.js("js/letter.js") | $raw %]
566 [% INCLUDE 'intranet-bottom.inc' %]