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

(-)a/C4/Items.pm (-4 / +13 lines)
Lines 1393-1408 sub GetBarcodeFromItemnumber { Link Here
1393
1393
1394
=head2 GetHiddenItemnumbers
1394
=head2 GetHiddenItemnumbers
1395
1395
1396
    my @itemnumbers_to_hide = GetHiddenItemnumbers(@items);
1396
    my @itemnumbers_to_hide = GetHiddenItemnumbers({ items => \@items, borcat => $category });
1397
1397
1398
Given a list of items it checks which should be hidden from the OPAC given
1398
Given a list of items it checks which should be hidden from the OPAC given
1399
the current configuration. Returns a list of itemnumbers corresponding to
1399
the current configuration. Returns a list of itemnumbers corresponding to
1400
those that should be hidden.
1400
those that should be hidden. Optionally takes a borcat parameter for certain borrower types
1401
to be excluded
1401
1402
1402
=cut
1403
=cut
1403
1404
1404
sub GetHiddenItemnumbers {
1405
sub GetHiddenItemnumbers {
1405
    my (@items) = @_;
1406
    my $params = shift;
1407
    my $items = $params->{items};
1408
    if (my $exceptions = C4::Context->preference('OpacHiddenItemsExceptions') and $params->{'borcat'}){
1409
        foreach my $except (split(/\|/, $exceptions)){
1410
            if ($params->{'borcat'} eq $except){
1411
                return; # we dont hide anything for this borrower category
1412
            }
1413
        }
1414
    }
1406
    my @resultitems;
1415
    my @resultitems;
1407
1416
1408
    my $yaml = C4::Context->preference('OpacHiddenItems');
1417
    my $yaml = C4::Context->preference('OpacHiddenItems');
Lines 1419-1425 sub GetHiddenItemnumbers { Link Here
1419
    my $dbh = C4::Context->dbh;
1428
    my $dbh = C4::Context->dbh;
1420
1429
1421
    # For each item
1430
    # For each item
1422
    foreach my $item (@items) {
1431
    foreach my $item (@$items) {
1423
1432
1424
        # We check each rule
1433
        # We check each rule
1425
        foreach my $field (keys %$hidingrules) {
1434
        foreach my $field (keys %$hidingrules) {
(-)a/C4/Search.pm (-6 / +7 lines)
Lines 1848-1856 sub searchResults { Link Here
1848
1848
1849
    require C4::Items;
1849
    require C4::Items;
1850
1850
1851
    $search_context = 'opac' if !$search_context || $search_context ne 'intranet';
1851
    $search_context->{'interface'} = 'opac' if !$search_context->{'interface'} || $search_context->{'interface'} ne 'intranet';
1852
    my ($is_opac, $hidelostitems);
1852
    my ($is_opac, $hidelostitems);
1853
    if ($search_context eq 'opac') {
1853
    if ($search_context->{'interface'} eq 'opac') {
1854
        $hidelostitems = C4::Context->preference('hidelostitems');
1854
        $hidelostitems = C4::Context->preference('hidelostitems');
1855
        $is_opac       = 1;
1855
        $is_opac       = 1;
1856
    }
1856
    }
Lines 1940-1945 sub searchResults { Link Here
1940
        # add imageurl to itemtype if there is one
1940
        # add imageurl to itemtype if there is one
1941
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1941
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1942
1942
1943
        $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 ) ) : [];
1943
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1944
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1944
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1945
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1945
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
1946
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
Lines 2072-2078 sub searchResults { Link Here
2072
                    next;
2073
                    next;
2073
                }
2074
                }
2074
                # hidden based on OpacHiddenItems syspref
2075
                # hidden based on OpacHiddenItems syspref
2075
                my @hi = C4::Items::GetHiddenItemnumbers($item);
2076
                my @hi = C4::Items::GetHiddenItemnumbers({ items=> [ $item ], borcat => $search_context->{category} });
2076
                if (scalar @hi) {
2077
                if (scalar @hi) {
2077
                    push @hiddenitems, @hi;
2078
                    push @hiddenitems, @hi;
2078
                    $hideatopac_count++;
2079
                    $hideatopac_count++;
Lines 2201-2207 sub searchResults { Link Here
2201
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2202
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2202
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2203
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2203
					$other_items->{$key}->{description} = $item->{description};
2204
					$other_items->{$key}->{description} = $item->{description};
2204
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2205
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2205
                }
2206
                }
2206
                # item is available
2207
                # item is available
2207
                else {
2208
                else {
Lines 2212-2218 sub searchResults { Link Here
2212
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2213
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2213
					}
2214
					}
2214
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2215
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2215
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2216
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2216
                }
2217
                }
2217
            }
2218
            }
2218
        }    # notforloan, item level and biblioitem level
2219
        }    # notforloan, item level and biblioitem level
Lines 2238-2246 sub searchResults { Link Here
2238
2239
2239
        # XSLT processing of some stuff
2240
        # XSLT processing of some stuff
2240
        # we fetched the sysprefs already before the loop through all retrieved record!
2241
        # we fetched the sysprefs already before the loop through all retrieved record!
2242
        my $interface = $search_context->{'interface'} eq 'opac' ? 'OPAC' : '';
2241
        if (!$scan && $xslfile) {
2243
        if (!$scan && $xslfile) {
2242
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2244
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2243
        # the last parameter tells Koha to clean up the problematic ampersand entities that Zebra outputs
2244
        }
2245
        }
2245
2246
2246
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
2247
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
(-)a/catalogue/search.pl (-1 / +1 lines)
Lines 536-542 for (my $i=0;$i<@servers;$i++) { Link Here
536
    if ($server =~/biblioserver/) { # this is the local bibliographic server
536
    if ($server =~/biblioserver/) { # this is the local bibliographic server
537
        $hits = $results_hashref->{$server}->{"hits"};
537
        $hits = $results_hashref->{$server}->{"hits"};
538
        my $page = $cgi->param('page') || 0;
538
        my $page = $cgi->param('page') || 0;
539
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
539
        my @newresults = searchResults({ 'interface' => 'intranet' }, $query_desc, $hits, $results_per_page, $offset, $scan,
540
                                       $results_hashref->{$server}->{"RECORDS"});
540
                                       $results_hashref->{$server}->{"RECORDS"});
541
        $total = $total + $results_hashref->{$server}->{"hits"};
541
        $total = $total + $results_hashref->{$server}->{"hits"};
542
542
(-)a/cataloguing/addbooks.pl (-1 / +4 lines)
Lines 89-95 if ($query) { Link Here
89
    # format output
89
    # format output
90
    # SimpleSearch() give the results per page we want, so 0 offet here
90
    # SimpleSearch() give the results per page we want, so 0 offet here
91
    my $total = @{$marcresults};
91
    my $total = @{$marcresults};
92
    my @newresults = searchResults( 'intranet', $query, $total, $results_per_page, 0, 0, $marcresults );
92
    my @newresults = searchResults( {'interface' => 'intranet'}, $query, $total, $results_per_page, 0, 0, $marcresults );
93
    foreach my $line (@newresults) {
94
        if ( not exists $line->{'size'} ) { $line->{'size'} = "" }
95
    }
93
    $template->param(
96
    $template->param(
94
        total          => $total_hits,
97
        total          => $total_hits,
95
        query          => $query,
98
        query          => $query,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref (+3 lines)
Lines 590-595 OPAC: Link Here
590
              class: code
590
              class: code
591
            - 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>.
591
            - 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>.
592
        -
592
        -
593
            - pref: OpacHiddenItemsExceptions
594
            - List of borrower categories, separated by |, that can see items otherwise hidden by <tt>OpacHiddenItems</tt>
595
        -
593
            - pref: OpacAllowPublicListCreation
596
            - pref: OpacAllowPublicListCreation
594
              default: 1
597
              default: 1
595
              choices:
598
              choices:
(-)a/opac/opac-ISBDdetail.pl (-1 / +9 lines)
Lines 85-91 my $marcflavour = C4::Context->preference("marcflavour"); Link Here
85
85
86
my @items = GetItemsInfo($biblionumber);
86
my @items = GetItemsInfo($biblionumber);
87
if (scalar @items >= 1) {
87
if (scalar @items >= 1) {
88
    my @hiddenitems = GetHiddenItemnumbers(@items);
88
    my $borcat;
89
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
90
91
        # we need to fetch the borrower info here, so we can pass the category
92
        my $borrower = GetMember( borrowernumber => $borrowernumber );
93
        $borcat = $borrower->{categorycode};
94
    }
95
96
    my @hiddenitems = GetHiddenItemnumbers( { items => \@items, borcat => $borcat });
89
97
90
    if (scalar @hiddenitems == scalar @items ) {
98
    if (scalar @hiddenitems == scalar @items ) {
91
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
99
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
(-)a/opac/opac-MARCdetail.pl (-1 / +8 lines)
Lines 84-90 if ( ! $record ) { Link Here
84
my @all_items = GetItemsInfo($biblionumber);
84
my @all_items = GetItemsInfo($biblionumber);
85
my @items2hide;
85
my @items2hide;
86
if (scalar @all_items >= 1) {
86
if (scalar @all_items >= 1) {
87
    push @items2hide, GetHiddenItemnumbers(@all_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
    push @items2hide, GetHiddenItemnumbers({ items => \@all_items, borcat => $botcat });
88
95
89
    if (scalar @items2hide == scalar @all_items ) {
96
    if (scalar @items2hide == scalar @all_items ) {
90
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
97
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
(-)a/opac/opac-detail.pl (-3 / +12 lines)
Lines 83-90 $biblionumber = int($biblionumber); Link Here
83
83
84
my @all_items = GetItemsInfo($biblionumber);
84
my @all_items = GetItemsInfo($biblionumber);
85
my @hiddenitems;
85
my @hiddenitems;
86
if (scalar @all_items >= 1) {
86
if ( scalar @all_items >= 1 ) {
87
    push @hiddenitems, GetHiddenItemnumbers(@all_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
    push @hiddenitems,
96
      GetHiddenItemnumbers( { items => \@all_items, borcat => $borcat } );
88
97
89
    if (scalar @hiddenitems == scalar @all_items ) {
98
    if (scalar @hiddenitems == scalar @all_items ) {
90
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
99
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
Lines 233-239 if ($session->param('busc')) { Link Here
233
        for (my $i=0;$i<@servers;$i++) {
242
        for (my $i=0;$i<@servers;$i++) {
234
            my $server = $servers[$i];
243
            my $server = $servers[$i];
235
            $hits = $results_hashref->{$server}->{"hits"};
244
            $hits = $results_hashref->{$server}->{"hits"};
236
            @newresults = searchResults('opac', '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
245
            @newresults = searchResults({ 'interface' => 'opac' }, '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
237
        }
246
        }
238
        return \@newresults;
247
        return \@newresults;
239
    }#searchAgain
248
    }#searchAgain
(-)a/opac/opac-search.pl (-2 / +11 lines)
Lines 51-56 use C4::Koha; Link Here
51
use C4::Tags qw(get_tags);
51
use C4::Tags qw(get_tags);
52
use C4::SocialData;
52
use C4::SocialData;
53
use C4::External::OverDrive;
53
use C4::External::OverDrive;
54
use C4::Borrowers qw(GetMember);
54
55
55
use Koha::ItemTypes;
56
use Koha::ItemTypes;
56
use Koha::Ratings;
57
use Koha::Ratings;
Lines 623-628 if (not $tag and ( $@ || $error)) { Link Here
623
# At this point, each server has given us a result set
624
# At this point, each server has given us a result set
624
# now we build that set for template display
625
# now we build that set for template display
625
my @sup_results_array;
626
my @sup_results_array;
627
my $search_context = {};
628
$search_context->{'interface'} = 'opac';
629
if (C4::Context->preference('OpacHiddenItemsExceptions')){
630
    # we need to fetch the borrower info here, so we can pass the category
631
    my $borrower = GetMember( borrowernumber => $borrowernumber );
632
    $search_context->{'category'} = $borrower->{'categorycode'};
633
}
634
626
for (my $i=0;$i<@servers;$i++) {
635
for (my $i=0;$i<@servers;$i++) {
627
    my $server = $servers[$i];
636
    my $server = $servers[$i];
628
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
637
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
Lines 634-645 for (my $i=0;$i<@servers;$i++) { Link Here
634
                # because pazGetRecords handles retieving only the records
643
                # because pazGetRecords handles retieving only the records
635
                # we want as specified by $offset and $results_per_page,
644
                # we want as specified by $offset and $results_per_page,
636
                # we need to set the offset parameter of searchResults to 0
645
                # we need to set the offset parameter of searchResults to 0
637
                my @group_results = searchResults( 'opac', $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
646
                my @group_results = searchResults( $search_context, $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
638
                                                   $group->{"RECORDS"});
647
                                                   $group->{"RECORDS"});
639
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
648
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
640
            }
649
            }
641
        } else {
650
        } else {
642
            @newresults = searchResults('opac', $query_desc, $hits, $results_per_page, $offset, $scan,
651
            @newresults = searchResults( $search_context, $query_desc, $hits, $results_per_page, $offset, $scan,
643
                                        $results_hashref->{$server}->{"RECORDS"});
652
                                        $results_hashref->{$server}->{"RECORDS"});
644
        }
653
        }
645
        $hits = 0 unless @newresults;
654
        $hits = 0 unless @newresults;
(-)a/t/db_dependent/Items.t (-8 / +9 lines)
Lines 196-215 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
196
    push @items, GetItem( $item2_itemnumber );
196
    push @items, GetItem( $item2_itemnumber );
197
197
198
    # Empty OpacHiddenItems
198
    # Empty OpacHiddenItems
199
    t::lib::Mocks::mock_preference('OpacHiddenItems','');
199
    C4::Context->set_preference('OpacHiddenItems','');
200
    ok( !defined( GetHiddenItemnumbers( @items ) ),
200
    ok( !defined( GetHiddenItemnumbers( { items => \@items } ) ),
201
        "Hidden items list undef if OpacHiddenItems empty");
201
        "Hidden items list undef if OpacHiddenItems empty");
202
202
203
    # Blank spaces
203
    # Blank spaces
204
    t::lib::Mocks::mock_preference('OpacHiddenItems','  ');
204
    C4::Context->set_preference('OpacHiddenItems','  ');
205
    ok( scalar GetHiddenItemnumbers( @items ) == 0,
205
    ok( scalar GetHiddenItemnumbers( { items => \@items } ) == 0,
206
        "Hidden items list empty if OpacHiddenItems only contains blanks");
206
        "Hidden items list empty if OpacHiddenItems only contains blanks");
207
207
208
    # One variable / value
208
    # One variable / value
209
    $opachiddenitems = "
209
    $opachiddenitems = "
210
        withdrawn: [1]";
210
        withdrawn: [1]";
211
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
211
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
212
    @hidden = GetHiddenItemnumbers( @items );
212
    @hidden = GetHiddenItemnumbers( { items => \@items } );
213
    ok( scalar @hidden == 1, "Only one hidden item");
213
    ok( scalar @hidden == 1, "Only one hidden item");
214
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
214
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
215
215
Lines 217-223 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
217
    $opachiddenitems = "
217
    $opachiddenitems = "
218
        withdrawn: [1,0]";
218
        withdrawn: [1,0]";
219
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
219
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
220
    @hidden = GetHiddenItemnumbers( @items );
220
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
221
    @hidden = GetHiddenItemnumbers( { items => \@items } );
221
    ok( scalar @hidden == 2, "Two items hidden");
222
    ok( scalar @hidden == 2, "Two items hidden");
222
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
223
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
223
224
Lines 227-239 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
227
        homebranch: [$library2->{branchcode}]
228
        homebranch: [$library2->{branchcode}]
228
    ";
229
    ";
229
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
230
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
230
    @hidden = GetHiddenItemnumbers( @items );
231
    @hidden = GetHiddenItemnumbers( { items => \@items } );
231
    ok( scalar @hidden == 2, "Two items hidden");
232
    ok( scalar @hidden == 2, "Two items hidden");
232
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
233
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
233
234
234
    # Valid OpacHiddenItems, empty list
235
    # Valid OpacHiddenItems, empty list
235
    @items = ();
236
    @items = ();
236
    @hidden = GetHiddenItemnumbers( @items );
237
    @hidden = GetHiddenItemnumbers( { items => \@items } );
237
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
238
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
238
239
239
    $schema->storage->txn_rollback;
240
    $schema->storage->txn_rollback;
(-)a/t/db_dependent/Search.t (-7 / +6 lines)
Lines 417-423 if ( $indexing_mode eq 'dom' ) { Link Here
417
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
417
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
418
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
418
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
419
419
420
    my @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
420
    my @newresults = searchResults({'interface' => 'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
421
        $results_hashref->{'biblioserver'}->{"RECORDS"});
421
        $results_hashref->{'biblioserver'}->{"RECORDS"});
422
    is(scalar @newresults,18, "searchResults returns requested number of hits");
422
    is(scalar @newresults,18, "searchResults returns requested number of hits");
423
423
Lines 499-505 if ( $indexing_mode eq 'dom' ) { Link Here
499
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
499
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
500
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
500
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
501
501
502
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
502
    @newresults = searchResults({'interface'=>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
503
        $results_hashref->{'biblioserver'}->{"RECORDS"});
503
        $results_hashref->{'biblioserver'}->{"RECORDS"});
504
    my $allavailable = 'true';
504
    my $allavailable = 'true';
505
    foreach my $result (@newresults) {
505
    foreach my $result (@newresults) {
Lines 637-643 if ( $indexing_mode eq 'dom' ) { Link Here
637
    # Let's just test a few other bits and bobs, just for fun
637
    # Let's just test a few other bits and bobs, just for fun
638
638
639
    ($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);
639
    ($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);
640
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
640
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
641
        $results_hashref->{'biblioserver'}->{"RECORDS"});
641
        $results_hashref->{'biblioserver'}->{"RECORDS"});
642
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
642
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
643
643
Lines 656-662 if ( $indexing_mode eq 'dom' ) { Link Here
656
    });
656
    });
657
657
658
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
658
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
659
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
659
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
660
        $results_hashref->{'biblioserver'}->{"RECORDS"});
660
        $results_hashref->{'biblioserver'}->{"RECORDS"});
661
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
661
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
662
662
Lines 664-670 if ( $indexing_mode eq 'dom' ) { Link Here
664
    ( undef, $results_hashref, $facets_loop ) =
664
    ( undef, $results_hashref, $facets_loop ) =
665
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
665
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
666
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
666
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
667
    warning_like { @newresults = searchResults('intranet', $query_desc,
667
    warning_like { @newresults = searchResults({'intranet' => 'intranet'}, $query_desc,
668
                    $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
668
                    $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
669
                    $results_hashref->{'biblioserver'}->{"RECORDS"}) }
669
                    $results_hashref->{'biblioserver'}->{"RECORDS"}) }
670
                qr/^ERROR DECODING RECORD - Tag "50%" is not a valid tag/,
670
                qr/^ERROR DECODING RECORD - Tag "50%" is not a valid tag/,
Lines 802-808 if ( $indexing_mode eq 'dom' ) { Link Here
802
    ( undef, $results_hashref, $facets_loop ) =
802
    ( undef, $results_hashref, $facets_loop ) =
803
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
803
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
804
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
804
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
805
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
805
    @newresults = searchResults({'interface' =>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
806
        $results_hashref->{'biblioserver'}->{"RECORDS"});
806
        $results_hashref->{'biblioserver'}->{"RECORDS"});
807
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
807
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
808
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
808
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
809
- 

Return to bug 14385