Diff for /loncom/interface/lonmsgdisplay.pm between versions 1.28 and 1.29

version 1.28, 2006/05/23 21:42:09 version 1.29, 2006/05/30 12:46:09
Line 126  use Apache::loncommunicate; Line 126  use Apache::loncommunicate;
 use Apache::lonfeedback;  use Apache::lonfeedback;
 use Apache::lonrss();  use Apache::lonrss();
 use Apache::lonselstudent();  use Apache::lonselstudent();
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
   
 # Querystring component with sorting type  # Querystring component with sorting type
 my $sqs;  my $sqs;
Line 344  sub sortedmessages { Line 346  sub sortedmessages {
     }      }
   
     foreach my $msgid (@messages) {      foreach my $msgid (@messages) {
  my $esc_msgid=&Apache::lonnet::escape($msgid);   my $esc_msgid=&escape($msgid);
  my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid)=   my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid)=
     &Apache::lonmsg::unpackmsgid($esc_msgid,$folder,undef,      &Apache::lonmsg::unpackmsgid($esc_msgid,$folder,undef,
  \%status_cache);   \%status_cache);
Line 470  sub disnew { Line 472  sub disnew {
  &Apache::lonnet::get('email_status',\@msgids);   &Apache::lonnet::get('email_status',\@msgids);
     my %descriptions;      my %descriptions;
     foreach (@msgids) {      foreach (@msgids) {
  my $msgid=&Apache::lonnet::escape($_);   my $msgid=&escape($_);
         my ($sendtime,$shortsubj,$fromname,$fromdom,$status,$fromcid)=          my ($sendtime,$shortsubj,$fromname,$fromdom,$status,$fromcid)=
     &Apache::lonmsg::unpackmsgid($msgid,undef,undef,\%status_cache);      &Apache::lonmsg::unpackmsgid($msgid,undef,undef,\%status_cache);
         if (defined($sendtime) && $sendtime!~/error/) {          if (defined($sendtime) && $sendtime!~/error/) {
Line 653  ENDDISHEADER Line 655  ENDDISHEADER
     $dis_name   = join('<br />',@{$recv_name});      $dis_name   = join('<br />',@{$recv_name});
     $dis_domain = join('<br />',@{$recv_domain});      $dis_domain = join('<br />',@{$recv_domain});
  } else {   } else {
     my $msg_id  = &Apache::lonnet::unescape($origID);      my $msg_id  = &unescape($origID);
     my %message = &Apache::lonnet::get('nohist_email'.$suffix,      my %message = &Apache::lonnet::get('nohist_email'.$suffix,
        [$msg_id]);         [$msg_id]);
     my %content = &Apache::lonmsg::unpackagemsg($message{$msg_id});      my %content = &Apache::lonmsg::unpackagemsg($message{$msg_id});
Line 672  ENDDISHEADER Line 674  ENDDISHEADER
  } elsif ($status eq 'deleted') {   } elsif ($status eq 'deleted') {
 # purge  # purge
     my ($result,$msg) =       my ($result,$msg) = 
  &movemsg(&Apache::lonnet::unescape($origID),$folder,'trash');   &movemsg(&unescape($origID),$folder,'trash');
           
  }   }
     }         }   
Line 716  sub compout { Line 718  sub compout {
      'Broadcast Message');       'Broadcast Message');
     } elsif ($forwarding) {      } elsif ($forwarding) {
  &Apache::lonhtmlcommon::add_breadcrumb   &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>"/adm/email?display=".&Apache::lonnet::escape($forwarding),          ({href=>"/adm/email?display=".&escape($forwarding),
           text=>"Display Message"});            text=>"Display Message"});
  &printheader($r,'/adm/email?forward='.&Apache::lonnet::escape($forwarding),   &printheader($r,'/adm/email?forward='.&escape($forwarding),
      'Forwarding a Message');       'Forwarding a Message');
     } elsif ($replying) {      } elsif ($replying) {
  &Apache::lonhtmlcommon::add_breadcrumb   &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>"/adm/email?display=".&Apache::lonnet::escape($replying),          ({href=>"/adm/email?display=".&escape($replying),
           text=>"Display Message"});            text=>"Display Message"});
  &printheader($r,'/adm/email?replyto='.&Apache::lonnet::escape($replying),   &printheader($r,'/adm/email?replyto='.&escape($replying),
      'Replying to a Message');       'Replying to a Message');
     } elsif ($replycrit) {      } elsif ($replycrit) {
  $r->print('<h3>'.&mt('Replying to a Critical Message').'</h3>');   $r->print('<h3>'.&mt('Replying to a Critical Message').'</h3>');
Line 774  sub compout { Line 776  sub compout {
  $dismsg=&mt('Forwarded message from').' '.   $dismsg=&mt('Forwarded message from').' '.
     $content{'sendername'}.' '.&mt('at').' '.$content{'senderdomain'};      $content{'sendername'}.' '.&mt('at').' '.$content{'senderdomain'};
  if ($content{'baseurl'}) {   if ($content{'baseurl'}) {
     $disbase='<input type="hidden" name="baseurl" value="'.&Apache::lonnet::escape($content{'baseurl'}).'" />';      $disbase='<input type="hidden" name="baseurl" value="'.&escape($content{'baseurl'}).'" />';
  }   }
     }      }
     if ($replying) {      if ($replying) {
Line 790  sub compout { Line 792  sub compout {
  $dismsg=~s/\f/\n/g;   $dismsg=~s/\f/\n/g;
  $dismsg=~s/\n+/\n\> /g;   $dismsg=~s/\n+/\n\> /g;
  if ($content{'baseurl'}) {   if ($content{'baseurl'}) {
     $disbase='<input type="hidden" name="baseurl" value="'.&Apache::lonnet::escape($content{'baseurl'}).'" />';      $disbase='<input type="hidden" name="baseurl" value="'.&escape($content{'baseurl'}).'" />';
     if ($env{'user.adv'}) {      if ($env{'user.adv'}) {
  $disbase.='<label><input type="checkbox" name="storebasecomment" />'.&mt('Store message for re-use').   $disbase.='<label><input type="checkbox" name="storebasecomment" />'.&mt('Store message for re-use').
     '</label> <a href="/adm/email?showcommentbaseurl='.      '</label> <a href="/adm/email?showcommentbaseurl='.
     &Apache::lonnet::escape($content{'baseurl'}).'" target="comments">'.      &escape($content{'baseurl'}).'" target="comments">'.
     &mt('Show re-usable messages').'</a><br />';      &mt('Show re-usable messages').'</a><br />';
     }      }
  }   }
Line 940  sub disfacetoface { Line 942  sub disfacetoface {
             $result .='<h3>'.&mt('Broadcast Message').'</h3>';              $result .='<h3>'.&mt('Broadcast Message').'</h3>';
             if ($content{'subject'}=~/^Broadcast\./) {              if ($content{'subject'}=~/^Broadcast\./) {
                 if (defined($content{'coursemsgid'})) {                  if (defined($content{'coursemsgid'})) {
                     my $crsmsgid = &Apache::lonnet::escape($content{'coursemsgid'});                      my $crsmsgid = &escape($content{'coursemsgid'});
                     my $broadcast_message = &general_message($crsmsgid);                      my $broadcast_message = &general_message($crsmsgid);
                     $content{'message'} = '<b>'.&mt('Subject').': '.$content{'message'}.'</b><br />'.$broadcast_message;                      $content{'message'} = '<b>'.&mt('Subject').': '.$content{'message'}.'</b><br />'.$broadcast_message;
                 } else {                  } else {
Line 953  sub disfacetoface { Line 955  sub disfacetoface {
         } else {          } else {
             $result.='<h3>'.&mt('Critical Message').'</h3>';              $result.='<h3>'.&mt('Critical Message').'</h3>';
             if (defined($content{'coursemsgid'})) {              if (defined($content{'coursemsgid'})) {
                 my $crsmsgid=&Apache::lonnet::escape($content{'coursemsgid'});                  my $crsmsgid=&escape($content{'coursemsgid'});
                 my $critical_message = &general_message($crsmsgid);                  my $critical_message = &general_message($crsmsgid);
                 $content{'message'} = '<b>'.&mt('Subject').': '.$content{'message'}.'</b><br />'.$critical_message;                  $content{'message'} = '<b>'.&mt('Subject').': '.$content{'message'}.'</b><br />'.$critical_message;
             } else {              } else {
Line 1434  sub displaymessage { Line 1436  sub displaymessage {
   
     my $counter=0;      my $counter=0;
     $r->print('<pre>');      $r->print('<pre>');
     my $escmsgid=&Apache::lonnet::escape($msgid);      my $escmsgid=&escape($msgid);
     foreach (@messages) {      foreach (@messages) {
  if ($_->[5] eq $escmsgid){   if ($_->[5] eq $escmsgid){
     last;      last;
Line 1444  sub displaymessage { Line 1446  sub displaymessage {
     $r->print('</pre>');      $r->print('</pre>');
     my $number_of_messages = scalar(@messages); #subtract 1 for last index      my $number_of_messages = scalar(@messages); #subtract 1 for last index
 # start output  # start output
     &printheader($r,'/adm/email?display='.&Apache::lonnet::escape($msgid),'Display a Message','',$content{'baseurl'});      &printheader($r,'/adm/email?display='.&escape($msgid),'Display a Message','',$content{'baseurl'});
     my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'});      my %courseinfo=&Apache::lonnet::coursedescription($content{'courseid'});
 # Functions  # Functions
     $r->print('<table border="2" width="100%"><tr bgcolor="#FFFFAA"><td>'.&mt('Functions').':</td>'.      $r->print('<table border="2" width="100%"><tr bgcolor="#FFFFAA"><td>'.&mt('Functions').':</td>'.
       '<td><a href="/adm/email?replyto='.&Apache::lonnet::escape($msgid).$sqs.        '<td><a href="/adm/email?replyto='.&escape($msgid).$sqs.
       '"><b>'.&mt('Reply').'</b></a></td>'.        '"><b>'.&mt('Reply').'</b></a></td>'.
       '<td><a href="/adm/email?forward='.&Apache::lonnet::escape($msgid).$sqs.        '<td><a href="/adm/email?forward='.&escape($msgid).$sqs.
       '"><b>'.&mt('Forward').'</b></a></td>'.        '"><b>'.&mt('Forward').'</b></a></td>'.
       '<td><a href="/adm/email?markunread='.&Apache::lonnet::escape($msgid).$sqs.        '<td><a href="/adm/email?markunread='.&escape($msgid).$sqs.
       '"><b>'.&mt('Mark Unread').'</b></a></td>'.        '"><b>'.&mt('Mark Unread').'</b></a></td>'.
       '<td><a href="/adm/email?markdel='.&Apache::lonnet::escape($msgid).$sqs.        '<td><a href="/adm/email?markdel='.&escape($msgid).$sqs.
       '"><b>'.&mt('Delete').'</b></a></td>'.        '"><b>'.&mt('Delete').'</b></a></td>'.
       '<td><a href="/adm/email?'.$sqs.        '<td><a href="/adm/email?'.$sqs.
       ($env{'form.dismode'} eq 'new'?'&folder=new':'').        ($env{'form.dismode'} eq 'new'?'&folder=new':'').
Line 1583  sub storecomment { Line 1585  sub storecomment {
     $cleanmsgtxt.=$_."\n";      $cleanmsgtxt.=$_."\n";
  }   }
     }      }
     my $key=&Apache::lonnet::escape($env{'form.baseurl'}).'___'.time;      my $key=&escape($env{'form.baseurl'}).'___'.time;
     &Apache::lonnet::put('nohist_stored_comments',{ $key => $cleanmsgtxt });      &Apache::lonnet::put('nohist_stored_comments',{ $key => $cleanmsgtxt });
 }  }
   
 sub storedcommentlisting {  sub storedcommentlisting {
     my ($r)=@_;      my ($r)=@_;
     my %msgs=&Apache::lonnet::dump('nohist_stored_comments',undef,undef,      my %msgs=&Apache::lonnet::dump('nohist_stored_comments',undef,undef,
        '^'.&Apache::lonnet::escape(&Apache::lonnet::escape($env{'form.showcommentbaseurl'})));         '^'.&escape(&escape($env{'form.showcommentbaseurl'})));
     $r->print(&Apache::loncommon::start_page('Stored Comment Listing',undef,      $r->print(&Apache::loncommon::start_page('Stored Comment Listing',undef,
      {'onlybody' => 1}));       {'onlybody' => 1}));
     if ((keys %msgs)[0]=~/^error\:/) {      if ((keys %msgs)[0]=~/^error\:/) {
Line 1742  sub sendoffmail { Line 1744  sub sendoffmail {
             my ($specialmsgid,$specialresult);              my ($specialmsgid,$specialresult);
             my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};              my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
             my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};              my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
             my $course_str = &Apache::lonnet::escape('['.$cnum.':'.$cdom.']');              my $course_str = &escape('['.$cnum.':'.$cdom.']');
   
             if ($numspecial) {              if ($numspecial) {
                 $specialresult = &Apache::lonmsg::user_normal_msg_raw($cnum,$cdom,$subj_prefix.                  $specialresult = &Apache::lonmsg::user_normal_msg_raw($cnum,$cdom,$subj_prefix.
                     ' '.$course_str,$savemsg,undef,undef,undef,                      ' '.$course_str,$savemsg,undef,undef,undef,
                     undef,undef,\$specialmsgid);                      undef,undef,\$specialmsgid);
                 $specialmsgid = &Apache::lonnet::unescape($specialmsgid);                  $specialmsgid = &unescape($specialmsgid);
             }              }
             if ($specialresult eq 'ok') {              if ($specialresult eq 'ok') {
                 my $record_sent;                  my $record_sent;
                 my @recusers;                  my @recusers;
                 my @recudoms;                  my @recudoms;
                 my ($stamp,$crssubj,$msgname,$msgdom,$msgcount,$context,$pid) =                  my ($stamp,$crssubj,$msgname,$msgdom,$msgcount,$context,$pid) =
     split(/\:/,&Apache::lonnet::unescape($specialmsgid));      split(/\:/,&unescape($specialmsgid));
   
                 foreach my $recipient (sort(keys(%toaddr))) {                  foreach my $recipient (sort(keys(%toaddr))) {
                     if ($specialmsg_status{$recipient} eq 'ok') {                      if ($specialmsg_status{$recipient} eq 'ok') {
Line 1845  sub handler { Line 1847  sub handler {
     unless ($folder) {       unless ($folder) { 
  $folder='';    $folder=''; 
     } else {      } else {
  $sqs.='&folder='.&Apache::lonnet::escape($folder);   $sqs.='&folder='.&escape($folder);
     }      }
 # ------------------------------------------------------------ Get Display Mode  # ------------------------------------------------------------ Get Display Mode
   
Line 1853  sub handler { Line 1855  sub handler {
     unless ($dismode) {       unless ($dismode) { 
  $dismode='';    $dismode=''; 
     } else {      } else {
  $sqs.='&dismode='.&Apache::lonnet::escape($dismode);   $sqs.='&dismode='.&escape($dismode);
     }      }
   
 # --------------------------------------------------------------------- Display  # --------------------------------------------------------------------- Display
Line 1923  sub handler { Line 1925  sub handler {
  foreach my $key (keys(%env)) {   foreach my $key (keys(%env)) {
     if ($key=~/^form\.delmark_(.*)$/) {      if ($key=~/^form\.delmark_(.*)$/) {
  my ($result,$msg) =   my ($result,$msg) =
     &movemsg(&Apache::lonnet::unescape($1),$folder,      &movemsg(&unescape($1),$folder,
      $env{'form.movetofolder'});       $env{'form.movetofolder'});
  if ($result) {   if ($result) {
     $total++;      $total++;
Line 1950  sub handler { Line 1952  sub handler {
  foreach my $key (keys(%env)) {   foreach my $key (keys(%env)) {
     if ($key=~/^form\.delmark_(.*)$/) {      if ($key=~/^form\.delmark_(.*)$/) {
  my ($result,$msg) =    my ($result,$msg) = 
     &statuschange(&Apache::lonnet::unescape($1),'deleted',      &statuschange(&unescape($1),'deleted',
   $folder);    $folder);
  if ($result) {   if ($result) {
     $total++;      $total++;

Removed from v.1.28  
changed lines
  Added in v.1.29


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