Diff for /loncom/interface/lonmsgdisplay.pm between versions 1.46 and 1.49

version 1.46, 2006/12/06 23:44:33 version 1.49, 2006/12/07 21:21:04
Line 224  function folder_choice(targetform,caller Line 224  function folder_choice(targetform,caller
    <table border="0" cellspacing="2" cellpadding="2">     <table border="0" cellspacing="2" cellpadding="2">
     <tr>      <tr>
      <td align="center"><b>'.$lt{'fold'}.'</b><br />'."\n".       <td align="center"><b>'.$lt{'fold'}.'</b><br />'."\n".
  &Apache::loncommon::select_form($folder,'folder',%formhash).'           &Apache::loncommon::select_form($folder,'folder',%formhash).'
      </td>       </td>
      <td align="center"><b>'.$lt{'show'}.'</b><br />       <td align="center"><b>'.$lt{'show'}.'</b><br />
       <select name="interdis">'.        <select name="interdis">'.
       join("\n",map { '<option value="'.$_.'"'.            join("\n",map { '<option value="'.$_.'"'.
  ($_==$interdis?' selected="selected"':'').'>'.$_.'</option>' }        ($_==$interdis?' selected="selected"':'').'>'.$_.'</option>' 
    (10,20,50,100,200)).'</select>   }
          (10,20,50,100,200)).'</select>
      </td>       </td>
      <td align="center"><b>'.$lt{'actn'}.'</b><br />'.       <td align="center"><b>'.$lt{'actn'}.'</b><br />'.
     &Apache::loncommon::select_form('view','folderaction',%actions).'           &Apache::loncommon::select_form('view','folderaction',%actions).'
      </td><td><br />'.       </td><td><br />'.
     '<input type="button" value="'.$lt{'go'}.'" onClick="javascript:folder_choice(this.form,'."'change'".');" />      '<input type="button" value="'.$lt{'go'}.'" onClick="javascript:folder_choice(this.form,'."'change'".');" />
      </td>       </td>
Line 244  function folder_choice(targetform,caller Line 245  function folder_choice(targetform,caller
    <table><tr><td><br />     <table><tr><td><br />
     <input type="button" value="'.&mt('Make New Folder').      <input type="button" value="'.&mt('Make New Folder').
     '" onClick="javascript:folder_choice(this.form,'."'new'".');" /></td>'.      '" onClick="javascript:folder_choice(this.form,'."'new'".');" /></td>'.
     '<td align="center"><b>'.&mt('New Folder').'<br />'.      '<td align="center"><b>'.&mt('New Folder').'</b><br />'.
     '<input type="text" size="15" name="newfolder" value="" />      '<input type="text" size="15" name="newfolder" value="" />
     </td></tr></table>      </td></tr></table>
   </td>    </td>
Line 252  function folder_choice(targetform,caller Line 253  function folder_choice(targetform,caller
 </table>'."\n".  </table>'."\n".
     '<input type="hidden" name="sortedby" value="'.$env{'form.sortedby'}.'" />'.      '<input type="hidden" name="sortedby" value="'.$env{'form.sortedby'}.'" />'.
     '<input type="hidden" name="renamed" value="" />'.      '<input type="hidden" name="renamed" value="" />'.
     ($folder=~/^(new|critical)/?'</form>':'');          ($folder=~/^(new|critical)/?'</form>':'');
     return $output;      return $output;
 }  }
   
 sub get_permanent_folders {  sub get_permanent_folders {
     my %permfolders = &Apache::lonlocal::texthash (      my %permfolders = 
                                 ''         => 'INBOX',   &Apache::lonlocal::texthash(''         => 'INBOX',
                                 'trash'    => 'TRASH',      'trash'    => 'TRASH',
                                 'new'      => 'New Messages Only',      'new'      => 'New Messages Only',
                                 'critical' => 'Critical',      'critical' => 'Critical',
                                 'sent'     => 'Sent Messages',      'sent'     => 'Sent Messages',
     );      );
     return %permfolders;      return %permfolders;
 }  }
   
Line 323  sub makefolder { Line 324  sub makefolder {
         while (defined($userfolders{$folder_id})) {          while (defined($userfolders{$folder_id})) {
             $folder_id ++;              $folder_id ++;
         }          }
         my %folderinfo = (          my %folderinfo = ( id      => $folder_id,
                            id => $folder_id,                             created => time, );
                            created => time,  
                          );  
         $outcome =            $outcome =  
         &Apache::lonnet::put('email_folders',{$newfolder => \%folderinfo,      &Apache::lonnet::put('email_folders',{$newfolder => \%folderinfo,
                                              "\0".'idcount' => $folder_id});    "\0".'idcount' => $folder_id});
         my $releaseresult = &release_msgfolder_lock();          my $releaseresult = &release_msgfolder_lock();
         if ($releaseresult ne 'ok') {          if ($releaseresult ne 'ok') {
             $warning = $releaseresult;              $warning = $releaseresult;
         }          }
     } else {      } else {
         $outcome = 'Error - could not obtain lock on email folders record.';          $outcome = 
       &mt('Error - could not obtain lock on email folders record.');
     }      }
     return ($outcome,$warning);      return ($outcome,$warning);
 }  }
Line 386  sub renamefolder { Line 386  sub renamefolder {
     if (ref($userfolders{$folder}) eq 'HASH') {      if (ref($userfolders{$folder}) eq 'HASH') {
         %folderinfo = %{$userfolders{$folder}};          %folderinfo = %{$userfolders{$folder}};
     } else {      } else {
         %folderinfo = (          %folderinfo = ( id      => $folder,
                              id => $folder,                          created => $userfolders{$folder},);
                         created => $userfolders{$folder},  
                       );  
     }      }
     my $outcome =      my $outcome =
      &Apache::lonnet::put('email_folders',{$newname => \%folderinfo});       &Apache::lonnet::put('email_folders',{$newname => \%folderinfo});
Line 401  sub renamefolder { Line 399  sub renamefolder {
   
 sub get_msgfolder_lock {  sub get_msgfolder_lock {
     # get lock for mail folder counter.      # get lock for mail folder counter.
     my $lockhash = {      my $lockhash = { "\0".'lock_counter' => time, };
                   "\0".'lock_counter' => time,  
                    };  
     my $tries = 0;      my $tries = 0;
     my $gotlock = &Apache::lonnet::newput('email_folders',$lockhash);      my $gotlock = &Apache::lonnet::newput('email_folders',$lockhash);
     while (($gotlock ne 'ok') && $tries <3) {      while (($gotlock ne 'ok') && $tries <3) {
         $tries ++;          $tries ++;
         sleep 1;          sleep(1);
         $gotlock = &Apache::lonnet::newput('email_folders',$lockhash);          $gotlock = &Apache::lonnet::newput('email_folders',$lockhash);
     }      }
     return $gotlock;      return $gotlock;
Line 847  sub get_course_desc { Line 843  sub get_course_desc {
             if (defined($env{'course.'.$fromcid.'.description'})) {              if (defined($env{'course.'.$fromcid.'.description'})) {
                 $description = $env{'course.'.$fromcid.'.description'};                  $description = $env{'course.'.$fromcid.'.description'};
             } else {              } else {
                 my %courseinfo=&Apache::lonnet::coursedescription($fromcid);                $description = $courseinfo{'description'};                  my %courseinfo=&Apache::lonnet::coursedescription($fromcid);
                 $description = $courseinfo{'description'};                  $description = $courseinfo{'description'};
             }              }
             $$descriptions{$fromcid} = $description;              $$descriptions{$fromcid} = $description;
Line 893  sub disnew { Line 889  sub disnew {
                     $blocked{$id} = 'ON';                      $blocked{$id} = 'ON';
                     $numblocked ++;                      $numblocked ++;
                 } else {                  } else {
                     push @newmsgs, {                       push(@newmsgs, { 
                         msgid    => $msgid,                          msgid    => $msgid,
                         sendtime => $sendtime,                          sendtime => $sendtime,
                         shortsub => $shortsubj,                          shortsub => $shortsubj,
                         from     => $fromname,                          from     => $fromname,
                         fromdom  => $fromdom,                          fromdom  => $fromdom,
                         course   => $description                           course   => $description, 
                         }      });
                 }                  }
             }              }
         }          }
Line 908  sub disnew { Line 904  sub disnew {
     if ($#newmsgs >= 0) {      if ($#newmsgs >= 0) {
         $r->print(<<TABLEHEAD);          $r->print(<<TABLEHEAD);
 <h2>$lt{'nm'}</h2>  <h2>$lt{'nm'}</h2>
 <table class="LC_mail_list"><tr><th>&nbsp</th>  <table class="LC_mail_list"><tr><th>&nbsp;</th>
 <th>$lt{'da'}</th><th>$lt{'us'}</th><th>$lt{'do'}</th><th>$lt{'su'}</th><th>$lt{'co'}</th></tr>  <th>$lt{'da'}</th><th>$lt{'us'}</th><th>$lt{'do'}</th><th>$lt{'su'}</th><th>$lt{'co'}</th></tr>
 TABLEHEAD  TABLEHEAD
         foreach my $msg (@newmsgs) {          foreach my $msg (@newmsgs) {
             $r->print(<<"ENDLINK");              $r->print(<<"ENDLINK");
 <tr class="LC_mail_new">  <tr class="LC_mail_new">
 <td><a href="/adm/email?dismode=new&display=$msg->{'msgid'}">$lt{'op'}</a></td>  <td><a href="/adm/email?dismode=new&amp;display=$msg->{'msgid'}">$lt{'op'}</a></td>
 ENDLINK  ENDLINK
             foreach my $item ('sendtime','from','fromdom','shortsub','course') {              foreach my $item ('sendtime','from','fromdom','shortsub','course') {
                 $r->print("<td>$msg->{$item}</td>");                  $r->print("<td>$msg->{$item}</td>");
             }              }
             $r->print("</td></tr>");              $r->print("</tr>");
         }          }
         $r->print('</table>');          $r->print('</table>');
     } elsif ($numblocked == 0) {      } elsif ($numblocked == 0) {
Line 997  ENDDISHEADER Line 993  ENDDISHEADER
     if ($lastdis>$#temp) { $lastdis=$#temp; }      if ($lastdis>$#temp) { $lastdis=$#temp; }
     $r->print(&scrollbuttons($startdis,$number,$firstdis,$lastdis,$totalnumber));      $r->print(&scrollbuttons($startdis,$number,$firstdis,$lastdis,$totalnumber));
     $r->print('<form method="post" name="disall" action="/adm/email">'.      $r->print('<form method="post" name="disall" action="/adm/email">'.
       '<table class="LC_mail_list"><tr><th colspan="3">&nbsp</th><th>');        '<table class="LC_mail_list"><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>');
     } else {      } else {
Line 1342  sub retrieve_instructor_comments { Line 1338  sub retrieve_instructor_comments {
     my ($user,$domain)=@_;      my ($user,$domain)=@_;
     my $target=$env{'form.grade_target'};      my $target=$env{'form.grade_target'};
     if (! $env{'request.course.id'}) { return; }      if (! $env{'request.course.id'}) { return; }
     if (! &Apache::lonnet::allowed('srm',$env{'request.course.id'})      if (! &Apache::lonnet::allowed('dff',$env{'request.course.id'})
  && ! &Apache::lonnet::allowed('srm',$env{'request.course.id'}.   && ! &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
       '/'.$env{'request.course.sec'})) {        '/'.$env{'request.course.sec'})) {
  return;   return;
     }      }
Line 1369  sub disfacetoface { Line 1365  sub disfacetoface {
     my ($r,$user,$domain)=@_;      my ($r,$user,$domain)=@_;
     my $target=$env{'form.grade_target'};      my $target=$env{'form.grade_target'};
     unless ($env{'request.course.id'}) { return; }      unless ($env{'request.course.id'}) { return; }
     if  (!&Apache::lonnet::allowed('srm',$env{'request.course.id'})      if  (!&Apache::lonnet::allowed('dff',$env{'request.course.id'})
  && ! &Apache::lonnet::allowed('srm',$env{'request.course.id'}.   && ! &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
        '/'.$env{'request.course.sec'})) {         '/'.$env{'request.course.sec'})) {
  $r->print('Not allowed');   $r->print('Not allowed');
  return;   return;
Line 1451  sub general_message { Line 1447  sub general_message {
   
 sub facetoface {  sub facetoface {
     my ($r,$stage)=@_;      my ($r,$stage)=@_;
     if (!&Apache::lonnet::allowed('srm',$env{'request.course.id'})      if (!&Apache::lonnet::allowed('dff',$env{'request.course.id'})
  && ! &Apache::lonnet::allowed('srm',$env{'request.course.id'}.   && ! &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
       '/'.$env{'request.course.sec'})) {        '/'.$env{'request.course.sec'})) {
  $r->print('Not allowed');   $r->print('Not allowed');
  return;   return;
Line 2282  sub handler { Line 2278  sub handler {
     unless ($dismode) {       unless ($dismode) { 
  $dismode='';    $dismode=''; 
     } else {      } else {
  $sqs.='&dismode='.&escape($dismode);   $sqs.='&amp;dismode='.&escape($dismode);
     }      }
   
 # --------------------------------------------------------------------- Display  # --------------------------------------------------------------------- Display

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


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