Diff for /loncom/interface/lonnavmaps.pm between versions 1.371 and 1.376

version 1.371, 2006/03/16 20:48:30 version 1.376, 2006/04/10 21:40:08
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 2355  sub unread_discussion { Line 2346  sub unread_discussion {
     my $symb = shift;      my $symb = shift;
   
     $self->get_discussion_data();      $self->get_discussion_data();
       
     my $ressymb = $self->wrap_symb($symb);  
   
     my $version = $self->{DISCUSSION_DATA}{'version:'.$ressymb};      my $ressymb = $self->wrap_symb($symb);
       # keys used to store bulletinboard postings use 'unwrapped' symb. 
       my $discsymb = $self->unwrap_symb($ressymb);
       my $version = $self->{DISCUSSION_DATA}{'version:'.$discsymb};
     if (!$version) { return; }      if (!$version) { return; }
   
     my $prevread = $self->{LAST_READ}{$ressymb};      my $prevread = $self->{LAST_READ}{$ressymb};
Line 2371  sub unread_discussion { Line 2363  sub unread_discussion {
     my %subjects;      my %subjects;
   
     for (my $id=$version; $id>0; $id--) {      for (my $id=$version; $id>0; $id--) {
  my $vkeys=$self->{DISCUSSION_DATA}{$id.':keys:'.$ressymb};   my $vkeys=$self->{DISCUSSION_DATA}{$id.':keys:'.$discsymb};
  my @keys=split(/:/,$vkeys);   my @keys=split(/:/,$vkeys);
  if (grep(/^hidden$/ ,@keys)) {   if (grep(/^hidden$/ ,@keys)) {
     if (!$hiddenflag) {      if (!$hiddenflag) {
  $hidden = $self->{DISCUSSION_DATA}{$id.':'.$ressymb.':hidden'};   $hidden = $self->{DISCUSSION_DATA}{$id.':'.$discsymb.':hidden'};
  $hiddenflag = 1;   $hiddenflag = 1;
     }      }
  } elsif (grep(/^deleted$/,@keys)) {   } elsif (grep(/^deleted$/,@keys)) {
     if (!$deletedflag) {      if (!$deletedflag) {
  $deleted = $self->{DISCUSSION_DATA}{$id.':'.$ressymb.':deleted'};   $deleted = $self->{DISCUSSION_DATA}{$id.':'.$discsymb.':deleted'};
  $deletedflag = 1;   $deletedflag = 1;
     }      }
  } else {   } else {
     if (($hidden !~/\.$id\./) && ($deleted !~/\.$id\./)      if (($hidden !~/\.$id\./) && ($deleted !~/\.$id\./)
  && $prevread < $self->{DISCUSSION_DATA}{$id.':'.$ressymb.':timestamp'}) {   && $prevread < $self->{DISCUSSION_DATA}{$id.':'.$discsymb.':timestamp'}) {
     $unreadcount++;      $unreadcount++;
     $subjects{$unreadcount}=      $subjects{$unreadcount}=
  $id.': '.$self->{DISCUSSION_DATA}{$id.':'.$ressymb.':subject'};   $id.': '.$self->{DISCUSSION_DATA}{$id.':'.$discsymb.':subject'};
  }   }
  }   }
     }      }
Line 2401  sub unread_discussion { Line 2393  sub unread_discussion {
 sub wrap_symb {  sub wrap_symb {
     my $self = shift;      my $self = shift;
     my $symb = shift;      my $symb = shift;
     if ($symb =~ m-___(adm/\w+/\w+/)(\d+)(/bulletinboard)$-) {      if ($symb =~ m-___(adm/[^/]+/[^/]+/)(\d+)(/bulletinboard)$-) {
         unless ($symb =~ m|adm/wrapper/adm|) {          unless ($symb =~ m|adm/wrapper/adm|) {
             $symb = 'bulletin___'.$2.'___adm/wrapper/'.$1.$2.$3;              $symb = 'bulletin___'.$2.'___adm/wrapper/'.$1.$2.$3;
         }          }
Line 2409  sub wrap_symb { Line 2401  sub wrap_symb {
     return $symb;      return $symb;
 }  }
   
   sub unwrap_symb {
       my $self = shift;
       my $ressymb = shift;
       my $discsymb = $ressymb;
       if ($ressymb =~ m-^(bulletin___\d+___)adm/wrapper/(adm/[^/]+/[^/]+/\d+/bulletinboard)$-) {
            $discsymb = $1.$2;
       }
       return $discsymb;
   }
   
 # Private method: Does the given resource (as a symb string) have  # Private method: Does the given resource (as a symb string) have
 # current feedback? Returns the string in the feedback hash, which  # current feedback? Returns the string in the feedback hash, which
 # will be false if it does not exist.  # will be false if it does not exist.

Removed from v.1.371  
changed lines
  Added in v.1.376


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