Diff for /rat/lonsequence.pm between versions 1.43 and 1.48.2.3

version 1.43, 2012/12/19 05:21:13 version 1.48.2.3, 2021/06/24 21:22:27
Line 41  use Apache::lonpageflip(); Line 41  use Apache::lonpageflip();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::groupsort();  use Apache::groupsort();
 use Apache::lonlocal;  use Apache::lonlocal;
   use Apache::lonnavmaps();
   use Apache::lonenc();
 use HTML::Entities();  use HTML::Entities();
   
 my %selhash;  my %selhash;
Line 133  ENDSELECT Line 135  ENDSELECT
                 .'</p><br />');                  .'</p><br />');
     }      }
     my $idx=0;      my $idx=0;
     foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) {      foreach my $entry (&attemptread(&Apache::lonnet::filelocation('',$url))) {
  if (defined($_)) {   if (defined($entry)) {
             $idx++;              $idx++;
             if ($successtied) {               if ($successtied) { 
  $r->print('<form name="form'.$idx.'">');   $r->print('<form name="form'.$idx.'">');
             }              }
     my ($title,$url)=split(/\:/,$_);      my ($title,$url)=split(/\:/,$entry);
     $title = &LONCAPA::map::qtescape($title);      $title = &LONCAPA::map::qtescape($title);
     unless ($title) { $title=(split(/\//,$url))[-1] };      unless ($title) { $title=(split(/\//,$url))[-1] };
             my $enc_title = &HTML::Entities::encode($title,'\'"<>&');              my $enc_title = &HTML::Entities::encode($title,'\'"<>&');
Line 184  ENDCHECKBOX Line 186  ENDCHECKBOX
   
 # ----------------------------------------------------------- Clean out selhash  # ----------------------------------------------------------- Clean out selhash
 sub start_fresh_session {  sub start_fresh_session {
     foreach (keys %selhash) {      foreach my $item (keys(%selhash)) {
  if ($_ =~ /^pre_/) {   if ($item =~ /^pre_/) {
     delete $selhash{$_};      delete $selhash{$item};
  }   }
  if ($_ =~ /^store/) {   if ($item =~ /^store/) {
     delete $selhash{$_};      delete $selhash{$item};
  }   }
     }      }
 }  }
Line 205  sub handler { Line 207  sub handler {
       $r->send_http_header;        $r->send_http_header;
       return OK;        return OK;
    }     }
    
      my $requrl=$r->uri;
    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                           ['forceselect','launch']);                                            ['forceselect','launch','navmap']);
   
      if (($env{'request.course.fn'}) && ($env{'form.navmap'}) && ($env{'request.course.id'})) {
          my $crstype = &Apache::loncommon::course_type();
          unless (($crstype eq 'Placement') && (!$env{'request.role.adv'})) {
   
              # Check for critical messages and redirect if present.
              my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'contents');
              if ($redirect) {
                  &Apache::loncommon::content_type($r,'text/html');
                  $r->header_out(Location => $url);
                  return REDIRECT;
              }
   
              # Check if course needs to be re-initialized
              my $loncaparev = $r->dir_config('lonVersion');
              my ($result,@reinit) = &Apache::loncommon::needs_coursereinit($loncaparev);
   
              if ($result eq 'switch') {
                  &Apache::loncommon::content_type($r,'text/html');
                  $r->send_http_header;
                  $r->print(&Apache::loncommon::check_release_result(@reinit));
                  return OK;
              } 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;
                      $env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized";
                      $env{'user.reinit'} = 1;
                      return HTTP_NOT_ACCEPTABLE;
                  }
              }
   
              &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();
   
              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);
                                  }
                              }
                              $env{'request.symb'} = $symb;
                          }
                      }
                      push(@crumbs,{text => $maptitle, no_mt => 1});
                      $args = {'bread_crumbs' => \@crumbs,
                               'bread_crumbs_nomenu' => 1,
                               'no_auto_mt_title' => 1};
                      $r->print(&Apache::loncommon::start_page($maptitle,undef,$args));
   
                      my $renderArgs = { 'cols'                    => [0,1,2,3],
                                         'url'                     => $mapurl,
                                         'navmap'                  => $navmap,
                                         'suppressNavmap'          => 1,
                                         'suppressEmptySequences'  => 1,
                                         'filterFunc'              => undef,
                                         'resource_no_folder_link' => 1,
                                         'r'                       => $r,
                                         'caller'                  => 'sequence',
                                         'notools'                 => 1,
                                         'iterator_map'            => $mapurl,
                                       };
   
                      my $render = &Apache::lonnavmaps::render($renderArgs);
   
                      # If no resources were found let the user know.
                      if ($renderArgs->{'counter'} == 0) {
                          $r->print('<p class="LC_info">'.
                                    &mt('No items found in folder').
                                    '</p>');
                      }
                      $r->print(&Apache::loncommon::end_page());
                  } else {
                      $r->print(&Apache::loncommon::start_page($maptitle,undef,$args).
                                '<p class="LC_info">'.
                                &mt('Folder no longer appears to be a part of the course').
                                '</p>'.
                                &Apache::loncommon::end_page());
                  }
              } else {
                  $r->print(&Apache::loncommon::start_page($maptitle,undef,$args).
                            '<p class="LC_warning">'.
                            &mt('Error: could not determine contents of folder').
                            '</p>'.
                            &Apache::loncommon::end_page());
              }
              $r->rflush();
              return OK;
          }
      }
   
    my %hash;     my %hash;
    my %bighash;     my %bighash;
    my $requrl=$r->uri;  
   
    $successtied=0;     $successtied=0;
 # ------------------------------------------------------------ Tie symb db file  # ------------------------------------------------------------ Tie symb db file
Line 292  sub handler { Line 405  sub handler {
       if ($is_encrypted) {        if ($is_encrypted) {
           $showdisurl = &Apache::lonenc::encrypted($disurl);            $showdisurl = &Apache::lonenc::encrypted($disurl);
       }        }
       &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid],        if ($disurl =~ m{^/adm/navmaps(\?|$)}) {
  'last_known' => [$disurl,$dismapid]);             &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid]);
         } else {
             &Apache::lonnet::symblist($requrl,$disurl => [$disurl,$dismapid],
                                       'last_known' => [$disurl,$dismapid]);
         }
       &Apache::loncommon::content_type($r,'text/html');        &Apache::loncommon::content_type($r,'text/html');
       $r->header_out(Location => &Apache::lonnet::absolute_url($ENV{'SERVER_NAME'}).        $r->header_out(Location => &Apache::lonnet::absolute_url($ENV{'SERVER_NAME'}).
                                  $showdisurl);                                   $showdisurl);
Line 305  sub handler { Line 422  sub handler {
            my %lt =&Apache::lonlocal::texthash(             my %lt =&Apache::lonlocal::texthash(
                    'nere' => 'Next resource could not be displayed',                     'nere' => 'Next resource could not be displayed',
                    'goba' => 'Go Back',                     'goba' => 'Go Back',
                    'nacc' => 'Navigate Course Content',                     'nacc' => 'Course Contents',
                           );                            );
              if (&Apache::loncommon::course_type() eq 'Community') {
                  $lt{'nav'} = &mt('Community Contents');
              }
            my $warnmsg;             my $warnmsg;
            if ($arrow_dir eq 'forward') {             if ($arrow_dir eq 'forward') {
                $warnmsg = &mt('As all folders and sequences '                 $warnmsg = &mt('As all folders and sequences '

Removed from v.1.43  
changed lines
  Added in v.1.48.2.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.