Diff for /loncom/interface/lonmsgdisplay.pm between versions 1.124.4.4 and 1.124.4.11

version 1.124.4.4, 2010/01/25 17:59:43 version 1.124.4.11, 2010/08/20 19:12:22
Line 146  sub folderlist { Line 146  sub folderlist {
     );      );
     $actions{'select_form_order'} = ['view','rename','delete'];      $actions{'select_form_order'} = ['view','rename','delete'];
   
     my %statushash = &get_msgstatus_types();      my %statushash = &Apache::lonlocal::texthash(&get_msgstatus_types());
   
     $statushash{'select_form_order'} = ['','new','read','replied','forwarded'];      $statushash{'select_form_order'} = ['','new','read','replied','forwarded'];
   
Line 219  function folder_choice(targetform,caller Line 219  function folder_choice(targetform,caller
 </script>|;  </script>|;
     my %show = ('select_form_order' => [10,20,50,100,200],      my %show = ('select_form_order' => [10,20,50,100,200],
  map {$_=>$_} (10,20,50,100,200));   map {$_=>$_} (10,20,50,100,200));
   
      
     $output .= '      $output .= '
 <form method="post" action="/adm/email" name="folderlist">  <form method="post" action="/adm/email" name="folderlist">
 <table border="0" cellspacing="2" cellpadding="2">  <table border="0" cellspacing="2" cellpadding="2">
Line 273  sub get_permanent_folders { Line 272  sub get_permanent_folders {
 }  }
   
 sub get_msgstatus_types {  sub get_msgstatus_types {
     my %statushash = &Apache::lonlocal::texthash(      # Don't translate here!
                                 '' => 'Any',      my %statushash = (
                                 new => 'Unread',          ''          => 'Any',
                                 read => 'Read',          'new'       => 'Unread',
                                 replied => 'Replied to',          'read'      => 'Read',
                                 forwarded => 'Forwarded',          'replied'   => 'Replied to',
           'forwarded' => 'Forwarded',
     );      );
     return %statushash;      return %statushash;
 }  }
Line 291  sub scrollbuttons { Line 291  sub scrollbuttons {
     my %statushash = &get_msgstatus_types();      my %statushash = &get_msgstatus_types();
     my $status;      my $status;
     if ($msgstatus eq '') {      if ($msgstatus eq '') {
         $status = &mt('All');          $status = 'All'; # Don't translate here!
     } else {      } else {
         $status = $statushash{$msgstatus};          $status = $statushash{$msgstatus};
     }      }
Line 509  sub movemsg { Line 509  sub movemsg {
 sub discourse {  sub discourse {
     my ($statushash) = @_;      my ($statushash) = @_;
     my ($result,$active,$previous,$future);      my ($result,$active,$previous,$future);
       my $crstype = &Apache::loncommon::course_type();
     my ($course_personnel,      my ($course_personnel,
  $current_members,   $current_members,
  $expired_members,   $expired_members,
Line 524  sub discourse { Line 525  sub discourse {
                                                                \%defaultUsers,                                                                 \%defaultUsers,
                                                                1,"selectedusers",1,'email')                                                                 1,"selectedusers",1,'email')
        ) {         ) {
        $result .= '<fieldset id="LC_activeusers"><legend><b>'.&mt('Bcc: course members with current access').'</b></legend><form name="activeusers">';          my $bcc_curr_hdr;
        $result .= $tmptext.'</form></fieldset><br />';          if ($crstype eq 'Community') {
        if (ref($statushash) eq 'HASH') {              $bcc_curr_hdr = &mt('Bcc: community participants with current access');
            $statushash->{'active'} = 1;          } else {
        }              $bcc_curr_hdr = &mt('Bcc: course members with current access');
           }
           $result .= '<fieldset id="LC_activeusers"><legend>'
                      .'<b>'.$bcc_curr_hdr.'</b>'
                      .'</legend>'
                      .'<form name="activeusers">';
           $result .= $tmptext.'</form></fieldset><br />';
           if (ref($statushash) eq 'HASH') {
               $statushash->{'active'} = 1;
           }
     }      }
     if ($tmptext = &Apache::lonselstudent::render_student_list($expired_members,      if ($tmptext = &Apache::lonselstudent::render_student_list($expired_members,
                                                                "previoususers",                                                                 "previoususers",
Line 536  sub discourse { Line 546  sub discourse {
                                                                \%defaultUsers,                                                                 \%defaultUsers,
                                                                1, "selectedusers",0,'email')                                                                 1, "selectedusers",0,'email')
        ) {         ) {
        $result .= '<fieldset id="LC_previoususers"><legend><b>'.&mt('Bcc: course members with expired access').'</b></legend><form name="futureusers">';          my $bcc_prev_hdr;
           if ($crstype eq 'Community') {
               $bcc_prev_hdr = &mt('Bcc: community participants with expired access');
           } else {
               $bcc_prev_hdr = &mt('Bcc: course members with expired access');
           }
           $result .= '<fieldset id="LC_previoususers"><legend>'
                      .'<b>'.$bcc_prev_hdr.'</b>'
                      .'</legend>'
                      .'<form name="previoususers">';
        $result .= $tmptext.'</form></fieldset><br />';         $result .= $tmptext.'</form></fieldset><br />';
        if (ref($statushash) eq 'HASH') {         if (ref($statushash) eq 'HASH') {
            $statushash->{'previous'} = 1;             $statushash->{'previous'} = 1;
        }         }
   
     }      }
     if ($tmptext = &Apache::lonselstudent::render_student_list($future_members,      if ($tmptext = &Apache::lonselstudent::render_student_list($future_members,
                                                                "futureusers",                                                                 "futureusers",
Line 549  sub discourse { Line 567  sub discourse {
                                                                \%defaultUsers,                                                                 \%defaultUsers,
                                                                1, "selectedusers",0,'email')                                                                 1, "selectedusers",0,'email')
        ) {         ) {
        $result .= '<fieldset id="LC_futureusers"><legend><b>'.&mt('Bcc: course members with future access').'</b></legend><form name="previoususers">';          my $bcc_future_hdr;
           if ($crstype eq 'Community') {
               $bcc_future_hdr = &mt('Bcc: community participants with future access');
           } else {
               $bcc_future_hdr = &mt('Bcc: course members with future access');
           }
           $result .= '<fieldset id="LC_futureusers"><legend>'
                      .'<b>'.$bcc_future_hdr.'</b>'
                      .'</legend>'
                      .'<form name="futureusers">';
        $result .= $tmptext.'</form></fieldset>';         $result .= $tmptext.'</form></fieldset>';
        if (ref($statushash) eq 'HASH') {         if (ref($statushash) eq 'HASH') {
            $statushash->{'future'} = 1;             $statushash->{'future'} = 1;
        }         }
   
     }      }
     return $result;      return $result;
 }  }
Line 720  sub groupmail_header { Line 746  sub groupmail_header {
     }      }
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     if ($refarg) {      if ($refarg) {
           my $brtitle;
           if (&Apache::loncommon::course_type() eq 'Community') {
               $brtitle = 'View community groups';  
           } else {
               $brtitle = 'View course groups';
           }
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>"/adm/coursegroups",              ({href=>"/adm/coursegroups",
               text=>"Groups",                text=>"Groups",
               title=>"View course groups"});                title=>$brtitle});
     }      }
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg",          ({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg",
Line 818  sub discrit { Line 850  sub discrit {
     }      }
     # Check to see if there were any messages.      # Check to see if there were any messages.
     if ($result eq '') {      if ($result eq '') {
         $result = "<h2>".&mt('You have no critical messages.')."</h2>".          $result =
     '<a href="/adm/roles">'.&mt('Select a course').'</a><br />'.              '<p class="LC_info">'.
               &mt('You have no critical messages.').
               '</p>'.
               '<a href="/adm/roles">'.&mt('Select a course').'</a><br />'.
             '<a href="/adm/email">'.&mt('Communicate').'</a>';              '<a href="/adm/email">'.&mt('Communicate').'</a>';
     } else {      } else {
         $r->print($header);          $r->print($header);
Line 1021  ENDDISHEADER Line 1056  ENDDISHEADER
     my $fsqs='&amp;folder='.$folder;      my $fsqs='&amp;folder='.$folder;
     my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);      my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);
     my $totalnumber=$#temp+1;      my $totalnumber=$#temp+1;
   
     if ($totalnumber < 1) {      if ($totalnumber < 1) {
           $r->print('<p class="LC_info">');
         if ($msgstatus eq '') {          if ($msgstatus eq '') {
     $r->print('<h2>'.&mt('Empty Folder').'</h2>');              $r->print(&mt('There are no messages in this folder.'));
         } elsif ($msgstatus eq 'replied') {          } elsif ($msgstatus eq 'replied') {
             $r->print('<h2>'.&mt('You have not replied to any messages in this folder.').'</h2>');              $r->print(&mt('You have not replied to any messages in this folder.'));
         } else {           } else { 
             $r->print('<h2>'.&mt('There are no '.lc($statushash{$msgstatus}).' messages in this folder.').'</h2>');              $r->print(&mt('There are no '.lc($statushash{$msgstatus}).' messages in this folder.'));
         }          }
           $r->print('</p>');
         if ($numblocked > 0) {          if ($numblocked > 0) {
             $r->print(&blocked_in_folder($numblocked,$startblock,$endblock,              $r->print(&blocked_in_folder($numblocked,$startblock,$endblock,
                                          \%setters));                                           \%setters));
         }          }
  return;          return;
     }      }
     my $interdis = $env{'form.interdis'};      my $interdis = $env{'form.interdis'};
     my $number=int($totalnumber/$interdis);      my $number=int($totalnumber/$interdis);
Line 1300  sub compout { Line 1338  sub compout {
     if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})      if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})
  || &Apache::lonnet::allowed('srm',$env{'request.course.id'}.   || &Apache::lonnet::allowed('srm',$env{'request.course.id'}.
     '/'.$env{'request.course.sec'})) {      '/'.$env{'request.course.sec'})) {
            my $crstype = &Apache::loncommon::course_type();
  my $crithelp = Apache::loncommon::help_open_topic("Course_Critical_Message");   my $crithelp = Apache::loncommon::help_open_topic("Course_Critical_Message");
            my $rsstxt;
            if (&Apache::loncommon::course_type() eq 'Community') {
                $rsstxt = &mt('Include in community RSS newsfeed');
            } else {
                $rsstxt = &mt('Include in course RSS newsfeed');
            }
          $dispcrit=           $dispcrit=
  '<span class="LC_nobreak"><label><input type="checkbox" name="critmsg" /> '.&mt('Send as critical message').'.</label>'.$crithelp.'&nbsp;&nbsp;'.&mt('Require return receipt?').'<label><input type="radio" name="sendbck" value="1" />'.&mt('Yes').'</label>&nbsp;&nbsp;<label><input type="radio" name="sendbck" value="" checked="checked" />'.&mt('No').'</label></span><br />'.   '<span class="LC_nobreak"><label><input type="checkbox" name="critmsg" /> '.&mt('Send as critical message').'.</label>'.$crithelp.'&nbsp;&nbsp;'.&mt('Require return receipt?').'<label><input type="radio" name="sendbck" value="1" />'.&mt('Yes').'</label>&nbsp;&nbsp;<label><input type="radio" name="sendbck" value="" checked="checked" />'.&mt('No').'</label></span><br />'.
  '<label><input type="checkbox" name="permanent" /> '.   '<label><input type="checkbox" name="permanent" /> '.
 &mt('Send copy to permanent e-mail address (if known)').'</label><br />'.  &mt('Send copy to permanent e-mail address (if known)').'</label><br />'.
 '<label><input type="checkbox" name="rsspost" /> '.  '<label><input type="checkbox" name="rsspost" /> '.
   &mt('Include in course RSS newsfeed').'</label><br />';    $rsstxt.'</label><br />';
     }      }
     if ($broadcast ne 'group') {      if ($broadcast ne 'group') {
         if (&Apache::lonnet::allowed('dff',$env{'request.course.id'}) ||          if (&Apache::lonnet::allowed('dff',$env{'request.course.id'}) ||
             &Apache::lonnet::allowed('dff',$env{'request.course.id'}.              &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
                                      '/'.$env{'request.course.sec'})) {                                       '/'.$env{'request.course.sec'})) {
               my $rectxt;
               if (&Apache::loncommon::course_type() eq 'Community') {
                   $rectxt = &mt("Include in community's 'User records' for recipient(s)");
               } else {
                   $rectxt = &mt("Include in course's 'User records' for recipient(s)");
               }
             $dispcrit.='<label>'.              $dispcrit.='<label>'.
                        '<input type="checkbox" name="courserecord" value="1" /> '.                         '<input type="checkbox" name="courserecord" value="1" /> '.
                        &mt("Include in course's 'User records' for recipient(s)").                         $rectxt.
                        '</label><br />';                         '</label><br />';
         }          }
     }      }
Line 1788  sub disfacetoface { Line 1838  sub disfacetoface {
     foreach my $key (sort(keys(%records))) {      foreach my $key (sort(keys(%records))) {
         my %content=&Apache::lonmsg::unpackagemsg($records{$key});          my %content=&Apache::lonmsg::unpackagemsg($records{$key});
         next if ($content{'senderdomain'} eq '');          next if ($content{'senderdomain'} eq '');
  &Apache::lonfeedback::newline_to_br(\$content{'message'});          if (!&Apache::lonfeedback::contains_block_html($content{'message'})) {
               &Apache::lonfeedback::newline_to_br(\$content{'message'});
           }
         if ($content{'subject'}=~/^Record/) {          if ($content{'subject'}=~/^Record/) {
     $result.='<h3>'.&mt('Record').'</h3>';      $result.='<h3>'.&mt('Record').'</h3>';
         } elsif ($content{'subject'}=~/^Broadcast/) {          } elsif ($content{'subject'}=~/^Broadcast/) {
Line 1914  sub facetoface { Line 1966  sub facetoface {
              .&Apache::lonhtmlcommon::end_pick_box()               .&Apache::lonhtmlcommon::end_pick_box()
              .'<br />'               .'<br />'
              .'<input type="submit" value="'.$lt{'subm'}.'" />'               .'<input type="submit" value="'.$lt{'subm'}.'" />'
                .'</form>'
     );      );
   
     if (($stage ne 'query') &&      if (($stage ne 'query') &&
Line 1963  sub examblock { Line 2016  sub examblock {
  $r->print('Not allowed');   $r->print('Not allowed');
  return;   return;
     }      }
     my $usertype = (&Apache::loncommon::course_type() eq 'Community') ? 'members'      my $usertype;
                                                           : 'students';      my $crstype = &Apache::loncommon::course_type();
       if ($crstype eq 'Community') {
           $usertype = 'members';
       } else {
    $usertype = 'students';
       }
       my $lctype = lc($crstype);
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
             'comb' => 'Communication Blocking',              'comb' => 'Communication Blocking',
             'cbds' => 'Communication blocking during scheduled exams',              'cbds' => 'Communication blocking during scheduled exams',
             'desc' => "You can use communication blocking to prevent $usertype enrolled in this course from displaying LON-CAPA messages sent by other $usertype during an online exam. As blocking of communication could potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA course, please be careful that you select the correct start and end times for your scheduled exam when setting or modifying these parameters.",              'desc' => "You can use communication blocking to prevent $usertype enrolled in this $lctype from displaying LON-CAPA messages sent by other $usertype during an online exam. As blocking of communication could potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA course or community, please be careful that you select the correct start and end times for your scheduled exam when setting or modifying these parameters.",
              'mecb' => 'Modify existing communication blocking periods',               'mecb' => 'Modify existing communication blocking periods',
              'ncbc' => 'No communication blocks currently saved',               'ncbc' => 'No communication blocks currently saved',
              'stor' => 'Save',               'stor' => 'Save',
Line 2145  sub display_blocker_status { Line 2204  sub display_blocker_status {
     <th>$ltext->{'setb'}</th>      <th>$ltext->{'setb'}</th>
     <th>$ltext->{'even'}</th>      <th>$ltext->{'even'}</th>
     <th>$ltext->{'blck'}</th>      <th>$ltext->{'blck'}</th>
     <th>$ltext->{'actn'}?</th>      <th>$ltext->{'actn'}</th>
   </tr>    </tr>
 END  END
     foreach my $record (sort(keys(%{$records}))) {      foreach my $record (sort(keys(%{$records}))) {
Line 2175  END Line 2234  END
             if ($blocks->{$block} eq 'on') {              if ($blocks->{$block} eq 'on') {
                 $blockstatus = 'checked="checked"';                  $blockstatus = 'checked="checked"';
             }              }
             $r->print('<label><input type="checkbox" name="'.$block.'_'.$parmcount.'" '.$blockstatus.' value="1" />'.$types->{$block}.'</label><br />');              $r->print('<span class="LC_nobreak"><label><input type="checkbox" name="'.$block.'_'.$parmcount.'" '.$blockstatus.' value="1" />'.$types->{$block}.'</label></span><br />');
         }          }
         $r->print(<<"END");          $r->print(<<"END");
         </td>                </td>
         <td><label>$lt{'modi'}?&nbsp;<input type="checkbox" name="modify_$parmcount" /></label><br /><label>$lt{'canc'}?&nbsp;&nbsp;<input type="checkbox" name="cancel_$parmcount" /></label>          <td><span class="LC_nobreak"><label>
           <input type="checkbox" name="modify_$parmcount" />$lt{'modi'}
           </label></span><br /><span class="LC_nobreak">
           <label>
           <input type="checkbox" name="cancel_$parmcount" />$lt{'canc'}
           </label></span>
 END  END
         $r->print(&Apache::loncommon::end_data_table_row());          $r->print(&Apache::loncommon::end_data_table_row());
         $parmcount++;          $parmcount++;
Line 2216  END Line 2280  END
      <th>$ltext->{'dura'}</th>       <th>$ltext->{'dura'}</th>
      <th>$ltext->{'even'} $lt{'exam'}</th>       <th>$ltext->{'even'} $lt{'exam'}</th>
      <th>$ltext->{'blck'}</th>       <th>$ltext->{'blck'}</th>
      <th>$ltext->{'actn'}?</th>       <th>$ltext->{'actn'}</th>
    </tr>     </tr>
 END  END
     $r->print(&Apache::loncommon::start_data_table_row());      $r->print(&Apache::loncommon::start_data_table_row());
Line 2226  END Line 2290  END
      <td>       <td>
 END  END
     foreach my $block (@{$typeorder}) {      foreach my $block (@{$typeorder}) {
         $r->print('<label><input type="checkbox" name="'.$block.'_'.$parmcount.'" value="1" />'.$types->{$block}.'</label><br />');          $r->print('<span class="LC_nobreak"><label><input type="checkbox" name="'.$block.'_'.$parmcount.'" value="1" />'.$types->{$block}.'</label></span><br />');
      }       }
      $r->print(<<"END");       $r->print(<<"END");
      </td>        </td>
      <td><label>$lt{'addb'}?&nbsp;<input type="checkbox" name="add_$parmcount" value="1" /></label></td>       <td><span class="LC_nobreak"><label>
        <input type="checkbox" name="add_$parmcount" value="1" />$lt{'addb'}
        </label></span></td>
 END  END
     $r->print(&Apache::loncommon::end_data_table_row());      $r->print(&Apache::loncommon::end_data_table_row());
     $r->print(&Apache::loncommon::end_data_table());      $r->print(&Apache::loncommon::end_data_table());
Line 2266  sub displaymessage { Line 2332  sub displaymessage {
     if ( $blocked{$msgid} eq 'ON' ) {      if ( $blocked{$msgid} eq 'ON' ) {
         &printheader($r,'/adm/email',&mt('Display a Message'));          &printheader($r,'/adm/email',&mt('Display a Message'));
         $r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));          $r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));
         &build_block_table($r,$startblock,$endblock,\%setters);          $r->print(&Apache::loncommon::build_block_table($startblock,$endblock,\%setters));
         return;          return;
     }      }
     if ($msgstatus eq '') {      if ($msgstatus eq '') {
Line 2828  sub header { Line 2894  sub header {
     if ($baseurl) {      if ($baseurl) {
  $extra .= "<base href=\"".&Apache::lonnet::absolute_url()."/$baseurl\" />";   $extra .= "<base href=\"".&Apache::lonnet::absolute_url()."/$baseurl\" />";
     }      }
     $r->print(&Apache::loncommon::start_page('Communication',      $r->print(&Apache::loncommon::start_page('Messages',
   $extra));    $extra));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs      $r->print(&Apache::lonhtmlcommon::breadcrumbs
       (($title?$title:'Send and Receive Messages')));        (($title?$title:'Send and display messages')));
 }  }
   
 # ---------------------------------------------------------------- Print header  # ---------------------------------------------------------------- Print header
Line 3084  sub sendoffmail { Line 3150  sub sendoffmail {
     my ($recuname,$recdomain)=split(/\:/,$address);      my ($recuname,$recdomain)=split(/\:/,$address);
             my $msgtxt = $savemsg;              my $msgtxt = $savemsg;
             if ($toaddr{$address}) {              if ($toaddr{$address}) {
         $msgtxt.='<hr />'.$toaddr{$address};          $msgtxt.="\n".'<hr />'."\n".$toaddr{$address};
             }              }
     my @thismsg;      my @thismsg;
     if ($msgtype eq 'critical') {      if ($msgtype eq 'critical') {
Line 3209  sub sendoffmail { Line 3275  sub sendoffmail {
                 $r->print($message);                  $r->print($message);
             }              }
         }          }
       } else {
           &printheader($r,'','Messages cancelled.');
           return 'cancelled';
     }      }
     return $sendstatus;      return $sendstatus;
 }  }
Line 3244  sub handler { Line 3313  sub handler {
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>"/adm/communicate",          ({href=>"/adm/communicate",
           text=>"Communication/Messages",            text=>"Messages",
           faq=>12,bug=>'Communication Tools',});            faq=>12,bug=>'Communication Tools',});
   
 # ------------------------------------------------------------------ Get Folder  # ------------------------------------------------------------------ Get Folder

Removed from v.1.124.4.4  
changed lines
  Added in v.1.124.4.11


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