--- loncom/interface/lonnavmaps.pm 2004/08/27 20:34:13 1.280
+++ loncom/interface/lonnavmaps.pm 2004/08/29 03:55:24 1.281
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.280 2004/08/27 20:34:13 albertel Exp $
+# $Id: lonnavmaps.pm,v 1.281 2004/08/29 03:55:24 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -84,7 +84,7 @@ my %colormap =
my $hurryUpColor = "#FF0000";
sub launch_win {
- my ($mode,$script)=@_;
+ my ($mode,$script,$toplinkitems)=@_;
my $result;
if ($script ne 'no') {
$result.='';
}
if ($mode eq 'link') {
- $result.=''
- .&mt("Launch navigation window")." ";
+ &add_linkitem($toplinkitems,'launchnav','launch_navmapwin()',
+ "Launch navigation window");
}
return $result;
}
@@ -178,6 +178,8 @@ sub real_handler {
&Apache::loncommon::no_cache($r);
$r->send_http_header;
+ my %toplinkitems=();
+
if ($ENV{QUERY_STRING} eq 'collapseExternal') {
&Apache::lonnet::put('environment',{'remotenavmap' => 'off'});
&Apache::lonnet::appenv('environment.remotenavmap' => 'off');
@@ -308,18 +310,16 @@ ENDSUBM
}
if ($ENV{'environment.remotenavmap'} ne 'on') {
- $r->print(&launch_win('link','yes'));
+ $r->print(&launch_win('link','yes',\%toplinkitems));
}
if ($ENV{'environment.remotenavmap'} eq 'on') {
-# $r->print("" .
- $r->print("" .
- &mt("Close navigation window").
- " ");
+ &add_linkitem(\%toplinkitems,'closenav','collapse()',
+ "Close navigation window");
}
my $jumpToFirstHomework = 0;
# Check to see if the student is jumping to next open, do-able problem
- if ($ENV{QUERY_STRING} eq 'jumpToFirstHomework') {
+ if ($ENV{QUERY_STRING} =~ /^jumpToFirstHomework/) {
$jumpToFirstHomework = 1;
# Find the next homework problem that they can do.
my $iterator = $navmap->getIterator(undef, undef, undef, 1);
@@ -352,8 +352,9 @@ ENDSUBM
$r->print("All homework assignments have been completed.
");
}
} else {
- $r->print("" .
- &mt("Go To My First Homework Problem")." ");
+ &add_linkitem(\%toplinkitems,'firsthomework',
+ 'location.href="navmaps?jumpToFirstHomework"',
+ "Go To My First Homework Problem");
}
my $suppressEmptySequences = 0;
@@ -368,15 +369,18 @@ ENDSUBM
$filterFunc = sub { my $res = shift;
return $res->completable() || $res->is_map();
};
- $r->print("" .
- &mt("Show Everything")." ");
+ &add_linkitem(\%toplinkitems,'everything',
+ 'location.href="locatnavmaps?sort='.$ENV{'form.sort'}.'"',
+ "Show Everything");
$r->print("
".&mt("Uncompleted Homework")."
"); $ENV{'form.filter'} = ''; $ENV{'form.condition'} = 1; $resource_no_folder_link = 1; } else { - $r->print("" . - &mt("Show Only Uncompleted Homework")." "); + &add_linkitem(\%toplinkitems,'uncompleted', + 'location.href="navmaps?sort='.$ENV{'form.sort'}. + '&showOnlyHomework=1"', + "Show Only Uncompleted Homework"); } my %selected=($ENV{'form.sort'} => 'selected=on'); @@ -392,6 +396,7 @@ ENDSUBM "); # renderer call + &Apache::lonnet::logthis(join(':',keys(%toplinkitems))); my $renderArgs = { 'cols' => [0,2,3], 'sort' => $ENV{'form.sort'}, 'url' => '/adm/navmaps', @@ -401,7 +406,9 @@ ENDSUBM 'filterFunc' => $filterFunc, 'resource_no_folder_link' => $resource_no_folder_link, 'sort_html'=> $sort_html, - 'r' => $r}; + 'r' => $r, + 'caller' => 'navmapsdisplay', + 'linkitems' => \%toplinkitems}; my $render = render($renderArgs); $navmap->untieHashes(); @@ -1522,20 +1529,27 @@ sub render { } if ($printCloseAll && !$args->{'resource_no_folder_link'}) { + my ($link,$text); if ($condition) { - $result.="".&mt('Close All Folders').""; + $link='"navmaps?condition=0&filter=&'.$queryString. + '&here='.&Apache::lonnet::escape($here).'"'; + $text='Close All Folders'; } else { - $result.="".&mt('Open All Folders').""; - } + $link='"navmaps?condition=1&filter=&'.$queryString. + '&here='.&Apache::lonnet::escape($here).'"'; + $text='Open All Folders'; + } + if ($args->{'caller'} eq 'navmapsdisplay') { + &add_linkitem($args->{'linkitems'},'changefolder', + 'location.href='.$link,$text); + } else { + $result.=''.&mt($text).''; + } $result .= "\n"; } # Check for any unread discussions in all resources. - if (!$args->{'resource_no_folder_link'}) { + if ($args->{'caller'} eq 'navmapsdisplay') { my $totdisc = 0; my $haveDisc = ''; my @allres=$navmap->retrieveResources(); @@ -1553,22 +1567,34 @@ sub render { } if ($totdisc > 0) { $haveDisc =~ s/:$//; - my %lt = &Apache::lonlocal::texthash( - 'mapr' => 'Mark all posts read', - ); - $result .= (<+ | '."\n"; + return $result; +} + 1; package Apache::lonnavmaps::navmap;