|
Lines 5-10
Link Here
|
| 5 |
<title>Koha › Tools › Notices[% IF ( add_form or copy_form ) %][% IF ( modify ) %] › Modify notice[% ELSE %] › Add notice[% END %][% END %][% IF ( add_validate or copy_validate) %] › Notice added[% END %][% IF ( delete_confirm ) %] › Confirm deletion[% END %]</title> |
5 |
<title>Koha › Tools › Notices[% IF ( add_form or copy_form ) %][% IF ( modify ) %] › Modify notice[% ELSE %] › Add notice[% END %][% END %][% IF ( add_validate or copy_validate) %] › Notice added[% END %][% IF ( delete_confirm ) %] › Confirm deletion[% END %]</title> |
| 6 |
[% INCLUDE 'doc-head-close.inc' %] |
6 |
[% INCLUDE 'doc-head-close.inc' %] |
| 7 |
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" /> |
7 |
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" /> |
|
|
8 |
<style type="text/css">#preview_template .modal-dialog { width : 80%; } .spinner { display: none; } @media (max-width: 767px) { #preview_template { margin: 0; width : auto; } }</style> |
| 8 |
</head> |
9 |
</head> |
| 9 |
|
10 |
|
| 10 |
<body id="tools_letter" class="tools"> |
11 |
<body id="tools_letter" class="tools"> |
|
Lines 34-41
Link Here
|
| 34 |
[% IF add_form or copy_form %]<div id="doc" class="yui-t7">[% ELSE %]<div id="doc3" class="yui-t2">[% END %] |
35 |
[% IF add_form or copy_form %]<div id="doc" class="yui-t7">[% ELSE %]<div id="doc3" class="yui-t2">[% END %] |
| 35 |
|
36 |
|
| 36 |
<div id="bd"> |
37 |
<div id="bd"> |
| 37 |
<div id="yui-main"> |
38 |
<div id="yui-main"> |
| 38 |
<div class="yui-b"> |
39 |
<div class="yui-b"> |
| 39 |
|
40 |
|
| 40 |
[% IF ( no_op_set ) %] |
41 |
[% IF ( no_op_set ) %] |
| 41 |
<h1>Notices and Slips</h1> |
42 |
<h1>Notices and Slips</h1> |
|
Lines 56-65
Link Here
|
| 56 |
</div> |
57 |
</div> |
| 57 |
</form> |
58 |
</form> |
| 58 |
|
59 |
|
| 59 |
[% IF ( search ) %] |
60 |
[% IF ( search ) %] |
| 60 |
<p>You searched for <b>[% searchfield | html %]</b></p> |
61 |
<p>You searched for <b>[% searchfield | html %]</b></p> |
| 61 |
[% END %] |
62 |
[% END %] |
| 62 |
[% IF ( letter && !independant_branch) %] |
63 |
[% IF ( letter && !independant_branch) %] |
| 63 |
[% select_for_copy = BLOCK %] |
64 |
[% select_for_copy = BLOCK %] |
| 64 |
<select name="branchcode"> |
65 |
<select name="branchcode"> |
| 65 |
[% FOREACH l IN Branches.all() %] |
66 |
[% FOREACH l IN Branches.all() %] |
|
Lines 127-133
Link Here
|
| 127 |
[% END %] |
128 |
[% END %] |
| 128 |
[% END %] |
129 |
[% END %] |
| 129 |
|
130 |
|
| 130 |
|
|
|
| 131 |
[% IF add_form or copy_form %] |
131 |
[% IF add_form or copy_form %] |
| 132 |
<h1>[% IF ( modify ) %]Modify notice[% ELSE %]Add notice[% END %]</h1> |
132 |
<h1>[% IF ( modify ) %]Modify notice[% ELSE %]Add notice[% END %]</h1> |
| 133 |
|
133 |
|
|
Lines 144-163
Link Here
|
| 144 |
<a class="btn btn-default btn-sm cancel" href="/cgi-bin/koha/tools/letter.pl"><i class="fa fa-remove"></i> Cancel</a> |
144 |
<a class="btn btn-default btn-sm cancel" href="/cgi-bin/koha/tools/letter.pl"><i class="fa fa-remove"></i> Cancel</a> |
| 145 |
</div> |
145 |
</div> |
| 146 |
|
146 |
|
| 147 |
<form id="add_notice" name="Aform" method="post" enctype="multipart/form-data" class="validate"> |
147 |
<form id="add_notice" name="Aform" method="post" enctype="multipart/form-data"> |
| 148 |
[% IF add_form %] |
148 |
[% IF add_form %] |
| 149 |
<input type="hidden" name="op" id="op" value="add_validate" /> |
149 |
<input type="hidden" name="op" id="op" value="add_validate" /> |
| 150 |
[% ELSE %] |
150 |
[% ELSE %] |
| 151 |
<input type="hidden" name="op" id="op" value="copy_validate" /> |
151 |
<input type="hidden" name="op" id="op" value="copy_validate" /> |
| 152 |
[% END %] |
152 |
[% END %] |
| 153 |
|
153 |
|
| 154 |
<input type="hidden" name="checked" value="0" /> |
154 |
<input type="hidden" name="checked" value="0" /> |
| 155 |
[% IF ( modify ) %] |
155 |
[% IF ( modify ) %] |
| 156 |
<input type="hidden" name="add" value="0" /> |
156 |
<input type="hidden" name="add" value="0" /> |
| 157 |
[% ELSE %] |
157 |
[% ELSE %] |
| 158 |
<input type="hidden" name="add" value="1" /> |
158 |
<input type="hidden" name="add" value="1" /> |
| 159 |
[% END %] |
159 |
[% END %] |
| 160 |
<fieldset class="rows"> |
160 |
<fieldset class="rows"> |
| 161 |
<input type="hidden" name="oldbranchcode" value="[% oldbranchcode %]" /> |
161 |
<input type="hidden" name="oldbranchcode" value="[% oldbranchcode %]" /> |
| 162 |
<ol> |
162 |
<ol> |
| 163 |
[% IF independant_branch %] |
163 |
[% IF independant_branch %] |
|
Lines 182-190
Link Here
|
| 182 |
[% END %] |
182 |
[% END %] |
| 183 |
</li> |
183 |
</li> |
| 184 |
[% END %] |
184 |
[% END %] |
| 185 |
<li> |
185 |
<li> |
| 186 |
<label for="module">Koha module:</label> |
186 |
<label for="module">Koha module:</label> |
| 187 |
<input type="hidden" name="oldmodule" value="[% module %]" /> |
187 |
<input type="hidden" name="oldmodule" value="[% module %]" /> |
| 188 |
[% IF adding %] |
188 |
[% IF adding %] |
| 189 |
<select name="module" id="newmodule"> |
189 |
<select name="module" id="newmodule"> |
| 190 |
[% ELSE %] |
190 |
[% ELSE %] |
|
Lines 380-389
Link Here
|
| 380 |
[% END %] |
380 |
[% END %] |
| 381 |
|
381 |
|
| 382 |
[% IF ( add_validate or copy_validate) %] |
382 |
[% IF ( add_validate or copy_validate) %] |
| 383 |
Data recorded |
383 |
Data recorded |
| 384 |
<form action="[% action %]" method="post"> |
384 |
<form action="[% action %]" method="post"> |
| 385 |
<input type="submit" value="OK" /> |
385 |
<input type="submit" value="OK" /> |
| 386 |
</form> |
386 |
</form> |
| 387 |
[% END %] |
387 |
[% END %] |
| 388 |
|
388 |
|
| 389 |
[% IF ( delete_confirm ) %] |
389 |
[% IF ( delete_confirm ) %] |
|
Lines 420-429
Link Here
|
| 420 |
[% END %] |
420 |
[% END %] |
| 421 |
|
421 |
|
| 422 |
[% IF ( delete_confirmed ) %] |
422 |
[% IF ( delete_confirmed ) %] |
| 423 |
Data deleted |
423 |
Data deleted |
| 424 |
<form action="[% action %]" method="post"> |
424 |
<form action="[% action %]" method="post"> |
| 425 |
<input type="submit" value="OK" /> |
425 |
<input type="submit" value="OK" /> |
| 426 |
</form> |
426 |
</form> |
| 427 |
[% END %] |
427 |
[% END %] |
| 428 |
|
428 |
|
| 429 |
</div> |
429 |
</div> |
|
Lines 441-651
Link Here
|
| 441 |
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.fixFloat.js"></script> |
441 |
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.fixFloat.js"></script> |
| 442 |
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.insertatcaret.js"></script> |
442 |
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.insertatcaret.js"></script> |
| 443 |
<script type="text/javascript"> |
443 |
<script type="text/javascript"> |
| 444 |
$(document).ready(function() { |
444 |
var no_op_set = '[% no_op_set %]'; |
| 445 |
[% IF add_form or copy_form %] |
445 |
var interface = '[% interface %]'; |
| 446 |
$('#toolbar').fixFloat(); |
446 |
var theme = '[% theme %]'; |
| 447 |
[% END %] |
447 |
var add_form = '[% add_form %]'; |
| 448 |
$("#lettert:has(tbody tr)").dataTable($.extend(true, {}, dataTablesDefaults, { |
448 |
var copy_form = '[% copy_form %]'; |
| 449 |
"sDom": 't', |
449 |
var code = '[% code %]'; |
| 450 |
"aoColumnDefs": [ |
450 |
var new_lettercode = '[% new_lettercode %]'; |
| 451 |
{ "bSortable": false, "bSearchable": false, 'aTargets': [ 'nosort' ] } |
451 |
var new_branchcode = '[% new_branchcode %]'; |
| 452 |
], |
452 |
var MSG_CODE_EXISTS = _("A default letter with the code '%s' already exists."); |
| 453 |
"bPaginate": false |
453 |
var MSG_CODE_EXISTS_FOR_LIBRARY = _("A letter with the code '%s' already exists for '%s'."); |
| 454 |
})); |
454 |
var MSG_EMPTY_TITLE_AND_CONTENT = _("Please specify title and content for %s"); |
| 455 |
[% IF no_op_set %] |
455 |
var MSG_EMPTY_TEMPLATES = _("Please fill at least one template."); |
| 456 |
$('#branch').change(function() { |
456 |
var MSG_LOADING = _("Loading"); |
| 457 |
$('#op').val(""); |
|
|
| 458 |
$('#selectlibrary').submit(); |
| 459 |
}); |
| 460 |
$('#newnotice').click(function() { |
| 461 |
$('#op').val("add_form"); |
| 462 |
return true; |
| 463 |
}); |
| 464 |
[% END %] |
| 465 |
|
| 466 |
$("#newmodule").on("change",function(){ |
| 467 |
if( $("#branch").val() == ""){ |
| 468 |
var branchcode = "*"; |
| 469 |
} else { |
| 470 |
var branchcode = $("#branch").val(); |
| 471 |
} |
| 472 |
window.location.href = "/cgi-bin/koha/tools/letter.pl?op=add_form&module=" + $(this).val() + "&branchcode=" + branchcode; |
| 473 |
}); |
| 474 |
|
| 475 |
$("#submit_form").click( function(event) { |
| 476 |
event.preventDefault(); |
| 477 |
var at_least_one_exists = 0; |
| 478 |
var are_valid = 1; |
| 479 |
$("fieldset.mtt").each( function(){ |
| 480 |
var title = $(this).find('input[name="title"]').val(); |
| 481 |
var content = $(this).find('textarea[name="content"]').val(); |
| 482 |
if ( |
| 483 |
( title.length == 0 && content.length > 0 ) |
| 484 |
|| ( title.length > 0 && content.length == 0 ) |
| 485 |
) { |
| 486 |
var mtt = $(this).find('input[name="message_transport_type"]').val(); |
| 487 |
var msg = _("Please specify title and content for %s"); |
| 488 |
msg = msg.replace( "%s", mtt ); |
| 489 |
at_least_one_exists = 1; |
| 490 |
alert(msg); |
| 491 |
return are_valid = false; |
| 492 |
} else if ( title.length > 0 && content.length > 0 ) { |
| 493 |
at_least_one_exists = 1; |
| 494 |
} |
| 495 |
} ); |
| 496 |
if ( ! at_least_one_exists ) { |
| 497 |
alert( _("Please fill at least one template.") ); |
| 498 |
return false; |
| 499 |
} |
| 500 |
if ( ! are_valid ) { |
| 501 |
return false; |
| 502 |
} |
| 503 |
|
| 504 |
// Test if code already exists in DB |
| 505 |
var new_lettercode = $("#code").val(); |
| 506 |
var new_branchcode = $("#branch").val(); |
| 507 |
[% IF ( add_form and code ) # IF edit %] |
| 508 |
if ( new_lettercode != '[% code %]' ) { |
| 509 |
[% END %] |
| 510 |
$.ajax({ |
| 511 |
data: { code: new_lettercode, branchcode: new_branchcode }, |
| 512 |
type: 'GET', |
| 513 |
url: '/cgi-bin/koha/svc/letters/get/', |
| 514 |
success: function (data) { |
| 515 |
if ( data.letters.length > 0 ) { |
| 516 |
if( new_branchcode == '' ) { |
| 517 |
alert( _("A default letter with the code '%s' already exists.").format(new_lettercode) ); |
| 518 |
} else { |
| 519 |
alert( _("A letter with the code '%s' already exists for '%s'.").format(new_lettercode, new_branchcode) ); |
| 520 |
} |
| 521 |
return false; |
| 522 |
} else { |
| 523 |
$("#add_notice").submit(); |
| 524 |
} |
| 525 |
}, |
| 526 |
}); |
| 527 |
[% IF ( add_form and code ) %] |
| 528 |
} else { |
| 529 |
$("#add_notice").submit(); |
| 530 |
} |
| 531 |
[% END %] |
| 532 |
}); |
| 533 |
|
| 534 |
var sms_limit = 160; |
| 535 |
$("#content_sms").on("keyup", function(){ |
| 536 |
var length = $(this).val().length; |
| 537 |
$("#sms_counter").html(length + "/" + sms_limit + _(" characters")); |
| 538 |
if ( length > sms_limit ) { |
| 539 |
$("#sms_counter").css("color", "red"); |
| 540 |
} else { |
| 541 |
$("#sms_counter").css("color", "black"); |
| 542 |
} |
| 543 |
}); |
| 544 |
$( ".transport-types" ).accordion({ collapsible: true, active:false, animate: 200 }); |
| 545 |
$(".insert").on("click",function(){ |
| 546 |
var containerid = $(this).data("containerid"); |
| 547 |
insertValueQuery( containerid ); |
| 548 |
}) |
| 549 |
|
| 550 |
$("#tabs").tabs(); |
| 551 |
|
| 552 |
$("#saveandcontinue").on("click",function(e){ |
| 553 |
e.preventDefault(); |
| 554 |
$("#redirect").val("just_save"); |
| 555 |
$("#submit_form").click(); |
| 556 |
}); |
| 557 |
|
| 558 |
$("body").on("click", ".preview_template", function(e){ |
| 559 |
e.preventDefault(); |
| 560 |
var mtt = $(this).data("mtt"); |
| 561 |
var lang = $(this).data("lang"); |
| 562 |
|
| 563 |
var code = $("#code").val(); |
| 564 |
var content = $("#content_"+mtt+"_"+lang).val(); |
| 565 |
var title = $("#title_"+mtt+"_"+lang).val(); |
| 566 |
|
| 567 |
var is_html = $("#is_html_"+mtt+"_"+lang).val(); |
| 568 |
var page = $(this).attr("href"); |
| 569 |
var data_preview = $("#data_preview").val(); |
| 570 |
page += '?code='+encodeURIComponent(code); |
| 571 |
page += '&title='+encodeURIComponent(title); |
| 572 |
page += '&content='+encodeURIComponent(content); |
| 573 |
page += '&data_preview='+encodeURIComponent(data_preview); |
| 574 |
page += '&is_html='+encodeURIComponent(is_html); |
| 575 |
$("#preview_template .modal-body").load(page); |
| 576 |
$('#preview_template').modal('show'); |
| 577 |
$("#preview_template_button").attr("href", "/cgi-bin/koha/svc/letters/convert?code="+code+"&mtt="+mtt+"&lang="+lang); |
| 578 |
}); |
| 579 |
$("#preview_template").on("hidden", function(){ |
| 580 |
$("#preview_template_label").html(""); |
| 581 |
$("#preview_template .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>"); |
| 582 |
}); |
| 583 |
$("body").on("click", "#convert_template", function(e){ |
| 584 |
e.preventDefault(); |
| 585 |
var mtt = $(this).data("mtt"); |
| 586 |
var lang = $(this).data("lang"); |
| 587 |
|
| 588 |
var code = $("#code").val(); |
| 589 |
var content = $("#content_"+mtt+"_"+lang).val(); |
| 590 |
var title = $("#title_"+mtt+"_"+lang).val(); |
| 591 |
|
| 592 |
var is_html = $("#is_html_"+mtt+"_"+lang).val(); |
| 593 |
var page = $(this).attr("href"); |
| 594 |
var data_preview = $("#data_preview").val(); |
| 595 |
page += '?code='+encodeURIComponent(code); |
| 596 |
page += '&title='+encodeURIComponent(title); |
| 597 |
page += '&content='+encodeURIComponent(content); |
| 598 |
page += '&data_preview='+encodeURIComponent(data_preview); |
| 599 |
page += '&is_html='+encodeURIComponent(is_html); |
| 600 |
$("#preview_template .modal-body").load(page + " div"); |
| 601 |
$('#preview_template').modal('show'); |
| 602 |
$("#preview_template_button").attr("href", "/cgi-bin/koha/svc/letters/convert?code="+code+"&branchcode="+branchcode+"&mtt="+mtt+"&lang="+lang); |
| 603 |
}); |
| 604 |
$("#convert_template").on("hidden", function(){ |
| 605 |
$("#convert_template_label").html(""); |
| 606 |
$("#convert_template .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>"); |
| 607 |
}); |
| 608 |
|
| 609 |
}); |
| 610 |
[% IF add_form or copy_form %] |
| 611 |
function cancel(f) { |
| 612 |
$('#op').val(""); |
| 613 |
f.method = "get"; |
| 614 |
f.submit(); |
| 615 |
} |
| 616 |
|
| 617 |
function isNotNull(f,noalert) { |
| 618 |
if (f.value.length ==0) { |
| 619 |
return false; |
| 620 |
} |
| 621 |
return true; |
| 622 |
} |
| 623 |
|
| 624 |
function isNum(v,maybenull) { |
| 625 |
var n = new Number(v.value); |
| 626 |
if (isNaN(n)) { |
| 627 |
return false; |
| 628 |
} |
| 629 |
if (maybenull==0 && v.value==''){ |
| 630 |
return false; |
| 631 |
} |
| 632 |
return true; |
| 633 |
} |
| 634 |
function insertValueQuery(containerid) { |
| 635 |
var fieldset = $("#" + containerid); |
| 636 |
var myQuery = $(fieldset).find('textarea[name="content"]'); |
| 637 |
var myListBox = $(fieldset).find('select[name="SQLfieldname"]'); |
| 638 |
|
| 639 |
if($(myListBox).find('option').length > 0) { |
| 640 |
$(myListBox).find('option').each( function (){ |
| 641 |
if ( $(this).attr('selected') && $(this).val().length > 0 ) { |
| 642 |
$(myQuery).insertAtCaret("<<" + $(this).val() + ">>"); |
| 643 |
} |
| 644 |
}); |
| 645 |
} |
| 646 |
} |
| 647 |
[% END %] |
| 648 |
</script> |
457 |
</script> |
|
|
458 |
<script type="text/javascript" src="[% interface %]/[% theme %]/js/letter.js"></script> |
| 649 |
[% END %] |
459 |
[% END %] |
| 650 |
|
460 |
|
| 651 |
[% INCLUDE 'intranet-bottom.inc' %] |
461 |
[% INCLUDE 'intranet-bottom.inc' %] |