@@ -157,10 +144,10 @@ sub handler {
sub real_handler {
my $r = shift;
-
+ #my $t0=[&gettimeofday()];
# Handle header-only request
if ($r->header_only) {
- if ($ENV{'browser.mathml'}) {
+ if ($env{'browser.mathml'}) {
&Apache::loncommon::content_type($r,'text/xml');
} else {
&Apache::loncommon::content_type($r,'text/html');
@@ -170,7 +157,7 @@ sub real_handler {
}
# Send header, don't cache this page
- if ($ENV{'browser.mathml'}) {
+ if ($env{'browser.mathml'}) {
&Apache::loncommon::content_type($r,'text/xml');
} else {
&Apache::loncommon::content_type($r,'text/html');
@@ -178,6 +165,8 @@ sub real_handler {
&Apache::loncommon::no_cache($r);
$r->send_http_header;
+ my %toplinkitems=();
+ &add_linkitem(\%toplinkitems,'blank','',"Select Action");
if ($ENV{QUERY_STRING} eq 'collapseExternal') {
&Apache::lonnet::put('environment',{'remotenavmap' => 'off'});
&Apache::lonnet::appenv('environment.remotenavmap' => 'off');
@@ -197,8 +186,9 @@ MENU
$navstatus
MENU
}
+ my $html=&Apache::lonxml::xmlbegin();
$r->print(<<"ENDSUBM");
-
+ $html
'.
- &Apache::loncommon::help_open_menu('','Navigation Screen','Navigation_Screen','',undef,'RAT'));
+ $env{'form.register'}));
+ $r->print('');
$r->rflush();
# Check that it's defined
if (!($navmap->courseMapDefined())) {
+ $r->print(&Apache::loncommon::help_open_menu('','Navigation Screen','Navigation_Screen','',undef,'RAT'));
$r->print('Coursemap undefined.' .
'');
return OK;
@@ -290,9 +280,9 @@ ENDSUBM
if ($sequenceCount == 1) {
# The automatic iterator creation in the render call
# will pick this up. We know the condition because
- # the defined($ENV{'form.filter'}) also ensures this
+ # the defined($env{'form.filter'}) also ensures this
# is a fresh call.
- $ENV{'form.filter'} = "$sequenceId";
+ $env{'form.filter'} = "$sequenceId";
}
}
@@ -307,19 +297,17 @@ ENDSUBM
');
}
- if ($ENV{'environment.remotenavmap'} ne 'on') {
- $r->print(&launch_win('link','yes'));
+ if ($env{'environment.remotenavmap'} ne 'on') {
+ $r->print(&launch_win('link','yes',\%toplinkitems));
}
- if ($ENV{'environment.remotenavmap'} eq 'on') {
-# $r->print("" .
- $r->print("" .
- &mt("Close navigation window").
- " ");
+ if ($env{'environment.remotenavmap'} eq 'on') {
+ &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);
@@ -339,10 +327,10 @@ ENDSUBM
pop @$stack; # last resource in the stack is the problem
# itself, which we don't need in the map stack
my @mapPcs = map {$_->map_pc()} @$stack;
- $ENV{'form.filter'} = join(',', @mapPcs);
+ $env{'form.filter'} = join(',', @mapPcs);
# Mark as both "here" and "jump"
- $ENV{'form.postsymb'} = $curRes->symb();
+ $env{'form.postsymb'} = $curRes->symb();
}
}
}
@@ -352,8 +340,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"',
+ "Show Me My First Homework Problem");
}
my $suppressEmptySequences = 0;
@@ -362,38 +351,42 @@ ENDSUBM
# Display only due homework.
my $showOnlyHomework = 0;
- if ($ENV{'form.showOnlyHomework'} eq "1") {
+ if ($env{'form.showOnlyHomework'} eq "1") {
$showOnlyHomework = 1;
$suppressEmptySequences = 1;
$filterFunc = sub { my $res = shift;
return $res->completable() || $res->is_map();
};
- $r->print("" .
- &mt("Show Everything")." ");
+ &add_linkitem(\%toplinkitems,'everything',
+ 'location.href="navmaps?sort='.$env{'form.sort'}.'"',
+ "Show Everything");
$r->print("".&mt("Uncompleted Homework")."
");
- $ENV{'form.filter'} = '';
- $ENV{'form.condition'} = 1;
+ $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');
+ my %selected=($env{'form.sort'} => 'selected=on');
my $sort_html=("");
# renderer call
- my $renderArgs = { 'cols' => [0,2,3],
- 'sort' => $ENV{'form.sort'},
+ my $renderArgs = { 'cols' => [0,1,2,3],
+ 'sort' => $env{'form.sort'},
'url' => '/adm/navmaps',
'navmap' => $navmap,
'suppressNavmap' => 1,
@@ -401,9 +394,10 @@ 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();
# If no resources were printed, print a reassuring message so the
# user knows there was no error.
@@ -414,6 +408,8 @@ ENDSUBM
$r->print("This course is empty.
");
}
}
+ #my $td=&tv_interval($t0);
+ #$r->print("
$td");
$r->print("