--- loncom/interface/lonnavmaps.pm 2011/12/25 20:41:53 1.477 +++ loncom/interface/lonnavmaps.pm 2012/05/07 19:43:44 1.484 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.477 2011/12/25 20:41:53 raeburn Exp $ +# $Id: lonnavmaps.pm,v 1.484 2012/05/07 19:43:44 raeburn Exp $ # # Copyright Michigan State University Board of Trustees @@ -225,7 +225,7 @@ automatically. =over 4 -=item * B: default: constructs one from %env A reference to a fresh ::iterator to use from the navmaps. The rendering will reflect the options passed to the iterator, so you can @@ -1398,7 +1398,6 @@ sub render { } } - # (re-)Locate the jump point, if any # Note this does not take filtering or hidden into account... need # to be fixed? @@ -1466,8 +1465,10 @@ sub render { $link .= '&register='.$env{'form.register'}; } if ($args->{'caller'} eq 'navmapsdisplay') { - &add_linkitem($args->{'linkitems'},'changefolder', - "location.href='$link'",$text); + unless ($args->{'notools'}) { + &add_linkitem($args->{'linkitems'},'changefolder', + "location.href='$link'",$text); + } } else { $result.= ''.&mt($text).''; } @@ -1475,7 +1476,7 @@ sub render { } # 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', 'document.clearbubbles.submit()', 'Mark all posts read'); @@ -1507,15 +1508,16 @@ END } } $result.=''; - if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { - my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; - my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; - if ($env{'course.'.$env{'request.course.id'}.'.url'} eq - "uploaded/$cdom/$cnum/default.sequence") { - &add_linkitem($args->{'linkitems'},'edittoplevel', - "javascript:gocmd('/adm/coursedocs','editdocs');", - 'Content Editor'); - } + } + if (($args->{'caller'} eq 'navmapsdisplay') && + (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) { + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + if ($env{'course.'.$env{'request.course.id'}.'.url'} eq + "uploaded/$cdom/$cnum/default.sequence") { + &add_linkitem($args->{'linkitems'},'edittoplevel', + "javascript:gocmd('/adm/coursedocs','editdocs');", + 'Content Editor'); } } @@ -1652,7 +1654,6 @@ END $curRes = shift(@resources); } else { $curRes = $it->next($closeAllPages); - } if (!$curRes) { last; } @@ -1859,25 +1860,29 @@ sub add_linkitem { sub show_linkitems_toolbar { my ($args,$condition) = @_; - my $result = - ''. - ''. - ''; + my $result; if (ref($args) eq 'HASH') { if (ref($args->{'linkitems'}) eq 'HASH') { + my $numlinks = scalar(keys(%{$args->{'linkitems'}})); + if ($numlinks > 1) { + $result = ''. + ''. + ''; + } + $result .= ''."\n"; + ''; + if (($numlinks==1) && (exists($args->{'linkitems'}{'edittoplevel'}))) { + $result .= ''; + } } if ($args->{'sort_html'}) { $result .= ''. ''; } } - $result .= '
'. - &Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen',undef,'RAT'). - ' '.&mt('Tools:').''. + &Apache::loncommon::help_open_menu('Navigation Screen','Navigation_Screen', + undef,'RAT'). + ' '.&mt('Tools:').''."\n". + ''."\n". + '
    '; my @linkorder = ('firsthomework','everything','uncompleted', 'changefolder','clearbubbles','edittoplevel'); - $result .='
'."\n". - ''."\n". - '
    '; foreach my $link (@linkorder) { - my $link_id = 'LC_content_toolbar_'.$link; if (ref($args->{'linkitems'}{$link}) eq 'HASH') { if ($args->{'linkitems'}{$link}{'text'} ne '') { $args->{'linkitems'}{$link}{'cmd'}=~s/"/'/g; if ($args->{'linkitems'}{$link}{'cmd'}) { + my $link_id = 'LC_content_toolbar_'.$link; if ($link eq 'changefolder') { if ($condition) { $link_id='LC_content_toolbar_changefolder_toggled'; @@ -1896,14 +1901,20 @@ sub show_linkitems_toolbar { } } $result .= '
'. - '
'. + &mt('Content Editor').'   '.$args->{'sort_html'}.'
'; + if ($result) { + $result = "$result
"; + } return $result; } @@ -2013,7 +2024,7 @@ sub new { # 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 @@ -2039,8 +2050,6 @@ sub new { $self->change_user($self->{USERNAME}, $self->{DOMAIN}); } - my $d = Data::Dumper->new([$self]); - return $self; } @@ -2092,7 +2101,6 @@ sub change_user { } $self->{PARM_HASH} = \%parm_hash; - @@ -3086,15 +3094,12 @@ sub new { my $firstResource = $resource->map_start(); my $finishResource = $resource->map_finish(); my $result; - my $rdump = Data::Dumper->new([$result]); - $result = Apache::lonnavmaps::iterator->new($self->{NAV_MAP}, $firstResource, - $finishResource, $self->{FILTER}, - $self->{ALREADY_SEEN}, - $self->{CONDITION}, - $self->{FORCE_TOP}); - return $result; - - + return + Apache::lonnavmaps::iterator->new($self->{NAV_MAP}, $firstResource, + $finishResource, $self->{FILTER}, + $self->{ALREADY_SEEN}, + $self->{CONDITION}, + $self->{FORCE_TOP}); } # Set up some bookkeeping information. @@ -3113,8 +3118,6 @@ sub new { $self->{ALREADY_SEEN}->{$self->{FIRST_RESOURCE}->{ID}} = 1; bless ($self); - my $selfDump = Data::Dumper->new([$self]); - return $self; } @@ -3130,7 +3133,6 @@ sub next { if ($self->{RETURN_0} && !$self->{HAVE_RETURNED_0}) { $self->{HAVE_RETURNED_0} = 1; my $nextTopLevel = $self->{NAV_MAP}->getById('0.0'); - return $self->{NAV_MAP}->getById('0.0'); } if ($self->{RETURN_0} && !$self->{HAVE_RETURNED_0_BEGIN_MAP}) { @@ -3156,7 +3158,6 @@ sub next { if (defined($self->{FORCE_NEXT})) { my $tmp = $self->{FORCE_NEXT}; $self->{FORCE_NEXT} = undef; - return $tmp; } @@ -3278,8 +3279,6 @@ sub next { return $self->next($closeAllPages); } - my $hereResource = $self->{HERE}; - return $self->{HERE}; } @@ -3446,7 +3445,6 @@ sub next { my $nextUnfiltered; if ($self->{DIRECTION} == FORWARD()) { $nextUnfiltered = $self->{HERE}->getNext(); - } else { $nextUnfiltered = $self->{HERE}->getPrevious(); } @@ -3601,6 +3599,8 @@ sub new { $self->{NAV_MAP}->{RESOURCE_CACHE}->{$self->{ID}} = $self; $self->{RESOURCE_ERROR} = 0; + $self->{DUEDATE_CACHE} = undef; + # A hash that can be used by two-pass algorithms to store data # about this resource in. Not used by the resource object # directly. @@ -4137,7 +4137,7 @@ sub printable { # 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); # The following cases apply: @@ -4239,6 +4239,9 @@ sub checkedin { sub duedate { (my $self, my $part) = @_; + if (defined ($self->{DUEDATE_CACHE}->{$part})) { + return $self->{DUEDATE_CACHE}->{$part}; + } my $date; my @interval=$self->parmval("interval", $part); my $due_date=$self->parmval("duedate", $part); @@ -4255,6 +4258,7 @@ sub duedate { } else { $date = $due_date; } + $self->{DUEDATE_CACHE}->{$part} = $date; return $date; } sub handgrade {