Diff for /loncom/interface/lonannounce.pm between versions 1.56 and 1.65

version 1.56, 2006/06/29 15:23:59 version 1.65, 2006/12/20 22:36:17
Line 37  use Apache::lonnavmaps(); Line 37  use Apache::lonnavmaps();
 use Apache::lonrss();  use Apache::lonrss();
 use Apache::lonnet;  use Apache::lonnet;
 use HTML::Entities();  use HTML::Entities();
   use LONCAPA qw(:match);
   
 my %todayhash;  my %todayhash;
 my %showedcheck;  my %showedcheck;
Line 77  sub readcalendar { Line 78  sub readcalendar {
     my %returnhash=();      my %returnhash=();
     foreach my $item (keys(%thiscal)) {      foreach my $item (keys(%thiscal)) {
         unless (($item=~/^error\:/) || ($thiscal{$item}=~/^error\:/)) {          unless (($item=~/^error\:/) || ($thiscal{$item}=~/^error\:/)) {
    $returnhash{$courseid.'@'.$item}=$thiscal{$item};      my ($start,$end)=split('_',$item);
       $returnhash{join("\0",$courseid,$start,$end)}=$thiscal{$item};
         }          }
     }      }
       my $can_see_hidden = ($env{'request.role.adv'} &&
     my $can_see_hidden = $env{'request.role.adv'};    ($courseid eq $env{'request.course.id'}));
     my $navmap;# = Apache::lonnavmaps::navmap->new();      
       my $navmap;
       if ($courseid eq $env{'request.course.id'}) {
    $navmap = Apache::lonnavmaps::navmap->new();
       }
     my %resourcedata=      my %resourcedata=
  &Apache::lonnet::dump('resourcedata',$coursedom,$coursenum);   &Apache::lonnet::get_courseresdata($coursenum,$coursedom);
     foreach my $thiskey (sort keys %resourcedata) {      foreach my $thiskey (sort keys %resourcedata) {
  if ($resourcedata{$thiskey.'.type'}=~/^date/) {   if ($resourcedata{$thiskey.'.type'}=~/^date/) {
     my ($course,$middle,$part,$name)=      my ($course,$middle,$part,$name)=
  ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);   ($thiskey=~/^($match_courseid)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
     my %data = ( 'section' => &mt('All Students'));      my %data = ( 'section' => &mt('All Students'));
     if ($middle=~/^\[(.*)\]\./) {      if ($middle=~/^\[(.*)\]\./) {
  my $sec=$1;   my $sec=$1;
Line 156  sub readcalendar { Line 162  sub readcalendar {
  }    } 
  $data{'datetype'}=&mt('Answer Available');    $data{'datetype'}=&mt('Answer Available'); 
     }      }
     $returnhash{$courseid.'@'.$resourcedata{$thiskey}.'_'.      $returnhash{join("\0",$courseid,
     $resourcedata{$thiskey}}=\%data;       $resourcedata{$thiskey},
        $resourcedata{$thiskey})}=\%data;
  }   }
     }      }
     return %returnhash;      return %returnhash;
Line 241  sub listcell { Line 248  sub listcell {
     foreach my $item (@items) {      foreach my $item (@items) {
         if (ref($item)) {          if (ref($item)) {
     my ($courseid,$start,$end,$msg)=@$item;      my ($courseid,$start,$end,$msg)=@$item;
     &Apache::lonnet::logthis(" msg2 is ".ref($msg)." $msg ");  
     my $fullmsg=&Apache::lonlocal::locallocaltime($start);      my $fullmsg=&Apache::lonlocal::locallocaltime($start);
     if ($start!=$end) {      if ($start!=$end) {
  $fullmsg.=&mt(' to ').   $fullmsg.=&mt(' to ').
Line 280  sub display_msg { Line 286  sub display_msg {
   
     my $output = $msg->{'datetype'}. ': '.$msg->{'realm'};      my $output = $msg->{'datetype'}. ': '.$msg->{'realm'};
     if (exists($msg->{'url'})) {      if (exists($msg->{'url'})) {
  $output .= ': '.&Apache::lonnet::gettitle($msg->{'url'});   my $displayurl=&Apache::lonnet::gettitle($msg->{'url'});
    if ($msg->{'url'}!~/\Q$displayurl\E$/) {
       $output .= ' - '.$displayurl;
    }
     }      }
     if (exists($msg->{'symb'})) {      if (exists($msg->{'symb'})) {
  $output .= ': '.&Apache::lonnet::gettitle($msg->{'symb'});   my $displaysymb=&Apache::lonnet::gettitle($msg->{'symb'});
    if ($msg->{'symb'}!~/\Q$displaysymb\E$/) {
       $output .= ' - '.$displaysymb;
    }
     }      }
     $output .= ' ('.$msg->{'section'}.') ';      $output .= ' ('.$msg->{'section'}.') ';
     return $output;      return $output;
Line 300  sub showday { Line 312  sub showday {
  $nextday+=$oneday;   $nextday+=$oneday;
     }      }
     foreach my $item (keys(%allcal)) {      foreach my $item (keys(%allcal)) {
  my ($course,$startdate,$enddate)=($item=~/^(\w+)\@(\d+)\_(\d+)$/);   my ($courseid,$startdate,$enddate)= split("\0",$item);
         if (($startdate<$nextday) && ($enddate>=$tk))  {   if (($startdate<$nextday) && ($enddate>=$tk))  {
     push(@outp,[$course,$startdate,$enddate,$allcal{$item}]);      push(@outp,[$courseid,$startdate,$enddate,$allcal{$item}]);
         }          }
     }      }
     unless ($mode) {      unless ($mode) {
Line 349  ENDDIA Line 361  ENDDIA
 # ----------------------------------------------------- Summarize all calendars  # ----------------------------------------------------- Summarize all calendars
 sub get_all_calendars {  sub get_all_calendars {
     my %allcal=();      my %allcal=();
     foreach my $course (sort(&Apache::loncommon::findallcourses())) {      my %courses = &Apache::loncommon::findallcourses();
       foreach my $course (sort(keys(%courses))) {
  %allcal=(%allcal,&readcalendar($course));   %allcal=(%allcal,&readcalendar($course));
     }      }
     return %allcal;      return %allcal;
Line 365  sub output_ics_file { Line 378  sub output_ics_file {
     $r->print("PRODID:-//LONCAPA//LONCAPA Calendar Output//EN$crlf");      $r->print("PRODID:-//LONCAPA//LONCAPA Calendar Output//EN$crlf");
     my %allcal=&get_all_calendars();      my %allcal=&get_all_calendars();
     foreach my $event (keys(%allcal)) {      foreach my $event (keys(%allcal)) {
  my ($courseid,$startdate,$enddate)=($event=~/^(\w+)\@(\d+)\_(\d+)$/);   my ($courseid,$startdate,$enddate)= split('\0',$event);
  my $uid=$event;   my $uid=$event;
  $uid=~s/[\W\_]/-/gs;   $uid=~s/[\W\_]/-/gs;
  $uid.='@loncapa';   $uid.='@loncapa';
Line 486  SERVERANNOUNCE Line 499  SERVERANNOUNCE
 # list servers  # list servers
     foreach my $host (sort(keys(%Apache::lonnet::hostname))) {      foreach my $host (sort(keys(%Apache::lonnet::hostname))) {
  if (&Apache::lonnet::allowed('psa',$Apache::lonnet::hostdom{$host})) {   if (&Apache::lonnet::allowed('psa',$Apache::lonnet::hostdom{$host})) {
     $r->print ('<br /><input type="checkbox" name="postto_'.$host.'" /> '.      $r->print ('<br /><label><input type="checkbox" name="postto_'.$host.'" /> '.
        $host.' <tt>'.$Apache::lonnet::hostname{$host}.'</tt> '.         $host.' <tt>'.$Apache::lonnet::hostname{$host}.'</tt> '.
        '<a href="http://'.$Apache::lonnet::hostname{$host}.         '</label><a href="http://'.$Apache::lonnet::hostname{$host}.
        '/announcement.txt" target="annowin">current</a>');         '/announcement.txt" target="annowin">current</a>');
  }   }
     }      }

Removed from v.1.56  
changed lines
  Added in v.1.65


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