Diff for /loncom/interface/lonfeedback.pm between versions 1.90 and 1.95

version 1.90, 2004/06/03 20:28:22 version 1.95, 2004/06/23 17:42:58
Line 37  use Apache::lontexconvert(); Line 37  use Apache::lontexconvert();
 use Apache::lonlocal; # must not have ()  use Apache::lonlocal; # must not have ()
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
   
 sub discussion_closed {  sub discussion_open {
     my ($status)=@_;      my ($status)=@_;
     if (!($status eq 'CAN_ANSWER' || $status eq 'CANNOT_ANSWER'      if (defined($status) &&
    !($status eq 'CAN_ANSWER' || $status eq 'CANNOT_ANSWER'
   || $status eq 'OPEN')) {    || $status eq 'OPEN')) {
  return '1';   return 0;
     }      }
     my $close=&Apache::lonnet::EXT('resource.0.discussend');      my $close=&Apache::lonnet::EXT('resource.0.discussend');
     if (defined($close) && $close ne '' && $close < time) {      if (defined($close) && $close ne '' && $close < time) {
  return '1'   return 0;
     }      }
     return 0;      return 1;
   }
   
   sub discussion_visible {
       my ($status)=@_;
       if (not &discussion_open($status)) {
    my $hidden=&Apache::lonnet::EXT('resource.0.discusshide');
    if (lc($hidden) eq 'yes' or $hidden eq '' or !defined($hidden))  {
       return 0;
    }
       }
       return 1;
 }  }
   
 sub list_discussion {  sub list_discussion {
     my ($mode,$status,$symb)=@_;      my ($mode,$status,$symb)=@_;
   
     if (&discussion_closed($status)) {      my $outputtarget=$ENV{'form.grade_target'};
  return '';      if (not &discussion_visible($status)) { return ''; }
     }  
     my @bgcols = ("#cccccc","#eeeeee");      my @bgcols = ("#cccccc","#eeeeee");
     my $discussiononly=0;      my $discussiononly=0;
     if ($mode eq 'board') { $discussiononly=1; }      if ($mode eq 'board') { $discussiononly=1; }
Line 259  sub list_discussion { Line 270  sub list_discussion {
     $sender='<i>'.$screenname.'</i>';      $sender='<i>'.$screenname.'</i>';
  }   }
     }      }
     if (!&discusion_closed($status) &&      if (&discussion_open($status) &&
  &Apache::lonnet::allowed('pch',   &Apache::lonnet::allowed('pch',
  $ENV{'request.course.id'}.   $ENV{'request.course.id'}.
  ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {   ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
Line 352  sub list_discussion { Line 363  sub list_discussion {
   
     if ($visible) {      if ($visible) {
 # Print the discusssion  # Print the discusssion
  $discussion.='<table bgcolor="#AAAAAA" cellpadding="2" cellspacing="2" border="0">';   if ($outputtarget ne 'tex') {
  my $colspan=$maxdepth+1;      $discussion.='<table bgcolor="#AAAAAA" cellpadding="2" cellspacing="2" border="0">';
         $discussion .= '<tr bgcolor="#FFFFFF"><td colspan="'.$colspan.'" valign="top">'.      my $colspan=$maxdepth+1;
         '<table border="0" bgcolor="#FFFFFF" width="100%" cellspacing="2" cellpadding="2">'.      $discussion .= '<tr bgcolor="#FFFFFF"><td colspan="'.$colspan.'" valign="top">'.
         '<tr><td align="left"><b>'.$lt{'cuse'}.'</b></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="right"><b>'.$lt{'chgt'}.'</b></td></tr>'.   '<table border="0" bgcolor="#FFFFFF" width="100%" cellspacing="2" cellpadding="2">'.
         '<tr><td>'.$lt{'disa'}.':&nbsp;<i>'.$currdisp.'</i></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="right"><a href="'.$displink.'">'.$dispchange.'</a></td></tr>'.   '<tr><td align="left"><b>'.$lt{'cuse'}.'</b></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="right"><b>'.$lt{'chgt'}.'</b></td></tr>'.
         '<tr><td>'.$lt{'npce'}.':&nbsp;<i>'.$currmark.'</i></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="right"><a href="'.$marklink.'">'.$markchange.'</a></td></tr>'.   '<tr><td>'.$lt{'disa'}.':&nbsp;<i>'.$currdisp.'</i></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="right"><a href="'.$displink.'">'.$dispchange.'</a></td></tr>'.
         '</table></td></tr>'.   '<tr><td>'.$lt{'npce'}.':&nbsp;<i>'.$currmark.'</i></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="right"><a href="'.$marklink.'">'.$markchange.'</a></td></tr>'.
         '<tr><td bgcolor="#DDDDBB" colspan="'.$colspan.'">'.   '</table></td></tr>'.
         '<table border="0" width="100%" bgcolor="#DDDDBB"><tr>';   '<tr><td bgcolor="#DDDDBB" colspan="'.$colspan.'">'.
         if ($visible>2) {   '<table border="0" width="100%" bgcolor="#DDDDBB"><tr>';
     $discussion.='<td align="left">'.      if ($visible>2) {
             '<a href="/adm/feedback?threadedon='.$ressymb;   $discussion.='<td align="left">'.
             if ($newpostsflag) {      '<a href="/adm/feedback?threadedon='.$ressymb;
                 $discussion .= '&previous='.$prevread;   if ($newpostsflag) {
             }      $discussion .= '&previous='.$prevread;
             $discussion .='">'.&mt('Threaded View').'</a>&nbsp;&nbsp;'.   }
             '<a href="/adm/feedback?threadedoff='.$ressymb;   $discussion .='">'.&mt('Threaded View').'</a>&nbsp;&nbsp;'.
             if ($newpostsflag) {      '<a href="/adm/feedback?threadedoff='.$ressymb;
                 $discussion .= '&previous='.$prevread;   if ($newpostsflag) {
             }      $discussion .= '&previous='.$prevread;
             $discussion .='">'.&mt('Chronological View').'</a>&nbsp;&nbsp;</td>';   }
  }    $discussion .='">'.&mt('Chronological View').'</a>&nbsp;&nbsp;</td>';
         if ($newpostsflag) {      } 
             if (!$markondisp) {      if ($newpostsflag) {
                 $discussion .='<td align="right"><a href="/adm/feedback?markread='.$ressymb.'">'.&mt('Mark new posts as read').'</a>&nbsp;&nbsp;';   if (!$markondisp) {
             } else {      $discussion .='<td align="right"><a href="/adm/feedback?markread='.$ressymb.'">'.&mt('Mark new posts as read').'</a>&nbsp;&nbsp;';
                 $discussion .= '<td>&nbsp;</td>';   } else {
             }      $discussion .= '<td>&nbsp;</td>';
         } else {   }
             $discussion .= '<td>&nbsp;</td>';      } else {
         }   $discussion .= '<td>&nbsp;</td>';
         $discussion .= '</tr></table></td></tr>';      }
       $discussion .= '</tr></table></td></tr>';
    } else {
       $discussion.='\vskip 0 mm\noindent\makebox[2 cm][b]{\hrulefill}'.
                            '\textbf{DISCUSSIONS}\makebox[2 cm][b]{\hrulefill}'.
                            '\vskip 0 mm\noindent\textbf{'.$lt{'cuse'}.'}:\vskip 0 mm'.
                            '\noindent\textbf{'.$lt{'disa'}.'}: \textit{'.$currdisp.'}\vskip 0 mm'.
                            '\noindent\textbf{'.$lt{'npce'}.'}: \textit{'.$currmark.'}';
    }
         my $numhidden = keys %notshown;          my $numhidden = keys %notshown;
         if ($numhidden > 0) {          if ($numhidden > 0) {
             my $colspan = $maxdepth+1;              my $colspan = $maxdepth+1;
Line 400  sub list_discussion { Line 418  sub list_discussion {
         }          }
  foreach (sort { $a <=> $b } keys %alldiscussion) {   foreach (sort { $a <=> $b } keys %alldiscussion) {
             unless ($notshown{$alldiscussion{$_}} eq '1') {              unless ($notshown{$alldiscussion{$_}} eq '1') {
         $discussion.="\n<tr>";                  if ($outputtarget ne 'tex') {
       $discussion.="\n<tr>";
    } else {
       $discussion.='\vskip 0 mm\noindent\makebox[2 cm][b]{\hrulefill}';
    }
         my $thisdepth=$depth[$alldiscussion{$_}];          my $thisdepth=$depth[$alldiscussion{$_}];
         for (1..$thisdepth) {                  if ($outputtarget ne 'tex') {
     $discussion.='<td>&nbsp;&nbsp;&nbsp;</td>';      for (1..$thisdepth) {
         }   $discussion.='<td>&nbsp;&nbsp;&nbsp;</td>';
       }
    }
         my $colspan=$maxdepth-$thisdepth+1;          my $colspan=$maxdepth-$thisdepth+1;
                 $discussion.='<td  bgcolor="'.$bgcols[$newitem{$alldiscussion{$_}}].'" colspan="'.$colspan.'">'.                  if ($outputtarget ne 'tex') {
       $discussion.='<td  bgcolor="'.$bgcols[$newitem{$alldiscussion{$_}}].'" colspan="'.$colspan.'">'.
                              $discussionitems[$alldiscussion{$_}].                               $discussionitems[$alldiscussion{$_}].
                      '</td></tr>';                       '</td></tr>';
    } else {
       #cleanup block
       $discussionitems[$alldiscussion{$_}]=~s/<table([^>]*)>/<table TeXwidth="90 mm">/;
       $discussionitems[$alldiscussion{$_}]=~s/<tr([^>]*)><td([^>]*)>/<tr><td TeXwidth="20 mm" align="left">/;
                       my $threadinsert='';
                       if ($thisdepth > 0) {
    $threadinsert='<br /><strong>Reply: '.$thisdepth.'</strong>';
       }
       $discussionitems[$alldiscussion{$_}]=~s/<\/td><td([^>]*)>/$threadinsert<\/td><td TeXwidth="65 mm" align="left">/;
       $discussionitems[$alldiscussion{$_}]=~s/<a([^>]+)>(Hide|Delete|Reply|Submissions)<\/a>//g;
                       $discussionitems[$alldiscussion{$_}]=~s/(<b>|<\/b>|<\/a>|<a([^>]+)>)//g;
       $discussion.=&Apache::lonxml::xmlparse('','tex',$discussionitems[$alldiscussion{$_}]);
    }
     }      }
         }          }
         $discussion.='</table><br /><br />';   if ($outputtarget ne 'tex') {
       $discussion.='</table><br /><br />';
    }
     }      }
     if ($discussiononly) {      if ($discussiononly) {
  $discussion.=(<<ENDDISCUSS);   $discussion.=(<<ENDDISCUSS);
Line 424  sub list_discussion { Line 464  sub list_discussion {
 <font size="1">Note: in anonymous discussion, your name is visible only to  <font size="1">Note: in anonymous discussion, your name is visible only to
 course faculty</font><br />  course faculty</font><br />
 <b>Title:</b>&nbsp;<input type="text" name="subject" value="" size="30" /><br /><br />  <b>Title:</b>&nbsp;<input type="text" name="subject" value="" size="30" /><br /><br />
 <textarea name="comment" cols="60" rows="12" wrap="hard"></textarea>  <textarea name="comment" cols="80" rows="14" wrap="hard"></textarea>
 <p>  <p>
 Attachment (128 KB max size): <input type="file" name="attachment" />  Attachment (128 KB max size): <input type="file" name="attachment" />
 </p>  </p>
 </form>  </form>
 ENDDISCUSS  ENDDISCUSS
       $discussion.=&generate_preview_button();          if ($outputtarget ne 'tex') {
       $discussion.=&generate_preview_button();
    }
     } else {      } else {
  if (!&discussion_closed($status) &&   if (&discussion_open($status) &&
     &Apache::lonnet::allowed('pch',      &Apache::lonnet::allowed('pch',
    $ENV{'request.course.id'}.     $ENV{'request.course.id'}.
  ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {   ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
     $discussion.='<table bgcolor="#BBBBBB"><tr><td><a href="/adm/feedback?replydisc='.      if ($outputtarget ne 'tex') {
  $symb.':::" '.$target.'>'.   $discussion.='<table bgcolor="#BBBBBB"><tr><td><a href="/adm/feedback?replydisc='.
  '<img src="/adm/lonMisc/chat.gif" border="0" />'.      $symb.':::" '.$target.'>'.
  &mt('Post Discussion').'</a></td></tr></table>';      '<img src="/adm/lonMisc/chat.gif" border="0" />'.
       &mt('Post Discussion').'</a></td></tr></table>';
       }
  }   }
     }      }
    return $discussion;     return $discussion;
Line 473  sub mail_screen { Line 517  sub mail_screen {
   }    }
   my $latexHelp=&Apache::loncommon::helpLatexCheatsheet();    my $latexHelp=&Apache::loncommon::helpLatexCheatsheet();
   my $htmlheader=&Apache::lonhtmlcommon::htmlareaheaders();    my $htmlheader=&Apache::lonhtmlcommon::htmlareaheaders();
     my $onsubmit='';
     if ((&Apache::lonhtmlcommon::htmlareabrowser()) &&
         (!&Apache::lonhtmlcommon::htmlareablocked())) {
         $onsubmit='document.mailform.onsubmit();';
     }
   my $send=&mt('Send');    my $send=&mt('Send');
   $r->print(<<ENDDOCUMENT);    $r->print(<<ENDDOCUMENT);
 <html>  <html>
Line 516  $htmlheader Line 565  $htmlheader
         }          }
   
         if (rec) {          if (rec) {
     document.mailform.onsubmit();              $onsubmit
     document.mailform.submit();      document.mailform.submit();
         } else {          } else {
             alert('Please check a feedback type.');              alert('Please check a feedback type.');
Line 540  $quote Line 589  $quote
 $latexHelp  $latexHelp
 Title: <input type="text" name="subject" size="30" value="$subject" /></p>  Title: <input type="text" name="subject" size="30" value="$subject" /></p>
 <p>  <p>
 <textarea name="comment" cols="60" rows="10" wrap="hard">  <textarea name="comment" id="comment" cols="60" rows="10" wrap="hard">
 </textarea></p>  </textarea></p>
 <p>  <p>
 Attachment (128 KB max size): <input type="file" name="attachment" />  Attachment (128 KB max size): <input type="file" name="attachment" />
Line 552  Attachment (128 KB max size): <input typ Line 601  Attachment (128 KB max size): <input typ
 </form>  </form>
 ENDDOCUMENT  ENDDOCUMENT
 $r->print(&generate_preview_button().  $r->print(&generate_preview_button().
 &Apache::lonhtmlcommon::htmlareaactive().  &Apache::lonhtmlcommon::htmlareaselectactive('comment').
 '</body></html>');  '</body></html>');
 }  }
   
Line 656  sub screen_header { Line 705  sub screen_header {
  }   }
     }      }
     if ($ENV{'request.course.id'}) {      if ($ENV{'request.course.id'}) {
  if (not &discussion_closed() &&   if (&discussion_open() &&
     &Apache::lonnet::allowed('pch',      &Apache::lonnet::allowed('pch',
      $ENV{'request.course.id'}.       $ENV{'request.course.id'}.
      ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {       ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
Line 833  sub send_msg { Line 882  sub send_msg {
 sub adddiscuss {  sub adddiscuss {
     my ($symb,$email,$anon,$attachmenturl,$subject)=@_;      my ($symb,$email,$anon,$attachmenturl,$subject)=@_;
     my $status='';      my $status='';
     if (not &discussion_closed() &&      if (&discussion_open() &&
  &Apache::lonnet::allowed('pch',$ENV{'request.course.id'}.   &Apache::lonnet::allowed('pch',$ENV{'request.course.id'}.
         ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {          ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
   

Removed from v.1.90  
changed lines
  Added in v.1.95


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