--- loncom/interface/lonsearchcat.pm 2020/08/26 01:29:48 1.331.4.16 +++ loncom/interface/lonsearchcat.pm 2022/05/29 21:59:55 1.331.4.16.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.331.4.16 2020/08/26 01:29:48 raeburn Exp $ +# $Id: lonsearchcat.pm,v 1.331.4.16.2.1 2022/05/29 21:59:55 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')) { @@ -2052,7 +2061,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( @@ -2099,15 +2108,20 @@ sub print_sort_form { END - my $start_page = &Apache::loncommon::start_page('Results'); + 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 @@ -2358,7 +2372,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'; @@ -2367,10 +2381,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(<