'.&Apache::loncommon::end_page());
return;
}
@@ -2311,7 +2399,7 @@ results into MySQL.
######################################################################
sub run_search {
my ($r,$query,$customquery,$customshow,$serverlist,
- $pretty_string,$area,$domainsref) = @_;
+ $pretty_string,$area,$domainsref,$target) = @_;
my $tabletype = 'metadata';
if ($area eq 'portfolio') {
$tabletype = 'portfolio_search';
@@ -2320,13 +2408,19 @@ sub run_search {
#
# Print run_search header
#
- my $start_page = &Apache::loncommon::start_page('Search Status',undef);
+ my $args;
+ if ($target eq '_parent') {
+ $args = {'links_target' => $target};
+ }
+ my $start_page = &Apache::loncommon::start_page('Search Status',undef,$args);
my $breadcrumbs =
&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching',
- $env{'form.catalogmode'} ne 'import');
+ $env{'form.catalogmode'} ne 'import',
+ '','','','','','',$target);
$r->print(<
END
# Remove leading and trailing
$pretty_string =~ s:^\s* ::i;
@@ -2371,8 +2465,6 @@ END
%all_library_servers = (%library_servers,%older_library_servers);
@Servers_to_contact = sort(keys(%all_library_servers));
foreach my $server (@Servers_to_contact) {
- my %possdoms;
- map { $possdoms{$_}=1; } &Apache::lonnet::machine_domains($all_library_servers{$server});
$domains_by_server{$server} =
join(',',sort(&Apache::lonnet::machine_domains($all_library_servers{$server})));
}
@@ -2412,6 +2504,7 @@ END
## Prepare for the big loop.
my $hitcountsum;
my $oldhitcountsum;
+ my $displaycount;
my %matches;
my $server;
my $status;
@@ -2511,8 +2604,8 @@ END
if ($area eq 'portfolio') {
next if (defined($matches{$Fields{'url'}}));
- # Skip if inaccessible
- next if (!&Apache::lonnet::portfolio_access($Fields{'url'}));
+ # Skip unless access control set to public or passphrase-protected
+ next unless (($Fields{'scope'} eq 'public') || ($Fields{'scope'} eq 'guest'));
$matches{$Fields{'url'}} = 1;
}
#
@@ -2536,8 +2629,10 @@ END
last if ($connection->aborted());
if ($oldhitcountsum < $hitcountsum) {
&update_count_status($r,$hitcountsum);
- if ($hitcountsum <= $env{'form.show'}) {
+ if (($hitcountsum <= $env{'form.show'}) ||
+ (!$displaycount && $hitcountsum)) {
reload_result_frame($r);
+ $displaycount = $hitcountsum;
}
$oldhitcountsum = $hitcountsum;
}
@@ -2553,7 +2648,7 @@ END
# We have run out of time or run out of servers to talk to and
# results to get, so let the client know the top frame needs to be
# loaded from /adm/searchcat
- $r->print(&Apache::loncommon::end_page());
+ $r->print(''.&Apache::loncommon::end_page());
# if ($env{'form.catalogmode'} ne 'import') {
$r->print(<
JS
@@ -3528,17 +3635,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).' ';
- # 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;
+ $skiplast,$onclick).' ';
}
return $link;
}