--- loncom/interface/lonsearchcat.pm 2020/08/26 00:42:39 1.354 +++ loncom/interface/lonsearchcat.pm 2023/03/29 16:01:13 1.357 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.354 2020/08/26 00:42:39 raeburn Exp $ +# $Id: lonsearchcat.pm,v 1.357 2023/03/29 16:01:13 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -178,6 +178,15 @@ sub handler { if (@allowed_searches ==2) { $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 ({href=>'/adm/searchcat?'. &Apache::loncommon::inhibit_menu_check(). @@ -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')) { @@ -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) @@ -701,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) @@ -711,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) ) @@ -947,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 .= ' ' @@ -2054,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( @@ -2087,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 = < +
END @@ -2346,7 +2360,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'; @@ -2355,10 +2369,15 @@ 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(<