Diff for /loncom/interface/lonnavmaps.pm between versions 1.90 and 1.93

version 1.90, 2002/10/28 21:11:39 version 1.93, 2002/10/29 20:26:03
Line 820  sub new_handle { Line 820  sub new_handle {
     &Apache::loncommon::no_cache($r);      &Apache::loncommon::no_cache($r);
     $r->send_http_header;      $r->send_http_header;
   
     # Initialize the nav map      # Create the nav map the nav map
     my $navmap = Apache::lonnavmaps::navmap->new(      my $navmap = Apache::lonnavmaps::navmap->new(
                         $ENV{"request.course.fn"}.".db",                          $ENV{"request.course.fn"}.".db",
                         $ENV{"request.course.fn"}."_parms.db", 1, 1);                          $ENV{"request.course.fn"}."_parms.db", 1, 1);
Line 850  sub new_handle { Line 850  sub new_handle {
                   '<br><img src="/adm/lonMisc/feedback.gif"> New message (click to open)<p>');                     '<br><img src="/adm/lonMisc/feedback.gif"> New message (click to open)<p>'); 
     }      }
   
       # Now that we've displayed some stuff to the user, init the navmap
       $navmap->init();
   
     # Check that it's defined      # Check that it's defined
     if (!($navmap->courseMapDefined())) {      if (!($navmap->courseMapDefined())) {
         $r->print('<font size="+2" color="red">Coursemap undefined.</font>' .          $r->print('<font size="+2" color="red">Coursemap undefined.</font>' .
Line 926  sub new_handle { Line 929  sub new_handle {
     my $queryAdd = "postdata=" . &Apache::lonnet::escape($currenturl) .      my $queryAdd = "postdata=" . &Apache::lonnet::escape($currenturl) .
         "&alreadyHere=1";          "&alreadyHere=1";
   
     $r->print('<a href="navmaps?condition=1&filter=">Show All Resources</a><br /><br />');  
   
     # Begin the HTML table  
     # four cols: resource + indent, chat+feedback, icon, text string  
     $r->print('<table cellspacing="0" cellpadding="3" border="0" bgcolor="#FFFFFF">' ."\n");  
   
     my $condition = 0;      my $condition = 0;
     if ($ENV{'form.condition'}) {      if ($ENV{'form.condition'}) {
         $condition = 1;          $condition = 1;
     }      }
   
       if ($condition) {
           $r->print('<a href="navmaps?condition=0&filter=">Close All Folders</a><br /><br />');
       } else {
           $r->print('<a href="navmaps?condition=1&filter=">Open All Folders</a><br /><br />');
       }
   
       # Begin the HTML table
       # four cols: resource + indent, chat+feedback, icon, text string
       $r->print('<table cellspacing="0" cellpadding="3" border="0" bgcolor="#FFFFFF">' ."\n");
   
     # This needs to be updated to use symbs from the remote,       # This needs to be updated to use symbs from the remote, 
     # instead of uris. The changes to this and the main rendering      # instead of uris. The changes to this and the main rendering
     # loop should be obvious.      # loop should be obvious.
Line 946  sub new_handle { Line 953  sub new_handle {
     my $mapIterator = $navmap->getIterator(undef, undef, {}, 1);      my $mapIterator = $navmap->getIterator(undef, undef, {}, 1);
     my $found = 0;      my $found = 0;
     my $depth = 1;      my $depth = 1;
       my $currentUrlIndex = 0; # keeps track of when the current resource is found,
                                # so we can back up a few and put the anchor above the
                                # current resource
     $mapIterator->next(); # discard the first BEGIN_MAP      $mapIterator->next(); # discard the first BEGIN_MAP
     my $curRes = $mapIterator->next();      my $curRes = $mapIterator->next();
       my $counter = 0;
           
     while ($depth > 0) {      while ($depth > 0) {
         if ($curRes == $mapIterator->BEGIN_MAP()) {          if ($curRes == $mapIterator->BEGIN_MAP()) {
Line 957  sub new_handle { Line 968  sub new_handle {
             $depth--;              $depth--;
         }          }
   
           if (ref($curRes)) { $counter++; }
   
         my $mapStack = $mapIterator->getStack();          my $mapStack = $mapIterator->getStack();
         if ($currenturl && !$ENV{'form.alreadyHere'} && ref($curRes) &&           if ($currenturl && !$ENV{'form.alreadyHere'} && ref($curRes) && 
             $curRes->src() eq $currenturl) {              $curRes->src() eq $currenturl) {
             # If this is the correct resource, be sure to               # If this is the correct resource, be sure to 
             # show it by making sure the containing maps              # show it by making sure the containing maps
             # are open.              # are open.
   
               $currentUrlIndex = $counter;
                           
             for my $map (@{$mapStack}) {              for my $map (@{$mapStack}) {
                 if ($condition) {                  if ($condition) {
Line 1009  sub new_handle { Line 1024  sub new_handle {
     my @backgroundColors = ("#FFFFFF", "#F6F6F6");      my @backgroundColors = ("#FFFFFF", "#F6F6F6");
     my $rowNum = 0;      my $rowNum = 0;
   
       $counter = 0;
   
     while ($depth > 0) {      while ($depth > 0) {
         # If we're in a new style course, and this is a BEGIN_MAP, END_MAP, or          # If we're in a new style course, and this is a BEGIN_MAP, END_MAP, or
         # map resource and the stack depth is only one, just plain ignore this resource          # map resource and the stack depth is only one, just plain ignore this resource
Line 1041  sub new_handle { Line 1058  sub new_handle {
             $depth--;              $depth--;
         }          }
   
           if (ref($curRes)) { $counter++; }
   
         if ($depth == 1) { $deltadepth = 0; } # we're done shifting, because we're          if ($depth == 1) { $deltadepth = 0; } # we're done shifting, because we're
                                               # out of the inlined map                                                # out of the inlined map
   
Line 1231  sub new_handle { Line 1250  sub new_handle {
                 $rowNum++;                  $rowNum++;
                 my $backgroundColor = $backgroundColors[$rowNum % scalar(@backgroundColors)];                  my $backgroundColor = $backgroundColors[$rowNum % scalar(@backgroundColors)];
   
                 # FIRST COL: The resource indentation, branch icon, and name                  # FIRST COL: The resource indentation, branch icon, name, and anchor
                 $r->print("  <tr bgcolor=\"$backgroundColor\"><td align=\"left\" valign=\"center\" width=\"60%\">\n");                  $r->print("  <tr bgcolor=\"$backgroundColor\"><td align=\"left\" valign=\"center\" width=\"60%\">\n");
   
                   # anchor for current resource... - 5 is deliberate: If it's that
                   # high on the screen, don't bother focusing on it. Also this will
                   # print multiple anchors if this is an expanded multi-part problem...
                   # who cares?
                   if ($counter == $currentUrlIndex - 5) {
                       $r->print('<a name="current" />');
                   }
   
                 # print indentation                  # print indentation
                 for (my $i = 0; $i < $indentLevel - $deltalevel + $deltadepth; $i++) {                  for (my $i = 0; $i < $indentLevel - $deltalevel + $deltadepth; $i++) {
                     $r->print($indentString);                      $r->print($indentString);
Line 1616  sub new { Line 1643  sub new {
     $self->{PARM_HASH} = \%parmhash;      $self->{PARM_HASH} = \%parmhash;
     $self->{HASH_TIED} = 1;      $self->{HASH_TIED} = 1;
   
       bless($self);
           
       return $self;
   }
   
   sub init {
       my $self = shift;
   
     # If the course opt hash and the user opt hash should be generated,      # If the course opt hash and the user opt hash should be generated,
     # generate them      # generate them
     if ($self->{GENERATE_COURSE_USER_OPT}) {      if ($self->{GENERATE_COURSE_USER_OPT}) {
Line 1720  sub new { Line 1755  sub new {
     }          }    
   
     $self->{PARM_CACHE} = {};      $self->{PARM_CACHE} = {};
       
     bless($self);  
           
     return $self;  
 }  }
   
 # Checks to see if coursemap is defined, matching test in old lonnavmaps  # Checks to see if coursemap is defined, matching test in old lonnavmaps
Line 2207  sub next { Line 2238  sub next {
         $self->{RECURSIVE_ITERATOR} =          $self->{RECURSIVE_ITERATOR} =
           Apache::lonnavmaps::iterator->new ($self->{NAV_MAP}, $firstResource,             Apache::lonnavmaps::iterator->new ($self->{NAV_MAP}, $firstResource, 
                      $finishResource, $self->{FILTER}, $self->{ALREADY_SEEN},                       $finishResource, $self->{FILTER}, $self->{ALREADY_SEEN},
                                              $self->{CONDITION});                                               $self->{CONDITION}, $self->{DIRECTION});
     }      }
   
     return $self->{HERE};      return $self->{HERE};

Removed from v.1.90  
changed lines
  Added in v.1.93


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