Diff for /loncom/interface/lonmsg.pm between versions 1.44 and 1.47

version 1.44, 2002/12/27 14:59:42 version 1.47, 2003/02/17 17:09:27
Line 47  package Apache::lonmsg; Line 47  package Apache::lonmsg;
 use strict;  use strict;
 use Apache::lonnet();  use Apache::lonnet();
 use vars qw($msgcount);  use vars qw($msgcount);
 use HTML::TokeParser;  use HTML::TokeParser();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::loncommon;  use Apache::loncommon();
 use Apache::lontexconvert;  use Apache::lontexconvert();
   use HTML::Entities();
   
 # ===================================================================== Package  # ===================================================================== Package
   
 sub packagemsg {  sub packagemsg {
     my ($subject,$message,$citation)=@_;      my ($subject,$message,$citation)=@_;
     $message=~s/\</\&lt\;/g;  #    $message=~s/\</\&lt\;/g;
     $message=~s/\>/\&gt\;/g;  #    $message=~s/\>/\&gt\;/g;
     $citation=~s/\</\&lt\;/g;      $message =&HTML::Entities::encode($message);
     $citation=~s/\>/\&gt\;/g;      $citation=&HTML::Entities::encode($citation);
     $subject=~s/\</\&lt\;/g;      $subject =&HTML::Entities::encode($subject);
     $subject=~s/\>/\&gt\;/g;  #    $subject=~s/\</\&lt\;/g;
   #    $subject=~s/\>/\&gt\;/g;
     my $now=time;      my $now=time;
     $msgcount++;      $msgcount++;
     my $partsubj=$subject;      my $partsubj=$subject;
Line 166  sub user_crit_msg_raw { Line 168  sub user_crit_msg_raw {
            'put:'.$domain.':'.$user.':critical:'.             'put:'.$domain.':'.$user.':critical:'.
            &Apache::lonnet::escape($msgid).'='.             &Apache::lonnet::escape($msgid).'='.
            &Apache::lonnet::escape($message),$homeserver);             &Apache::lonnet::escape($message),$homeserver);
          if ($ENV{'request.course.id'}) {
             &user_normal_msg_raw(
               $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
               $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
               'Critical ['.$user.':'.$domain.']',
       $message);
          }
     } else {      } else {
        $status='no_host';         $status='no_host';
     }      }
Line 526  sub compout { Line 535  sub compout {
                 '<table>');                  '<table>');
     unless (($broadcast eq 'group') || ($broadcast eq 'upload')) {      unless (($broadcast eq 'group') || ($broadcast eq 'upload')) {
         my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');          my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');
           my $selectlink=&Apache::loncommon::selectstudent_link
       ('compemail','recuname','recdomain');
        $r->print(<<"ENDREC");         $r->print(<<"ENDREC");
 <table>  <table>
 <tr><td>Username:</td><td><input type=text size=12 name=recuname value="$ENV{'form.recname'}"></td></tr>  <tr><td>Username:</td><td><input type=text size=12 name=recuname value="$ENV{'form.recname'}"></td><td rowspan="2">$selectlink</td></tr>
 <tr><td>Domain:</td>  <tr><td>Domain:</td>
 <td>$domform</td></tr>  <td>$domform</td></tr>
 ENDREC  ENDREC
Line 579  ENDUPLOAD Line 589  ENDUPLOAD
     $r->print('</form>');      $r->print('</form>');
 }  }
   
   # ---------------------------------------------------- Display all face to face
   
   sub disfacetoface {
       my ($r,$user,$domain)=@_;
       unless ($ENV{'request.course.id'}) { return; }
       unless (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
    return;
       }
       my %records=&Apache::lonnet::dump('nohist_email',
    $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
    $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
                            '%255b'.$user.'%253a'.$domain.'%255d');
       my $result='';
       foreach (sort keys %records) {
           my %content=&unpackagemsg($records{$_});
           next if ($content{'senderdomain'} eq '');
           $content{'message'}=~s/\n/\<br\>/g;
           if ($content{'subject'}=~/^Record/) {
       $result.='<h3>Record</h3>';
           } else {
               $result.='<h3>Sent Message</h3>';
               %content=&unpackagemsg($content{'message'});
               $content{'message'}=
                   '<b>Subject: '.$content{'subject'}.'</b><br />'.
    $content{'message'};
           }
           $result.='By: <b>'.
   &Apache::loncommon::aboutmewrapper(
    &Apache::loncommon::plainname($content{'sendername'},$content{'senderdomain'}),$content{'sendername'},$content{'senderdomain'}).'</b> ('.
   $content{'sendername'}.'@'.
               $content{'senderdomain'}.') '.$content{'time'}.
               '<br><blockquote>'.
                 &Apache::lontexconvert::msgtexconverted($content{'message'}).
         '</blockquote>';
        }
       # Check to see if there were any messages.
       if ($result eq '') {
           $r->print("<p><b>No notes, face-to-face discussion records, or critical messages in this course.</b></p>");
       } else {
          $r->print($result);
       }
   }
   
 # ---------------------------------------------------------------- Face to face  # ---------------------------------------------------------------- Face to face
   
 sub facetoface {  sub facetoface {
Line 586  sub facetoface { Line 639  sub facetoface {
     unless (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {      unless (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
  return;   return;
     }      }
   # from query string
       if ($ENV{'form.recname'}) { $ENV{'form.recuname'}=$ENV{'form.recname'}; }
       if ($ENV{'form.recdom'}) { $ENV{'form.recdomain'}=$ENV{'form.recdom'}; }
   
     my $defdom=$ENV{'user.domain'};      my $defdom=$ENV{'user.domain'};
   # already filled in
     if ($ENV{'form.recdomain'}) { $defdom=$ENV{'form.recdomain'}; }      if ($ENV{'form.recdomain'}) { $defdom=$ENV{'form.recdomain'}; }
   # generate output
     my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');      my $domform = &Apache::loncommon::select_dom_form($defdom,'recdomain');
       my $stdbrws = &Apache::loncommon::selectstudent_link
    ('stdselect','recuname','recdomain');
     $r->print(<<"ENDTREC");      $r->print(<<"ENDTREC");
 <h2>User Records of Face-To-Face Discussions and Messages in Course</h2>  <h3>User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course</h3>
 <form method="post" action="/adm/email">  <form method="post" action="/adm/email" name="stdselect">
 <input type="hidden" name="recordftf" value="retrieve" />  <input type="hidden" name="recordftf" value="retrieve" />
 <table>  <table>
 <tr><td>Username:</td><td><input type=text size=12 name=recuname value="$ENV{'form.recuname'}"></td>  <tr><td>Username:</td><td><input type=text size=12 name=recuname value="$ENV{'form.recuname'}"></td>
 <td rowspan="2">  <td rowspan="2">
   $stdbrws
 <input type="submit" value="Retrieve discussion and message records"></td>  <input type="submit" value="Retrieve discussion and message records"></td>
 </tr>  </tr>
 <tr><td>Domain:</td>  <tr><td>Domain:</td>
Line 607  ENDTREC Line 669  ENDTREC
         ($ENV{'form.recdomain'}) && ($ENV{'form.recuname'})) {          ($ENV{'form.recdomain'}) && ($ENV{'form.recuname'})) {
         chomp($ENV{'form.newrecord'});          chomp($ENV{'form.newrecord'});
         if ($ENV{'form.newrecord'}) {          if ($ENV{'form.newrecord'}) {
     my $subject=             &user_normal_msg_raw(
                'Record ['.$ENV{'form.recuname'}.':'.$ENV{'form.recdomain'}.']';              $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
               $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
               'Record ['.$ENV{'form.recuname'}.':'.$ENV{'form.recdomain'}.']',
       $ENV{'form.newrecord'});
         }          }
           $r->print('<h3>'.&Apache::loncommon::plainname($ENV{'form.recuname'},
        $ENV{'form.recdomain'}).'</h3>');
           &disfacetoface($r,$ENV{'form.recuname'},$ENV{'form.recdomain'});
  $r->print(<<ENDRHEAD);   $r->print(<<ENDRHEAD);
 <form method="post" action="/adm/email">  <form method="post" action="/adm/email">
 <input name="recdomain" value="$ENV{'form.recdomain'}" type="hidden" />  <input name="recdomain" value="$ENV{'form.recdomain'}" type="hidden" />
Line 618  ENDRHEAD Line 686  ENDRHEAD
         $r->print(<<ENDBFORM);          $r->print(<<ENDBFORM);
 <hr />New Record (record is visible to course faculty and staff)<br />  <hr />New Record (record is visible to course faculty and staff)<br />
 <textarea name="newrecord" cols="80" rows="10" wrap="hard"></textarea>  <textarea name="newrecord" cols="80" rows="10" wrap="hard"></textarea>
   <br />
   <input type="hidden" name="recordftf" value="post" />
   <input type="submit" value="Post this record" />
 </form>  </form>
 ENDBFORM  ENDBFORM
     }      }
Line 645  sub handler { Line 716  sub handler {
   &Apache::lonnet::put('email_status',{'recnewemail'=>0});    &Apache::lonnet::put('email_status',{'recnewemail'=>0});
 # --------------------------------------------------------------- Render Output  # --------------------------------------------------------------- Render Output
       
   $r->print('<html><head><title>EMail and Messaging</title></head>'.    $r->print('<html><head><title>EMail and Messaging</title>'.
               &Apache::loncommon::studentbrowser_javascript().'</head>'.
             &Apache::loncommon::bodytag('EMail and Messages'));              &Apache::loncommon::bodytag('EMail and Messages'));
   if ($ENV{'form.display'}) {    if ($ENV{'form.display'}) {
       my $msgid=$ENV{'form.display'};        my $msgid=$ENV{'form.display'};

Removed from v.1.44  
changed lines
  Added in v.1.47


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