Diff for /loncom/interface/lonmsg.pm between versions 1.45 and 1.49

version 1.45, 2002/12/27 16:33:36 version 1.49, 2003/02/18 15:47:40
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,$baseurl)=@_;
     $message=~s/\</\&lt\;/g;      &Apache::lonnet::logthis("base is $baseurl");
     $message=~s/\>/\&gt\;/g;      $message =&HTML::Entities::encode($message);
     $citation=~s/\</\&lt\;/g;      $citation=&HTML::Entities::encode($citation);
     $citation=~s/\>/\&gt\;/g;      $subject =&HTML::Entities::encode($subject);
     $subject=~s/\</\&lt\;/g;      #remove machine specification
     $subject=~s/\>/\&gt\;/g;      $baseurl =~ s|^http://[^/]+/|/|;
       $baseurl =&HTML::Entities::encode($baseurl);
     my $now=time;      my $now=time;
     $msgcount++;      $msgcount++;
     my $partsubj=$subject;      my $partsubj=$subject;
Line 69  sub packagemsg { Line 71  sub packagemsg {
     my $msgid=&Apache::lonnet::escape(      my $msgid=&Apache::lonnet::escape(
            $now.':'.$partsubj.':'.$ENV{'user.name'}.':'.             $now.':'.$partsubj.':'.$ENV{'user.name'}.':'.
            $ENV{'user.domain'}.':'.$msgcount.':'.$$);             $ENV{'user.domain'}.':'.$msgcount.':'.$$);
     return $msgid,      my $result='<sendername>'.$ENV{'user.name'}.'</sendername>'.
            '<sendername>'.$ENV{'user.name'}.'</sendername>'.  
            '<senderdomain>'.$ENV{'user.domain'}.'</senderdomain>'.             '<senderdomain>'.$ENV{'user.domain'}.'</senderdomain>'.
            '<subject>'.$subject.'</subject>'.             '<subject>'.$subject.'</subject>'.
    '<time>'.localtime($now).'</time>'.     '<time>'.localtime($now).'</time>'.
Line 86  sub packagemsg { Line 87  sub packagemsg {
    '<role>'.$ENV{'request.role'}.'</role>'.     '<role>'.$ENV{'request.role'}.'</role>'.
    '<resource>'.$ENV{'request.filename'}.'</resource>'.     '<resource>'.$ENV{'request.filename'}.'</resource>'.
            '<msgid>'.$msgid.'</msgid>'.             '<msgid>'.$msgid.'</msgid>'.
    '<message>'.$message.'</message>'.     '<message>'.$message.'</message>';
    '<citation>'.$citation.'</citation>';      if (defined($citation)) {
    $result.='<citation>'.$citation.'</citation>';
       }
       if (defined($baseurl)) {
    $result.= '<baseurl>'.$baseurl.'</baseurl>';
       }
       return $msgid,$result;
 }  }
   
 # ================================================== Unpack message into a hash  # ================================================== Unpack message into a hash
Line 102  sub unpackagemsg { Line 109  sub unpackagemsg {
    my $entry=$token->[1];     my $entry=$token->[1];
            my $value=$parser->get_text('/'.$entry);             my $value=$parser->get_text('/'.$entry);
            $content{$entry}=$value;             $content{$entry}=$value;
      &Apache::lonnet::logthis("setting $entry to $value");
   
        }         }
     }      }
     return %content;      return %content;
Line 236  sub user_crit_received { Line 245  sub user_crit_received {
 # ======================================================== Normal communication  # ======================================================== Normal communication
   
 sub user_normal_msg_raw {  sub user_normal_msg_raw {
     my ($user,$domain,$subject,$message,$citation)=@_;      my ($user,$domain,$subject,$message,$citation,$baseurl)=@_;
 # Check if allowed missing  # Check if allowed missing
     my $status='';      my $status='';
     my $msgid='undefined';      my $msgid='undefined';
     unless (($message)&&($user)&&($domain)) { $status='empty'; };      unless (($message)&&($user)&&($domain)) { $status='empty'; };
     my $homeserver=&Apache::lonnet::homeserver($user,$domain);      my $homeserver=&Apache::lonnet::homeserver($user,$domain);
     if ($homeserver ne 'no_host') {      if ($homeserver ne 'no_host') {
        ($msgid,$message)=&packagemsg($subject,$message,$citation);      &Apache::lonnet::logthis("baseraw is $baseurl");
          ($msgid,$message)=&packagemsg($subject,$message,$citation,$baseurl);
        $status=&Apache::lonnet::critical(         $status=&Apache::lonnet::critical(
            'put:'.$domain.':'.$user.':nohist_email:'.             'put:'.$domain.':'.$user.':nohist_email:'.
            &Apache::lonnet::escape($msgid).'='.             &Apache::lonnet::escape($msgid).'='.
Line 262  sub user_normal_msg_raw { Line 272  sub user_normal_msg_raw {
 # New routine that respects "forward" and calls old routine  # New routine that respects "forward" and calls old routine
   
 sub user_normal_msg {  sub user_normal_msg {
     my ($user,$domain,$subject,$message,$citation)=@_;      my ($user,$domain,$subject,$message,$citation,$baseurl)=@_;
     my $status='';      my $status='';
     my %userenv = &Apache::lonnet::get('environment',['msgforward'],      my %userenv = &Apache::lonnet::get('environment',['msgforward'],
                                        $domain,$user);                                         $domain,$user);
Line 272  sub user_normal_msg { Line 282  sub user_normal_msg {
  my ($forwuser,$forwdomain)=split(/\:/,$_);   my ($forwuser,$forwdomain)=split(/\:/,$_);
          $status.=           $status.=
   &user_normal_msg_raw($forwuser,$forwdomain,$subject,$message,    &user_normal_msg_raw($forwuser,$forwdomain,$subject,$message,
                                                              $citation).' ';         $citation,$baseurl).' ';
        }         }
     } else {       } else { 
  $status=   $status=&user_normal_msg_raw($user,$domain,$subject,$message,
           &user_normal_msg_raw($user,$domain,$subject,$message,$citation);       $citation,$baseurl);
     }      }
     return $status;      return $status;
 }  }
Line 533  sub compout { Line 543  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 623  $content{'sendername'}.'@'. Line 634  $content{'sendername'}.'@'.
      }       }
     # Check to see if there were any messages.      # Check to see if there were any messages.
     if ($result eq '') {      if ($result eq '') {
         $r->print("<p><b>No face-to-face records or critical messages in this course.</b></p>");          $r->print("<p><b>No notes, face-to-face discussion records, or critical messages in this course.</b></p>");
     } else {      } else {
        $r->print($result);         $r->print($result);
     }      }
Line 636  sub facetoface { Line 647  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 Critical 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 663  ENDTREC Line 683  ENDTREC
             'Record ['.$ENV{'form.recuname'}.':'.$ENV{'form.recdomain'}.']',              'Record ['.$ENV{'form.recuname'}.':'.$ENV{'form.recdomain'}.']',
     $ENV{'form.newrecord'});      $ENV{'form.newrecord'});
         }          }
           $r->print('<h3>'.&Apache::loncommon::plainname($ENV{'form.recuname'},
        $ENV{'form.recdomain'}).'</h3>');
         &disfacetoface($r,$ENV{'form.recuname'},$ENV{'form.recdomain'});          &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">
Line 701  sub handler { Line 723  sub handler {
 # ------------------------------------------------------ They checked for email  # ------------------------------------------------------ They checked for email
   &Apache::lonnet::put('email_status',{'recnewemail'=>0});    &Apache::lonnet::put('email_status',{'recnewemail'=>0});
 # --------------------------------------------------------------- Render Output  # --------------------------------------------------------------- Render Output
       if (!$ENV{'form.display'}) {
   $r->print('<html><head><title>EMail and Messaging</title></head>'.        $r->print('<html><head><title>EMail and Messaging</title>'.
             &Apache::loncommon::bodytag('EMail and Messages'));   &Apache::loncommon::studentbrowser_javascript().'</head>'.
    &Apache::loncommon::bodytag('EMail and Messages'));
     }
   if ($ENV{'form.display'}) {    if ($ENV{'form.display'}) {
       my $msgid=$ENV{'form.display'};        my $msgid=$ENV{'form.display'};
       &statuschange($msgid,'read');        &statuschange($msgid,'read');
       my %message=&Apache::lonnet::get('nohist_email',[$msgid]);        my %message=&Apache::lonnet::get('nohist_email',[$msgid]);
       my %content=&unpackagemsg($message{$msgid});        my %content=&unpackagemsg($message{$msgid});
         $r->print('<html><head><title>EMail and Messaging</title>');
         if (defined($content{'baseurl'})) {
     $r->print("<base href=\"http://$ENV{'SERVER_NAME'}/$content{'baseurl'}\" />");
         }
         $r->print(&Apache::loncommon::studentbrowser_javascript().
    '</head>'.
    &Apache::loncommon::bodytag('EMail and Messages'));
       $r->print('<b>Subject:</b> '.$content{'subject'}.        $r->print('<b>Subject:</b> '.$content{'subject'}.
              '<br><b>From:</b> '.               '<br><b>From:</b> '.
 &Apache::loncommon::aboutmewrapper(  &Apache::loncommon::aboutmewrapper(

Removed from v.1.45  
changed lines
  Added in v.1.49


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