--- loncom/interface/lonsearchcat.pm 2016/11/15 20:03:50 1.351
+++ loncom/interface/lonsearchcat.pm 2023/12/22 20:11:55 1.358
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Search Catalog
#
-# $Id: lonsearchcat.pm,v 1.351 2016/11/15 20:03:50 raeburn Exp $
+# $Id: lonsearchcat.pm,v 1.358 2023/12/22 20:11:55 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -176,7 +176,16 @@ sub handler {
}
my $crumb_text = 'Portfolio Search';
if (@allowed_searches ==2) {
- $crumb_text = 'Portfolio and Catalog Search';
+ $crumb_text = 'Portfolio and Content Library 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
({href=>'/adm/searchcat?'.
@@ -185,7 +194,7 @@ sub handler {
'&launch='.$env{'form.launch'}.
'&mode='.$env{'form.mode'},
text=>"$crumb_text",
- target=>'_top',
+ target=>$target,
bug=>'Searching',});
#
if ($env{'form.phase'} !~ m/(basic|adv|course)_search/) {
@@ -328,10 +337,10 @@ END
['query','customquery','customshow',
'libraries','pretty_string','domains']);
if ($env{'form.phase'} eq 'sort') {
- &print_sort_form($r,$pretty_string);
+ &print_sort_form($r,$pretty_string,$target);
} elsif ($env{'form.phase'} eq 'run_search') {
&run_search($r,$query,$customquery,$customshow,
- $libraries,$pretty_string,$env{'form.area'},$domainsref);
+ $libraries,$pretty_string,$env{'form.area'},$domainsref,$target);
}
} elsif(($env{'form.phase'} eq 'basic_search') ||
($env{'form.phase'} eq 'adv_search')) {
@@ -465,7 +474,7 @@ sub setup_basic_search {
my ($r,$area,$hidden_fields,$closebutton) = @_;
# Define interface components
my %lt = &Apache::lonlocal::texthash (
- res => 'LON-CAPA Catalog Search',
+ res => 'Content Library Search',
portfolio => 'Portfolio Search',
);
my ($userelatedwords,$onlysearchdomain,$inclext,$adv_search_link,$scrout);
@@ -649,7 +658,7 @@ function additional_metadata() {
'standards','mime') {
$scrout .= &Apache::lonhtmlcommon::row_title(&titlefield($fields{$field}))
.&Apache::lonmeta::prettyinput($field,
- $env{'form.'.$field},
+ $env{'form.'.$field},'',
$field,
'advsearch',
$related_word_search{$field},
@@ -666,7 +675,7 @@ function additional_metadata() {
foreach my $field ('lowestgradelevel','highestgradelevel') {
$scrout .= &Apache::lonhtmlcommon::row_title(&titlefield($fields{$field}))
.&Apache::lonmeta::prettyinput($field,
- $env{'form.'.$field},
+ $env{'form.'.$field},'',
$field,
'advsearch',
0)
@@ -687,8 +696,10 @@ function additional_metadata() {
$scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Domains')));
if ($anydomain) {
+ my $defdom = &Apache::lonnet::default_login_domain();
+ my ($trusted,$untrusted) = &Apache::lonnet::trusted_domains('shared',$defdom);
$scrout .= &Apache::loncommon::domain_select('domains',
- $env{'form.domains'},1);
+ $env{'form.domains'},1,$trusted,$untrusted);
} else {
$scrout .= &Apache::loncommon::select_dom_form($env{'user.domain'},
'domains','','','',[$env{'user.domain'}],'',1);
@@ -699,7 +710,7 @@ function additional_metadata() {
if ($env{'form.area'} ne 'portfolio') {
$scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Copyright/Distribution')))
.&Apache::lonmeta::selectbox('copyright',
- $env{'form.copyright'},
+ $env{'form.copyright'},'',
\&Apache::loncommon::copyrightdescription,
( undef,
&Apache::loncommon::copyrightids)
@@ -709,7 +720,7 @@ function additional_metadata() {
$scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Language')))
.&Apache::lonmeta::selectbox('language',
- $env{'form.language'},
+ $env{'form.language'},'',
\&Apache::loncommon::languagedescription,
('any',&Apache::loncommon::languageids)
)
@@ -945,12 +956,12 @@ sub viewoptions {
$scrout .= ''
.&mt('Type:').' '
.&Apache::lonmeta::selectbox('viewselect',
- $env{'form.viewselect'},
+ $env{'form.viewselect'},'',
\&viewoptiontext,
sort(keys(%Views)))
.'';
my $countselect = &Apache::lonmeta::selectbox('show',
- $env{'form.show'},
+ $env{'form.show'},'',
undef,
(10,20,50,100,1000,10000));
$scrout .= ' '
@@ -1881,6 +1892,8 @@ sub build_date_queries {
my (undef,undef,undef,$cbday,$cbmon,$cbyear) = localtime($cbefore);
# Correct for year being relative to 1900
$cayear+=1900; $cbyear+=1900;
+ # Correct month; localtime gives month 0..11 but MySQL expects 1..12
+ $camon++; $cbmon++;
my $cquery=
'(creationdate BETWEEN '.
"'".$cayear.'-'.$camon.'-'.$caday."'".
@@ -1899,6 +1912,8 @@ sub build_date_queries {
my (undef,undef,undef,$mbday,$mbmon,$mbyear) = localtime($mbefore);
# Correct for year being relative to 1900
$mayear+=1900; $mbyear+=1900;
+ # Correct month; localtime gives month 0..11 but MySQL expects 1..12
+ $mamon++; $mbmon++;
my $mquery=
'(lastrevisiondate BETWEEN '.
"'".$mayear.'-'.$mamon.'-'.$maday."'".
@@ -2048,7 +2063,7 @@ a link to change the search query.
######################################################################
######################################################################
sub print_sort_form {
- my ($r,$pretty_query_string) = @_;
+ my ($r,$pretty_query_string,$target) = @_;
##
my %SortableFields=&Apache::lonlocal::texthash(
@@ -2081,15 +2096,20 @@ sub print_sort_form {
&Apache::lonnet::logthis(&Apache::lonmysql::get_error());
return;
}
- my $start_page = &Apache::loncommon::start_page('Results',undef);
+ my $args;
+ if ($target eq '_parent') {
+ $args = {'links_target' => $target};
+ }
+ my $start_page = &Apache::loncommon::start_page('Results',undef,$args);
my $breadcrumbs=
&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching',
- $env{'form.catalogmode'} ne 'import');
+ $env{'form.catalogmode'} ne 'import',
+ '','','','','','',$target);
my $result = <
+