From 6727a61578ec2b0ed3ebed182715a3f85c0b33d6 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Wed, 5 Apr 2017 15:37:35 +0200 Subject: [PATCH] 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 Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall --- 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 66a9cf7395..5f20dd3813 100755 --- a/catalogue/itemsearch.pl +++ b/catalogue/itemsearch.pl @@ -73,6 +73,9 @@ if (defined $format and $format eq 'json') { } elsif (defined $format and $format eq 'csv') { $template_name = 'catalogue/itemsearch_csv.tt'; + # Retrieve all results + $cgi->param('rows', 0); +} elsif (defined $format and $format eq 'barcodes') { # Retrieve all results $cgi->param('rows', 0); } elsif (defined $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 a90414666a..5905e3e281 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.39.5