View | Details | Raw Unified | Return to bug 14715
Collapse All | Expand All

(-)a/C4/Search.pm (-2 / +2 lines)
Lines 446-452 sub getRecords { Link Here
446
                # loop through the results
446
                # loop through the results
447
                $results_hash->{'hits'} = $size;
447
                $results_hash->{'hits'} = $size;
448
                my $times;
448
                my $times;
449
                if ( $offset + $results_per_page <= $size ) {
449
                if ( $results_per_page != 'all' && ($offset + $results_per_page <= $size) ) {
450
                    $times = $offset + $results_per_page;
450
                    $times = $offset + $results_per_page;
451
                }
451
                }
452
                else {
452
                else {
Lines 1888-1894 sub searchResults { Link Here
1888
1888
1889
    # handle which records to actually retrieve
1889
    # handle which records to actually retrieve
1890
    my $times;
1890
    my $times;
1891
    if ( $hits && $offset + $results_per_page <= $hits ) {
1891
    if ( $hits && $results_per_page != 'all' && ($offset + $results_per_page <= $hits) ) {
1892
        $times = $offset + $results_per_page;
1892
        $times = $offset + $results_per_page;
1893
    }
1893
    }
1894
    else {
1894
    else {
(-)a/catalogue/search.pl (-5 / +12 lines)
Lines 149-155 use C4::Koha; Link Here
149
use URI::Escape;
149
use URI::Escape;
150
use POSIX qw(ceil floor);
150
use POSIX qw(ceil floor);
151
use C4::Search::History;
151
use C4::Search::History;
152
152
use String::Random;
153
use Koha::ItemTypes;
153
use Koha::ItemTypes;
154
use Koha::LibraryCategories;
154
use Koha::LibraryCategories;
155
use Koha::Patrons;
155
use Koha::Patrons;
Lines 447-457 for (my $ii = 0; $ii < @operands; ++$ii) Link Here
447
# Params that can only have one value
447
# Params that can only have one value
448
my $scan = $params->{'scan'};
448
my $scan = $params->{'scan'};
449
my $count = C4::Context->preference('numSearchResults') || 20;
449
my $count = C4::Context->preference('numSearchResults') || 20;
450
my $results_per_page = $params->{'count'} || $count;
450
my @results_per_page_options = grep /^\d+$/,
451
                               map {s/\s+//g;$_;}
452
                               split /,/, C4::Context->preference('numSearchResultsPerPage');
453
push(@results_per_page_options, $count);
454
@results_per_page_options = do { my %seen; grep { !$seen{$_}++ } @results_per_page_options };
455
@results_per_page_options = sort {$a <=> $b} @results_per_page_options;
456
457
my $results_per_page = $params->{'results_per_page'} || $cgi->cookie("results_per_page") || $count;
458
my $page = $cgi->param('page') || 1;
451
my $offset = $params->{'offset'} || 0;
459
my $offset = $params->{'offset'} || 0;
452
$offset = 0 if $offset < 0;
460
$offset = 0 if $offset < 0;
453
my $page = $cgi->param('page') || 1;
454
#my $offset = ($page-1)*$results_per_page;
455
my $hits;
461
my $hits;
456
my $expanded_facet = $params->{'expand'};
462
my $expanded_facet = $params->{'expand'};
457
463
Lines 538-543 for (my $i=0;$i<@servers;$i++) { Link Here
538
    my $server = $servers[$i];
544
    my $server = $servers[$i];
539
    if ($server =~/biblioserver/) { # this is the local bibliographic server
545
    if ($server =~/biblioserver/) { # this is the local bibliographic server
540
        $hits = $results_hashref->{$server}->{"hits"};
546
        $hits = $results_hashref->{$server}->{"hits"};
547
        $results_per_page = $hits if $results_per_page == 'all';
541
        my $page = $cgi->param('page') || 0;
548
        my $page = $cgi->param('page') || 0;
542
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
549
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
543
                                       $results_hashref->{$server}->{"RECORDS"});
550
                                       $results_hashref->{$server}->{"RECORDS"});
Lines 601-607 for (my $i=0;$i<@servers;$i++) { Link Here
601
            if ($query_desc || $limit_desc) {
608
            if ($query_desc || $limit_desc) {
602
                $template->param(searchdesc => 1);
609
                $template->param(searchdesc => 1);
603
            }
610
            }
604
            $template->param(results_per_page =>  $results_per_page);
611
            $template->param(results_per_page =>  $results_per_page == $hits ? 'all' : $results_per_page);
605
            # must define a value for size if not present in DB
612
            # must define a value for size if not present in DB
606
            # in order to avoid problems generated by the default size value in TT
613
            # in order to avoid problems generated by the default size value in TT
607
            foreach my $line (@newresults) {
614
            foreach my $line (@newresults) {
(-)a/installer/data/mysql/atomicupdate/bug_14715-searchresults_syspref.sql (+2 lines)
Line 0 Link Here
1
INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`,`type`) VALUES ('OPACnumSearchResultsPerPage', '10,20,40,60,80,100', NULL, 'Option list of number of results per page to show in OPAC search results','YesNo');
2
INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`,`type`) VALUES ('numSearchResultsPerPage', '10,20,40,60,80,100', NULL, 'Option list of number of results per page to show in staff client search results','YesNo');
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt (-4 / +19 lines)
Lines 97-105 $("#forgetholdfor").click(function(){ Link Here
97
    $(".btn-group").removeClass("open");
97
    $(".btn-group").removeClass("open");
98
    return false;
98
    return false;
99
});
99
});
100
$('#sortbyform').find("input:submit").hide();
100
$('#resultoptionsform').find("input:submit").hide();
101
$('#sort_by').change(function() {
101
$('#sort_by').change(function() {
102
        $('#sortbyform').submit();
102
        $('#resultoptionsform').submit();
103
    });
104
$('#results_per_page').change(function() {
105
        $.cookie('results_per_page', $(this).val());
106
        $('#resultoptionsform').submit();
103
    });
107
    });
104
        var param1 = "<label for=\"addto\">"+_("Add to:")+"<\/label><select name=\"addto\" id=\"addto\"><option value=\"\"><\/option>";
108
        var param1 = "<label for=\"addto\">"+_("Add to:")+"<\/label><select name=\"addto\" id=\"addto\"><option value=\"\"><\/option>";
105
        [% IF ( intranetbookbag ) %]     param1 += "<option value=\"addtocart\">"+_("Cart")+"<\/option>"; [% END %]
109
        [% IF ( intranetbookbag ) %]     param1 += "<option value=\"addtocart\">"+_("Cart")+"<\/option>"; [% END %]
Lines 344-350 var holdForPatron = function () { Link Here
344
348
345
    [% IF ( total ) %]
349
    [% IF ( total ) %]
346
        <div id="searchheader">
350
        <div id="searchheader">
347
            <form action="/cgi-bin/koha/catalogue/search.pl" method="get" id="sortbyform">
351
            <form action="/cgi-bin/koha/catalogue/search.pl" method="get" id="resultoptionsform">
348
                [% IF ( searchdesc ) %]
352
                [% IF ( searchdesc ) %]
349
                    [% FOREACH QUERY_INPUT IN QUERY_INPUTS %]
353
                    [% FOREACH QUERY_INPUT IN QUERY_INPUTS %]
350
                    <input type="hidden" name="[% QUERY_INPUT.input_name |html %]" value="[% QUERY_INPUT.input_value |html %]"/>
354
                    <input type="hidden" name="[% QUERY_INPUT.input_name |html %]" value="[% QUERY_INPUT.input_value |html %]"/>
Lines 358-365 var holdForPatron = function () { Link Here
358
                    <select id="sort_by" name="sort_by">
362
                    <select id="sort_by" name="sort_by">
359
                    [% INCLUDE 'resort_form.inc' %]
363
                    [% INCLUDE 'resort_form.inc' %]
360
                    </select>
364
                    </select>
361
                    <input type="submit" value="Go" />
362
                <!-- RESORT END -->
365
                <!-- RESORT END -->
366
                <!-- RESULTS_PER_PAGE START -->
367
                    <label for="results_per_page">Results per page: </label>
368
                    <select id="results_per_page" name="results_per_page">
369
                        <option value="20" [% 'SELECTED' IF results_per_page == '20' %]>20</option>
370
                        <option value="40" [% 'SELECTED' IF results_per_page == '40' %]>40</option>
371
                        <option value="60" [% 'SELECTED' IF results_per_page == '60' %]>60</option>
372
                        <option value="80" [% 'SELECTED' IF results_per_page == '80' %]>80</option>
373
                        <option value="100" [% 'SELECTED' IF results_per_page == '100' %]>100</option>
374
                        <option value="all" [% 'SELECTED' IF results_per_page == 'all' %]>all</option>
375
                    </select>
376
                <!-- RESULTS_PER_PAGE END -->
377
                    <input type="submit" value="Go" />
363
            </form>
378
            </form>
364
            <h3>
379
            <h3>
365
                [% total %] result(s) found [% IF ( query_desc ) %]for <span style="font-weight: bold;">'[% query_desc |html %]'</span>[% END %][% IF limit_desc  %]&nbsp;with limit(s): <span style="font-weight: bold;">'[% limit_desc | html %]'</span>[% END %][% IF ( LibraryName ) %] in [% LibraryName %] Catalog[% END %].<br />&nbsp;
380
                [% total %] result(s) found [% IF ( query_desc ) %]for <span style="font-weight: bold;">'[% query_desc |html %]'</span>[% END %][% IF limit_desc  %]&nbsp;with limit(s): <span style="font-weight: bold;">'[% limit_desc | html %]'</span>[% END %][% IF ( LibraryName ) %] in [% LibraryName %] Catalog[% END %].<br />&nbsp;
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt (+14 lines)
Lines 145-150 Link Here
145
                                    [% UNLESS tag %]
145
                                    [% UNLESS tag %]
146
                                        <div class="sort_by pull-right">
146
                                        <div class="sort_by pull-right">
147
                                            <select id="sort_by" class="resort" name="sort_by"> [% INCLUDE 'resort_form.inc' %] </select>
147
                                            <select id="sort_by" class="resort" name="sort_by"> [% INCLUDE 'resort_form.inc' %] </select>
148
149
                                            <label for="results_per_page">Results per page: </label>
150
                                            <select id="results_per_page" name="results_per_page">
151
                                                <option value="20" [% 'SELECTED' IF results_per_page == '20' %]>20</option>
152
                                                <option value="40" [% 'SELECTED' IF results_per_page == '40' %]>40</option>
153
                                                <option value="60" [% 'SELECTED' IF results_per_page == '60' %]>60</option>
154
                                                <option value="80" [% 'SELECTED' IF results_per_page == '80' %]>80</option>
155
                                                <option value="100" [% 'SELECTED' IF results_per_page == '100' %]>100</option>
156
                                            </select>
157
148
                                            <input type="submit" class="btn btn-small clearfix" id="sortsubmit" value="Go" />
158
                                            <input type="submit" class="btn btn-small clearfix" id="sortsubmit" value="Go" />
149
                                        </div>
159
                                        </div>
150
                                    [% END %]
160
                                    [% END %]
Lines 792-797 $(document).ready(function(){ Link Here
792
    $('.resort').change(function() {
802
    $('.resort').change(function() {
793
        $('#bookbag_form').submit();
803
        $('#bookbag_form').submit();
794
    });
804
    });
805
    $('#results_per_page').change(function() {
806
        $.cookie('results_per_page', $(this).val());
807
        $('#bookbag_form').submit();
808
    });
795
    $("span.clearall").html("<a id=\"CheckNone\" href=\"#\">"+_("Clear all")+"<\/a>");
809
    $("span.clearall").html("<a id=\"CheckNone\" href=\"#\">"+_("Clear all")+"<\/a>");
796
    $("span.checkall").html("<a id=\"CheckAll\" href=\"#\">"+_("Select all")+"<\/a>");
810
    $("span.checkall").html("<a id=\"CheckAll\" href=\"#\">"+_("Select all")+"<\/a>");
797
811
(-)a/opac/opac-search.pl (-6 / +4 lines)
Lines 519-529 if ($params->{'limit-yr'}) { Link Here
519
my $scan = $params->{'scan'};
519
my $scan = $params->{'scan'};
520
my $count = C4::Context->preference('OPACnumSearchResults') || 20;
520
my $count = C4::Context->preference('OPACnumSearchResults') || 20;
521
my $countRSS         = C4::Context->preference('numSearchRSSResults') || 50;
521
my $countRSS         = C4::Context->preference('numSearchRSSResults') || 50;
522
my $results_per_page = $params->{'count'} || $count;
522
my $results_per_page = $params->{'results_per_page'} || $cgi->cookie("results_per_page") || $count;
523
my $page = $cgi->param('page') || 1;
523
my $offset = $params->{'offset'} || 0;
524
my $offset = $params->{'offset'} || 0;
524
$offset = 0 if $offset < 0;
525
$offset = 0 if $offset < 0;
525
my $page = $cgi->param('page') || 1;
526
$offset = ($page-1)*$results_per_page if $page>1;
527
my $hits;
526
my $hits;
528
my $expanded_facet = $params->{'expand'};
527
my $expanded_facet = $params->{'expand'};
529
528
Lines 604-610 if ($tag) { Link Here
604
    # FIXME: No facets for tags search.
603
    # FIXME: No facets for tags search.
605
} elsif ($build_grouped_results) {
604
} elsif ($build_grouped_results) {
606
    eval {
605
    eval {
607
        ($error, $results_hashref, $facets) = C4::Search::pazGetRecords($query,$simple_query,\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,undef,$query_type,$scan);
606
        ($error, $results_hashref, $facets) = C4::Search::pazGetRecords($query,$simple_query,\@sort_by,\@servers,$results_per_page,$offset,$expanded_facet,$query_type,$scan);
608
    };
607
    };
609
} else {
608
} else {
610
    $pasarParams .= '&amp;query=' . uri_escape_utf8($query);
609
    $pasarParams .= '&amp;query=' . uri_escape_utf8($query);
Lines 787-793 for (my $i=0;$i<@servers;$i++) { Link Here
787
            if ($query_desc || $limit_desc) {
786
            if ($query_desc || $limit_desc) {
788
                $template->param(searchdesc => 1);
787
                $template->param(searchdesc => 1);
789
            }
788
            }
790
            $template->param(results_per_page =>  $results_per_page);
789
            $template->param(results_per_page => $results_per_page);
791
            my $hide = C4::Context->preference('OpacHiddenItems');
790
            my $hide = C4::Context->preference('OpacHiddenItems');
792
            $hide = ($hide =~ m/\S/) if $hide; # Just in case it has some spaces/new lines
791
            $hide = ($hide =~ m/\S/) if $hide; # Just in case it has some spaces/new lines
793
            my $branch = '';
792
            my $branch = '';
794
- 

Return to bug 14715