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

version 1.43, 2012/12/19 05:21:13 version 1.48, 2017/09/04 23:47:17
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;
                  }
              }
   
              # Create the nav map
              my $navmap = Apache::lonnavmaps::navmap->new();
   
              if (ref($navmap)) {
                  # renderer call
                  if (&Apache::lonnet::is_on_map($requrl)) {
                      my $mapurl = &Apache::lonnet::declutter($requrl);
                      my @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;
                          }
                      }
                      my $maptitle = &Apache::lonnet::gettitle($mapurl);
                      push(@crumbs,{text => $maptitle, no_mt => 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],
                                         '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><span class=\"LC_info\">".
                                    &mt("This folder is empty.")."</span></p>");
                      }
                      $r->print(&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 305  sub handler { Line 400  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


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>