--- rat/lonsequence.pm 2023/01/20 23:49:50 1.48.2.4.2.1 +++ rat/lonsequence.pm 2018/04/14 02:29:57 1.49 @@ -2,7 +2,7 @@ # # Sequence Handler # -# $Id: lonsequence.pm,v 1.48.2.4.2.1 2023/01/20 23:49:50 raeburn Exp $ +# $Id: lonsequence.pm,v 1.49 2018/04/14 02:29:57 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,7 @@ use Apache::lonnet; use Apache::Constants qw(:common :http REDIRECT); use GDBM_File; use LONCAPA::map(); +use LONCAPA::ltiutils; use LONCAPA; use Apache::lonpageflip(); use Apache::loncommon(); @@ -233,13 +234,9 @@ sub handler { $r->send_http_header; $r->print(&Apache::loncommon::check_release_result(@reinit)); return OK; - } - my ($cnum,$cdom); - if ($result) { - $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; - $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; - } - if (($result eq 'main') || ($result eq 'both')) { + } elsif ($result eq 'update') { + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum"); if ($ferr) { my $requrl = $r->uri; @@ -248,24 +245,6 @@ sub handler { return HTTP_NOT_ACCEPTABLE; } } - if (($result eq 'both') || ($result eq 'supp')) { - my $possdel; - if ($result eq 'supp') { - $possdel = 1; - } - my ($supplemental,$refs_updated) = &Apache::loncommon::get_supplemental($cnum,$cdom,'',$possdel); - unless ($refs_updated) { - &Apache::loncommon::set_supp_httprefs($cnum,$cdom,$supplemental,$possdel); - } - } - &Apache::loncommon::content_type($r,'text/html'); - $r->send_http_header; - - my $mapurl = &Apache::lonnet::declutter($requrl); - my $maptitle = &Apache::lonnet::gettitle($mapurl); - my @crumbs = ({text => $maptitle, no_mt => 1}); - my $args = {'bread_crumbs' => \@crumbs, - 'bread_crumbs_nomenu' => 1}; # Create the nav map my $navmap = Apache::lonnavmaps::navmap->new(); @@ -273,26 +252,39 @@ sub handler { if (ref($navmap)) { # renderer call if (&Apache::lonnet::is_on_map($requrl)) { - @crumbs = ({text => $crstype.' Contents', - href => "javascript:gopost('/adm/navmaps','')"}); - my $res = $navmap->getResourceByUrl($mapurl); - if (ref($res)) { - my $symb = $res->symb(); - if ($symb) { - my ($parent) = &Apache::lonnet::decode_symb($res->symb()); - if ($parent ne $env{'course.'.$env{'request.course.id'}.'.url'}) { - my @mapcrumbs = $navmap->recursed_crumbs($parent); - if (@mapcrumbs) { - push(@crumbs,@mapcrumbs); + my $ltiscope; + if (($env{'request.lti.login'}) && ($env{'request.lti.uri'})) { + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + ($ltiscope) = &LONCAPA::ltiutils::lti_provider_scope($env{'request.lti.uri'},$cdom,$cnum); + } + my $mapurl = &Apache::lonnet::declutter($requrl); + my @crumbs; + unless (($ltiscope eq 'resource') || ($ltiscope eq 'map')) { + @crumbs = ({text => $crstype.' Contents', + href => "javascript:gopost('/adm/navmaps','')"}); + my $res = $navmap->getResourceByUrl($mapurl); + if (ref($res)) { + my $symb = $res->symb(); + if ($symb) { + my ($parent) = &Apache::lonnet::decode_symb($res->symb()); + if ($parent ne $env{'course.'.$env{'request.course.id'}.'.url'}) { + my @mapcrumbs = $navmap->recursed_crumbs($parent); + if (@mapcrumbs) { + push(@crumbs,@mapcrumbs); + } } + $env{'request.symb'} = $symb; } - $env{'request.symb'} = $symb; } } + my $maptitle = &Apache::lonnet::gettitle($mapurl); push(@crumbs,{text => $maptitle, no_mt => 1}); - $args = {'bread_crumbs' => \@crumbs, - 'bread_crumbs_nomenu' => 1, - 'no_auto_mt_title' => 1}; + my $args = {'bread_crumbs' => \@crumbs, + 'bread_crumbs_nomenu' => 1}; + &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + $r->print(&Apache::loncommon::start_page($maptitle,undef,$args)); my $renderArgs = { 'cols' => [0,1,2,3], @@ -312,27 +304,14 @@ sub handler { # If no resources were found let the user know. if ($renderArgs->{'counter'} == 0) { - $r->print('

'. - &mt('No items found in folder'). - '

'); + $r->print("

". + &mt("This folder is empty.")."

"); } $r->print(&Apache::loncommon::end_page()); - } else { - $r->print(&Apache::loncommon::start_page($maptitle,undef,$args). - '

'. - &mt('Folder no longer appears to be a part of the course'). - '

'. - &Apache::loncommon::end_page()); + $r->rflush(); + return OK; } - } else { - $r->print(&Apache::loncommon::start_page($maptitle,undef,$args). - '

'. - &mt('Error: could not determine contents of folder'). - '

'. - &Apache::loncommon::end_page()); } - $r->rflush(); - return OK; } } @@ -375,6 +354,8 @@ sub handler { $dismapid=(split(/\./,$disid))[1]; if (!$env{'request.role.adv'}) { $randomout = $bighash{'randomout_'.$disid}; + } + if (!$env{'request.role.adv'}) { $is_encrypted = $bighash{'encrypted_'.$disid}; } } elsif (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', @@ -395,6 +376,8 @@ sub handler { $dismapid=(split(/\./,$disid))[1]; if (!$env{'request.role.adv'}) { $randomout = $bighash{'randomout_'.$disid}; + } + if (!$env{'request.role.adv'}) { $is_encrypted = $bighash{'encrypted_'.$disid}; } } @@ -414,14 +397,10 @@ sub handler { if ($is_encrypted) { $showdisurl = &Apache::lonenc::encrypted($disurl); } - if ($disurl =~ m{^/adm/navmaps(\?|$)}) { - &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid]); - } else { - &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid], - 'last_known' => [$disurl,$dismapid]); - } + &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid], + 'last_known' => [$disurl,$dismapid]); &Apache::loncommon::content_type($r,'text/html'); - $r->header_out(Location => &Apache::lonnet::absolute_url(). + $r->header_out(Location => &Apache::lonnet::absolute_url($ENV{'SERVER_NAME'}). $showdisurl); return REDIRECT; } else {