version 1.331.4.16.2.1, 2022/05/29 21:59:55
|
version 1.354, 2020/08/26 00:42:39
|
Line 178 sub handler {
|
Line 178 sub handler {
|
if (@allowed_searches ==2) { |
if (@allowed_searches ==2) { |
$crumb_text = 'Portfolio and Catalog Search'; |
$crumb_text = 'Portfolio and Catalog Search'; |
} |
} |
my $target = '_top'; |
|
if ((($env{'request.lti.login'}) && ($env{'request.lti.target'} eq 'iframe')) || |
|
(($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self'))) { |
|
if ($env{'form.phase'} =~ /^(sort|run_search)$/) { |
|
$target = '_parent'; |
|
} else { |
|
$target = '_self'; |
|
} |
|
} |
|
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/searchcat?'. |
({href=>'/adm/searchcat?'. |
&Apache::loncommon::inhibit_menu_check(). |
&Apache::loncommon::inhibit_menu_check(). |
Line 194 sub handler {
|
Line 185 sub handler {
|
'&launch='.$env{'form.launch'}. |
'&launch='.$env{'form.launch'}. |
'&mode='.$env{'form.mode'}, |
'&mode='.$env{'form.mode'}, |
text=>"$crumb_text", |
text=>"$crumb_text", |
target=>$target, |
target=>'_top', |
bug=>'Searching',}); |
bug=>'Searching',}); |
# |
# |
if ($env{'form.phase'} !~ m/(basic|adv|course)_search/) { |
if ($env{'form.phase'} !~ m/(basic|adv|course)_search/) { |
Line 337 END
|
Line 328 END
|
['query','customquery','customshow', |
['query','customquery','customshow', |
'libraries','pretty_string','domains']); |
'libraries','pretty_string','domains']); |
if ($env{'form.phase'} eq 'sort') { |
if ($env{'form.phase'} eq 'sort') { |
&print_sort_form($r,$pretty_string,$target); |
&print_sort_form($r,$pretty_string); |
} elsif ($env{'form.phase'} eq 'run_search') { |
} elsif ($env{'form.phase'} eq 'run_search') { |
&run_search($r,$query,$customquery,$customshow, |
&run_search($r,$query,$customquery,$customshow, |
$libraries,$pretty_string,$env{'form.area'},$domainsref,$target); |
$libraries,$pretty_string,$env{'form.area'},$domainsref); |
} |
} |
} elsif(($env{'form.phase'} eq 'basic_search') || |
} elsif(($env{'form.phase'} eq 'basic_search') || |
($env{'form.phase'} eq 'adv_search')) { |
($env{'form.phase'} eq 'adv_search')) { |
Line 442 sub hidden_field {
|
Line 433 sub hidden_field {
|
=pod |
=pod |
|
|
=over 4 |
=over 4 |
|
|
=item &print_basic_search_form() |
=item &print_basic_search_form() |
|
|
Prints the form for the basic search. Sorry the name is so cryptic. |
Prints the form for the basic search. Sorry the name is so cryptic. |
Line 504 sub setup_basic_search {
|
Line 495 sub setup_basic_search {
|
} else { |
} else { |
$singledom = $env{'user.domain'}; |
$singledom = $env{'user.domain'}; |
$disabled = ' disabled="disabled"'; |
$disabled = ' disabled="disabled"'; |
$checked = 1; |
$checked = 1; |
} |
} |
$onlysearchdomain = '<label>' |
$onlysearchdomain = '<label>' |
.&Apache::lonhtmlcommon::checkbox( |
.&Apache::lonhtmlcommon::checkbox( |
Line 690 function additional_metadata() {
|
Line 681 function additional_metadata() {
|
my $anydomain = 1; |
my $anydomain = 1; |
if ($env{'form.area'} ne 'portfolio') { |
if ($env{'form.area'} ne 'portfolio') { |
unless (&Apache::lonnet::allowed('bre','/res/')) { |
unless (&Apache::lonnet::allowed('bre','/res/')) { |
$anydomain = 0; |
$anydomain = 0; |
} |
} |
} |
} |
|
|
$scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Domains'))); |
$scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Domains'))); |
if ($anydomain) { |
if ($anydomain) { |
|
my $defdom = &Apache::lonnet::default_login_domain(); |
|
my ($trusted,$untrusted) = &Apache::lonnet::trusted_domains('shared',$defdom); |
$scrout .= &Apache::loncommon::domain_select('domains', |
$scrout .= &Apache::loncommon::domain_select('domains', |
$env{'form.domains'},1); |
$env{'form.domains'},1,$trusted,$untrusted); |
} else { |
} else { |
$scrout .= &Apache::loncommon::select_dom_form($env{'user.domain'}, |
$scrout .= &Apache::loncommon::select_dom_form($env{'user.domain'}, |
'domains','','','',[$env{'user.domain'}],'',1); |
'domains','','','',[$env{'user.domain'}],'',1); |
Line 2061 a link to change the search query.
|
Line 2054 a link to change the search query.
|
###################################################################### |
###################################################################### |
###################################################################### |
###################################################################### |
sub print_sort_form { |
sub print_sort_form { |
my ($r,$pretty_query_string,$target) = @_; |
my ($r,$pretty_query_string) = @_; |
|
|
## |
## |
my %SortableFields=&Apache::lonlocal::texthash( |
my %SortableFields=&Apache::lonlocal::texthash( |
Line 2094 sub print_sort_form {
|
Line 2087 sub print_sort_form {
|
&Apache::lonnet::logthis(&Apache::lonmysql::get_error()); |
&Apache::lonnet::logthis(&Apache::lonmysql::get_error()); |
return; |
return; |
} |
} |
my $js =<<END; |
my $start_page = &Apache::loncommon::start_page('Results',undef); |
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function change_sort() { |
|
var newloc = "/adm/searchcat?phase=results"; |
|
newloc += "&persistent_db_id=$env{'form.persistent_db_id'}"; |
|
newloc += "&sortby="; |
|
newloc += document.forms.statusform.elements.sortby.value; |
|
parent.resultsframe.location= newloc; |
|
} |
|
// ]]> |
|
</script> |
|
END |
|
|
|
my $args; |
|
if ($target eq '_parent') { |
|
$args = {'links_target' => $target}; |
|
} |
|
my $start_page = &Apache::loncommon::start_page('Results',undef,$args); |
|
my $breadcrumbs= |
my $breadcrumbs= |
&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', |
&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', |
$env{'form.catalogmode'} ne 'import', |
$env{'form.catalogmode'} ne 'import'); |
'','','','','','',$target); |
|
|
|
my $result = <<END; |
my $result = <<END; |
$start_page |
$start_page |
$breadcrumbs |
$breadcrumbs |
<form name="statusform" action="" method="post" target="$target"> |
<form name="statusform" action="" method="post" target="_top"> |
<input type="hidden" name="catalogmode" value="import" /> |
<input type="hidden" name="catalogmode" value="import" /> |
<input type="hidden" name="acts" value="" /> |
<input type="hidden" name="acts" value="" /> |
END |
END |
Line 2372 results into MySQL.
|
Line 2346 results into MySQL.
|
###################################################################### |
###################################################################### |
sub run_search { |
sub run_search { |
my ($r,$query,$customquery,$customshow,$serverlist, |
my ($r,$query,$customquery,$customshow,$serverlist, |
$pretty_string,$area,$domainsref,$target) = @_; |
$pretty_string,$area,$domainsref) = @_; |
my $tabletype = 'metadata'; |
my $tabletype = 'metadata'; |
if ($area eq 'portfolio') { |
if ($area eq 'portfolio') { |
$tabletype = 'portfolio_search'; |
$tabletype = 'portfolio_search'; |
Line 2381 sub run_search {
|
Line 2355 sub run_search {
|
# |
# |
# Print run_search header |
# Print run_search header |
# |
# |
my $args; |
my $start_page = &Apache::loncommon::start_page('Search Status',undef); |
if ($target eq '_parent') { |
|
$args = {'links_target' => $target}; |
|
} |
|
my $start_page = &Apache::loncommon::start_page('Search Status',undef,$args); |
|
my $breadcrumbs = |
my $breadcrumbs = |
&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', |
&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', |
$env{'form.catalogmode'} ne 'import', |
$env{'form.catalogmode'} ne 'import'); |
'','','','','','',$target); |
|
$r->print(<<END); |
$r->print(<<END); |
$start_page |
$start_page |
$breadcrumbs |
$breadcrumbs |
Line 2437 END
|
Line 2406 END
|
%all_library_servers = (%library_servers,%older_library_servers); |
%all_library_servers = (%library_servers,%older_library_servers); |
@Servers_to_contact = sort(keys(%all_library_servers)); |
@Servers_to_contact = sort(keys(%all_library_servers)); |
foreach my $server (@Servers_to_contact) { |
foreach my $server (@Servers_to_contact) { |
my %possdoms; |
|
map { $possdoms{$_}=1; } &Apache::lonnet::machine_domains($all_library_servers{$server}); |
|
$domains_by_server{$server} = |
$domains_by_server{$server} = |
join(',',sort(&Apache::lonnet::machine_domains($all_library_servers{$server}))); |
join(',',sort(&Apache::lonnet::machine_domains($all_library_servers{$server}))); |
} |
} |
Line 2525 END
|
Line 2492 END
|
&update_status($r, |
&update_status($r, |
&mt('waiting on [_1]',join(' ',keys(%Server_status)))); |
&mt('waiting on [_1]',join(' ',keys(%Server_status)))); |
} |
} |
sleep(0.1); |
sleep(0.1); |
} |
} |
# |
# |
# Loop through the servers we have contacted but do not |
# Loop through the servers we have contacted but do not |
Line 2712 sub display_results {
|
Line 2679 sub display_results {
|
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
$r->rflush(); |
$r->rflush(); |
return; |
return; |
} |
} |
# untie %groupsearch_db if the connection gets aborted before the end |
# untie %groupsearch_db if the connection gets aborted before the end |
$r->register_cleanup(sub { |
$r->register_cleanup(sub { |
untie %groupsearch_db if (tied(%groupsearch_db)); |
untie %groupsearch_db if (tied(%groupsearch_db)); |
}); |
}); |
} |
} |
## |
## |
## Prepare the table for querying |
## Prepare the table for querying |
Line 3269 sub print_frames_interface {
|
Line 3236 sub print_frames_interface {
|
my $results_link = &results_link(); |
my $results_link = &results_link(); |
my $js = <<JS; |
my $js = <<JS; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
|
var targetwin = opener; |
var targetwin = opener; |
var queue = ''; |
var queue = ''; |
|
|
Line 3292 function done_loading_results() {
|
Line 3258 function done_loading_results() {
|
update_results(new_location); |
update_results(new_location); |
} |
} |
} |
} |
// ]]> |
|
</script> |
</script> |
JS |
JS |
|
|
Line 3603 sub display_url {
|
Line 3568 sub display_url {
|
# (because the search opens in a new window, it gets |
# (because the search opens in a new window, it gets |
# confusing when the links open a tab in the |
# confusing when the links open a tab in the |
# parent window; ideally we should not force windows) |
# parent window; ideally we should not force windows) |
my $onclick = " onclick=\"window.open(this.href, '_blank', 'toolbar=1,location=1,menubar=0');return false;\""; |
my $onclick = " onclick=\"window.open(this.href, '_blank', 'toolbar=1,location=1,menubar=0');return false;\""; |
$link=&Apache::lonhtmlcommon::crumbs( |
$link=&Apache::lonhtmlcommon::crumbs( |
$url, |
$url, |
'preview', |
'preview', |