Diff for /loncom/interface/lonmsg.pm between versions 1.110 and 1.114

version 1.110, 2004/09/28 14:38:50 version 1.114, 2004/11/11 20:41:53
Line 523  sub folderlist { Line 523  sub folderlist {
  &mt('Folder').': '.   &mt('Folder').': '.
  &Apache::loncommon::select_form($folder,'folder',   &Apache::loncommon::select_form($folder,'folder',
      ('' => &mt('INBOX'),'trash' => &mt('TRASH'),       ('' => &mt('INBOX'),'trash' => &mt('TRASH'),
         'new' => &mt('New Messages Only'),
                                 'critical' => &mt('Critical'),
       'sent' => &mt('Sent Messages'),        'sent' => &mt('Sent Messages'),
       map { $_ => $_ } @allfolders)).        map { $_ => $_ } @allfolders)).
       ' '.&mt('Show').' '.        ' '.&mt('Show').' '.
     &Apache::loncommon::select_form($interdis,'interdis',      &Apache::loncommon::select_form($interdis,'interdis',
 (' 10' => '10', ' 20' => '20', ' 50' => '50', '100' => '100', '200' => '200')).  (' 10' => '10', ' 20' => '20', ' 50' => '50', '100' => '100', '200' => '200')).
    '<input type="submit" value="'.&mt('View Folder').'" /><br />'.     '<input type="submit" value="'.&mt('View Folder').'" /><br />'.
         ($folder!~/^(new|critical)/?
    '<input type="submit" name="firstview" value="'.&mt('First').'" />'.     '<input type="submit" name="firstview" value="'.&mt('First').'" />'.
    '<input type="submit" name="prevview" value="'.&mt('Previous').'" />'.     '<input type="submit" name="prevview" value="'.&mt('Previous').'" />'.
    '<input type="text" size="5" name="startdis" value="'.$startdis.'" />'.     '<input type="text" size="5" name="startdis" value="'.$startdis.'" />'.
    '<input type="submit" name="nextview" value="'.&mt('Next').'" />'.     '<input type="submit" name="nextview" value="'.&mt('Next').'" />'.
    '<input type="submit" name="lastview" value="'.&mt('Last').'" />'.     '<input type="submit" name="lastview" value="'.&mt('Last').'" />':'').
  '<a href="/adm/email?critical=display'.$sqs.'">'.  
     &mt('View Critical Messages').'</a>'.  
     '</form>';      '</form>';
 }  }
   
Line 568  sub statuschange { Line 569  sub statuschange {
   
 sub makefolder {  sub makefolder {
     my ($newfolder)=@_;      my ($newfolder)=@_;
       if (($newfolder eq 'sent')
        || ($newfolder eq 'critical')
        || ($newfolder eq 'trash')
        || ($newfolder eq 'new')) { return; }
     &Apache::lonnet::put('email_folders',{$newfolder => time});      &Apache::lonnet::put('email_folders',{$newfolder => time});
 }  }
   
Line 770  sub sortedmessages { Line 775  sub sortedmessages {
     return @temp;      return @temp;
 }  }
   
   # ======================================================== Display new messages
   
   
   sub disnew {
       my $r=shift;
       my %lt=&Apache::lonlocal::texthash(
          'nm' => 'New Messages',
          'su' => 'Subject',
          'da' => 'Date',
          'us' => 'Username',
          'op' => 'Open',
          'do' => 'Domain'
          );
       my @msgids = sort split(/\&/,&Apache::lonnet::reply
                               ('keys:'.$ENV{'user.domain'}.':'.
                                $ENV{'user.name'}.':nohist_email',
                                $ENV{'user.home'}));
       my @newmsgs;
       my %setters = ();
       my $startblock = 0;
       my $endblock = 0;
       my %blocked = ();
       my $numblocked = 0;
       # Check for blocking of display because of scheduled online exams.
       &blockcheck(\%setters,\$startblock,\$endblock);
       foreach (@msgids) {
           my ($sendtime,$shortsubj,$fromname,$fromdom,$status)=
       &Apache::lonmsg::unpackmsgid($_);
           if (defined($sendtime) && $sendtime!~/error/) {
               my $numsendtime = $sendtime;
               $sendtime = &Apache::lonlocal::locallocaltime($sendtime);
               if ($status eq 'new') {
                   if ($numsendtime >= $startblock && ($numsendtime <= $endblock && $endblock > 0) ) {
                       $blocked{$_} = 'ON';
                       $numblocked ++;
                   } else {
                       push @newmsgs, { 
                           msgid    => $_,
                           sendtime => $sendtime,
                           shortsub => &Apache::lonnet::unescape($shortsubj),
                           from     => $fromname,
                           fromdom  => $fromdom 
                           }
                   }
               }
           }
       }
       if ($#newmsgs >= 0) {
           $r->print(<<TABLEHEAD);
   <h2>$lt{'nm'}</h2>
   <table border=2><tr><th>&nbsp</th>
   <th>$lt{'da'}</th><th>$lt{'us'}</th><th>$lt{'do'}</th><th>$lt{'su'}</th></tr>
   TABLEHEAD
           foreach my $msg (@newmsgs) {
               $r->print(<<"ENDLINK");
   <tr bgcolor="#FFBB77">
   <td><a href="/adm/email?display=$msg->{'msgid'}">$lt{'op'}</a></td>
   ENDLINK
               foreach ('sendtime','from','fromdom','shortsub') {
                   $r->print("<td>$msg->{$_}</td>");
               }
               $r->print("</td></tr>");
           }
           $r->print('</table></body></html>');
       } elsif ($numblocked == 0) {
           $r->print("<h3>".&mt('You have no unread messages')."</h3>");
       }
       if ($numblocked > 0) {
           my $beginblock = &Apache::lonlocal::locallocaltime($startblock);
           my $finishblock = &Apache::lonlocal::locallocaltime($endblock);
           if ($numblocked == 1) {
               $r->print("<h3>".&mt('You have').' '.$numblocked.' '.&mt('blocked unread message').".</h3>");
               $r->print(&mt('This message is not viewable because').' ');
           } else {
               $r->print("<h3>".&mt('You have').' '.$numblocked.' '.&mt('blocked unread messages').".</h3>");
               $r->print(&mt('These').' '.$numblocked.' '.&mt('messages are not viewable because '));
           }
           $r->print(
   &mt('display of LON-CAPA messages sent to you by other students between').' '.$beginblock.' '.&mt('and').' '.$finishblock.' '.&mt('is currently being blocked because of online exams').'.');
           &build_block_table($r,$startblock,$endblock,\%setters);
       }
   }
   
   
 # ======================================================== Display all messages  # ======================================================== Display all messages
   
 sub disall {  sub disall {
     my ($r,$folder)=@_;      my ($r,$folder)=@_;
       $r->print(&folderlist($folder));
       if ($folder eq 'new') {
    &disnew($r);
       } elsif ($folder eq 'critical') {
    &discrit($r);
       } else {
    &disfolder($r,$folder);
       }
   }
   
   # ============================================================ Display a folder
   
   sub disfolder {
       my ($r,$folder)=@_;
     my %blocked = ();      my %blocked = ();
     my %setters = ();      my %setters = ();
     my $startblock;      my $startblock;
Line 809  ENDDISHEADER Line 912  ENDDISHEADER
     if ($firstdis>$#temp) { $firstdis=$#temp-$interdis+1; }      if ($firstdis>$#temp) { $firstdis=$#temp-$interdis+1; }
     my $lastdis=$firstdis+$interdis-1;      my $lastdis=$firstdis+$interdis-1;
     if ($lastdis>$#temp) { $lastdis=$#temp; }      if ($lastdis>$#temp) { $lastdis=$#temp; }
     $r->print('<h2>'.&mt('Display All Messages').'</h2>'.      $r->print('<form method="post" name="disall" action="/adm/email">'.
       &folderlist($folder).  
       '<form method="post" name="disall" action="/adm/email">'.  
       '<table border=2><tr><th colspan="3">&nbsp</th><th>');        '<table border=2><tr><th colspan="3">&nbsp</th><th>');
     if ($ENV{'form.sortedby'} eq "revdate") {      if ($ENV{'form.sortedby'} eq "revdate") {
  $r->print('<a href = "?sortedby=date'.$fsqs.'">'.&mt('Date').'</a></th>');   $r->print('<a href = "?sortedby=date'.$fsqs.'">'.&mt('Date').'</a></th>');
Line 970  sub compout { Line 1071  sub compout {
  $dismsg=~s/\f/\n/g;   $dismsg=~s/\f/\n/g;
  $dismsg=~s/\n+/\n\> /g;   $dismsg=~s/\n+/\n\> /g;
     }      }
       my $citation=&displayresource(%content);
     if ($ENV{'form.recdom'}) { $defdom=$ENV{'form.recdom'}; }      if ($ENV{'form.recdom'}) { $defdom=$ENV{'form.recdom'}; }
       $r->print(        $r->print(
                 '<form action="/adm/email"  name="compemail" method="post"'.                  '<form action="/adm/email"  name="compemail" method="post"'.
Line 1010  $latexHelp Line 1112  $latexHelp
 </textarea></p><br />  </textarea></p><br />
 $dispcrit  $dispcrit
 <input type="submit" name="send" value="$func $lt{'ma'}" />  <input type="submit" name="send" value="$func $lt{'ma'}" />
 <input type="submit" name="cancel" value="$lt{'ca'}" />  <input type="submit" name="cancel" value="$lt{'ca'}" /><hr />
   $citation
 ENDCOMP  ENDCOMP
     } else { # $broadcast is 'upload'      } else { # $broadcast is 'upload'
  $r->print(<<ENDUPLOAD);   $r->print(<<ENDUPLOAD);
Line 1634  sub displaymessage { Line 1737  sub displaymessage {
       '<br /><b>'.&mt('Time').':</b> '.$content{'time'}.        '<br /><b>'.&mt('Time').':</b> '.$content{'time'}.
       '<p><pre>'.        '<p><pre>'.
       &Apache::lontexconvert::msgtexconverted($content{'message'},1).        &Apache::lontexconvert::msgtexconverted($content{'message'},1).
       '</pre><hr />'.$content{'citation'}.'</p>');        '</pre><hr />'.&displayresource(%content).'</p>');
     return;         return;   
 }  }
   
   # =========================================================== Show the citation
   
   sub displayresource {
       my %content=@_;
   #
   # If the recipient is in the same course that the message was sent from and
   # has sufficient privileges, show "all details," else show citation
   #
       if (($ENV{'request.course.id'} eq $content{'courseid'})
        && (&Apache::lonnet::allowed('vgr',$content{'courseid'}))) {
    my $symb=&Apache::lonnet::symbread($content{'baseurl'});
   # Could not get a symb, give up
    unless ($symb) { return $content{'citation'}; }
   # Have a symb, can render
    return '<h2>'.&mt('Current attempts of student (if applicable)').'</h2>'.
       &Apache::loncommon::get_previous_attempt($symb,
        $content{'sendername'},
        $content{'senderdomain'},
        $content{'courseid'}).
       '<hr /><h2>'.&mt('Current screen output (if applicable)').'</h2>'.
       &Apache::loncommon::get_student_view($symb,
    $content{'sendername'},
    $content{'senderdomain'},
    $content{'courseid'}).
       '<h2>'.&mt('Correct Answer(s) (if applicable)').'</h2>'.
       &Apache::loncommon::get_student_answers($symb,
       $content{'sendername'},
       $content{'senderdomain'},
       $content{'courseid'});
       } else {
    return $content{'citation'};
       }
   }
   
 # ================================================================== The Header  # ================================================================== The Header
   
 sub header {  sub header {

Removed from v.1.110  
changed lines
  Added in v.1.114


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