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

(-)a/C4/Items.pm (-4 / +13 lines)
Lines 1387-1402 sub GetBarcodeFromItemnumber { Link Here
1387
1387
1388
=head2 GetHiddenItemnumbers
1388
=head2 GetHiddenItemnumbers
1389
1389
1390
    my @itemnumbers_to_hide = GetHiddenItemnumbers(@items);
1390
    my @itemnumbers_to_hide = GetHiddenItemnumbers({ items => \@items, borcat => $category });
1391
1391
1392
Given a list of items it checks which should be hidden from the OPAC given
1392
Given a list of items it checks which should be hidden from the OPAC given
1393
the current configuration. Returns a list of itemnumbers corresponding to
1393
the current configuration. Returns a list of itemnumbers corresponding to
1394
those that should be hidden.
1394
those that should be hidden. Optionally takes a borcat parameter for certain borrower types
1395
to be excluded
1395
1396
1396
=cut
1397
=cut
1397
1398
1398
sub GetHiddenItemnumbers {
1399
sub GetHiddenItemnumbers {
1399
    my (@items) = @_;
1400
    my $params = shift;
1401
    my $items = $params->{items};
1402
    if (my $exceptions = C4::Context->preference('OpacHiddenItemsExceptions') and $params->{'borcat'}){
1403
        foreach my $except (split(/\|/, $exceptions)){
1404
            if ($params->{'borcat'} eq $except){
1405
                return; # we dont hide anything for this borrower category
1406
            }
1407
        }
1408
    }
1400
    my @resultitems;
1409
    my @resultitems;
1401
1410
1402
    my $yaml = C4::Context->preference('OpacHiddenItems');
1411
    my $yaml = C4::Context->preference('OpacHiddenItems');
Lines 1413-1419 sub GetHiddenItemnumbers { Link Here
1413
    my $dbh = C4::Context->dbh;
1422
    my $dbh = C4::Context->dbh;
1414
1423
1415
    # For each item
1424
    # For each item
1416
    foreach my $item (@items) {
1425
    foreach my $item (@$items) {
1417
1426
1418
        # We check each rule
1427
        # We check each rule
1419
        foreach my $field (keys %$hidingrules) {
1428
        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 539-545 for (my $i=0;$i<@servers;$i++) { Link Here
539
    if ($server =~/biblioserver/) { # this is the local bibliographic server
539
    if ($server =~/biblioserver/) { # this is the local bibliographic server
540
        $hits = $results_hashref->{$server}->{"hits"};
540
        $hits = $results_hashref->{$server}->{"hits"};
541
        my $page = $cgi->param('page') || 0;
541
        my $page = $cgi->param('page') || 0;
542
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
542
        my @newresults = searchResults({ 'interface' => 'intranet' }, $query_desc, $hits, $results_per_page, $offset, $scan,
543
                                       $results_hashref->{$server}->{"RECORDS"});
543
                                       $results_hashref->{$server}->{"RECORDS"});
544
        $total = $total + $results_hashref->{$server}->{"hits"};
544
        $total = $total + $results_hashref->{$server}->{"hits"};
545
545
(-)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 589-594 OPAC: Link Here
589
              class: code
589
              class: code
590
            - 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>.
590
            - 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
        -
591
        -
592
            - pref: OpacHiddenItemsExceptions
593
            - List of borrower categories, separated by |, that can see items otherwise hidden by <tt>OpacHiddenItems</tt>
594
        -
592
            - pref: OpacAllowPublicListCreation
595
            - pref: OpacAllowPublicListCreation
593
              default: 1
596
              default: 1
594
              choices:
597
              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 627-632 if ($@ || $error) { Link Here
627
# At this point, each server has given us a result set
628
# At this point, each server has given us a result set
628
# now we build that set for template display
629
# now we build that set for template display
629
my @sup_results_array;
630
my @sup_results_array;
631
my $search_context = {};
632
$search_context->{'interface'} = 'opac';
633
if (C4::Context->preference('OpacHiddenItemsExceptions')){
634
    # we need to fetch the borrower info here, so we can pass the category
635
    my $borrower = GetMember( borrowernumber => $borrowernumber );
636
    $search_context->{'category'} = $borrower->{'categorycode'};
637
}
638
630
for (my $i=0;$i<@servers;$i++) {
639
for (my $i=0;$i<@servers;$i++) {
631
    my $server = $servers[$i];
640
    my $server = $servers[$i];
632
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
641
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
Lines 638-649 for (my $i=0;$i<@servers;$i++) { Link Here
638
                # because pazGetRecords handles retieving only the records
647
                # because pazGetRecords handles retieving only the records
639
                # we want as specified by $offset and $results_per_page,
648
                # we want as specified by $offset and $results_per_page,
640
                # we need to set the offset parameter of searchResults to 0
649
                # we need to set the offset parameter of searchResults to 0
641
                my @group_results = searchResults( 'opac', $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
650
                my @group_results = searchResults( $search_context, $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
642
                                                   $group->{"RECORDS"});
651
                                                   $group->{"RECORDS"});
643
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
652
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
644
            }
653
            }
645
        } else {
654
        } else {
646
            @newresults = searchResults('opac', $query_desc, $hits, $results_per_page, $offset, $scan,
655
            @newresults = searchResults( $search_context, $query_desc, $hits, $results_per_page, $offset, $scan,
647
                                        $results_hashref->{$server}->{"RECORDS"});
656
                                        $results_hashref->{$server}->{"RECORDS"});
648
        }
657
        }
649
        $hits = 0 unless @newresults;
658
        $hits = 0 unless @newresults;
(-)a/t/db_dependent/Items.t (-8 / +9 lines)
Lines 155-174 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
155
    push @items, GetItem( $item2_itemnumber );
155
    push @items, GetItem( $item2_itemnumber );
156
156
157
    # Empty OpacHiddenItems
157
    # Empty OpacHiddenItems
158
    t::lib::Mocks::mock_preference('OpacHiddenItems','');
158
    C4::Context->set_preference('OpacHiddenItems','');
159
    ok( !defined( GetHiddenItemnumbers( @items ) ),
159
    ok( !defined( GetHiddenItemnumbers( { items => \@items } ) ),
160
        "Hidden items list undef if OpacHiddenItems empty");
160
        "Hidden items list undef if OpacHiddenItems empty");
161
161
162
    # Blank spaces
162
    # Blank spaces
163
    t::lib::Mocks::mock_preference('OpacHiddenItems','  ');
163
    C4::Context->set_preference('OpacHiddenItems','  ');
164
    ok( scalar GetHiddenItemnumbers( @items ) == 0,
164
    ok( scalar GetHiddenItemnumbers( { items => \@items } ) == 0,
165
        "Hidden items list empty if OpacHiddenItems only contains blanks");
165
        "Hidden items list empty if OpacHiddenItems only contains blanks");
166
166
167
    # One variable / value
167
    # One variable / value
168
    $opachiddenitems = "
168
    $opachiddenitems = "
169
        withdrawn: [1]";
169
        withdrawn: [1]";
170
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
170
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
171
    @hidden = GetHiddenItemnumbers( @items );
171
    @hidden = GetHiddenItemnumbers( { items => \@items } );
172
    ok( scalar @hidden == 1, "Only one hidden item");
172
    ok( scalar @hidden == 1, "Only one hidden item");
173
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
173
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
174
174
Lines 176-182 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
176
    $opachiddenitems = "
176
    $opachiddenitems = "
177
        withdrawn: [1,0]";
177
        withdrawn: [1,0]";
178
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
178
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
179
    @hidden = GetHiddenItemnumbers( @items );
179
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
180
    @hidden = GetHiddenItemnumbers( { items => \@items } );
180
    ok( scalar @hidden == 2, "Two items hidden");
181
    ok( scalar @hidden == 2, "Two items hidden");
181
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
182
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
182
183
Lines 186-198 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
186
        homebranch: [$library2->{branchcode}]
187
        homebranch: [$library2->{branchcode}]
187
    ";
188
    ";
188
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
189
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
189
    @hidden = GetHiddenItemnumbers( @items );
190
    @hidden = GetHiddenItemnumbers( { items => \@items } );
190
    ok( scalar @hidden == 2, "Two items hidden");
191
    ok( scalar @hidden == 2, "Two items hidden");
191
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
192
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
192
193
193
    # Valid OpacHiddenItems, empty list
194
    # Valid OpacHiddenItems, empty list
194
    @items = ();
195
    @items = ();
195
    @hidden = GetHiddenItemnumbers( @items );
196
    @hidden = GetHiddenItemnumbers( { items => \@items } );
196
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
197
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
197
198
198
    $schema->storage->txn_rollback;
199
    $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