--- loncom/interface/lonnavmaps.pm 2004/07/26 22:30:15 1.272
+++ loncom/interface/lonnavmaps.pm 2004/08/13 22:08:16 1.276
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.272 2004/07/26 22:30:15 albertel Exp $
+# $Id: lonnavmaps.pm,v 1.276 2004/08/13 22:08:16 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -100,7 +100,7 @@ sub launch_win {
}
if ($mode eq 'link') {
$result.=''
- .&mt("Launch Navmaps in seperate window")." ";
+ .&mt("Launch navigation window")." ";
}
return $result;
}
@@ -164,13 +164,24 @@ sub real_handler {
if ($ENV{QUERY_STRING} eq 'collapseExternal') {
&Apache::lonnet::put('environment',{'remotenavmap' => 'off'});
&Apache::lonnet::appenv('environment.remotenavmap' => 'off');
+ my $menu=&Apache::lonmenu::reopenmenu();
+ my $navstatus=&Apache::lonmenu::get_nav_status();
+ if ($menu) {
+ $menu=(<
");
# renderer call
@@ -359,6 +373,7 @@ ENDSUBM
'suppressEmptySequences' => $suppressEmptySequences,
'filterFunc' => $filterFunc,
'resource_no_folder_link' => $resource_no_folder_link,
+ 'sort_html'=> $sort_html,
'r' => $r};
my $render = render($renderArgs);
$navmap->untieHashes();
@@ -1077,9 +1092,7 @@ sub render_resource {
if ($resource->is_problem() && $part ne '0' &&
!$params->{'condensed'}) {
- my $displaypart=&Apache::lonnet::EXT('resource.'.$part.'.display',
- $resource->symb());
- unless ($displaypart) { $displaypart=$part; }
+ my $displaypart=$resource->part_display($part);
$partLabel = " (Part: $displaypart)";
$link.='#'.&Apache::lonnet::escape($part);
$title = "";
@@ -1372,10 +1385,7 @@ sub render {
#$currenturl=~s/^[^\/]+//;
$here = $jump = &Apache::lonnet::symbread($currenturl);
- } else {
- &Apache::lonnet::logthis("Hrrm,");
-
- }
+ }
# Step three: Ensure the folders are open
my $mapIterator = $navmap->getIterator(undef, undef, undef, 1);
@@ -1530,6 +1540,9 @@ END
$result .= '
';
}
}
+
+ if ($args->{'sort_html'}) { $result.=$args->{'sort_html'}; }
+
$result .= "
\n";
if ($r) {
$r->print($result);
@@ -1605,8 +1618,14 @@ END
my @resources;
my $code='';# sub { !(shift->is_map();) };
if ($args->{'sort'} eq 'title') {
- @resources=$navmap->retrieveResources(undef,
- sub { !shift->is_map(); });
+ my $oldFilterFunc = $filterFunc;
+ my $filterFunc=
+ sub {
+ my ($res)=@_;
+ if ($res->is_map()) { return 0;}
+ return &$oldFilterFunc($res);
+ };
+ @resources=$navmap->retrieveResources(undef,$filterFunc);
@resources= sort {lc($a->compTitle) cmp lc($b->compTitle)} @resources;
} elsif ($args->{'sort'} eq 'duedate') {
@resources=$navmap->retrieveResources(undef,
@@ -1619,8 +1638,12 @@ END
lc($a->compTitle) cmp lc($b->compTitle)
}
} @resources;
+ } else {
+ #unknow sort mechanism or default
+ undef($args->{'sort'});
}
+
while (1) {
if ($args->{'sort'}) {
$curRes = shift(@resources);
@@ -3674,7 +3697,16 @@ sub weight {
$self->symb(), $ENV{'user.domain'},
$ENV{'user.name'},
$ENV{'request.course.sec'});
-
+}
+sub part_display {
+ my $self= shift(); my $partID = shift();
+ if (! defined($partID)) { $partID = '0'; }
+ my $display=&Apache::lonnet::EXT('resource.'.$partID.'.display',
+ $self->symb);
+ if (! defined($display) || $display eq '') {
+ $display = $partID;
+ }
+ return $display;
}
# Multiple things need this