--- loncom/interface/lonnavmaps.pm 2003/03/08 20:52:41 1.154 +++ loncom/interface/lonnavmaps.pm 2003/03/08 21:16:38 1.155 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.154 2003/03/08 20:52:41 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.155 2003/03/08 21:16:38 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -188,6 +188,32 @@ sub real_handler { return OK; } + # See if there's only one map in the top-level... if so, + # automatically display it + my $iterator = $navmap->getIterator(undef, undef, undef, 0); + my $depth = 1; + $iterator->next(); + my $curRes = $iterator->next(); + my $sequenceCount = 0; + my $sequenceId; + while ($depth > 0) { + if ($curRes == $iterator->BEGIN_MAP()) { $depth++; } + if ($curRes == $iterator->END_MAP()) { $depth--; } + + if (ref($curRes) && $curRes->is_sequence()) { + $sequenceCount++; + $sequenceId = $curRes->map_pc(); + } + + $curRes = $iterator->next(); + } + + if ($sequenceCount == 1) { + # The automatic iterator creation in the render call + # will pick this up. + $ENV{'form.filter'} = "$sequenceId"; + } + # renderer call my $render = render({ 'cols' => [0,1,2,3], 'url' => '/adm/navmaps',