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

(-)a/C4/Items.pm (-4 / +13 lines)
Lines 1386-1401 sub GetBarcodeFromItemnumber { Link Here
1386
1386
1387
=head2 GetHiddenItemnumbers
1387
=head2 GetHiddenItemnumbers
1388
1388
1389
    my @itemnumbers_to_hide = GetHiddenItemnumbers(@items);
1389
    my @itemnumbers_to_hide = GetHiddenItemnumbers({ items => \@items, borcat => $category });
1390
1390
1391
Given a list of items it checks which should be hidden from the OPAC given
1391
Given a list of items it checks which should be hidden from the OPAC given
1392
the current configuration. Returns a list of itemnumbers corresponding to
1392
the current configuration. Returns a list of itemnumbers corresponding to
1393
those that should be hidden.
1393
those that should be hidden. Optionally takes a borcat parameter for certain borrower types
1394
to be excluded
1394
1395
1395
=cut
1396
=cut
1396
1397
1397
sub GetHiddenItemnumbers {
1398
sub GetHiddenItemnumbers {
1398
    my (@items) = @_;
1399
    my $params = shift;
1400
    my $items = $params->{items};
1401
    if (my $exceptions = C4::Context->preference('OpacHiddenItemsExceptions') and $params->{'borcat'}){
1402
        foreach my $except (split(/\|/, $exceptions)){
1403
            if ($params->{'borcat'} eq $except){
1404
                return; # we dont hide anything for this borrower category
1405
            }
1406
        }
1407
    }
1399
    my @resultitems;
1408
    my @resultitems;
1400
1409
1401
    my $yaml = C4::Context->preference('OpacHiddenItems');
1410
    my $yaml = C4::Context->preference('OpacHiddenItems');
Lines 1412-1418 sub GetHiddenItemnumbers { Link Here
1412
    my $dbh = C4::Context->dbh;
1421
    my $dbh = C4::Context->dbh;
1413
1422
1414
    # For each item
1423
    # For each item
1415
    foreach my $item (@items) {
1424
    foreach my $item (@$items) {
1416
1425
1417
        # We check each rule
1426
        # We check each rule
1418
        foreach my $field (keys %$hidingrules) {
1427
        foreach my $field (keys %$hidingrules) {
(-)a/C4/Search.pm (-6 / +7 lines)
Lines 1847-1855 sub searchResults { Link Here
1847
1847
1848
    require C4::Items;
1848
    require C4::Items;
1849
1849
1850
    $search_context = 'opac' if !$search_context || $search_context ne 'intranet';
1850
    $search_context->{'interface'} = 'opac' if !$search_context->{'interface'} || $search_context->{'interface'} ne 'intranet';
1851
    my ($is_opac, $hidelostitems);
1851
    my ($is_opac, $hidelostitems);
1852
    if ($search_context eq 'opac') {
1852
    if ($search_context->{'interface'} eq 'opac') {
1853
        $hidelostitems = C4::Context->preference('hidelostitems');
1853
        $hidelostitems = C4::Context->preference('hidelostitems');
1854
        $is_opac       = 1;
1854
        $is_opac       = 1;
1855
    }
1855
    }
Lines 1939-1944 sub searchResults { Link Here
1939
        # add imageurl to itemtype if there is one
1939
        # add imageurl to itemtype if there is one
1940
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1940
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1941
1941
1942
        $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 ) ) : [];
1942
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1943
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1943
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1944
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1944
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
1945
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
Lines 2069-2075 sub searchResults { Link Here
2069
                    next;
2070
                    next;
2070
                }
2071
                }
2071
                # hidden based on OpacHiddenItems syspref
2072
                # hidden based on OpacHiddenItems syspref
2072
                my @hi = C4::Items::GetHiddenItemnumbers($item);
2073
                my @hi = C4::Items::GetHiddenItemnumbers({ items=> [ $item ], borcat => $search_context->{category} });
2073
                if (scalar @hi) {
2074
                if (scalar @hi) {
2074
                    push @hiddenitems, @hi;
2075
                    push @hiddenitems, @hi;
2075
                    $hideatopac_count++;
2076
                    $hideatopac_count++;
Lines 2198-2204 sub searchResults { Link Here
2198
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2199
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2199
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2200
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2200
					$other_items->{$key}->{description} = $item->{description};
2201
					$other_items->{$key}->{description} = $item->{description};
2201
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2202
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2202
                }
2203
                }
2203
                # item is available
2204
                # item is available
2204
                else {
2205
                else {
Lines 2209-2215 sub searchResults { Link Here
2209
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2210
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2210
					}
2211
					}
2211
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2212
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2212
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2213
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2213
                }
2214
                }
2214
            }
2215
            }
2215
        }    # notforloan, item level and biblioitem level
2216
        }    # notforloan, item level and biblioitem level
Lines 2235-2243 sub searchResults { Link Here
2235
2236
2236
        # XSLT processing of some stuff
2237
        # XSLT processing of some stuff
2237
        # we fetched the sysprefs already before the loop through all retrieved record!
2238
        # we fetched the sysprefs already before the loop through all retrieved record!
2239
        my $interface = $search_context->{'interface'} eq 'opac' ? 'OPAC' : '';
2238
        if (!$scan && $xslfile) {
2240
        if (!$scan && $xslfile) {
2239
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2241
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2240
        # the last parameter tells Koha to clean up the problematic ampersand entities that Zebra outputs
2241
        }
2242
        }
2242
2243
2243
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
2244
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
(-)a/catalogue/search.pl (-1 / +1 lines)
Lines 538-544 for (my $i=0;$i<@servers;$i++) { Link Here
538
    if ($server =~/biblioserver/) { # this is the local bibliographic server
538
    if ($server =~/biblioserver/) { # this is the local bibliographic server
539
        $hits = $results_hashref->{$server}->{"hits"};
539
        $hits = $results_hashref->{$server}->{"hits"};
540
        my $page = $cgi->param('page') || 0;
540
        my $page = $cgi->param('page') || 0;
541
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
541
        my @newresults = searchResults({ 'interface' => 'intranet' }, $query_desc, $hits, $results_per_page, $offset, $scan,
542
                                       $results_hashref->{$server}->{"RECORDS"});
542
                                       $results_hashref->{$server}->{"RECORDS"});
543
        $total = $total + $results_hashref->{$server}->{"hits"};
543
        $total = $total + $results_hashref->{$server}->{"hits"};
544
544
(-)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 78-84 if ( ! $record ) { Link Here
78
my @all_items = GetItemsInfo($biblionumber);
78
my @all_items = GetItemsInfo($biblionumber);
79
my @items2hide;
79
my @items2hide;
80
if (scalar @all_items >= 1) {
80
if (scalar @all_items >= 1) {
81
    push @items2hide, GetHiddenItemnumbers(@all_items);
81
    my $borcat;
82
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
83
84
        # we need to fetch the borrower info here, so we can pass the category
85
        my $borrower = GetMember( borrowernumber => $borrowernumber );
86
        $borcat = $borrower->{categorycode};
87
    }
88
    push @items2hide, GetHiddenItemnumbers({ items => \@all_items, borcat => $botcat });
82
89
83
    if (scalar @items2hide == scalar @all_items ) {
90
    if (scalar @items2hide == scalar @all_items ) {
84
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
91
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
(-)a/opac/opac-detail.pl (-3 / +12 lines)
Lines 78-85 $biblionumber = int($biblionumber); Link Here
78
78
79
my @all_items = GetItemsInfo($biblionumber);
79
my @all_items = GetItemsInfo($biblionumber);
80
my @hiddenitems;
80
my @hiddenitems;
81
if (scalar @all_items >= 1) {
81
if ( scalar @all_items >= 1 ) {
82
    push @hiddenitems, GetHiddenItemnumbers(@all_items);
82
    my $borcat;
83
    if ( C4::Context->preference('OpacHiddenItemsExceptions') ) {
84
85
        # we need to fetch the borrower info here, so we can pass the category
86
        my $borrower = GetMember( borrowernumber => $borrowernumber );
87
        $borcat = $borrower->{categorycode};
88
    }
89
90
    push @hiddenitems,
91
      GetHiddenItemnumbers( { items => \@all_items, borcat => $borcat } );
83
92
84
    if (scalar @hiddenitems == scalar @all_items ) {
93
    if (scalar @hiddenitems == scalar @all_items ) {
85
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
94
        print $query->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
Lines 226-232 if ($session->param('busc')) { Link Here
226
        for (my $i=0;$i<@servers;$i++) {
235
        for (my $i=0;$i<@servers;$i++) {
227
            my $server = $servers[$i];
236
            my $server = $servers[$i];
228
            $hits = $results_hashref->{$server}->{"hits"};
237
            $hits = $results_hashref->{$server}->{"hits"};
229
            @newresults = searchResults('opac', '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
238
            @newresults = searchResults({ 'interface' => 'opac' }, '', $hits, $results_per_page, $offset, $arrParamsBusc->{'scan'}, $results_hashref->{$server}->{"RECORDS"});
230
        }
239
        }
231
        return \@newresults;
240
        return \@newresults;
232
    }#searchAgain
241
    }#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::LibraryCategories;
56
use Koha::LibraryCategories;
56
use Koha::Ratings;
57
use Koha::Ratings;
Lines 625-630 if ($@ || $error) { Link Here
625
# At this point, each server has given us a result set
626
# At this point, each server has given us a result set
626
# now we build that set for template display
627
# now we build that set for template display
627
my @sup_results_array;
628
my @sup_results_array;
629
my $search_context = {};
630
$search_context->{'interface'} = 'opac';
631
if (C4::Context->preference('OpacHiddenItemsExceptions')){
632
    # we need to fetch the borrower info here, so we can pass the category
633
    my $borrower = GetMember( borrowernumber => $borrowernumber );
634
    $search_context->{'category'} = $borrower->{'categorycode'};
635
}
636
628
for (my $i=0;$i<@servers;$i++) {
637
for (my $i=0;$i<@servers;$i++) {
629
    my $server = $servers[$i];
638
    my $server = $servers[$i];
630
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
639
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
Lines 636-647 for (my $i=0;$i<@servers;$i++) { Link Here
636
                # because pazGetRecords handles retieving only the records
645
                # because pazGetRecords handles retieving only the records
637
                # we want as specified by $offset and $results_per_page,
646
                # we want as specified by $offset and $results_per_page,
638
                # we need to set the offset parameter of searchResults to 0
647
                # we need to set the offset parameter of searchResults to 0
639
                my @group_results = searchResults( 'opac', $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
648
                my @group_results = searchResults( $search_context, $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
640
                                                   $group->{"RECORDS"});
649
                                                   $group->{"RECORDS"});
641
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
650
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
642
            }
651
            }
643
        } else {
652
        } else {
644
            @newresults = searchResults('opac', $query_desc, $hits, $results_per_page, $offset, $scan,
653
            @newresults = searchResults( $search_context, $query_desc, $hits, $results_per_page, $offset, $scan,
645
                                        $results_hashref->{$server}->{"RECORDS"});
654
                                        $results_hashref->{$server}->{"RECORDS"});
646
        }
655
        }
647
        $hits = 0 unless @newresults;
656
        $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