Diff for /loncom/interface/lonnavmaps.pm between versions 1.477 and 1.484

version 1.477, 2011/12/25 20:41:53 version 1.484, 2012/05/07 19:43:44
Line 225  automatically. Line 225  automatically.
   
 =over 4  =over 4
   
 =item * B<iterator: default: constructs one from %env  =item * B<iterator>: default: constructs one from %env
   
 A reference to a fresh ::iterator to use from the navmaps. The  A reference to a fresh ::iterator to use from the navmaps. The
 rendering will reflect the options passed to the iterator, so you can  rendering will reflect the options passed to the iterator, so you can
Line 1398  sub render { Line 1398  sub render {
         }          }
     }      }
   
   
     # (re-)Locate the jump point, if any      # (re-)Locate the jump point, if any
     # Note this does not take filtering or hidden into account... need      # Note this does not take filtering or hidden into account... need
     # to be fixed?      # to be fixed?
Line 1466  sub render { Line 1465  sub render {
             $link .= '&amp;register='.$env{'form.register'};              $link .= '&amp;register='.$env{'form.register'};
         }          }
  if ($args->{'caller'} eq 'navmapsdisplay') {   if ($args->{'caller'} eq 'navmapsdisplay') {
     &add_linkitem($args->{'linkitems'},'changefolder',              unless ($args->{'notools'}) {
   "location.href='$link'",$text);                  &add_linkitem($args->{'linkitems'},'changefolder',
                                 "location.href='$link'",$text);
               }
  } else {   } else {
     $result.= '<a href="'.$link.'">'.&mt($text).'</a>';      $result.= '<a href="'.$link.'">'.&mt($text).'</a>';
  }   }
Line 1475  sub render { Line 1476  sub render {
     }      }
   
     # Check for any unread discussions in all resources.      # Check for any unread discussions in all resources.
     if ($args->{'caller'} eq 'navmapsdisplay') {      if (($args->{'caller'} eq 'navmapsdisplay') && (!$args->{'notools'})) {
  &add_linkitem($args->{'linkitems'},'clearbubbles',   &add_linkitem($args->{'linkitems'},'clearbubbles',
       'document.clearbubbles.submit()',        'document.clearbubbles.submit()',
       'Mark all posts read');        'Mark all posts read');
Line 1507  END Line 1508  END
             }              }
  }   }
  $result.='</form>';   $result.='</form>';
         if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {      }
             my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};      if (($args->{'caller'} eq 'navmapsdisplay') &&
             my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};          (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {
             if ($env{'course.'.$env{'request.course.id'}.'.url'} eq           my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
                 "uploaded/$cdom/$cnum/default.sequence") {          my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
                 &add_linkitem($args->{'linkitems'},'edittoplevel',          if ($env{'course.'.$env{'request.course.id'}.'.url'} eq 
                               "javascript:gocmd('/adm/coursedocs','editdocs');",              "uploaded/$cdom/$cnum/default.sequence") {
                               'Content Editor');              &add_linkitem($args->{'linkitems'},'edittoplevel',
             }                            "javascript:gocmd('/adm/coursedocs','editdocs');",
                             'Content Editor');
         }          }
     }      }
   
Line 1652  END Line 1654  END
     $curRes = shift(@resources);      $curRes = shift(@resources);
  } else {   } else {
     $curRes = $it->next($closeAllPages);      $curRes = $it->next($closeAllPages);
   
  }   }
  if (!$curRes) { last; }   if (!$curRes) { last; }
   
Line 1859  sub add_linkitem { Line 1860  sub add_linkitem {
   
 sub show_linkitems_toolbar {  sub show_linkitems_toolbar {
     my ($args,$condition) = @_;      my ($args,$condition) = @_;
     my $result =      my $result;
         '<table><tr><td>'.  
         &Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen',undef,'RAT').  
         '</td>'.  
         '<td>&nbsp;</td>'.  
         '<td class="LC_middle">'.&mt('Tools:').'</td>';  
     if (ref($args) eq 'HASH') {      if (ref($args) eq 'HASH') {
         if (ref($args->{'linkitems'}) eq 'HASH') {          if (ref($args->{'linkitems'}) eq 'HASH') {
               my $numlinks = scalar(keys(%{$args->{'linkitems'}}));
               if ($numlinks > 1) {
                   $result = '<td>'.
                             &Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen',
                                                                undef,'RAT').
                             '</td>'.
                             '<td>&nbsp;</td>'.
                             '<td class="LC_middle">'.&mt('Tools:').'</td>';
               }
               $result .= '<td align="left">'."\n".
                          '<span class="LC_nobreak">'."\n".
                          '<ul id="LC_toolbar">';
             my @linkorder = ('firsthomework','everything','uncompleted',              my @linkorder = ('firsthomework','everything','uncompleted',
                              'changefolder','clearbubbles','edittoplevel');                               'changefolder','clearbubbles','edittoplevel');
             $result .='<td align="left">'."\n".  
                       '<span class="LC_nobreak">'."\n".  
                       '<ul id="LC_toolbar">';  
             foreach my $link (@linkorder) {              foreach my $link (@linkorder) {
                 my $link_id = 'LC_content_toolbar_'.$link;  
                 if (ref($args->{'linkitems'}{$link}) eq 'HASH') {                  if (ref($args->{'linkitems'}{$link}) eq 'HASH') {
                     if ($args->{'linkitems'}{$link}{'text'} ne '') {                      if ($args->{'linkitems'}{$link}{'text'} ne '') {
                         $args->{'linkitems'}{$link}{'cmd'}=~s/"/'/g;                          $args->{'linkitems'}{$link}{'cmd'}=~s/"/'/g;
                         if ($args->{'linkitems'}{$link}{'cmd'}) {                          if ($args->{'linkitems'}{$link}{'cmd'}) {
                               my $link_id = 'LC_content_toolbar_'.$link;
                             if ($link eq 'changefolder') {                              if ($link eq 'changefolder') {
                                 if ($condition) {                                  if ($condition) {
                                     $link_id='LC_content_toolbar_changefolder_toggled';                                      $link_id='LC_content_toolbar_changefolder_toggled';
Line 1896  sub show_linkitems_toolbar { Line 1901  sub show_linkitems_toolbar {
                 }                  }
             }              }
             $result .= '</ul>'.              $result .= '</ul>'.
                        '</span></td>'."\n";                         '</span></td>';
               if (($numlinks==1) && (exists($args->{'linkitems'}{'edittoplevel'}))) {
                   $result .= '<td><a href="'.$args->{'linkitems'}{'edittoplevel'}{'cmd'}.'">'.
                              &mt('Content Editor').'</a></td>';
               }
         }          }
         if ($args->{'sort_html'}) {          if ($args->{'sort_html'}) {
             $result .= '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>'.              $result .= '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>'.
                        '<td align="right">'.$args->{'sort_html'}.'</td>';                         '<td align="right">'.$args->{'sort_html'}.'</td>';
         }          }
     }      }
     $result .= '</tr></table>';      if ($result) {
           $result = "<table><tr>$result</tr></table>";
       }
     return $result;      return $result;
 }  }
   
Line 2013  sub new { Line 2024  sub new {
     # assume there are course hashes for the specific requested user@domamin:      # assume there are course hashes for the specific requested user@domamin:
     #      #
   
     if ( ($self->{USERNAME} eq $env{'user.name'}) && ($self->{DOMAIN} eq $env{'user.domain'})) {      if (($self->{USERNAME} eq $env{'user.name'}) && ($self->{DOMAIN} eq $env{'user.domain'})) {
   
  # tie the nav hash   # tie the nav hash
   
Line 2039  sub new { Line 2050  sub new {
  $self->change_user($self->{USERNAME}, $self->{DOMAIN});   $self->change_user($self->{USERNAME}, $self->{DOMAIN});
     }      }
   
     my $d = Data::Dumper->new([$self]);  
   
     return $self;      return $self;
 }  }
   
Line 2092  sub change_user { Line 2101  sub change_user {
     }      }
   
     $self->{PARM_HASH} = \%parm_hash;      $self->{PARM_HASH} = \%parm_hash;
      
   
   
           
Line 3086  sub new { Line 3094  sub new {
         my $firstResource = $resource->map_start();          my $firstResource = $resource->map_start();
         my $finishResource = $resource->map_finish();          my $finishResource = $resource->map_finish();
  my $result;   my $result;
  my $rdump  = Data::Dumper->new([$result]);   return
  $result =  Apache::lonnavmaps::iterator->new($self->{NAV_MAP}, $firstResource,      Apache::lonnavmaps::iterator->new($self->{NAV_MAP}, $firstResource,
      $finishResource, $self->{FILTER},        $finishResource, $self->{FILTER},
      $self->{ALREADY_SEEN},         $self->{ALREADY_SEEN}, 
      $self->{CONDITION},        $self->{CONDITION},
      $self->{FORCE_TOP});        $self->{FORCE_TOP});
  return $result;  
              
           
     }      }
   
     # Set up some bookkeeping information.      # Set up some bookkeeping information.
Line 3113  sub new { Line 3118  sub new {
     $self->{ALREADY_SEEN}->{$self->{FIRST_RESOURCE}->{ID}} = 1;      $self->{ALREADY_SEEN}->{$self->{FIRST_RESOURCE}->{ID}} = 1;
   
     bless ($self);      bless ($self);
     my $selfDump = Data::Dumper->new([$self]);  
   
     return $self;      return $self;
 }  }
   
Line 3130  sub next { Line 3133  sub next {
     if ($self->{RETURN_0} && !$self->{HAVE_RETURNED_0}) {      if ($self->{RETURN_0} && !$self->{HAVE_RETURNED_0}) {
         $self->{HAVE_RETURNED_0} = 1;          $self->{HAVE_RETURNED_0} = 1;
  my $nextTopLevel = $self->{NAV_MAP}->getById('0.0');   my $nextTopLevel = $self->{NAV_MAP}->getById('0.0');
   
         return $self->{NAV_MAP}->getById('0.0');          return $self->{NAV_MAP}->getById('0.0');
     }      }
     if ($self->{RETURN_0} && !$self->{HAVE_RETURNED_0_BEGIN_MAP}) {      if ($self->{RETURN_0} && !$self->{HAVE_RETURNED_0_BEGIN_MAP}) {
Line 3156  sub next { Line 3158  sub next {
     if (defined($self->{FORCE_NEXT})) {      if (defined($self->{FORCE_NEXT})) {
         my $tmp = $self->{FORCE_NEXT};          my $tmp = $self->{FORCE_NEXT};
         $self->{FORCE_NEXT} = undef;          $self->{FORCE_NEXT} = undef;
   
         return $tmp;          return $tmp;
     }      }
   
Line 3278  sub next { Line 3279  sub next {
         return $self->next($closeAllPages);          return $self->next($closeAllPages);
     }      }
   
     my $hereResource = $self->{HERE};  
   
     return $self->{HERE};      return $self->{HERE};
   
 }  }
Line 3446  sub next { Line 3445  sub next {
     my $nextUnfiltered;      my $nextUnfiltered;
     if ($self->{DIRECTION} == FORWARD()) {      if ($self->{DIRECTION} == FORWARD()) {
         $nextUnfiltered = $self->{HERE}->getNext();          $nextUnfiltered = $self->{HERE}->getNext();
   
     } else {      } else {
         $nextUnfiltered = $self->{HERE}->getPrevious();          $nextUnfiltered = $self->{HERE}->getPrevious();
     }      }
Line 3601  sub new { Line 3599  sub new {
     $self->{NAV_MAP}->{RESOURCE_CACHE}->{$self->{ID}} = $self;      $self->{NAV_MAP}->{RESOURCE_CACHE}->{$self->{ID}} = $self;
     $self->{RESOURCE_ERROR} = 0;      $self->{RESOURCE_ERROR} = 0;
   
       $self->{DUEDATE_CACHE} = undef;
   
     # A hash that can be used by two-pass algorithms to store data      # A hash that can be used by two-pass algorithms to store data
     # about this resource in. Not used by the resource object      # about this resource in. Not used by the resource object
     # directly.      # directly.
Line 4137  sub printable { Line 4137  sub printable {
   
     # Get the print open/close dates for the resource.      # Get the print open/close dates for the resource.
   
     my $start = $self->parmval("prinstartdate", $part);      my $start = $self->parmval("printstartdate", $part);
     my $end   = $self->parmval("printenddate", $part);      my $end   = $self->parmval("printenddate", $part);
   
     #  The following cases apply:      #  The following cases apply:
Line 4239  sub checkedin { Line 4239  sub checkedin {
   
 sub duedate {  sub duedate {
     (my $self, my $part) = @_;      (my $self, my $part) = @_;
       if (defined ($self->{DUEDATE_CACHE}->{$part})) {
           return $self->{DUEDATE_CACHE}->{$part};
       }
     my $date;      my $date;
     my @interval=$self->parmval("interval", $part);      my @interval=$self->parmval("interval", $part);
     my $due_date=$self->parmval("duedate", $part);      my $due_date=$self->parmval("duedate", $part);
Line 4255  sub duedate { Line 4258  sub duedate {
     } else {      } else {
  $date = $due_date;   $date = $due_date;
     }      }
       $self->{DUEDATE_CACHE}->{$part} = $date;
     return $date;      return $date;
 }  }
 sub handgrade {  sub handgrade {

Removed from v.1.477  
changed lines
  Added in v.1.484


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