Diff for /loncom/interface/lonfeedback.pm between versions 1.51 and 1.61

version 1.51, 2003/09/03 18:09:50 version 1.61, 2003/09/19 16:12:50
Line 52  use Apache::lonmsg(); Line 52  use Apache::lonmsg();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lontexconvert();  use Apache::lontexconvert();
   
   sub list_discussion {
       my ($mode,$status,$symb)=@_;
       my $discussiononly=0;
       if ($mode eq 'board') { $discussiononly=1; }
       unless ($ENV{'request.course.id'}) { return ''; }
       my $crs='/'.$ENV{'request.course.id'};
       if ($ENV{'request.course.sec'}) {
    $crs.='_'.$ENV{'request.course.sec'};
       }                 
       $crs=~s/\_/\//g;
       unless ($symb) {
    $symb=&Apache::lonnet::symbread();
       }
       unless ($symb) { return ''; }
       my $seeid=&Apache::lonnet::allowed('rin',$crs);
       my $viewgrades=&Apache::lonnet::allowed('vgr',$crs);
       my $discussion='';
       my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
       if ($contrib{'version'}) {
    unless ($discussiononly) {
       $discussion.=
    '<address><hr />';
    }
    my $idx;
    for ($idx=1;$idx<=$contrib{'version'};$idx++) {
       my $hidden=($contrib{'hidden'}=~/\.$idx\./);
       my $deleted=($contrib{'deleted'}=~/\.$idx\./);
       unless ((($hidden) && (!$seeid)) || ($deleted)) {
    my $message=$contrib{$idx.':message'};
    $message=~s/\n/\<br \/\>/g;
    $message=&Apache::lontexconvert::msgtexconverted($message);
    if ($contrib{$idx.':attachmenturl'}) {
       my ($fname,$ft)
                           =($contrib{$idx.':attachmenturl'}=~/\/(\w+)\.(\w+)$/);
       $message.='<p>Attachment: <a href="'.
    &Apache::lonnet::tokenwrapper(
                                                $contrib{$idx.':attachmenturl'}).
    '"><tt>'.$fname.'.'.$ft.'</tt></a>';
    }
    if ($message) {
       if ($hidden) {
    $message='<font color="#888888">'.$message.'</font>';
       }
       my $screenname=&Apache::loncommon::screenname(
       $contrib{$idx.':sendername'},
       $contrib{$idx.':senderdomain'});
       my $plainname=&Apache::loncommon::nickname(
       $contrib{$idx.':sendername'},
       $contrib{$idx.':senderdomain'});
       
       my $sender='Anonymous';
       if ((!$contrib{$idx.':anonymous'}) || ($seeid)) {
    $sender=&Apache::loncommon::aboutmewrapper(
    $plainname,
    $contrib{$idx.':sendername'},
    $contrib{$idx.':senderdomain'}).' ('.
    $contrib{$idx.':sendername'}.' at '.
    $contrib{$idx.':senderdomain'}.')';
    if ($contrib{$idx.':anonymous'}) {
       $sender.=' [anonymous] '.
    $screenname;
    }
    if ($seeid) {
       if ($hidden) {
    $sender.=' <a href="/adm/feedback?unhide='.
       $symb.':::'.$idx.'">Make Visible</a>';
       } else {
    $sender.=' <a href="/adm/feedback?hide='.
       $symb.':::'.$idx.'">Hide</a>';
       }                     
       $sender.=' <a href="/adm/feedback?deldisc='.
    $symb.':::'.$idx.'">Delete</a>';
    }
       } else {
    if ($screenname) {
       $sender='<i>'.$screenname.'</i>';
    }
       }
       my $vgrlink;
       if ($viewgrades) {
    $vgrlink=&Apache::loncommon::submlink('Submissions',
               $contrib{$idx.':sendername'},$contrib{$idx.':senderdomain'},$symb);
       }
       $discussion.='<p><b>'.$sender.'</b> '.$vgrlink.' ('.
    localtime($contrib{$idx.':timestamp'}).
    '):<blockquote>'.$message.
    '</blockquote></p>';
           }
       } 
    }
    unless ($discussiononly) {
       $discussion.='</address>';
    }
       }
       if ($discussiononly) {
    $discussion.=(<<ENDDISCUSS);
   <form action="/adm/feedback" method="post" name="mailform" enctype="multipart/form-data">
   <input type="submit" name="discuss" value="Post Discussion" />
   <input type="submit" name="anondiscuss" value="Post Anonymous Discussion" />
   <input type="hidden" name="symb" value="$symb" />
   <input type="hidden" name="sendit" value="true" />
   <br />
   <font size="1">Note: in anonymous discussion, your name is visible only to
   course faculty</font><br />
   <textarea name=comment cols=60 rows=10 wrap=hard></textarea>
   <p>
   Attachment (128 KB max size): <input type="file" name="attachment" />
   </p>
   </form>
   ENDDISCUSS
         $discussion.=&generate_preview_button();
      }
      return $discussion;
   }
   
 sub mail_screen {  sub mail_screen {
   my ($r,$feedurl,$options) = @_;    my ($r,$feedurl,$options) = @_;
   my $bodytag=&Apache::loncommon::bodytag('Resource Feedback and Discussion',    my $bodytag=&Apache::loncommon::bodytag('Resource Feedback and Discussion',
Line 248  sub clear_out_html { Line 365  sub clear_out_html {
       # allows <B> <I> <P> <A> <LI> <OL> <UL> <EM> <BR> <TT> <STRONG>         # allows <B> <I> <P> <A> <LI> <OL> <UL> <EM> <BR> <TT> <STRONG> 
       # <BLOCKQUOTE> <DIV .*> <DIV> <IMG>        # <BLOCKQUOTE> <DIV .*> <DIV> <IMG>
       my %html=(B=>1, I=>1, P=>1, A=>1, LI=>1, OL=>1, UL=>1, EM=>1,        my %html=(B=>1, I=>1, P=>1, A=>1, LI=>1, OL=>1, UL=>1, EM=>1,
  BR=>1, TT=>1, STRONG=>1, BLOCKQUOTE=>1, DIV=>1, IMG=>1);   BR=>1, TT=>1, STRONG=>1, BLOCKQUOTE=>1, DIV=>1, IMG=>1,
                   M=>1);
   
       $message =~ s/\<(\/?\s*(\w+)[^\>\<]*)/        $message =~ s/\<(\/?\s*(\w+)[^\>\<]*)/
   {($html{uc($2)}&&(length($1)<1000))?"\<$1":"\&lt;$1"}/ge;    {($html{uc($2)}&&(length($1)<1000))?"\<$1":"\&lt;$1"}/ge;
       $message =~ s/(\<?\s*(\w+)[^\<\>]*)\>/        $message =~ s/(\<?\s*(\w+)[^\<\>]*)\>/
   {($html{uc($2)}&&(length($1)<1000))?"$1\>":"$1\&gt;"}/ge;    {($html{uc($2)}&&(length($1)<1000))?"$1\>":"$1\&gt;"}/ge;
   } else {    } else {
       $message=~s/\<\/*m\s*\>//g;  
       $message=~s/\</\&lt\;/g;        $message=~s/\</\&lt\;/g;
       $message=~s/\>/\&gt\;/g;        $message=~s/\>/\&gt\;/g;
   }    }
Line 465  sub handler { Line 582  sub handler {
     my $entry=$ENV{'form.hide'}?$ENV{'form.hide'}:$ENV{'form.unhide'};      my $entry=$ENV{'form.hide'}?$ENV{'form.hide'}:$ENV{'form.unhide'};
   
     my ($symb,$idx)=split(/\:\:\:/,$entry);      my ($symb,$idx)=split(/\:\:\:/,$entry);
     my ($map,$ind,$url)=split(/\_\_\_/,$symb);      my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb);
   
     my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},      my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
                      $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},                       $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
Line 495  sub handler { Line 612  sub handler {
     my $entry=$ENV{'form.deldisc'};      my $entry=$ENV{'form.deldisc'};
   
     my ($symb,$idx)=split(/\:\:\:/,$entry);      my ($symb,$idx)=split(/\:\:\:/,$entry);
     my ($map,$ind,$url)=split(/\_\_\_/,$symb);      my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb);
   
     my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},      my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
                      $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},                       $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
Line 528  sub handler { Line 645  sub handler {
   unless ($symb) {    unless ($symb) {
       $symb=$ENV{'form.symb'};        $symb=$ENV{'form.symb'};
       if ($symb) {        if ($symb) {
   my ($map,$id,$url)=split(/\_\_\_/,$symb);    my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
           $feedurl=&Apache::lonnet::clutter($url);            $feedurl=&Apache::lonnet::clutter($url);
       }        }
   }    }
Line 620  sub handler { Line 737  sub handler {
    }     }
   } else {    } else {
 # Ambiguous Problem Resource  # Ambiguous Problem Resource
     $r->internal_redirect('/adm/ambiguous');        if ( &Apache::lonnet::mod_perl_version() == 2 ) {
     &Apache::lonnet::cleanenv();
         }
         $r->internal_redirect('/adm/ambiguous');
   }    }
 }  }
   return OK;    return OK;

Removed from v.1.51  
changed lines
  Added in v.1.61


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