6 [% USE TablesSettings %]
7 [% PROCESS 'i18n.inc' %]
9 [% INCLUDE 'doc-head-open.inc' %]
11 [% IF ( add_form or copy_form ) %]
13 Modify notice › [% ELSE %]
14 Add notice › [% END %]
17 [% IF ( add_validate or copy_validate) %]
18 Notice added › [% END %]
20 [% IF ( delete_confirm ) %]
21 Confirm deletion › [% END %]
23 Notices › Tools › Koha
25 [% INCLUDE 'doc-head-close.inc' %]
28 #preview_template .modal-dialog {
34 @media (max-width: 767px) {
36 margin: 0; width : auto;
39 .panel-body fieldset.rows {
41 background: transparent none;
52 <body id="tools_letter" class="tools">
53 [% INCLUDE 'header.inc' %]
54 [% INCLUDE 'letters-search.inc' %]
56 <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
59 <a href="/cgi-bin/koha/mainpage.pl">Home</a>
62 <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a>
65 [% IF ( add_form or copy_form) %]
68 <a href="/cgi-bin/koha/tools/letter.pl">Notices and slips</a>
71 <a href="#" aria-current="page">
77 <a href="/cgi-bin/koha/tools/letter.pl">Notices and slips</a>
80 <a href="#" aria-current="page">
86 [% IF ( add_validate or copy_validate) %]
88 <a href="/cgi-bin/koha/tools/letter.pl">Notices and slips</a>
91 <a href="#" aria-current="page">
96 [% IF ( delete_confirm ) %]
98 <a href="/cgi-bin/koha/tools/letter.pl">Notices and slips</a>
101 <a href="#" aria-current="page">
107 <a href="#" aria-current="page">
115 </nav> <!-- /#breadcrumbs -->
117 <div id="preview_template" class="modal in" tabindex="-1" role="dialog" aria-labelledby="preview_template_label" aria-hidden="true">
118 <div class="modal-dialog modal-lg">
119 <div class="modal-content">
120 <div class="modal-header">
121 <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
122 <h3 id="preview_template_label">Preview notice template</h3>
124 <div class="modal-body">
126 <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading
129 <div class="modal-footer">
130 <!-- TODO <a href="#" class="btn btn-default" id="preview_template_button" role="button" data-toggle="modal">Convert using the Template Toolkit syntax</a>-->
131 <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
133 </div> <!-- /.modal-content -->
134 </div> <!-- /.modal-dialog -->
135 </div> <!-- /#preview_template -->
137 [% IF add_form or copy_form %]
138 <div class="main container-fluid">
140 <div class="col-md-8 col-md-offset-2">
142 <div class="main container-fluid">
144 <div class="col-sm-10 col-sm-push-2">
148 [% IF ( no_op_set ) %]
149 <h1>Notices and slips</h1>
150 <form method="get" action="/cgi-bin/koha/tools/letter.pl" id="selectlibrary">
151 <input type="hidden" name="searchfield" value="[% searchfield | html %]" />
152 [% UNLESS independant_branch %]
155 <select name="branchcode" id="branch" style="width:20em;">
156 <option value="*">All libraries</option>
157 [% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode ) %]
161 </form> <!-- /#selectlibrary -->
163 <div id="toolbar" class="btn-toolbar">
164 <div class="btn-group">
165 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-plus"></i> New notice <span class="caret"></span></button>
166 <ul class="dropdown-menu">
167 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=acquisition">Acquisition</a></li>
168 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=catalogue">Catalog</a></li>
169 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=circulation">Circulation</a></li>
170 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=claimacquisition">Claim acquisition</a></li>
171 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=claimissues">Claim serial issue</a></li>
172 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=reserves">Holds</a></li>
173 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=ill">Interlibrary loans</a></li>
174 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=orderacquisition">Order acquisition</a></li>
175 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=members">Patrons</a></li>
176 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=serial">Serials (new issue)</a></li>
177 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=suggestions">Suggestions</a></li>
178 <li><a href="/cgi-bin/koha/tools/letter.pl?op=add_form&module=pos">Point of sale</a></li>
181 </div> <!-- /#toolbar -->
184 <p>You searched for <strong>[% searchfield | html %]</strong></p>
187 [% IF ( letter && !independant_branch) %]
188 [% select_for_copy = BLOCK %]
189 <select name="branchcode">
190 [% FOREACH l IN Branches.all() %]
191 <option value="[% l.branchcode | html %]">Copy to [% l.branchname | html %]</option>
205 <th>Last updated</th>
206 <th class="NoSort noExport">Copy notice</th>
207 <th class="NoSort noExport">Actions</th>
211 [% FOREACH lette IN letter %]
212 [% can_edit = lette.branchcode || !independant_branch %]
215 [% IF lette.branchname %]
216 [% lette.branchname | html %]
218 <span>(All libraries)</span>
222 [% SWITCH lette.module %]
223 [% CASE 'acquisition' %]<span>Acquisition</span>
224 [% CASE 'catalogue' %]<span>Catalog</span>
225 [% CASE 'circulation' %]<span>Circulation</span>
226 [% CASE 'orderacquisition' %]<span>Order acquisition</span>
227 [% CASE 'claimacquisition' %]<span>Claim acquisition</span>
228 [% CASE 'claimissues' %]<span>Claim serial issue</span>
229 [% CASE 'reserves' %]<span>Holds</span>
230 [% CASE 'ill' %]<span>Interlibrary loans</span>
231 [% CASE 'members' %]<span>Patrons</span>
232 [% CASE 'serial' %]<span>Serials (new issue)</span>
233 [% CASE 'suggestions' %]<span>Suggestions</span>
234 [% CASE 'pos' %]<span>Point of sale</span>
235 [% CASE %]<span>[% lette.module | html %]</span>
238 <td>[% lette.code | html %]</td>
239 <td>[% lette.name | html %]</td>
240 <td data-order="[% lette.updated_on | html %]">[% lette.updated_on | $KohaDates with_hours = 1 %]</td>
242 [% IF !independant_branch || !lette.branchcode %]
243 <form method="post" action="/cgi-bin/koha/tools/letter.pl">
244 <input type="hidden" name="op" value="copy_form" />
245 <input type="hidden" name="oldbranchcode" value="[% lette.branchcode | html %]" />
246 <input type="hidden" name="module" value="[% lette.module | html %]" />
247 <input type="hidden" name="code" value="[% lette.code | html %]" />
248 [% IF independant_branch %]
249 <input type="hidden" name="branchcode" value="[% independant_branch | html %]" />
251 [% select_for_copy | $raw %]
253 <button class="btn btn-default btn-xs"><i class="fa fa-clone"></i> Copy</button>
255 [% END # /IF !independent_branch %]
259 <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>
261 [% IF !lette.protected && can_edit %]
262 <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>
266 [% END # /FOREACH lette %]
268 </table> <!-- /#lettert -->
269 [% ELSE # IF lette %]
270 <div class="dialog message">
271 [% IF ( branchcode ) %]
272 <p>There are no notices for this library.</p>
274 <p>There are no notices.</p>
277 [% END # /IF lette %]
278 [% END # /IF no_op_set %]
280 [% IF add_form or copy_form %]
281 <h1>[% IF ( modify ) %]Modify notice[% ELSE %]Add notice[% END %]</h1>
283 <div id="toolbar" class="btn-toolbar">
284 <div class="btn-group">
285 <button class="btn btn-default" id="submit_form"><i class="fa fa-save"></i> Save</button>
286 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
287 <span class="caret"></span>
289 <ul class="dropdown-menu">
290 <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
293 <a class="btn btn-default cancel" href="/cgi-bin/koha/tools/letter.pl"><i class="fa fa-remove"></i> Cancel</a>
294 </div> <!-- /#toolbar -->
296 <form id="add_notice" name="Aform" method="post" enctype="multipart/form-data" class="validate">
298 <input type="hidden" name="op" id="op" value="add_validate" />
300 <input type="hidden" name="op" id="op" value="copy_validate" />
303 <input type="hidden" name="checked" value="0" />
306 <input type="hidden" name="add" value="0" />
308 <input type="hidden" name="add" value="1" />
311 <fieldset class="rows">
312 <input type="hidden" name="oldbranchcode" value="[% oldbranchcode | html %]" />
313 [% IF independant_branch %]
314 <input type="hidden" name="branchcode" value="[% independant_branch | html %]" />
320 <label for="branch">Library:</label>
321 <select name="branchcode" id="branch" style="width:20em;">
322 <option value="">All libraries</option>
323 [% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode ) %]
326 <span class="label">Library:</span>
327 <input type="hidden" id="branch" name="branchcode" value="[% branchcode | html %]" />
328 [% IF ( branchcode ) %]
329 [% Branches.GetName( branchcode ) | html %]
331 <span>All libraries</span>
335 [% END # /IF independant_branch %]
337 <label for="module">Koha module:</label>
338 <input type="hidden" name="oldmodule" value="[% module | html %]" />
340 <select name="module" id="newmodule">
342 <select name="module" id="module">
344 [% IF ( module == "acquisition" ) %]
345 <option value="acquisition" selected="selected">Acquisition</option>
347 <option value="acquisition" >Acquisition</option>
349 [% IF ( module == "catalogue" ) %]
350 <option value="catalogue" selected="selected">Catalog</option>
352 <option value="catalogue" >Catalog</option>
354 [% IF ( module == "circulation" ) %]
355 <option value="circulation" selected="selected">Circulation</option>
357 <option value="circulation">Circulation</option>
359 [% IF ( module == "orderacquisition" ) %]
360 <option value="orderacquisition" selected="selected">Order acquisition</option>
362 <option value="orderacquisition">Order acquisition</option>
364 [% IF ( module == "claimacquisition" ) %]
365 <option value="claimacquisition" selected="selected">Claim acquisition</option>
367 <option value="claimacquisition">Claim acquisition</option>
369 [% IF ( module == "claimissues" ) %]
370 <option value="claimissues" selected="selected">Claim serial issue</option>
372 <option value="claimissues">Claim serial issue</option>
374 [% IF ( module == "reserves" ) %]
375 <option value="reserves" selected="selected">Holds</option>
377 <option value="reserves">Holds</option>
379 [% IF ( module == "ill" ) %]
380 <option value="ill" selected="selected">Interlibrary loans</option>
382 <option value="ill">Interlibrary loans</option>
384 [% IF ( module == "members" ) %]
385 <option value="members" selected="selected">Patrons</option>
387 <option value="members">Patrons</option>
389 [% IF ( module == "serial" ) %]
390 <option value="serial" selected="selected">Serials (new issue)</option>
392 <option value="serial">Serials (new issue)</option>
394 [% IF ( module == "suggestions" ) %]
395 <option value="suggestions" selected="selected">Suggestions</option>
397 <option value="suggestions">Suggestions</option>
399 [% IF ( module == "pos" ) %]
400 <option value="pos" selected="selected">Point of sale</option>
402 <option value="pos">Point of sale</option>
408 <label for="code" class="required">Code:</label>
409 <input type="text" id="code" name="code" size="20" maxlength="20" value="" required="required"/>
410 <span class="required">Required</span>
412 <span class="label">Code:</span>
413 <input type="hidden" id="code" name="code" value="[% code | html %]" />
418 <label for="name" class="required">Name:</label>
419 <input type="text" id="name" name="name" size="60" value="[% letter_name | html %]" required="required" />
420 <span class="required">Required</span>
422 [% IF code and preview_is_available%]
424 <label for="name">Data for preview:</label>
427 <input type="text" id="data_preview" name="data_preview" value="" placeholder="barcode" />
428 [% CASE 'CHECKOUT' %]
429 <input type="text" id="data_preview" name="data_preview" value="" placeholder="barcode|borrowernumber" />
430 [% CASE 'HOLD_SLIP' %]
431 <input type="text" id="data_preview" name="data_preview" value="" placeholder="biblionumber|borrowernumber" />
438 </fieldset> <!-- /#add_notice -->
440 [% IF Koha.Preference('TranslateNotices') %]
441 <div style="clear:both"></div>
444 <ul class="nav nav-tabs" role="tablist">
445 <li role="presentation">
446 <a href="#lang_default" aria-controls="lang_default" role="tab" data-toggle="tab">Default</a>
448 [% FOR language IN languages %]
449 [% FOR sublanguage IN language.sublanguages_loop %]
450 [% IF language.plural %]
451 <li role="presentation">
452 <a href="#lang_[% sublanguage.rfc4646_subtag | uri %]" aria-controls="lang_[% sublanguage.rfc4646_subtag | uri %]" role="tab" data-toggle="tab">[% sublanguage.native_description | html %] [% sublanguage.region_description | html %] ([% sublanguage.rfc4646_subtag | html %])</a>
455 <li role="presentation">
456 <a href="#lang_[% sublanguage.rfc4646_subtag | uri %]" aria-controls="lang_[% sublanguage.rfc4646_subtag | uri %]" role="tab" data-toggle="tab">[% sublanguage.native_description | html %] ([% sublanguage.rfc4646_subtag | html %])</a>
462 <div class="tab-content">
464 <div style="clear:both"></div>
465 [% END # /IF TranslateNotices %]
467 [% FOREACH lang IN letters.keys %]
468 <div role="tabpanel" class="tab-pane" id="lang_[% lang | html %]">
469 <div class="panel-group" id="group_[% lang | html %]" role="tablist" aria-multiselectable="true">
470 [% FOR mtt IN letters.$lang.templates.keys.sort %]
471 [% SET letter = letters.$lang.templates.$mtt %]
472 [% NEXT IF letter.message_transport_type == "itiva" && !Koha.Preference('TalkingTechItivaPhoneNotification') %]
473 [% NEXT IF letter.message_transport_type == "phone" && !Koha.Preference('PhoneNotification') %]
474 <div class="panel panel-default">
475 <div class="panel-heading" role="tab" id="[% letter.message_transport_type | html %]_[% lang | html %]Heading">
476 <h3 class="panel-title">
477 <a role="button" class="collapsed" data-toggle="collapse" data-parent="#group_[% lang | html %]" href="#[% letter.message_transport_type | html %]_[% lang | html %]" aria-expanded="false" aria-controls="[% letter.message_transport_type | html %]_[% lang | html %]">
478 [% SWITCH letter.message_transport_type %]
479 [% CASE 'email' %]<span>Email</span>
480 [% CASE 'print' %]<span>[% tp('Message transport type', 'Print') | html %]</span>
481 [% CASE 'sms' %]<span>SMS</span>
482 [% CASE 'feed' %]<span>Feed</span>
483 [% CASE 'itiva' %]<span>Phone (i-tiva)</span>
484 [% CASE 'phone' %]<span>Phone</span>
485 [% CASE %]<span>[% letter.message_transport_type | html %]</span>
489 </div> <!-- /.panel-heading -->
490 <div id="[% letter.message_transport_type | html %]_[% lang | html %]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="[% letter.message_transport_type | html %]_[% lang | html %]Heading">
491 <div class="panel-body">
492 [% IF letter.message_transport_type == "sms" and not Koha.Preference("SMSSendDriver") %]
493 <fieldset class="rows mtt" disabled="disabled">
494 <div class="dialog message">You should enable the SMSSendDriver preference to use the SMS templates.</div>
496 <fieldset class="rows mtt">
499 [% IF ( letter.tt_error ) %]
500 <li class="template_toolkit_error">
501 <span class="label error">Template Toolkit error:</span>
502 [% letter.tt_error | html %]
505 [% IF ( letter.updated_on ) %]
507 <span class="label">Last updated:</span>
508 [% letter.updated_on | $KohaDates with_hours = 1 %]
512 <input type="hidden" name="message_transport_type" value="[% letter.message_transport_type | html %]" />
513 <input type="hidden" name="lang" value="[% lang | html %]" />
514 <label for="is_html_[% letter.message_transport_type | html %]_[% lang | html %]">HTML message:</label>
515 [% IF letter.is_html %]
516 <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" />
518 <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" />
522 <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 %]" />
525 <label for="SQLfieldname_[% letter.message_transport_type | html %]_[% lang | html %]">Message body:</label>
526 [% IF letter.message_transport_type == 'sms' %]
527 <span class="sms_counter" id="sms_counter_[% lang | html %]">
528 [% IF letter.content && letter.content.length > 0 %]
529 [% letter.content.length | html %]
532 [% END %]/160 characters</span>
537 <select name="SQLfieldname" id="SQLfieldname_[% letter.message_transport_type | html %]_[% lang | html %]" multiple="multiple" size="9">
538 [% FOREACH SQLfieldname IN SQLfieldnames %]
539 <option value="[% SQLfieldname.value | html %]">[% SQLfieldname.text | html %]</option>
544 <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>
547 <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>
552 [% IF preview_is_available %]
554 <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>
558 </fieldset> <!-- /.rows.mtt -->
559 </div> <!-- /.panel-body -->
560 </div> <!-- /.panel-collapse -->
561 </div> <!-- /.panel.panel-default -->
563 </div> <!-- /.panel-group#lang_[% lang | html %] -->
564 </div> <!-- /.tab-panel -->
565 [% END # /FOREACH lang %]
567 [% IF Koha.Preference('TranslateNotices') %]
568 </div> <!-- /.tab-content -->
569 </div> <!-- /#tabs -->
572 <input type="hidden" id="redirect" name="redirect" value="" />
573 <input type="hidden" id="section" name="section" value="[% section | html %]" />
574 <input type="hidden" id="langtab" name="langtab" value="[% langtab | html %]" />
575 <input type="hidden" name="searchfield" value="[% searchfield | html %]" />
576 </form> <!-- /#add_notice -->
577 [% END # /IF add_form %]
579 [% IF ( add_validate or copy_validate) %]
581 <form action="[% action | html %]" method="post">
582 <input type="submit" value="OK" />
586 [% IF ( delete_confirm ) %]
587 <div class="dialog alert">
588 <h1>Delete notice?</h1>
599 <td>[% IF letter.branchcode %][% Branches.GetName( letter.branchcode ) | html %][% ELSE %]<span>(All libraries)</span>[% END %]</td>
600 <td>[% letter.module | html %]</td>
601 <td>[% letter.code | html %]</td>
602 <td>[% letter.name | html %]</td>
605 <form action="[% action | html %]" method="post">
606 <input type="hidden" name="op" value="delete_confirmed">
607 <input type="hidden" name="branchcode" value="[% letter.branchcode | html %]" />
608 <input type="hidden" name="code" value="[% letter.code | html %]" />
609 <input type="hidden" name="module" value="[% letter.module | html %]" />
610 <button type="submit" class="approve"><i class="fa fa-check"></i> Yes, delete</button>
613 <form action="[% action | html %]" method="get">
614 <button type="submit" class="deny"><i class="fa fa-times"></i> No, do not delete</button>
617 [% END # /IF delete_confirm %]
619 [% IF ( delete_confirmed ) %]
620 <span>Data deleted</span>
621 <form action="[% action | html %]" method="post">
622 <input type="submit" value="OK" />
626 [% IF add_form or copy_form %]
627 </div> <!-- /.col-md-8 -->
628 </div> <!-- /.row -->
631 </div> <!-- /.col-sm-10.col-sm-push-2 -->
633 <div class="col-sm-2 col-sm-pull-10">
635 [% INCLUDE 'tools-menu.inc' %]
637 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
638 </div> <!-- /.row -->
641 [% MACRO jsinclude BLOCK %]
642 [% Asset.js("js/tools-menu.js") | $raw %]
643 [% INCLUDE 'datatables.inc' %]
644 [% INCLUDE 'columns_settings.inc' %]
645 [% Asset.js("lib/hc-sticky.js") | $raw %]
646 [% Asset.js("lib/jquery/plugins/jquery.insertatcaret.js") | $raw %]
648 var no_op_set = '[% no_op_set | html %]';
649 var interface = '[% interface | html %]';
650 var theme = '[% theme | html %]';
651 var add_form = '[% add_form | html %]';
652 var copy_form = '[% copy_form | html %]';
653 var code = '[% code | html %]';
654 var new_lettercode = '[% new_lettercode | html %]';
655 var new_branchcode = '[% new_branchcode | html %]';
656 var table_settings = [% TablesSettings.GetTableSettings( 'tools', 'notices', 'lettert', 'json' ) | $raw %];
658 [% Asset.js("js/letter.js") | $raw %]
661 [% INCLUDE 'intranet-bottom.inc' %]