Diff for /loncom/interface/lonnavmaps.pm between versions 1.373 and 1.378

version 1.373, 2006/03/19 19:50:40 version 1.378, 2006/04/20 04:30:11
Line 203  MENU Line 203  MENU
   
    </script>     </script>
 ENDSUBM  ENDSUBM
         $r->print(&Apache::lonxml::xmlbegin().          $r->print(&Apache::loncommon::start_page(undef,$js,
   &Apache::loncommon::head(undef,$js).   {'only_body' => 1,
   '<body bgcolor="#FFFFFF" onLoad="submitthis()">'.    'bgcolor'   => '#FFFFFF',
   &Apache::loncommon::end_page(undef,$js));    'add_entries' => 
         {'onload' =>
      "submitthis()"}}).
     &Apache::loncommon::end_page());
   
         return OK;          return OK;
     }      }
Line 243  MENU Line 246  MENU
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['register','sort','showOnlyHomework','postsymb']);      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['register','sort','showOnlyHomework','postsymb']);
           
 # ----------------------------------------------------- Force menu registration  # ----------------------------------------------------- Force menu registration
     my $addentries='';  
     my $more_unload;  
     my $body_only='';      my $body_only='';
     my $js;      my $js;
     if ($env{'environment.remotenavmap'} eq 'on') {      if ($env{'environment.remotenavmap'} eq 'on') {
Line 253  MENU Line 254  MENU
                    this.document.location="/adm/navmaps?collapseExternal";                     this.document.location="/adm/navmaps?collapseExternal";
                 }                  }
              </script>';               </script>';
 # FIXME need to be smarter to only catch window close events  
 # $more_unload="collapse()"  
  $body_only=1;   $body_only=1;
     }      }
     if ($env{'form.register'}) {  
  $addentries=' onLoad="'.&Apache::lonmenu::loadevents().  
     '" onUnload="'.&Apache::lonmenu::unloadevents().';'.  
     $more_unload.'"';  
  $r->print(&Apache::lonmenu::registerurl(1));  
     } else {  
  $addentries=' onUnload="'.$more_unload.'"';  
     }  
   
     # Header      # Header
     $r->print(&Apache::lonxml::xmlbegin().      $r->print(&Apache::loncommon::start_page('Navigate Course Contents',$js,
       &Apache::loncommon::head('Navigate Course Contents',$js).       {'only_body'       => $body_only,
               &Apache::loncommon::bodytag('Navigate Course Contents','',        'force_register'  =>
   $addentries,$body_only,'',    $env{'form.register'},}));
   $env{'form.register'}));      $r->print('<script type="text/javascript">window.focus();</script>');
     $r->print('<script>window.focus();</script>');  
             
     $r->rflush();      $r->rflush();
   
     # Check that it's defined      # Check that it's defined
     if (!($navmap->courseMapDefined())) {      if (!($navmap->courseMapDefined())) {
  $r->print(&Apache::loncommon::help_open_menu('','Navigation Screen','Navigation_Screen','',undef,'RAT'));   $r->print(&Apache::loncommon::help_open_menu('','Navigation Screen','Navigation_Screen','',undef,'RAT'));
         $r->print('<font size="+2" color="red">Coursemap undefined.</font>' .          $r->print('<font size="+2" color="red">'.&mt('Coursemap undefined.').
     '</font>' .
                   &Apache::loncommon::end_page());                    &Apache::loncommon::end_page());
         return OK;          return OK;
     }      }
Line 327  MENU Line 318  MENU
       "Close navigation window");        "Close navigation window");
     }       } 
   
     my $jumpToFirstHomework = 0;  
     # Check to see if the student is jumping to next open, do-able problem      # Check to see if the student is jumping to next open, do-able problem
     if ($ENV{QUERY_STRING} =~ /^jumpToFirstHomework/) {      if ($ENV{QUERY_STRING} =~ /^jumpToFirstHomework/) {
         $jumpToFirstHomework = 1;  
         # Find the next homework problem that they can do.          # Find the next homework problem that they can do.
         my $iterator = $navmap->getIterator(undef, undef, undef, 1);          my $iterator = $navmap->getIterator(undef, undef, undef, 1);
         my $curRes;          my $curRes;
         my $foundDoableProblem = 0;          my $foundDoableProblem = 0;
         my $problemRes;          my $minimumduedate;
                   
         while (($curRes = $iterator->next()) && !$foundDoableProblem) {          while ($curRes = $iterator->next()) {
             if (ref($curRes) && $curRes->is_problem()) {              if (ref($curRes) && $curRes->is_problem()) {
                 my $status = $curRes->status();                  my $status = $curRes->status();
                 if ($curRes->completable()) {                  if ($curRes->completable()) {
                     $problemRes = $curRes;                      my $thisduedate=$curRes->duedate();
                       unless ($foundDoableProblem) {
                           $minimumduedate=$thisduedate;
       }
                           
                     $foundDoableProblem = 1;                      $foundDoableProblem = 1;
   
                     # Pop open all previous maps                      if ($thisduedate<=$minimumduedate) {
                     my $stack = $iterator->getStack();   # Pop open all previous maps
                     pop @$stack; # last resource in the stack is the problem   my $stack = $iterator->getStack();
                                  # itself, which we don't need in the map stack   pop @$stack; # last resource in the stack is the problem
                     my @mapPcs = map {$_->map_pc()} @$stack;   # itself, which we don't need in the map stack
                     $env{'form.filter'} = join(',', @mapPcs);   my @mapPcs = map {$_->map_pc()} @$stack;
    $env{'form.filter'} = join(',', @mapPcs);
                     # Mark as both "here" and "jump"  
                     $env{'form.postsymb'} = $curRes->symb();   # Mark as both "here" and "jump"
    $env{'form.postsymb'} = $curRes->symb();
                           $minimumduedate=$thisduedate;
       }
                 }                  }
             }              }
         }          }
Line 364  MENU Line 361  MENU
     } else {      } else {
  &add_linkitem(\%toplinkitems,'firsthomework',   &add_linkitem(\%toplinkitems,'firsthomework',
       'location.href="navmaps?jumpToFirstHomework"',        'location.href="navmaps?jumpToFirstHomework"',
       "Show Me My First Homework Problem");        "Show my first due problem");
     }      }
   
     my $suppressEmptySequences = 0;      my $suppressEmptySequences = 0;
Line 381  MENU Line 378  MENU
                         };                          };
  &add_linkitem(\%toplinkitems,'everything',   &add_linkitem(\%toplinkitems,'everything',
      'location.href="navmaps?sort='.$env{'form.sort'}.'"',       'location.href="navmaps?sort='.$env{'form.sort'}.'"',
       "Show Everything");        "Show everything");
         $r->print("<p><font size='+2'>".&mt("Uncompleted Homework")."</font></p>");          $r->print("<p><font size='+2'>".&mt("Uncompleted Problems")."</font></p>");
         $env{'form.filter'} = '';          $env{'form.filter'} = '';
         $env{'form.condition'} = 1;          $env{'form.condition'} = 1;
  $resource_no_folder_link = 1;   $resource_no_folder_link = 1;
Line 390  MENU Line 387  MENU
  &add_linkitem(\%toplinkitems,'uncompleted',   &add_linkitem(\%toplinkitems,'uncompleted',
       'location.href="navmaps?sort='.$env{'form.sort'}.        'location.href="navmaps?sort='.$env{'form.sort'}.
           '&showOnlyHomework=1"',            '&showOnlyHomework=1"',
       "Show Only Uncompleted Homework");        "Show only uncompleted problems");
     }      }
   
     my %selected=($env{'form.sort'} => 'selected=on');      my %selected=($env{'form.sort'} => 'selected=on');
Line 682  sub timeToHumanString { Line 679  sub timeToHumanString {
   
  if($format ne '') {   if($format ne '') {
     my $timeStr = strftime($format, localtime($time));      my $timeStr = strftime($format, localtime($time));
     return $timeStr.&Apache::lonlocal::gettimezone();      return $timeStr.&Apache::lonlocal::gettimezone($time);
  }   }
   
         # Less then 5 days away, display day of the week and          # Less then 5 days away, display day of the week and
Line 693  sub timeToHumanString { Line 690  sub timeToHumanString {
             $timeStr =~ s/12:00 am/00:00/;              $timeStr =~ s/12:00 am/00:00/;
             $timeStr =~ s/12:00 pm/noon/;              $timeStr =~ s/12:00 pm/noon/;
             return ($inPast ? "last " : "this ") .              return ($inPast ? "last " : "this ") .
                 $timeStr.&Apache::lonlocal::gettimezone();                  $timeStr.&Apache::lonlocal::gettimezone($time);
         }          }
                   
  my $conjunction='on';   my $conjunction='on';
Line 708  sub timeToHumanString { Line 705  sub timeToHumanString {
             my $timeStr = strftime("$conjunction %A, %b %e at %I:%M %P", localtime($time));              my $timeStr = strftime("$conjunction %A, %b %e at %I:%M %P", localtime($time));
             $timeStr =~ s/12:00 am/00:00/;              $timeStr =~ s/12:00 am/00:00/;
             $timeStr =~ s/12:00 pm/noon/;              $timeStr =~ s/12:00 pm/noon/;
             return $timeStr.&Apache::lonlocal::gettimezone();              return $timeStr.&Apache::lonlocal::gettimezone($time);
         }          }
   
         # Not this year, so show the year          # Not this year, so show the year
         my $timeStr = strftime("$conjunction %A, %b %e %Y at %I:%M %P", localtime($time));          my $timeStr = strftime("$conjunction %A, %b %e %Y at %I:%M %P", localtime($time));
         $timeStr =~ s/12:00 am/00:00/;          $timeStr =~ s/12:00 am/00:00/;
         $timeStr =~ s/12:00 pm/noon/;          $timeStr =~ s/12:00 pm/noon/;
         return $timeStr.&Apache::lonlocal::gettimezone();          return $timeStr.&Apache::lonlocal::gettimezone($time);
     }      }
 }  }
   
Line 1612  sub render { Line 1609  sub render {
         if ($condition) {          if ($condition) {
     $link='"navmaps?condition=0&filter=&'.$queryString.      $link='"navmaps?condition=0&filter=&'.$queryString.
  '&here='.&Apache::lonnet::escape($here).'"';   '&here='.&Apache::lonnet::escape($here).'"';
     $text='Close All Folders';      $text='Close all folders';
         } else {          } else {
     $link='"navmaps?condition=1&filter=&'.$queryString.      $link='"navmaps?condition=1&filter=&'.$queryString.
  '&here='.&Apache::lonnet::escape($here).'"';   '&here='.&Apache::lonnet::escape($here).'"';
     $text='Open All Folders';      $text='Open all folders';
         }          }
  if ($args->{'caller'} eq 'navmapsdisplay') {   if ($args->{'caller'} eq 'navmapsdisplay') {
     &add_linkitem($args->{'linkitems'},'changefolder',      &add_linkitem($args->{'linkitems'},'changefolder',

Removed from v.1.373  
changed lines
  Added in v.1.378


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>