Koha/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/lateorders.tt
Maryse Simard c0e2912ee6
Bug 12502: (follow-up) Adds formatting for datatables export
Add a format option to the datatables export that remove .noExport
elements present in a data cell, just as .noExport columns are
not exported.

To test:
1. For late orders (which uses .noExport elements in data cells) :
    Export data in any format using the export button at the top
    of the datatable.
        => data should exclude "Add/Edit note" label, but
        otherwise look the same as before the patch.
2. Try exporting data in other datatables in Koha and make sure
exported data is the same before and after applying the patch.

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2020-01-20 16:37:21 +00:00

341 lines
16 KiB
Text

[% USE raw %]
[% USE Asset %]
[% USE KohaDates %]
[% USE Branches %]
[% USE ColumnsSettings %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Acquisitions &rsaquo; Late orders</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="acq_lateorders" class="acq">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'acquisitions-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> &rsaquo; <a href="lateorders.pl">Late orders</a></div>
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
<h1>[% IF ( Supplier ) %][% Supplier | html %] : [% END %]Late orders</h1>
<div id="acqui_lateorders">
[% IF error_claim %]
[% IF ( error_claim == "no_email" ) %]
<div class="dialog alert">This vendor has no email</div>
[% ELSIF ( error_claim == "no_order_selected" ) %]
<div class="dialog alert">No order selected</div>
[% ELSE %]
<div class="dialog alert">[% error_claim | html %]</div>
[% END %]
[% END %]
[% IF info_claim %]
<div class="dialog message">Email has been sent.</div>
[% END %]
[% IF ( lateorders ) %]
<form action="lateorders.pl" name="claim" method="post">
<input type="hidden" name="op" value="send_alert" />
<input type="hidden" name="delay" value="[% delay | html %]" />
<input type="hidden" name="booksellerid" value="[% booksellerid | html %]" />
[% IF ( letters ) %]
<p><label for="letter_code">Claim using notice: </label><select name="letter_code" id="letter_code">
[% FOREACH letter IN letters %]
<option value="[% letter.code | html %]">[% letter.name | html %]</option>
[% END %]
</select>
</p>
[% END %]
<table id="late_orders">
<thead>
<tr>
[% IF Supplier %]
<th><a id="CheckAll" href="#">Check all</a><br /><a id="CheckNone" href="#">Uncheck all</a></th>
[% ELSE %]
<th></th>
[% END %]
<th>Order line</th>
<th class="title-string">Order date</th>
<th class="title-string">Estimated delivery date</th>
<th>Vendor</th>
<th class="anti-the">Information</th>
<th>Total cost</th>
<th>Basket</th>
<th>Basket group</th>
<th>Library</th>
<th>Fund</th>
<th>Claims count</th>
<th class="title-string">Claimed date</th>
<th>Internal note</th>
<th>Vendor note</th>
<th>ISBN</th>
</tr>
</thead>
<tbody>
[% FOREACH lateorder IN lateorders %]
<tr>
<td>
<input type="checkbox" value="[% lateorder.ordernumber | html %]" data-booksellerid="[% lateorder.supplierid | html %]" name="ordernumber">
</td>
<td>
[% lateorder.ordernumber | $raw %]
</td>
<td>
<span title="[% lateorder.orderdate | html %]">[% lateorder.orderdate | $KohaDates %] ([% lateorder.latesince | html %] days)</span>
</td>
<td>
[% IF ( lateorder.estimateddeliverydate ) %]
<span title="[% lateorder.estimateddeliverydate | html %]">[% lateorder.estimateddeliverydate | $KohaDates %]</span>
[% ELSE %]
<span title="0000-00-00"></span>
[% END %]
</td>
<td>
[% lateorder.supplier | html %]
([% lateorder.supplierid | html %])
</td>
<td>
<b>[% lateorder.title | html %]</b>
[% IF ( lateorder.author ) %]<br/><i>Author:</i> [% lateorder.author | html %][% END %]
[% IF ( lateorder.publisher ) %]
<br/><i>Published by:</i> [% lateorder.publisher | html %]
[% IF ( lateorder.publicationyear ) %]
<i> in </i>[% lateorder.publicationyear | html %]
[% END %]
[% END %]
</td>
<td>
[% lateorder.unitpricesupplier | html %]x[% lateorder.quantity | html %] =
[% lateorder.subtotal | html %]
</td>
<td>
[% IF ( CAN_user_acquisition_order_manage ) %]
<a href="basket.pl?basketno=[% lateorder.basketno | uri %]" title="basket">[% lateorder.basketname | html %] ([% lateorder.basketno | html %])</a>
[% ELSE %]
[% lateorder.basketname | html %] ([% lateorder.basketno | html %])
[% END %]
</td>
<td>
[% IF ( lateorder.basketgroupid ) %]
[% IF ( CAN_user_acquisition_group_manage ) %]
<a href="basketgroup.pl?op=add&booksellerid=[% lateorder.supplierid | uri %]&basketgroupid=[% lateorder.basketgroupid | uri %]" title="basketgroup">[% lateorder.basketgroupname | html %] ([% lateorder.basketgroupid | html %])</a>
[% ELSE %]
[% lateorder.basketgroupname | html %] ([% lateorder.basketgroupid | html %])</a>
[% END %]
[% END %]
</td>
<td>[% Branches.GetName( lateorder.branch ) | html %]
</td>
<td>[% lateorder.budget | html %]
</td>
<td>[% lateorder.claims_count | html %]</td>
<td>
[% IF ( lateorder.claimed_date ) %]
<span title="[% lateorder.claimed_date | html %]">[% lateorder.claimed_date | $KohaDates %]</span>
[% ELSE %]
<span title="0000-00-00"></span>
[% END %]
</td>
<td>
[% IF ( lateorder.internalnote ) %]
<p class="ordernote">
<span id="internal-note-[% lateorder.ordernumber | html %]">[% lateorder.internalnote | html %]</span>
<a class="edit_note noExport" data-ordernumber="[% lateorder.ordernumber | html %]" data-note_type="internal" href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% lateorder.ordernumber | html %]&type=internal" title="Edit internal note">
<i class="fa fa-pencil"></i> Edit internal note
</a>
</p>
[% ELSE %]
<a class="edit_note noExport" data-ordernumber="[% lateorder.ordernumber | html %]" data-note_type="internal" href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% lateorder.ordernumber | html %]&type=internal" title="Add internal note">
<i class="fa fa-plus"></i> Add internal note
</a>
[% END %]
</td>
<td>
[% IF ( lateorder.vendornote ) %]
<p class="ordernote">
<span id="vendor-note-[% lateorder.ordernumber | html %]">[% lateorder.vendornote | html %]</span>
<a class="edit_note noExport" data-ordernumber="[% lateorder.ordernumber | html %]" data-note_type="vendor" href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% lateorder.ordernumber | html %]&type=vendor" title="Edit vendor note">
<i class="fa fa-pencil"></i> Edit vendor note
</a>
</p>
[% ELSE %]
<a class="edit_note noExport" data-ordernumber="[% lateorder.ordernumber | html %]" data-note_type="vendor" href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% lateorder.ordernumber | html %]&type=vendor" title="Add vendor note">
<i class="fa fa-plus"></i> Add vendor note
</a>
[% END %]
</td>
<td>[% lateorder.isbn | $raw %]</td>
</tr>
[% END %]
</tbody>
<tfoot>
<tr>
<th colspan="6">Total</th>
<th>[% total | html %]</th>
<th colspan="9">&nbsp;</th>
</tr>
</tfoot>
</table>
<div class="spacer"></div>
<p style="display:block;">
<input type="button" value="Export as CSV" id="ExportSelected" />
[% UNLESS lateorder.budget_lock %]
<input type="submit" value="Claim order" />
[% END %]
</p>
</form>
[% ELSE %]<p>There are no late orders.</p>
[% END %]
</div> <!-- /#acqui_lateorders -->
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
<div class="col-sm-2 col-sm-pull-10">
<aside>
<form action="lateorders.pl" method="get">
<fieldset class="brief">
<h4>Filter results:</h4>
[% FOREACH ERROR_LOO IN ERROR_LOOP %]
[% IF ( ERROR_LOO.delay_digits ) %]<p class="error">The number of days ([% ERROR_LOO.bad_delay | html %]) must be a number between 0 and 999.</p>[% END %]
[% END %]
<ol>
<li><label for="delay">Order date:</label><input size="3" maxlength="3" id="delay" type="text" name="delay" value="[% delay | html %]" /> days ago</li>
<li><label for="from">Estimated delivery date from: </label>
<input type="text" size="10" id="from" name="estimateddeliverydatefrom" value="[% estimateddeliverydatefrom | html %]" class="datepickerfrom" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li><label for="to">To: </label>
<input type="text" size="10" id="to" name="estimateddeliverydateto" value="[% estimateddeliverydateto | html %]" class="datepickerto" />
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li><label for="booksellerid">Vendor:</label>
<select id="booksellerid" size="1" tabindex="" name="booksellerid">
<option value=""></option>
[% FOREACH SUPPLIER_LOO IN SUPPLIER_LOOP %]
[% IF ( SUPPLIER_LOO.selected ) %]<option value="[% SUPPLIER_LOO.id | html %]" selected="selected">[% SUPPLIER_LOO.name | html %]</option>
[% ELSE %]<option value="[% SUPPLIER_LOO.id | html %]">[% SUPPLIER_LOO.name | html %]</option>[% END %]
[% END %]
</select>
</ol>
<fieldset class="action"><input type="submit" value="Filter" /></fieldset>
</fieldset>
</form>
[% INCLUDE 'acquisitions-menu.inc' %]
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
</div>
<!-- Modal for editing vendor and internal notes -->
<div class="modal" id="noteEditor" tabindex="-1" role="dialog" aria-labelledby="noteEditorLabel">
<div class="modal-dialog" role="document">
<form id="modify_order_notes" action="/cgi-bin/koha/acqui/modordernotes.pl" method="post">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="noteEditorLabel">Order note</h4>
</div>
<div class="modal-body">
<textarea id="ordernotes" name="ordernotes" rows="3" cols="30" class="focus">[% ordernotes | html %]</textarea>
<input type="hidden" id="ordernumber" name="ordernumber" value="" />
<input type="hidden" name="op" value="save" />
<input type="hidden" id="type" name="type" value="" />
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-default">Save</button>
<button type="button" class="btn btn-link cancel" data-dismiss="modal">Cancel</button>
</div>
</div>
</form>
</div>
</div>
[% MACRO jsinclude BLOCK %]
[% Asset.js("js/acquisitions-menu.js") | $raw %]
[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'columns_settings.inc' %]
[% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
[% INCLUDE 'calendar.inc' %]
<script>
var late_orderst;
function check_uncheck() {
var all_nodes = $(late_orderst.fnGetNodes());
if ( $(all_nodes).find("input:checkbox[name=ordernumber]:checked").length > 0) {
var booksellerid = $(all_nodes).find("input:checkbox[name=ordernumber]:checked:first").attr("data-booksellerid");
$(all_nodes).find("input:checkbox[name=ordernumber][data-booksellerid!="+booksellerid+"]").prop('disabled', true);
} else {
$("input:checkbox[name=ordernumber]").prop('disabled', false);
}
}
$(document).ready(function() {
var columns_settings = [% ColumnsSettings.GetColumns( 'acqui', 'lateorders', 'late_orders', 'json' ) | $raw %];
late_orderst = KohaTable("late_orders", {
"aoColumnDefs": [
{ "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
{ "sType": "anti-the", "aTargets" : [ "anti-the" ] },
{ "sType": "title-string", "aTargets" : [ "title-string" ] }
],
"sPaginationType": "full",
"bAutoWidth": false,
"fnDrawCallback": function() {
if ( typeof late_orderst != 'undefined' ) {
check_uncheck();
$('input:checkbox[name=ordernumber]').bind('click', check_uncheck);
};
}
}, columns_settings );
$('input:checkbox[name=ordernumber]').bind('click', check_uncheck);
$('#CheckAll').click(function(){ $(late_orderst.fnGetNodes()).find("td").checkCheckboxes();});
$('#CheckNone').click(function(){ $(late_orderst.fnGetNodes()).find("td").unCheckCheckboxes();});
// Generates a dynamic link for exporting the selection's data as CSV
$("#ExportSelected").click(function() {
var all_nodes = $(late_orderst.fnGetNodes());
var selected = $(all_nodes).find("input[name='ordernumber']:checked");
if (selected.length == 0) {
alert(_("Please select at least one item to export."));
return false;
}
// Building the url from currently checked boxes
var url = '/cgi-bin/koha/acqui/lateorders-export.pl?op=export';
for (var i = 0; i < selected.length; i++) {
url += '&amp;ordernumber=' + selected[i].value;
}
// And redirecting to the CSV page
location.href = url;
return false;
});
$(".edit_note").on("click", function(e) {
e.preventDefault();
var ordernumber = $(this).data("ordernumber");
var note_type = $(this).data("note_type");
var modalTitle = $(this).attr("title") + " (order number " + ordernumber + ")";
var note_text = $( "#" + note_type + "-note-" + ordernumber ).html();
$("#noteEditor .modal-title").text(modalTitle);
$("#ordernumber").val( ordernumber );
$("#ordernotes").html( note_text );
$("#type").val( note_type );
$("#noteEditor").modal("show");
$("#ordernotes").focus();
});
$("#noteEditor").on('hidden.bs.modal', function (e) {
$("#noteEditorLabel").html("");
$("#noteEditor .modal-title").text("");
$("#ordernotes").html( "" );
$("#ordernumber").val("");
$("#type").val("");
});
});
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]