--- loncom/interface/lonnavmaps.pm 2011/12/25 19:39:08 1.476 +++ loncom/interface/lonnavmaps.pm 2012/04/04 15:00:17 1.482 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.476 2011/12/25 19:39:08 raeburn Exp $ +# $Id: lonnavmaps.pm,v 1.482 2012/04/04 15:00:17 raeburn Exp $ # # Copyright Michigan State University Board of Trustees @@ -225,7 +225,7 @@ automatically. =over 4 -=item * B A reference to a fresh ::iterator to use from the navmaps. The rendering will reflect the options passed to the iterator, so you can @@ -896,6 +896,7 @@ sub part_status_summary { return 4; } sub render_resource { my ($resource, $part, $params) = @_; + my $editmapLink; my $nonLinkedText = ''; # stuff after resource title not in link my $link = $params->{"resourceLink"}; @@ -977,6 +978,14 @@ sub render_resource { $linkopen = ""; $linkclose = ""; } + if ((&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) && + ($resource->symb=~/\_\_\_[^\_]+\_\_\_uploaded/)) { + my $icon = &Apache::loncommon::lonhttpdurl('/res/adm/pages').'/editmap.png'; + $editmapLink=' '. + ''. + ''.&mt('Edit Content').''. + ''; + } } if ($resource->randomout()) { @@ -1010,8 +1019,10 @@ sub render_resource { # Is this the current resource? if (!$params->{'displayedHereMarker'} && $resource->symb() eq $params->{'here'} ) { - $curMarkerBegin = ''; - $curMarkerEnd = ''; + unless ($resource->is_map()) { + $curMarkerBegin = ''; + $curMarkerEnd = ''; + } $params->{'displayedHereMarker'} = 1; } @@ -1030,7 +1041,7 @@ sub render_resource { if (!$params->{'resource_nolink'} && !$resource->is_sequence() && !$resource->is_empty_sequence) { $result .= "$curMarkerBegin$title$partLabel$curMarkerEnd$nonLinkedText"; } else { - $result .= "$curMarkerBegin$linkopen$title$partLabel$curMarkerEnd$nonLinkedText"; + $result .= "$curMarkerBegin$linkopen$title$partLabel$curMarkerEnd$editmapLink$nonLinkedText"; } return $result; @@ -1044,6 +1055,7 @@ sub render_communication_status { my $linkopen = ""; my $linkclose = ""; my $location=&Apache::loncommon::lonhttpdurl("/adm/lonMisc"); + if ($resource->hasDiscussion()) { $discussionHTML = $linkopen . ''.&mt('New Discussion').'' . @@ -1132,14 +1144,6 @@ sub render_long_status { $result .= getDescription($resource, $part); if ($color) {$result .= ""; } } - if ($resource->is_map()) { - if (&Apache::lonnet::allowed('mdc')) { - if ($resource->symb=~/\_\_\_[^\_]+\_\_\_uploaded/) { - $result.=" ". - "".&mt("Edit Content").' '; - } - } - } if ($resource->is_map() && &advancedUser() && $resource->randompick()) { $result .= &mt('(randomly select [_1])', $resource->randompick()); } @@ -1462,8 +1466,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).''; } @@ -1471,7 +1477,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'); @@ -1503,15 +1509,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','direct');", - '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'); } } @@ -1855,25 +1862,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'; @@ -1892,18 +1903,23 @@ sub show_linkitems_toolbar { } } $result .= '
'. - '
'. + &mt('Content Editor').'   '.$args->{'sort_html'}.'
'; + if ($result) { + $result = "$result
"; + } return $result; } - 1; @@ -3598,6 +3614,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. @@ -4134,7 +4152,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: @@ -4236,6 +4254,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); @@ -4252,6 +4273,7 @@ sub duedate { } else { $date = $due_date; } + $self->{DUEDATE_CACHE}->{$part} = $date; return $date; } sub handgrade {