From b633f56c35376db9d800f7a056d4f1c88b00019b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 3 Nov 2014 17:23:22 +0100 Subject: [PATCH] Bug 13190: Reintroduce the checkouts export feature Bug 11703 breaks the checkouts export feature. To reproduce: Fill the ExportWithCsvProfile pref and go on the circ/circulation.pl page. The export column appears, but not the export button. Test plan: Go on the checkout list (circ/circulation.pl and members/moremember.pl) and verify the export column and the export button appears. If you click on the button, a file should be generated. Signed-off-by: Kyle M Hall Signed-off-by: Katrin Fischer Signed-off-by: Mason James --- C4/Record.pm | 3 +- circ/circulation.pl | 2 - .../prog/en/js/pages/circulation.js | 7 +- .../prog/en/modules/circ/circulation.tt | 116 +++++++++++++----- .../prog/en/modules/members/moremember.tt | 29 +++++ tools/export.pl | 2 +- 6 files changed, 120 insertions(+), 39 deletions(-) diff --git a/C4/Record.pm b/C4/Record.pm index cbec11a027..e1a4727cfd 100644 --- a/C4/Record.pm +++ b/C4/Record.pm @@ -374,6 +374,7 @@ C<$itemnumbers> - a list of itemnumbers to export sub marc2csv { my ($biblios, $id, $itemnumbers) = @_; + $itemnumbers ||= []; my $output; my $csv = Text::CSV::Encoded->new(); @@ -388,7 +389,7 @@ sub marc2csv { eval $preprocess if ($preprocess); my $firstpass = 1; - if ( $itemnumbers ) { + if ( @$itemnumbers ) { for my $itemnumber ( @$itemnumbers) { my $biblionumber = GetBiblionumberFromItemnumber $itemnumber; $output .= marcrecord2csv( $biblionumber, $id, $firstpass, $csv, $fieldprocessing, [$itemnumber] ); diff --git a/circ/circulation.pl b/circ/circulation.pl index 18a95d9541..7b7c4a37e8 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -572,8 +572,6 @@ $template->param( SpecifyDueDate => $duedatespec_allow, CircAutocompl => C4::Context->preference("CircAutocompl"), AllowRenewalLimitOverride => C4::Context->preference("AllowRenewalLimitOverride"), - export_remove_fields => C4::Context->preference("ExportRemoveFields"), - export_with_csv_profile => C4::Context->preference("ExportWithCsvProfile"), canned_bor_notes_loop => $canned_notes, debarments => GetDebarments({ borrowernumber => $borrowernumber }), ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/pages/circulation.js b/koha-tmpl/intranet-tmpl/prog/en/js/pages/circulation.js index aa3fd43b6d..cea3e88265 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/pages/circulation.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/pages/circulation.js @@ -41,11 +41,10 @@ $(document).ready(function() { minute: 59 }); $("#export_submit").on("click",function(){ - var export_format = $("#export_formats").val(); - export_checkouts(export_format); + var output_format = $("#output_format").val(); + export_checkouts(output_format); return false; }); - }); function export_checkouts(format) { @@ -70,7 +69,7 @@ function export_checkouts(format) { $("#dont_export_item").val(1); } - document.getElementById("export_format").value = format; + document.getElementById("output_format").value = format; document.issues.submit(); } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt index c3b1875053..e271deb3f5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -1,6 +1,6 @@ [% USE Branches %] [% USE KohaDates %] -[% IF ( export_remove_fields OR export_with_csv_profile ) %] +[% IF Koha.Preference('ExportRemoveFields') OR Koha.Preference('ExportWithCsvProfile') %] [% SET exports_enabled = 1 %] [% END %] [% USE AuthorisedValues %] @@ -41,7 +41,22 @@ var relatives_borrowernumbers = new Array(); var MSG_ADD_MESSAGE = _("Add a new message"); var MSG_EXPORT_SELECT_CHECKOUTS = _("You must select checkout(s) to export"); [% IF ( borrowernumber ) %]if($.cookie("holdfor") != [% borrowernumber %]){ $.cookie("holdfor",null, { path: "/", expires: 0 }); }[% ELSE %]$.cookie("holdfor",null, { path: "/", expires: 0 });[% END %] -[% UNLESS ( borrowernumber ) %][% UNLESS ( CGIselectborrower ) %]window.onload=function(){ $('#findborrower').focus(); };[% END %][% END %] +[% UNLESS ( borrowernumber ) %][% UNLESS ( selectborrower ) %]window.onload=function(){ $('#findborrower').focus(); };[% END %][% END %] + +// On-site checkout +function toggle_onsite_checkout(){ + if ( $("#onsite_checkout").attr('checked') ) { + $("#duedatespec").val("[% todaysdate | $KohaDates with_hours => 1%]") + $("#duedatespec").datetimepicker('destroy'); + } else { + $("#duedatespec").datetimepicker({ + onClose: function(dateText, inst) { $("#barcode").focus(); }, + hour: 23, + minute: 59 + }); + } +} + $(document).ready(function() { [% IF !( CircAutoPrintQuickSlip == 'clear' ) %] // listen submit to trigger qslip on empty checkout @@ -51,7 +66,12 @@ $(document).ready(function() { } }); [% END %] + toggle_onsite_checkout(); + $("#onsite_checkout").click(function(){ + toggle_onsite_checkout(); + }); }); + //]]> @@ -679,38 +699,72 @@ No patron matched [% message %]
[% IF ( issuecount ) %] - - - - - - - - - - - - - - - - - - - - [% INCLUDE 'checkouts-table-footer.inc' %] -
  Due dateDue dateTitleItem typeChecked out onChecked out fromCall noChargePriceRenew

select all | none

Check in

select all | none

Export

select all | none

+ -
- [% IF ( CAN_user_circulate_override_renewals ) %] - [% IF ( AllowRenewalLimitOverride ) %] - - +
+ + + + + + + + + + + + + + + + + + + + [% INCLUDE 'checkouts-table-footer.inc' %] +
  Due dateDue dateTitleItem typeChecked out onChecked out fromCall noChargePriceRenew

select all | none

Check in

select all | none

Export

select all | none

+ + + + +
+ [% IF ( CAN_user_circulate_override_renewals ) %] + [% IF ( AllowRenewalLimitOverride ) %] + + + [% END %] + [% END %] + + +
+ + [% IF issuecount %] + [% IF ( exports_enabled ) %] +
+ + + + + + + + + +
[% END %] [% END %] - - -
+ + [% ELSE %]

Patron has nothing checked out.

[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt index f87defbcd2..59999beeb9 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt @@ -1,4 +1,7 @@ [% USE KohaDates %] +[% IF Koha.Preference('ExportRemoveFields') OR Koha.Preference('ExportWithCsvProfile') %] + [% SET exports_enabled = 1 %] +[% END %] [% INCLUDE 'doc-head-open.inc' %] Koha › Patrons › [% IF ( unknowuser ) %] @@ -16,6 +19,7 @@ <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery-ui-timepicker-addon.min.js"></script> [% INCLUDE 'timepicker.inc' %] <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.rowGrouping.js"></script> +<script type="text/javascript" src="[% themelang %]/js/pages/circulation.js"></script> <script type="text/javascript" src="[% themelang %]/js/checkouts.js"></script> <script type="text/javascript" src="[% themelang %]/js/holds.js"></script> <script type="text/JavaScript"> @@ -32,6 +36,9 @@ var relatives_borrowernumbers = new Array(); relatives_borrowernumbers.push("[% b %]"); [% END %] +var MSG_ADD_MESSAGE = _("Add a new message"); +var MSG_EXPORT_SELECT_CHECKOUTS = _("You must select checkout(s) to export"); + $(document).ready(function() { $('#finesholdsissues').tabs({ // Correct table sizing for tables hidden in tabs @@ -438,6 +445,28 @@ function validate1(date) { <label for="override_limit">Override renewal limit:</label> <input type="checkbox" name="override_limit" id="override_limit" value="1" /> [% END %] + <button class="btn" id="RenewCheckinChecked"><i class="icon-check"></i> Renew or return checked items</button> + <button class="btn" id="RenewAll"><i class="icon-book"></i> Renew all</button> + </fieldset> + + [% IF ( exports_enabled ) %] + <fieldset> + <label for="output_format"><b>Export checkouts using format:</b></label> + <select name="output_format" id="output_format"> + <option value="iso2709_995">ISO2709 with items</option> + <option value="iso2709">ISO2709 without items</option> + [% IF Koha.Preference('ExportWithCsvProfile') %] + <option value="csv">CSV</option> + [% END %] + </select> + + <label for="export_remove_fields">Don't export fields:</label> <input type="text" id="export_remove_fields" name="export_remove_fields" value="[% export_remove_fields %]" title="Use for iso2709 exports" /> + <input type="hidden" name="op" value="export" /> + <input type="hidden" id="output_format" name="output_format" value="iso2709" /> + <input type="hidden" id="dont_export_item" name="dont_export_item" value="0" /> + <input type="hidden" id="record_type" name="record_type" value="bibs" /> + <button class="btn btn-small" id="export_submit"><i class="icon-download-alt"></i> Export</button> + </fieldset> [% END %] <button class="btn" id="RenewCheckinChecked"><i class="icon-check"></i> Renew or return checked items</button> <button class="btn" id="RenewAll"><i class="icon-book"></i> Renew all</button> diff --git a/tools/export.pl b/tools/export.pl index 1a055b0719..33d1515771 100755 --- a/tools/export.pl +++ b/tools/export.pl @@ -43,7 +43,7 @@ my $op = $query->param("op") || ''; my $filename = $query->param("filename") || 'koha.mrc'; my $dbh = C4::Context->dbh; my $marcflavour = C4::Context->preference("marcflavour"); -my $format = $query->param("format") || 'iso2709'; +my $format = $query->param("format") || $query->param("output_format") || 'iso2709'; # Checks if the script is called from commandline my $commandline = not defined $ENV{GATEWAY_INTERFACE}; -- 2.39.5