--- loncom/interface/lonsearchcat.pm 2024/07/04 17:21:22 1.331.4.17 +++ loncom/interface/lonsearchcat.pm 2015/06/18 15:10:52 1.347 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.331.4.17 2024/07/04 17:21:22 raeburn Exp $ +# $Id: lonsearchcat.pm,v 1.347 2015/06/18 15:10:52 damieng Exp $ # # Copyright Michigan State University Board of Trustees # @@ -433,7 +433,7 @@ sub hidden_field { =pod =over 4 - + =item &print_basic_search_form() Prints the form for the basic search. Sorry the name is so cryptic. @@ -479,31 +479,14 @@ sub setup_basic_search { .&mt('use related words') .''; - my $anydom = 1; - if ($area eq 'res') { - unless (&Apache::lonnet::allowed('bre','/res/') eq 'F') { - $anydom = 0; - } - } - my $singledom; - my ($disabled,$checked); - if ($anydom) { - $singledom = $r->dir_config('lonDefDomain'); - if ($env{'form.domains'} eq $singledom) { - $checked = 1; - } - } else { - $singledom = $env{'user.domain'}; - $disabled = ' disabled="disabled"'; - $checked = 1; - } $onlysearchdomain = ''; $adv_search_link = '{'url'}); # Check for priv - if ($Metadata->{'copyright'} eq 'priv') { - unless (($env{'user.name'} eq $resname) && - ($env{'user.domain'} eq $resdom)) { - return 0; - } + if (($Metadata->{'copyright'} eq 'priv') && + (($env{'user.name'} ne $resname) && + ($env{'user.domain'} ne $resdom))) { + return 0; } # Check for domain if (($Metadata->{'copyright'} eq 'domain') && @@ -2085,21 +2051,7 @@ sub print_sort_form { &Apache::lonnet::logthis(&Apache::lonmysql::get_error()); return; } - my $js =< -// - -END - - my $start_page = &Apache::loncommon::start_page('Results'); + my $start_page = &Apache::loncommon::start_page('Results',undef); my $breadcrumbs= &Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', $env{'form.catalogmode'} ne 'import'); @@ -2459,7 +2411,6 @@ END ## Prepare for the big loop. my $hitcountsum; my $oldhitcountsum; - my $displaycount; my %matches; my $server; my $status; @@ -2506,7 +2457,7 @@ END &update_status($r, &mt('waiting on [_1]',join(' ',keys(%Server_status)))); } - sleep(0.1); + sleep(0.1); } # # Loop through the servers we have contacted but do not @@ -2559,8 +2510,8 @@ END if ($area eq 'portfolio') { next if (defined($matches{$Fields{'url'}})); - # Skip unless access control set to public or passphrase-protected - next unless (($Fields{'scope'} eq 'public') || ($Fields{'scope'} eq 'guest')); + # Skip if inaccessible + next if (!&Apache::lonnet::portfolio_access($Fields{'url'})); $matches{$Fields{'url'}} = 1; } # @@ -2584,10 +2535,8 @@ END last if ($connection->aborted()); if ($oldhitcountsum < $hitcountsum) { &update_count_status($r,$hitcountsum); - if (($hitcountsum <= $env{'form.show'}) || - (!$displaycount && $hitcountsum)) { + if ($hitcountsum <= $env{'form.show'}) { reload_result_frame($r); - $displaycount = $hitcountsum; } $oldhitcountsum = $hitcountsum; } @@ -2693,11 +2642,11 @@ sub display_results { &Apache::loncommon::end_page()); $r->rflush(); return; - } + } # untie %groupsearch_db if the connection gets aborted before the end $r->register_cleanup(sub { untie %groupsearch_db if (tied(%groupsearch_db)); - }); + }); } ## ## Prepare the table for querying @@ -3250,7 +3199,6 @@ sub print_frames_interface { my $results_link = &results_link(); my $js = < -// JS @@ -3580,17 +3527,17 @@ sub display_url { } elsif ($url=~m{^(http://|/uploaded/)}) { $link=''.$url.''; } else { - # replace the links to open in a new window - # (because the search opens in a new window, it gets - # confusing when the links open a tab in the - # parent window; ideally we should not force windows) - my $onclick = " onclick=\"window.open(this.href, '_blank', 'toolbar=1,location=1,menubar=0');return false;\""; $link=&Apache::lonhtmlcommon::crumbs( $url, 'preview', '', '', - $skiplast,$onclick).' '; + $skiplast).' '; + # replace the links to open in a new window + # (because the search opens in a new window, it gets + # confusing when the links open a tab in the + # parent window; ideally we should not force windows) + $link =~ s/(href="[^"]*")/\1 onclick="window.open(this.href, '_blank', 'toolbar=1,location=1,menubar=0');return false;"/g; } return $link; }