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

(-)a/C4/Items.pm (-4 / +13 lines)
Lines 1287-1302 sub get_hostitemnumbers_of { Link Here
1287
1287
1288
=head2 GetHiddenItemnumbers
1288
=head2 GetHiddenItemnumbers
1289
1289
1290
    my @itemnumbers_to_hide = GetHiddenItemnumbers(@items);
1290
    my @itemnumbers_to_hide = GetHiddenItemnumbers({ items => \@items, borcat => $category });
1291
1291
1292
Given a list of items it checks which should be hidden from the OPAC given
1292
Given a list of items it checks which should be hidden from the OPAC given
1293
the current configuration. Returns a list of itemnumbers corresponding to
1293
the current configuration. Returns a list of itemnumbers corresponding to
1294
those that should be hidden.
1294
those that should be hidden. Optionally takes a borcat parameter for certain borrower types
1295
to be excluded
1295
1296
1296
=cut
1297
=cut
1297
1298
1298
sub GetHiddenItemnumbers {
1299
sub GetHiddenItemnumbers {
1299
    my (@items) = @_;
1300
    my $params = shift;
1301
    my $items = $params->{items};
1302
    if (my $exceptions = C4::Context->preference('OpacHiddenItemsExceptions') and $params->{'borcat'}){
1303
        foreach my $except (split(/\|/, $exceptions)){
1304
            if ($params->{'borcat'} eq $except){
1305
                return; # we dont hide anything for this borrower category
1306
            }
1307
        }
1308
    }
1300
    my @resultitems;
1309
    my @resultitems;
1301
1310
1302
    my $yaml = C4::Context->preference('OpacHiddenItems');
1311
    my $yaml = C4::Context->preference('OpacHiddenItems');
Lines 1313-1319 sub GetHiddenItemnumbers { Link Here
1313
    my $dbh = C4::Context->dbh;
1322
    my $dbh = C4::Context->dbh;
1314
1323
1315
    # For each item
1324
    # For each item
1316
    foreach my $item (@items) {
1325
    foreach my $item (@$items) {
1317
1326
1318
        # We check each rule
1327
        # We check each rule
1319
        foreach my $field (keys %$hidingrules) {
1328
        foreach my $field (keys %$hidingrules) {
(-)a/C4/Search.pm (-6 / +7 lines)
Lines 1853-1861 sub searchResults { Link Here
1853
1853
1854
    require C4::Items;
1854
    require C4::Items;
1855
1855
1856
    $search_context = 'opac' if !$search_context || $search_context ne 'intranet';
1856
    $search_context->{'interface'} = 'opac' if !$search_context->{'interface'} || $search_context->{'interface'} ne 'intranet';
1857
    my ($is_opac, $hidelostitems);
1857
    my ($is_opac, $hidelostitems);
1858
    if ($search_context eq 'opac') {
1858
    if ($search_context->{'interface'} eq 'opac') {
1859
        $hidelostitems = C4::Context->preference('hidelostitems');
1859
        $hidelostitems = C4::Context->preference('hidelostitems');
1860
        $is_opac       = 1;
1860
        $is_opac       = 1;
1861
    }
1861
    }
Lines 1945-1950 sub searchResults { Link Here
1945
        # add imageurl to itemtype if there is one
1945
        # add imageurl to itemtype if there is one
1946
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1946
        $oldbiblio->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $oldbiblio->{itemtype} }->{imageurl} );
1947
1947
1948
        $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 ) ) : [];
1948
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1949
		$oldbiblio->{normalized_upc}  = GetNormalizedUPC(       $marcrecord,$marcflavour);
1949
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1950
		$oldbiblio->{normalized_ean}  = GetNormalizedEAN(       $marcrecord,$marcflavour);
1950
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
1951
		$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
Lines 2076-2082 sub searchResults { Link Here
2076
                    next;
2077
                    next;
2077
                }
2078
                }
2078
                # hidden based on OpacHiddenItems syspref
2079
                # hidden based on OpacHiddenItems syspref
2079
                my @hi = C4::Items::GetHiddenItemnumbers($item);
2080
                my @hi = C4::Items::GetHiddenItemnumbers({ items=> [ $item ], borcat => $search_context->{category} });
2080
                if (scalar @hi) {
2081
                if (scalar @hi) {
2081
                    push @hiddenitems, @hi;
2082
                    push @hiddenitems, @hi;
2082
                    $hideatopac_count++;
2083
                    $hideatopac_count++;
Lines 2205-2211 sub searchResults { Link Here
2205
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2206
					$other_items->{$key}->{count}++ if $item->{$hbranch};
2206
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2207
					$other_items->{$key}->{location} = $shelflocations->{ $item->{location} };
2207
					$other_items->{$key}->{description} = $item->{description};
2208
					$other_items->{$key}->{description} = $item->{description};
2208
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2209
					$other_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2209
                }
2210
                }
2210
                # item is available
2211
                # item is available
2211
                else {
2212
                else {
Lines 2216-2222 sub searchResults { Link Here
2216
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2217
                    	$available_items->{$prefix}->{$_} = $item->{$_};
2217
					}
2218
					}
2218
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2219
					$available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} };
2219
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
2220
					$available_items->{$prefix}->{imageurl} = getitemtypeimagelocation( $search_context->{'interface'}, $itemtypes{ $item->{itype} }->{imageurl} );
2220
                }
2221
                }
2221
            }
2222
            }
2222
        }    # notforloan, item level and biblioitem level
2223
        }    # notforloan, item level and biblioitem level
Lines 2242-2250 sub searchResults { Link Here
2242
2243
2243
        # XSLT processing of some stuff
2244
        # XSLT processing of some stuff
2244
        # we fetched the sysprefs already before the loop through all retrieved record!
2245
        # we fetched the sysprefs already before the loop through all retrieved record!
2246
        my $interface = $search_context->{'interface'} eq 'opac' ? 'OPAC' : '';
2245
        if (!$scan && $xslfile) {
2247
        if (!$scan && $xslfile) {
2246
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2248
            $oldbiblio->{XSLTResultsRecord} = XSLTParse4Display($oldbiblio->{biblionumber}, $marcrecord, $xslsyspref, 1, \@hiddenitems, $sysxml, $xslfile, $lang);
2247
        # the last parameter tells Koha to clean up the problematic ampersand entities that Zebra outputs
2248
        }
2249
        }
2249
2250
2250
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
2251
        # if biblio level itypes are used and itemtype is notforloan, it can't be reserved either
(-)a/catalogue/search.pl (-1 / +1 lines)
Lines 541-547 for (my $i=0;$i<@servers;$i++) { Link Here
541
    if ($server =~/biblioserver/) { # this is the local bibliographic server
541
    if ($server =~/biblioserver/) { # this is the local bibliographic server
542
        my $hits = $results_hashref->{$server}->{"hits"} // 0;
542
        my $hits = $results_hashref->{$server}->{"hits"} // 0;
543
        my $page = $cgi->param('page') || 0;
543
        my $page = $cgi->param('page') || 0;
544
        my @newresults = searchResults('intranet', $query_desc, $hits, $results_per_page, $offset, $scan,
544
        my @newresults = searchResults({ 'interface' => 'intranet' }, $query_desc, $hits, $results_per_page, $offset, $scan,
545
                                       $results_hashref->{$server}->{"RECORDS"});
545
                                       $results_hashref->{$server}->{"RECORDS"});
546
        $total = $total + $hits;
546
        $total = $total + $hits;
547
547
(-)a/cataloguing/addbooks.pl (-1 / +4 lines)
Lines 90-96 if ($query) { Link Here
90
    # format output
90
    # format output
91
    # SimpleSearch() give the results per page we want, so 0 offet here
91
    # SimpleSearch() give the results per page we want, so 0 offet here
92
    my $total = @{$marcresults};
92
    my $total = @{$marcresults};
93
    my @newresults = searchResults( 'intranet', $query, $total, $results_per_page, 0, 0, $marcresults );
93
    my @newresults = searchResults( {'interface' => 'intranet'}, $query, $total, $results_per_page, 0, 0, $marcresults );
94
    foreach my $line (@newresults) {
95
        if ( not exists $line->{'size'} ) { $line->{'size'} = "" }
96
    }
94
    $template->param(
97
    $template->param(
95
        total          => $total_hits,
98
        total          => $total_hits,
96
        query          => $query,
99
        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 85-91 if ( ! $record ) { Link Here
85
my @all_items = GetItemsInfo($biblionumber);
85
my @all_items = GetItemsInfo($biblionumber);
86
my @items2hide;
86
my @items2hide;
87
if (scalar @all_items >= 1) {
87
if (scalar @all_items >= 1) {
88
    push @items2hide, GetHiddenItemnumbers(@all_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
    push @items2hide, GetHiddenItemnumbers({ items => \@all_items, borcat => $botcat });
89
96
90
    if (scalar @items2hide == scalar @all_items ) {
97
    if (scalar @items2hide == scalar @all_items ) {
91
        print $query->redirect("/cgi-bin/koha/errors/404.pl");
98
        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 621-626 if (not $tag and ( $@ || $error)) { Link Here
621
# At this point, each server has given us a result set
622
# At this point, each server has given us a result set
622
# now we build that set for template display
623
# now we build that set for template display
623
my @sup_results_array;
624
my @sup_results_array;
625
my $search_context = {};
626
$search_context->{'interface'} = 'opac';
627
if (C4::Context->preference('OpacHiddenItemsExceptions')){
628
    # we need to fetch the borrower info here, so we can pass the category
629
    my $borrower = GetMember( borrowernumber => $borrowernumber );
630
    $search_context->{'category'} = $borrower->{'categorycode'};
631
}
632
624
for (my $i=0;$i<@servers;$i++) {
633
for (my $i=0;$i<@servers;$i++) {
625
    my $server = $servers[$i];
634
    my $server = $servers[$i];
626
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
635
    if ($server && $server =~/biblioserver/) { # this is the local bibliographic server
Lines 632-643 for (my $i=0;$i<@servers;$i++) { Link Here
632
                # because pazGetRecords handles retieving only the records
641
                # because pazGetRecords handles retieving only the records
633
                # we want as specified by $offset and $results_per_page,
642
                # we want as specified by $offset and $results_per_page,
634
                # we need to set the offset parameter of searchResults to 0
643
                # we need to set the offset parameter of searchResults to 0
635
                my @group_results = searchResults( 'opac', $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
644
                my @group_results = searchResults( $search_context, $query_desc, $group->{'group_count'},$results_per_page, 0, $scan,
636
                                                   $group->{"RECORDS"});
645
                                                   $group->{"RECORDS"});
637
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
646
                push @newresults, { group_label => $group->{'group_label'}, GROUP_RESULTS => \@group_results };
638
            }
647
            }
639
        } else {
648
        } else {
640
            @newresults = searchResults('opac', $query_desc, $hits, $results_per_page, $offset, $scan,
649
            @newresults = searchResults( $search_context, $query_desc, $hits, $results_per_page, $offset, $scan,
641
                                        $results_hashref->{$server}->{"RECORDS"});
650
                                        $results_hashref->{$server}->{"RECORDS"});
642
        }
651
        }
643
        $hits = 0 unless @newresults;
652
        $hits = 0 unless @newresults;
(-)a/t/db_dependent/Items.t (-8 / +9 lines)
Lines 192-211 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
192
    push @items, GetItem( $item2_itemnumber );
192
    push @items, GetItem( $item2_itemnumber );
193
193
194
    # Empty OpacHiddenItems
194
    # Empty OpacHiddenItems
195
    t::lib::Mocks::mock_preference('OpacHiddenItems','');
195
    C4::Context->set_preference('OpacHiddenItems','');
196
    ok( !defined( GetHiddenItemnumbers( @items ) ),
196
    ok( !defined( GetHiddenItemnumbers( { items => \@items } ) ),
197
        "Hidden items list undef if OpacHiddenItems empty");
197
        "Hidden items list undef if OpacHiddenItems empty");
198
198
199
    # Blank spaces
199
    # Blank spaces
200
    t::lib::Mocks::mock_preference('OpacHiddenItems','  ');
200
    C4::Context->set_preference('OpacHiddenItems','  ');
201
    ok( scalar GetHiddenItemnumbers( @items ) == 0,
201
    ok( scalar GetHiddenItemnumbers( { items => \@items } ) == 0,
202
        "Hidden items list empty if OpacHiddenItems only contains blanks");
202
        "Hidden items list empty if OpacHiddenItems only contains blanks");
203
203
204
    # One variable / value
204
    # One variable / value
205
    $opachiddenitems = "
205
    $opachiddenitems = "
206
        withdrawn: [1]";
206
        withdrawn: [1]";
207
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
207
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
208
    @hidden = GetHiddenItemnumbers( @items );
208
    @hidden = GetHiddenItemnumbers( { items => \@items } );
209
    ok( scalar @hidden == 1, "Only one hidden item");
209
    ok( scalar @hidden == 1, "Only one hidden item");
210
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
210
    is( $hidden[0], $item1_itemnumber, "withdrawn=1 is hidden");
211
211
Lines 213-219 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
213
    $opachiddenitems = "
213
    $opachiddenitems = "
214
        withdrawn: [1,0]";
214
        withdrawn: [1,0]";
215
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
215
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
216
    @hidden = GetHiddenItemnumbers( @items );
216
    C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems );
217
    @hidden = GetHiddenItemnumbers( { items => \@items } );
217
    ok( scalar @hidden == 2, "Two items hidden");
218
    ok( scalar @hidden == 2, "Two items hidden");
218
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
219
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and withdrawn=0 hidden");
219
220
Lines 223-235 subtest 'GetHiddenItemnumbers tests' => sub { Link Here
223
        homebranch: [$library2->{branchcode}]
224
        homebranch: [$library2->{branchcode}]
224
    ";
225
    ";
225
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
226
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
226
    @hidden = GetHiddenItemnumbers( @items );
227
    @hidden = GetHiddenItemnumbers( { items => \@items } );
227
    ok( scalar @hidden == 2, "Two items hidden");
228
    ok( scalar @hidden == 2, "Two items hidden");
228
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
229
    is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden");
229
230
230
    # Valid OpacHiddenItems, empty list
231
    # Valid OpacHiddenItems, empty list
231
    @items = ();
232
    @items = ();
232
    @hidden = GetHiddenItemnumbers( @items );
233
    @hidden = GetHiddenItemnumbers( { items => \@items } );
233
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
234
    ok( scalar @hidden == 0, "Empty items list, no item hidden");
234
235
235
    $schema->storage->txn_rollback;
236
    $schema->storage->txn_rollback;
(-)a/t/db_dependent/Search.t (-7 / +6 lines)
Lines 373-379 ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],' Link Here
373
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
373
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
374
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
374
    is($results_hashref->{biblioserver}->{hits}, 19, "getRecords generated keyword search for 'salud' matched right number of records");
375
375
376
    my @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
376
    my @newresults = searchResults({'interface' => 'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 18, 0, 0,
377
        $results_hashref->{'biblioserver'}->{"RECORDS"});
377
        $results_hashref->{'biblioserver'}->{"RECORDS"});
378
    is(scalar @newresults,18, "searchResults returns requested number of hits");
378
    is(scalar @newresults,18, "searchResults returns requested number of hits");
379
379
Lines 455-461 ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],' Link Here
455
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
455
    ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
456
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
456
    is($results_hashref->{biblioserver}->{hits}, 26, "getRecords generated availability-limited search matched right number of records");
457
457
458
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
458
    @newresults = searchResults({'interface'=>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
459
        $results_hashref->{'biblioserver'}->{"RECORDS"});
459
        $results_hashref->{'biblioserver'}->{"RECORDS"});
460
    my $allavailable = 'true';
460
    my $allavailable = 'true';
461
    foreach my $result (@newresults) {
461
    foreach my $result (@newresults) {
Lines 593-599 ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],' Link Here
593
    # Let's just test a few other bits and bobs, just for fun
593
    # Let's just test a few other bits and bobs, just for fun
594
594
595
    ($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);
595
    ($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);
596
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
596
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
597
        $results_hashref->{'biblioserver'}->{"RECORDS"});
597
        $results_hashref->{'biblioserver'}->{"RECORDS"});
598
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
598
    is($newresults[0]->{'alternateholdings_count'}, 1, 'Alternate holdings filled in correctly');
599
599
Lines 612-618 ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],' Link Here
612
    });
612
    });
613
613
614
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
614
    ($error, $results_hashref, $facets_loop) = getRecords("TEST12121212","TEST12121212",[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0);
615
    @newresults = searchResults('intranet', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
615
    @newresults = searchResults({'interface'=>'intranet'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 17, 0, 0,
616
        $results_hashref->{'biblioserver'}->{"RECORDS"});
616
        $results_hashref->{'biblioserver'}->{"RECORDS"});
617
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
617
    ok(!exists($newresults[0]->{norequests}), 'presence of a transit does not block hold request action (bug 10741)');
618
618
Lines 620-626 ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],' Link Here
620
    ( undef, $results_hashref, $facets_loop ) =
620
    ( undef, $results_hashref, $facets_loop ) =
621
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
621
        getRecords('ti:punctuation', 'punctuation', [], [ 'biblioserver' ], '19', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
622
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
622
    is($results_hashref->{biblioserver}->{hits}, 1, "search for ti:punctuation returned expected number of records");
623
    warning_like { @newresults = searchResults('intranet', $query_desc,
623
    warning_like { @newresults = searchResults({'intranet' => 'intranet'}, $query_desc,
624
                    $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
624
                    $results_hashref->{'biblioserver'}->{'hits'}, 20, 0, 0,
625
                    $results_hashref->{'biblioserver'}->{"RECORDS"}) }
625
                    $results_hashref->{'biblioserver'}->{"RECORDS"}) }
626
                qr/^ERROR DECODING RECORD - Tag "50%" is not a valid tag/,
626
                qr/^ERROR DECODING RECORD - Tag "50%" is not a valid tag/,
Lines 758-764 ok(MARC::Record::new_from_xml($results_hashref->{biblioserver}->{RECORDS}->[0],' Link Here
758
    ( undef, $results_hashref, $facets_loop ) =
758
    ( undef, $results_hashref, $facets_loop ) =
759
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
759
        getRecords('ti:marc the large record', '', [], [ 'biblioserver' ], '20', 0, undef, \%branches, \%itemtypes, 'ccl', undef);
760
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
760
    is($results_hashref->{biblioserver}->{hits}, 1, "Can do a search that retrieves an over-large bib record (bug 11096)");
761
    @newresults = searchResults('opac', $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
761
    @newresults = searchResults({'interface' =>'opac'}, $query_desc, $results_hashref->{'biblioserver'}->{'hits'}, 10, 0, 0,
762
        $results_hashref->{'biblioserver'}->{"RECORDS"});
762
        $results_hashref->{'biblioserver'}->{"RECORDS"});
763
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
763
    is($newresults[0]->{title}, 'Marc the Large Record', 'Able to render the title for over-large bib record (bug 11096)');
764
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
764
    is($newresults[0]->{biblionumber}, '300', 'Over-large bib record has the correct biblionumber (bug 11096)');
765
- 

Return to bug 14385