From f00c118ce10a11383ed0dcfbe38b1744face4518 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Wed, 5 Apr 2017 15:37:35 +0200 Subject: [PATCH] [SIGNED-OFF] Bug 18394: Add an option to item search to export a barcodes file Test plan: 1. Go to item search (/cgi-bin/koha/catalogue/itemsearch.pl) 2. Fill the form with whatever you want 3. Leave the 'Output' option to 'Screen' and click 'Search' 4. Verify that the search still works 5. Click on 'Edit search' and set 'Output' to 'Barcodes file', click 'Search' 6. You should be able to download a 'barcodes.txt' file, open it and compare it to the previous search results 7. Now click on the 'Export results to barcodes file' button above the results, you should have the same result as in step 5 8. Verify that the CSV export still works Signed-off-by: Owen Leonard --- catalogue/itemsearch.pl | 16 +++++ .../prog/en/modules/catalogue/itemsearch.tt | 79 ++++++++++++++-------- 2 files changed, 66 insertions(+), 29 deletions(-) diff --git a/catalogue/itemsearch.pl b/catalogue/itemsearch.pl index 66a9cf7..5f20dd3 100755 --- a/catalogue/itemsearch.pl +++ b/catalogue/itemsearch.pl @@ -75,6 +75,9 @@ if (defined $format and $format eq 'json') { # Retrieve all results $cgi->param('rows', 0); +} elsif (defined $format and $format eq 'barcodes') { + # Retrieve all results + $cgi->param('rows', 0); } elsif (defined $format) { die "Unsupported format $format"; } @@ -196,6 +199,19 @@ if (scalar keys %params > 0) { }; my ($results, $total_rows) = SearchItems($filter, $search_params); + + if ($format eq 'barcodes') { + print $cgi->header({ + type => 'text/plain', + attachment => 'barcodes.txt', + }); + + foreach my $item (@$results) { + print $item->{barcode} . "\n"; + } + exit; + } + if ($results) { # Get notforloan labels my $notforloan_map = {}; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt index a904146..5905e3e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt @@ -226,11 +226,54 @@ + ' ' + tr + tr + '' + ' ' + ''; - var results_heading = "

" + _("Item search results") + "

"; - results_heading += "

" + _("Go to advanced search") + "

"; - results_heading += "

" + _("Edit search") + ""; - results_heading += " | " + _("Output results to csv") + "

"; - $('#results-wrapper').empty().html(results_heading + table); + + var advSearchLink = $('') + .attr('href', '/cgi-bin/koha/catalogue/search.pl') + .html(_("Go to advanced search")); + var editSearchLink = $('') + .attr('href', '#') + .html(_("Edit search")) + .addClass('btn btn-default btn-xs') + .on('click', function(e) { + e.preventDefault(); + $('#item-search-block').show(); + }); + + var csvExportLink = $('') + .attr('href', '#') + .html(_("Export results to CSV")) + .addClass('btn btn-default btn-xs') + .on('click', function(e) { + e.preventDefault(); + $('#format-csv').prop('checked', true); + $('#itemsearchform').submit(); + $('#format-html').prop('checked', true); + }); + var barcodesExportLink = $('') + .attr('href', '#') + .html(_("Export results to barcodes file")) + .addClass('btn btn-default btn-xs') + .on('click', function(e) { + e.preventDefault(); + $('#format-barcodes').prop('checked', true); + $('#itemsearchform').submit(); + $('#format-html').prop('checked', true); + }); + + var editSearchAndExportLinks = $('

') + .append(editSearchLink) + .append(' | ') + .append(csvExportLink) + .append(' ') + .append(barcodesExportLink); + + var results_heading = $('

').addClass('results-heading') + .append("

" + _("Item search results") + "

") + .append($('

').append(advSearchLink)) + .append(editSearchAndExportLinks); + $('#results-wrapper').empty() + .append(results_heading) + .append(table); var params = []; $form.find('select').not(':disabled').find('option:selected').each(function () { @@ -310,11 +353,6 @@ }); } - function hideForm() { - $("#item-search-block").hide(); - $('.editsearchlink').show(); - } - $(document).ready(function () { $('#toolbar').fixFloat(); // Add the "New field" link. @@ -351,26 +389,10 @@ var format = searchform.find('input[name="format"]:checked').val(); if (format == 'html') { submitForm(searchform); - hideForm(); + $("#item-search-block").hide(); return false; } }); - - $("body").on("click",".editsearchlink",function(e) { - e.preventDefault(); - $('#item-search-block').show(); - $(this).hide(); - return false; - }); - - $("body").on("click",".resultstocsv",function(e) { - e.preventDefault(); - $('#format-csv').prop("checked",true); - $('#itemsearchform').submit(); - hideForm(); - $('#format-html').prop("checked",true); - return false; - }); }); //]]> @@ -479,11 +501,10 @@ +

- -

-- 2.1.4