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

(-)a/C4/Items.pm (-4 / +13 lines)
Lines 1391-1406 sub GetBarcodeFromItemnumber { Link Here
1391
1391
1392
=head2 GetHiddenItemnumbers
1392
=head2 GetHiddenItemnumbers
1393
1393
1394
    my @itemnumbers_to_hide = GetHiddenItemnumbers(@items);
1394
    my @itemnumbers_to_hide = GetHiddenItemnumbers({ items => \@items, borcat => $category });
1395
1395
1396
Given a list of items it checks which should be hidden from the OPAC given
1396
Given a list of items it checks which should be hidden from the OPAC given
1397
the current configuration. Returns a list of itemnumbers corresponding to
1397
the current configuration. Returns a list of itemnumbers corresponding to
1398
those that should be hidden.
1398
those that should be hidden. Optionally takes a borcat parameter for certain borrower types
1399
to be excluded
1399
1400
1400
=cut
1401
=cut
1401
1402
1402
sub GetHiddenItemnumbers {
1403
sub GetHiddenItemnumbers {
1403
    my (@items) = @_;
1404
    my $params = shift;
1405
    my $items = $params->{items};
1406
    if (my $exceptions = C4::Context->preference('OpacHiddenItemsExceptions') and $params->{'borcat'}){
1407
        foreach my $except (split(/\|/, $exceptions)){
1408
            if ($params->{'borcat'} eq $except){
1409
                return; # we dont hide anything for this borrower category
1410
            }
1411
        }
1412
    }
1404
    my @resultitems;
1413
    my @resultitems;
1405
1414
1406
    my $yaml = C4::Context->preference('OpacHiddenItems');
1415
    my $yaml = C4::Context->preference('OpacHiddenItems');
Lines 1417-1423 sub GetHiddenItemnumbers { Link Here
1417
    my $dbh = C4::Context->dbh;
1426
    my $dbh = C4::Context->dbh;
1418
1427
1419
    # For each item
1428
    # For each item
1420
    foreach my $item (@items) {
1429
    foreach my $item (@$items) {
1421
1430
1422
        # We check each rule
1431
        # We check each rule
1423
        foreach my $field (keys %$hidingrules) {
1432
        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 82-88 if ( ! $record ) { Link Here
82
my @all_items = GetItemsInfo($biblionumber);
82
my @all_items = GetItemsInfo($biblionumber);
83
my @items2hide;
83
my @items2hide;
84
if (scalar @all_items >= 1) {
84
if (scalar @all_items >= 1) {
85
    push @items2hide, GetHiddenItemnumbers(@all_items);
85
    my $borcat;
86
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
87
88
        # we need to fetch the borrower info here, so we can pass the category
89
        my $borrower = GetMember( borrowernumber => $borrowernumber );
90
        $borcat = $borrower->{categorycode};
91
    }
92
    push @items2hide, GetHiddenItemnumbers({ items => \@all_items, borcat => $botcat });
86
93
87
    if (scalar @items2hide == scalar @all_items ) {
94
    if (scalar @items2hide == scalar @all_items ) {
88
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
95
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
(-)a/opac/opac-detail.pl (-3 / +12 lines)
Lines 81-88 $biblionumber = int($biblionumber); Link Here
81
81
82
my @all_items = GetItemsInfo($biblionumber);
82
my @all_items = GetItemsInfo($biblionumber);
83
my @hiddenitems;
83
my @hiddenitems;
84
if (scalar @all_items >= 1) {
84
if ( scalar @all_items >= 1 ) {
85
    push @hiddenitems, GetHiddenItemnumbers(@all_items);
85
    my $borcat;
86
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
87
88
        # we need to fetch the borrower info here, so we can pass the category
89
        my $borrower = GetMember( borrowernumber => $borrowernumber );
90
        $borcat = $borrower->{categorycode};
91
    }
92
93
    push @hiddenitems,
94
      GetHiddenItemnumbers( { items => \@all_items, borcat => $borcat } );
86
95
87
    if (scalar @hiddenitems == scalar @all_items ) {
96
    if (scalar @hiddenitems == scalar @all_items ) {
88
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
97
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
Lines 229-235 if ($session->param('busc')) { Link Here
229
        for (my $i=0;$i<@servers;$i++) {
238
        for (my $i=0;$i<@servers;$i++) {
230
            my $server = $servers[$i];
239
            my $server = $servers[$i];
231
            $hits = $results_hashref->{$server}->{"hits"};
240
            $hits = $results_hashref->{$server}->{"hits"};
232
            @newresults = searchResults('opac', '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
241
            @newresults = searchResults({ 'interface' => 'opac' }, '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
233
        }
242
        }
234
        return \@newresults;
243
        return \@newresults;
235
    }#searchAgain
244
    }#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::LibraryCategories;
57
use Koha::LibraryCategories;
Lines 620-625 if ($@ || $error) { Link Here
620
# At this point, each server has given us a result set
621
# At this point, each server has given us a result set
621
# now we build that set for template display
622
# now we build that set for template display
622
my @sup_results_array;
623
my @sup_results_array;
624
my $search_context = {};
625
$search_context->{'interface'} = 'opac';
626
if (C4::Context->preference('OpacHiddenItemsExceptions')){
627
    # we need to fetch the borrower info here, so we can pass the category
628
    my $borrower = GetMember( borrowernumber => $borrowernumber );
629
    $search_context->{'category'} = $borrower->{'categorycode'};
630
}
631
623
for (my $i=0;$i<@servers;$i++) {
632
for (my $i=0;$i<@servers;$i++) {
624
    my $server = $servers[$i];
633
    my $server = $servers[$i];
625
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
634
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
Lines 631-642 for (my $i=0;$i<@servers;$i++) { Link Here
631
                # because pazGetRecords handles retieving only the records
640
                # because pazGetRecords handles retieving only the records
632
                # we want as specified by $offset and $results_per_page,
641
                # we want as specified by $offset and $results_per_page,
633
                # we need to set the offset parameter of searchResults to 0
642
                # we need to set the offset parameter of searchResults to 0
634
                my @group_results = searchResults( 'opac', $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
643
                my @group_results = searchResults( $search_context, $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
635
                                                   $group->{"RECORDS"});
644
                                                   $group->{"RECORDS"});
636
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
645
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
637
            }
646
            }
638
        } else {
647
        } else {
639
            @newresults = searchResults('opac', $query_desc, $hits, $results_per_page, $offset, $scan,
648
            @newresults = searchResults( $search_context, $query_desc, $hits, $results_per_page, $offset, $scan,
640
                                        $results_hashref->{$server}->{"RECORDS"});
649
                                        $results_hashref->{$server}->{"RECORDS"});
641
        }
650
        }
642
        $hits = 0 unless @newresults;
651
        $hits = 0 unless @newresults;
(-)a/t/db_dependent/Items.t (-8 / +9 lines)
Lines 159-178 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
159
    push @items, GetItem( $item2_itemnumber );
159
    push @items, GetItem( $item2_itemnumber );
160
160
161
    # Empty OpacHiddenItems
161
    # Empty OpacHiddenItems
162
    t::lib::Mocks::mock_preference('OpacHiddenItems','');
162
    C4::Context->set_preference('OpacHiddenItems','');
163
    ok( !defined( GetHiddenItemnumbers( @items ) ),
163
    ok( !defined( GetHiddenItemnumbers( { items => \@items } ) ),
164
        "Hidden items list undef if OpacHiddenItems empty");
164
        "Hidden items list undef if OpacHiddenItems empty");
165
165
166
    # Blank spaces
166
    # Blank spaces
167
    t::lib::Mocks::mock_preference('OpacHiddenItems','  ');
167
    C4::Context->set_preference('OpacHiddenItems','  ');
168
    ok( scalar GetHiddenItemnumbers( @items ) == 0,
168
    ok( scalar GetHiddenItemnumbers( { items => \@items } ) == 0,
169
        "Hidden items list empty if OpacHiddenItems only contains blanks");
169
        "Hidden items list empty if OpacHiddenItems only contains blanks");
170
170
171
    # One variable / value
171
    # One variable / value
172
    $opachiddenitems = "
172
    $opachiddenitems = "
173
        withdrawn: [1]";
173
        withdrawn: [1]";
174
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
174
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
175
    @hidden = GetHiddenItemnumbers( @items );
175
    @hidden = GetHiddenItemnumbers( { items => \@items } );
176
    ok( scalar @hidden == 1, "Only one hidden item");
176
    ok( scalar @hidden == 1, "Only one hidden item");
177
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
177
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
178
178
Lines 180-186 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
180
    $opachiddenitems = "
180
    $opachiddenitems = "
181
        withdrawn: [1,0]";
181
        withdrawn: [1,0]";
182
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
182
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
183
    @hidden = GetHiddenItemnumbers( @items );
183
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
184
    @hidden = GetHiddenItemnumbers( { items => \@items } );
184
    ok( scalar @hidden == 2, "Two items hidden");
185
    ok( scalar @hidden == 2, "Two items hidden");
185
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
186
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
186
187
Lines 190-202 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
190
        homebranch: [$library2->{branchcode}]
191
        homebranch: [$library2->{branchcode}]
191
    ";
192
    ";
192
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
193
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
193
    @hidden = GetHiddenItemnumbers( @items );
194
    @hidden = GetHiddenItemnumbers( { items => \@items } );
194
    ok( scalar @hidden == 2, "Two items hidden");
195
    ok( scalar @hidden == 2, "Two items hidden");
195
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
196
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
196
197
197
    # Valid OpacHiddenItems, empty list
198
    # Valid OpacHiddenItems, empty list
198
    @items = ();
199
    @items = ();
199
    @hidden = GetHiddenItemnumbers( @items );
200
    @hidden = GetHiddenItemnumbers( { items => \@items } );
200
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
201
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
201
202
202
    $schema->storage->txn_rollback;
203
    $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