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

(-)a/C4/Items.pm (-4 / +13 lines)
Lines 1713-1728 sub GetBarcodeFromItemnumber { Link Here
1713
1713
1714
=head2 GetHiddenItemnumbers
1714
=head2 GetHiddenItemnumbers
1715
1715
1716
    my @itemnumbers_to_hide = GetHiddenItemnumbers(@items);
1716
    my @itemnumbers_to_hide = GetHiddenItemnumbers({ items => \@items, borcat => $category });
1717
1717
1718
Given a list of items it checks which should be hidden from the OPAC given
1718
Given a list of items it checks which should be hidden from the OPAC given
1719
the current configuration. Returns a list of itemnumbers corresponding to
1719
the current configuration. Returns a list of itemnumbers corresponding to
1720
those that should be hidden.
1720
those that should be hidden. Optionally takes a borcat parameter for certain borrower types
1721
to be excluded
1721
1722
1722
=cut
1723
=cut
1723
1724
1724
sub GetHiddenItemnumbers {
1725
sub GetHiddenItemnumbers {
1725
    my (@items) = @_;
1726
    my $params = shift;
1727
    my $items = $params->{items};
1728
    if (my $exceptions = C4::Context->preference('OpacHiddenItemsExceptions') and $params->{'borcat'}){
1729
        foreach my $except (split(/\|/, $exceptions)){
1730
            if ($params->{'borcat'} eq $except){
1731
                return; # we dont hide anything for this borrower category
1732
            }
1733
        }
1734
    }
1726
    my @resultitems;
1735
    my @resultitems;
1727
1736
1728
    my $yaml = C4::Context->preference('OpacHiddenItems');
1737
    my $yaml = C4::Context->preference('OpacHiddenItems');
Lines 1739-1745 sub GetHiddenItemnumbers { Link Here
1739
    my $dbh = C4::Context->dbh;
1748
    my $dbh = C4::Context->dbh;
1740
1749
1741
    # For each item
1750
    # For each item
1742
    foreach my $item (@items) {
1751
    foreach my $item (@$items) {
1743
1752
1744
        # We check each rule
1753
        # We check each rule
1745
        foreach my $field (keys %$hidingrules) {
1754
        foreach my $field (keys %$hidingrules) {
(-)a/C4/Search.pm (-6 / +7 lines)
Lines 1828-1836 sub searchResults { Link Here
1828
1828
1829
    require C4::Items;
1829
    require C4::Items;
1830
1830
1831
    $search_context = 'opac' if !$search_context || $search_context ne 'intranet';
1831
    $search_context->{'interface'} = 'opac' if !$search_context->{'interface'} || $search_context->{'interface'} ne 'intranet';
1832
    my ($is_opac, $hidelostitems);
1832
    my ($is_opac, $hidelostitems);
1833
    if ($search_context eq 'opac') {
1833
    if ($search_context->{'interface'} eq 'opac') {
1834
        $hidelostitems = C4::Context->preference('hidelostitems');
1834
        $hidelostitems = C4::Context->preference('hidelostitems');
1835
        $is_opac       = 1;
1835
        $is_opac       = 1;
1836
    }
1836
    }
Lines 1923-1928 sub searchResults { Link Here
1923
        # add imageurl to itemtype if there is one
1923
        # add imageurl to itemtype if there is one
1924
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1924
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1925
1925
1926
        $oldbiblio->{'authorised_value_images'}  = ($search_context->{'interface'} eq 'opac' && C4::Context->preference('AuthorisedValueImages')) || ($search_context->{'interface'} eq 'intranet' && C4::Context->preference('StaffAuthorisedValueImages')) ? C4::Items::get_authorised_value_images( C4::Biblio::get_biblio_authorised_values( $oldbiblio->{'biblionumber'}, $marcrecord ) ) : [];
1926
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1927
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1927
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1928
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1928
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
1929
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
Lines 2053-2059 sub searchResults { Link Here
2053
                    next;
2054
                    next;
2054
                }
2055
                }
2055
                # hidden based on OpacHiddenItems syspref
2056
                # hidden based on OpacHiddenItems syspref
2056
                my @hi = C4::Items::GetHiddenItemnumbers($item);
2057
                my @hi = C4::Items::GetHiddenItemnumbers({ items=> [ $item ], borcat => $search_context->{category} });
2057
                if (scalar @hi) {
2058
                if (scalar @hi) {
2058
                    push @hiddenitems, @hi;
2059
                    push @hiddenitems, @hi;
2059
                    $hideatopac_count++;
2060
                    $hideatopac_count++;
Lines 2180-2186 sub searchResults { Link Here
2180
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2181
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2181
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2182
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2182
					$other_items->{$key}->{description} = $item->{description};
2183
					$other_items->{$key}->{description} = $item->{description};
2183
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2184
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2184
                }
2185
                }
2185
                # item is available
2186
                # item is available
2186
                else {
2187
                else {
Lines 2191-2197 sub searchResults { Link Here
2191
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2192
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2192
					}
2193
					}
2193
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2194
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2194
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2195
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2195
                }
2196
                }
2196
            }
2197
            }
2197
        }    # notforloan, item level and biblioitem level
2198
        }    # notforloan, item level and biblioitem level
Lines 2217-2225 sub searchResults { Link Here
2217
2218
2218
        # XSLT processing of some stuff
2219
        # XSLT processing of some stuff
2219
        # we fetched the sysprefs already before the loop through all retrieved record!
2220
        # we fetched the sysprefs already before the loop through all retrieved record!
2221
        my $interface = $search_context->{'interface'} eq 'opac' ? 'OPAC' : '';
2220
        if (!$scan && $xslfile) {
2222
        if (!$scan && $xslfile) {
2221
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2223
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2222
        # the last parameter tells Koha to clean up the problematic ampersand entities that Zebra outputs
2223
        }
2224
        }
2224
2225
2225
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
2226
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
(-)a/catalogue/search.pl (-1 / +1 lines)
Lines 551-557 for (my $i=0;$i<@servers;$i++) { Link Here
551
    if ($server =~/biblioserver/) { # this is the local bibliographic server
551
    if ($server =~/biblioserver/) { # this is the local bibliographic server
552
        $hits = $results_hashref->{$server}->{"hits"};
552
        $hits = $results_hashref->{$server}->{"hits"};
553
        my $page = $cgi->param('page') || 0;
553
        my $page = $cgi->param('page') || 0;
554
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
554
        my @newresults = searchResults({ 'interface' => 'intranet' }, $query_desc, $hits, $results_per_page, $offset, $scan,
555
                                       $results_hashref->{$server}->{"RECORDS"});
555
                                       $results_hashref->{$server}->{"RECORDS"});
556
        $total = $total + $results_hashref->{$server}->{"hits"};
556
        $total = $total + $results_hashref->{$server}->{"hits"};
557
557
(-)a/cataloguing/addbooks.pl (-1 / +4 lines)
Lines 99-105 if ($query) { Link Here
99
    # format output
99
    # format output
100
    # SimpleSearch() give the results per page we want, so 0 offet here
100
    # SimpleSearch() give the results per page we want, so 0 offet here
101
    my $total = @{$marcresults};
101
    my $total = @{$marcresults};
102
    my @newresults = searchResults( 'intranet', $query, $total, $results_per_page, 0, 0, $marcresults );
102
    my @newresults = searchResults( {'interface' => 'intranet'}, $query, $total, $results_per_page, 0, 0, $marcresults );
103
    foreach my $line (@newresults) {
104
        if ( not exists $line->{'size'} ) { $line->{'size'} = "" }
105
    }
103
    $template->param(
106
    $template->param(
104
        total          => $total_hits,
107
        total          => $total_hits,
105
        query          => $query,
108
        query          => $query,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref (+3 lines)
Lines 552-557 OPAC: Link Here
552
              class: code
552
              class: code
553
            - Define custom rules to hide specific items from search and view on the OPAC. How to write these rules is documented on the <a href="http://wiki.koha-community.org/wiki/OpacHiddenItems" target="_blank">Koha wiki</a>.
553
            - Define custom rules to hide specific items from search and view on the OPAC. How to write these rules is documented on the <a href="http://wiki.koha-community.org/wiki/OpacHiddenItems" target="_blank">Koha wiki</a>.
554
        -
554
        -
555
            - pref: OpacHiddenItemsExceptions
556
            - List of borrower categories, separated by |, that can see items otherwise hidden by <tt>OpacHiddenItems</tt>
557
        -
555
            - pref: OpacAllowPublicListCreation
558
            - pref: OpacAllowPublicListCreation
556
              default: 1
559
              default: 1
557
              choices:
560
              choices:
(-)a/opac/opac-ISBDdetail.pl (-1 / +9 lines)
Lines 84-90 my $marcflavour = C4::Context->preference("marcflavour"); Link Here
84
84
85
my @items = GetItemsInfo($biblionumber);
85
my @items = GetItemsInfo($biblionumber);
86
if (scalar @items >= 1) {
86
if (scalar @items >= 1) {
87
    my @hiddenitems = GetHiddenItemnumbers(@items);
87
    my $borcat;
88
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
89
90
        # we need to fetch the borrower info here, so we can pass the category
91
        my $borrower = GetMember( borrowernumber => $borrowernumber );
92
        $borcat = $borrower->{categorycode};
93
    }
94
95
    my @hiddenitems = GetHiddenItemnumbers( { items => \@items, borcat => $borcat });
88
96
89
    if (scalar @hiddenitems == scalar @items ) {
97
    if (scalar @hiddenitems == scalar @items ) {
90
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
98
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
(-)a/opac/opac-MARCdetail.pl (-1 / +8 lines)
Lines 71-77 if ( ! $biblionumber ) { Link Here
71
my @all_items = GetItemsInfo($biblionumber);
71
my @all_items = GetItemsInfo($biblionumber);
72
my @items2hide;
72
my @items2hide;
73
if (scalar @all_items >= 1) {
73
if (scalar @all_items >= 1) {
74
    push @items2hide, GetHiddenItemnumbers(@all_items);
74
    my $borcat;
75
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
76
77
        # we need to fetch the borrower info here, so we can pass the category
78
        my $borrower = GetMember( borrowernumber => $borrowernumber );
79
        $borcat = $borrower->{categorycode};
80
    }
81
    push @items2hide, GetHiddenItemnumbers({ items => \@all_items, borcat => $botcat });
75
82
76
    if (scalar @items2hide == scalar @all_items ) {
83
    if (scalar @items2hide == scalar @all_items ) {
77
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
84
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
(-)a/opac/opac-detail.pl (-3 / +12 lines)
Lines 75-82 $biblionumber = int($biblionumber); Link Here
75
75
76
my @all_items = GetItemsInfo($biblionumber);
76
my @all_items = GetItemsInfo($biblionumber);
77
my @hiddenitems;
77
my @hiddenitems;
78
if (scalar @all_items >= 1) {
78
if ( scalar @all_items >= 1 ) {
79
    push @hiddenitems, GetHiddenItemnumbers(@all_items);
79
    my $borcat;
80
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
81
82
        # we need to fetch the borrower info here, so we can pass the category
83
        my $borrower = GetMember( borrowernumber => $borrowernumber );
84
        $borcat = $borrower->{categorycode};
85
    }
86
87
    push @hiddenitems,
88
      GetHiddenItemnumbers( { items => \@all_items, borcat => $borcat } );
80
89
81
    if (scalar @hiddenitems == scalar @all_items ) {
90
    if (scalar @hiddenitems == scalar @all_items ) {
82
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
91
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
Lines 215-221 if ($session->param('busc')) { Link Here
215
        for (my $i=0;$i<@servers;$i++) {
224
        for (my $i=0;$i<@servers;$i++) {
216
            my $server = $servers[$i];
225
            my $server = $servers[$i];
217
            $hits = $results_hashref->{$server}->{"hits"};
226
            $hits = $results_hashref->{$server}->{"hits"};
218
            @newresults = searchResults('opac', '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
227
            @newresults = searchResults({ 'interface' => 'opac' }, '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
219
        }
228
        }
220
        return \@newresults;
229
        return \@newresults;
221
    }#searchAgain
230
    }#searchAgain
(-)a/opac/opac-search.pl (-2 / +11 lines)
Lines 53-58 use C4::Branch; # GetBranches Link Here
53
use C4::SocialData;
53
use C4::SocialData;
54
use C4::Ratings;
54
use C4::Ratings;
55
use C4::External::OverDrive;
55
use C4::External::OverDrive;
56
use C4::Borrowers qw(GetMember);
56
57
57
use Koha::LibraryCategories;
58
use Koha::LibraryCategories;
58
59
Lines 630-635 if ($@ || $error) { Link Here
630
# At this point, each server has given us a result set
631
# At this point, each server has given us a result set
631
# now we build that set for template display
632
# now we build that set for template display
632
my @sup_results_array;
633
my @sup_results_array;
634
my $search_context = {};
635
$search_context->{'interface'} = 'opac';
636
if (C4::Context->preference('OpacHiddenItemsExceptions')){
637
    # we need to fetch the borrower info here, so we can pass the category
638
    my $borrower = GetMember( borrowernumber => $borrowernumber );
639
    $search_context->{'category'} = $borrower->{'categorycode'};
640
}
641
633
for (my $i=0;$i<@servers;$i++) {
642
for (my $i=0;$i<@servers;$i++) {
634
    my $server = $servers[$i];
643
    my $server = $servers[$i];
635
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
644
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
Lines 641-652 for (my $i=0;$i<@servers;$i++) { Link Here
641
                # because pazGetRecords handles retieving only the records
650
                # because pazGetRecords handles retieving only the records
642
                # we want as specified by $offset and $results_per_page,
651
                # we want as specified by $offset and $results_per_page,
643
                # we need to set the offset parameter of searchResults to 0
652
                # we need to set the offset parameter of searchResults to 0
644
                my @group_results = searchResults( 'opac', $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
653
                my @group_results = searchResults( $search_context, $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
645
                                                   $group->{"RECORDS"});
654
                                                   $group->{"RECORDS"});
646
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
655
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
647
            }
656
            }
648
        } else {
657
        } else {
649
            @newresults = searchResults('opac', $query_desc, $hits, $results_per_page, $offset, $scan,
658
            @newresults = searchResults( $search_context, $query_desc, $hits, $results_per_page, $offset, $scan,
650
                                        $results_hashref->{$server}->{"RECORDS"});
659
                                        $results_hashref->{$server}->{"RECORDS"});
651
        }
660
        }
652
        $hits = 0 unless @newresults;
661
        $hits = 0 unless @newresults;
(-)a/t/db_dependent/Items.t (-8 / +9 lines)
Lines 136-155 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
136
    push @items, GetItem( $item2_itemnumber );
136
    push @items, GetItem( $item2_itemnumber );
137
137
138
    # Empty OpacHiddenItems
138
    # Empty OpacHiddenItems
139
    t::lib::Mocks::mock_preference('OpacHiddenItems','');
139
    C4::Context->set_preference('OpacHiddenItems','');
140
    ok( !defined( GetHiddenItemnumbers( @items ) ),
140
    ok( !defined( GetHiddenItemnumbers( { items => \@items } ) ),
141
        "Hidden items list undef if OpacHiddenItems empty");
141
        "Hidden items list undef if OpacHiddenItems empty");
142
142
143
    # Blank spaces
143
    # Blank spaces
144
    t::lib::Mocks::mock_preference('OpacHiddenItems','  ');
144
    C4::Context->set_preference('OpacHiddenItems','  ');
145
    ok( scalar GetHiddenItemnumbers( @items ) == 0,
145
    ok( scalar GetHiddenItemnumbers( { items => \@items } ) == 0,
146
        "Hidden items list empty if OpacHiddenItems only contains blanks");
146
        "Hidden items list empty if OpacHiddenItems only contains blanks");
147
147
148
    # One variable / value
148
    # One variable / value
149
    $opachiddenitems = "
149
    $opachiddenitems = "
150
        withdrawn: [1]";
150
        withdrawn: [1]";
151
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
151
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
152
    @hidden = GetHiddenItemnumbers( @items );
152
    @hidden = GetHiddenItemnumbers( { items => \@items } );
153
    ok( scalar @hidden == 1, "Only one hidden item");
153
    ok( scalar @hidden == 1, "Only one hidden item");
154
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
154
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
155
155
Lines 157-163 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
157
    $opachiddenitems = "
157
    $opachiddenitems = "
158
        withdrawn: [1,0]";
158
        withdrawn: [1,0]";
159
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
159
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
160
    @hidden = GetHiddenItemnumbers( @items );
160
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
161
    @hidden = GetHiddenItemnumbers( { items => \@items } );
161
    ok( scalar @hidden == 2, "Two items hidden");
162
    ok( scalar @hidden == 2, "Two items hidden");
162
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
163
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
163
164
Lines 167-179 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
167
        homebranch: [$library2->{branchcode}]
168
        homebranch: [$library2->{branchcode}]
168
    ";
169
    ";
169
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
170
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
170
    @hidden = GetHiddenItemnumbers( @items );
171
    @hidden = GetHiddenItemnumbers( { items => \@items } );
171
    ok( scalar @hidden == 2, "Two items hidden");
172
    ok( scalar @hidden == 2, "Two items hidden");
172
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
173
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
173
174
174
    # Valid OpacHiddenItems, empty list
175
    # Valid OpacHiddenItems, empty list
175
    @items = ();
176
    @items = ();
176
    @hidden = GetHiddenItemnumbers( @items );
177
    @hidden = GetHiddenItemnumbers( { items => \@items } );
177
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
178
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
178
179
179
    $schema->storage->txn_rollback;
180
    $schema->storage->txn_rollback;
(-)a/t/db_dependent/Search.t (-7 / +6 lines)
Lines 430-436 if ( $indexing_mode eq 'dom' ) { Link Here
430
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
430
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
431
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
431
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
432
432
433
    my @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
433
    my @newresults = searchResults({'interface' => 'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
434
        $results_hashref->{'biblioserver'}->{"RECORDS"});
434
        $results_hashref->{'biblioserver'}->{"RECORDS"});
435
    is(scalar @newresults,18, "searchResults returns requested number of hits");
435
    is(scalar @newresults,18, "searchResults returns requested number of hits");
436
436
Lines 512-518 if ( $indexing_mode eq 'dom' ) { Link Here
512
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
512
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
513
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
513
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
514
514
515
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
515
    @newresults = searchResults({'interface'=>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
516
        $results_hashref->{'biblioserver'}->{"RECORDS"});
516
        $results_hashref->{'biblioserver'}->{"RECORDS"});
517
    my $allavailable = 'true';
517
    my $allavailable = 'true';
518
    foreach my $result (@newresults) {
518
    foreach my $result (@newresults) {
Lines 644-650 if ( $indexing_mode eq 'dom' ) { Link Here
644
    # Let's just test a few other bits and bobs, just for fun
644
    # Let's just test a few other bits and bobs, just for fun
645
645
646
    ($error, $results_hashref, $facets_loop) = getRecords("Godzina pąsowej róży","Godzina pąsowej róży",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
646
    ($error, $results_hashref, $facets_loop) = getRecords("Godzina pąsowej róży","Godzina pąsowej róży",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
647
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
647
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
648
        $results_hashref->{'biblioserver'}->{"RECORDS"});
648
        $results_hashref->{'biblioserver'}->{"RECORDS"});
649
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
649
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
650
650
Lines 663-669 if ( $indexing_mode eq 'dom' ) { Link Here
663
    });
663
    });
664
664
665
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
665
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
666
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
666
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
667
        $results_hashref->{'biblioserver'}->{"RECORDS"});
667
        $results_hashref->{'biblioserver'}->{"RECORDS"});
668
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
668
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
669
669
Lines 671-677 if ( $indexing_mode eq 'dom' ) { Link Here
671
    ( undef, $results_hashref, $facets_loop ) =
671
    ( undef, $results_hashref, $facets_loop ) =
672
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
672
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
673
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
673
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
674
    warning_like { @newresults = searchResults('intranet', $query_desc,
674
    warning_like { @newresults = searchResults({'intranet' => 'intranet'}, $query_desc,
675
                    $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
675
                    $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
676
                    $results_hashref->{'biblioserver'}->{"RECORDS"}) }
676
                    $results_hashref->{'biblioserver'}->{"RECORDS"}) }
677
                qr/^ERROR DECODING RECORD - Tag "50%" is not a valid tag/,
677
                qr/^ERROR DECODING RECORD - Tag "50%" is not a valid tag/,
Lines 809-815 if ( $indexing_mode eq 'dom' ) { Link Here
809
    ( undef, $results_hashref, $facets_loop ) =
809
    ( undef, $results_hashref, $facets_loop ) =
810
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
810
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
811
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
811
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
812
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
812
    @newresults = searchResults({'interface' =>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
813
        $results_hashref->{'biblioserver'}->{"RECORDS"});
813
        $results_hashref->{'biblioserver'}->{"RECORDS"});
814
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
814
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
815
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
815
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
816
- 

Return to bug 14385