--- loncom/interface/lonnavdisplay.pm 2006/10/10 20:16:26 1.1 +++ loncom/interface/lonnavdisplay.pm 2010/03/10 21:25:50 1.14 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavdisplay.pm,v 1.1 2006/10/10 20:16:26 albertel Exp $ +# $Id: lonnavdisplay.pm,v 1.14 2010/03/10 21:25:50 droeschl Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,6 +37,7 @@ use Apache::lonnavmaps(); use Apache::lonhtmlcommon(); use Apache::lonnet; use Apache::lonlocal; +use Time::HiRes qw( gettimeofday tv_interval ); sub handler { my $r = shift; @@ -70,24 +71,16 @@ sub real_handler { "Select Action"); if ($ENV{QUERY_STRING} eq 'collapseExternal') { &Apache::lonnet::put('environment',{'remotenavmap' => 'off'}); - &Apache::lonnet::appenv('environment.remotenavmap' => 'off'); - my $menu=&Apache::lonmenu::reopenmenu(); + &Apache::lonnet::appenv({'environment.remotenavmap' => 'off'}); + my $menu=''; my $navstatus=&Apache::lonmenu::get_nav_status(); - if ($menu) { - $menu=(<send_http_header; + $r->send_http_header; my $js =<<"ENDSUBM"; '); $r->rflush(); @@ -224,19 +225,19 @@ MENU my $curRes; my $foundDoableProblem = 0; my $minimumduedate; - + my $now = time(); + while ($curRes = $iterator->next()) { if (ref($curRes) && $curRes->is_problem()) { my $status = $curRes->status(); - if ($curRes->completable()) { - my $thisduedate=$curRes->duedate(); - unless ($foundDoableProblem) { - $minimumduedate=$thisduedate; - } + my $thisduedate=$curRes->duedate(); + if ($thisduedate > $now + && $curRes->completable()) { $foundDoableProblem = 1; - if ($thisduedate<=$minimumduedate) { + if (!defined($minimumduedate) + || $thisduedate<$minimumduedate) { # Pop open all previous maps my $stack = $iterator->getStack(); pop @$stack; # last resource in the stack is the problem @@ -254,7 +255,9 @@ MENU # If we found no problems, print a note to that effect. if (!$foundDoableProblem) { - $r->print("All homework assignments have been completed.

"); + $r->print("" + .&mt("All homework assignments have been completed.") + .""); } } else { &Apache::lonnavmaps::add_linkitem(\%toplinkitems,'firsthomework', @@ -277,7 +280,7 @@ MENU &Apache::lonnavmaps::add_linkitem(\%toplinkitems,'everything', 'location.href="navmaps?sort='.$env{'form.sort'}.'"', "Show everything"); - $r->print("

".&mt("Uncompleted Problems")."

"); + $r->print("".&mt("Uncompleted Problems").""); $env{'form.filter'} = ''; $env{'form.condition'} = 1; $resource_no_folder_link = 1; @@ -288,18 +291,18 @@ MENU "Show only uncompleted problems"); } - my %selected=($env{'form.sort'} => 'selected=on'); - my $sort_html=("
- + my %selected=($env{'form.sort'} => ' selected="selected"'); + my $sort_html=(" + - - + + + + - +
"); # renderer call my $renderArgs = { 'cols' => [0,1,2,3], @@ -320,9 +323,9 @@ MENU # user knows there was no error. if ($renderArgs->{'counter'} == 0) { if ($showOnlyHomework) { - $r->print("

".&mt("All homework is currently completed").".

"); + $r->print("

".&mt("All homework is currently completed.")."

"); } else { # both jumpToFirstHomework and normal use the same: course must be empty - $r->print("

This course is empty.

"); + $r->print("

".&mt("This course is empty.")."

"); } } #my $td=&tv_interval($t0);