Diff for /loncom/interface/lonfeedback.pm between versions 1.111 and 1.112

version 1.111, 2004/08/01 16:05:14 version 1.112, 2004/08/03 21:29:32
Line 36  use Apache::loncommon(); Line 36  use Apache::loncommon();
 use Apache::lontexconvert();  use Apache::lontexconvert();
 use Apache::lonlocal; # must not have ()  use Apache::lonlocal; # must not have ()
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
   use HTML::LCParser();
 use Apache::lonspeller();  use Apache::lonspeller();
   
 sub discussion_open {  sub discussion_open {
Line 268  sub list_discussion { Line 269  sub list_discussion {
                 }                  }
  my ($message,$subject);   my ($message,$subject);
           if ($idx > 0) {            if ($idx > 0) {
                     if ($contrib{$idx.':message'} =~ /.*::::\Q$numoldver\E::::(.+?)$/si) {                      if ($contrib{$idx.':message'} =~ /^<version num="0">/) {
                         $message = $1;                          my %versions = (); 
                           &get_post_versions(\%versions,$contrib{$idx.':message'},$numoldver);
                           $message = &HTML::Entities::decode($versions{$numoldver});
                     } else {                      } else {
                         $message = $contrib{$idx.':message'};                          $message = $contrib{$idx.':message'};
                     }                      }
Line 280  sub list_discussion { Line 283  sub list_discussion {
  $message=~s/\n/\<br \/\>/g;   $message=~s/\n/\<br \/\>/g;
  $message=&Apache::lontexconvert::msgtexconverted($message);   $message=&Apache::lontexconvert::msgtexconverted($message);
           if ($idx > 0) {            if ($idx > 0) {
                     if ($contrib{$idx.':subject'} =~ /.*::::\Q$numoldver\E::::(.+?)$/si) {                      if ($contrib{$idx.':subject'} =~ /^<version num="0"/) {
                         $subject = $1;                          my %versions = ();
                           &get_post_versions(\%versions,$contrib{$idx.':subject'},$numoldver);
                           $subject = &HTML::Entities::decode($versions{$numoldver});
                     } else {                      } else {
                         $subject = $contrib{$idx.':subject'};                          $subject = $contrib{$idx.':subject'};
                     }                      }
Line 966  END Line 971  END
    $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
    $ENV{'course.'.$ENV{'request.course.id'}.'.num'});     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
       unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) {        unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) {
             if ($contrib{$idx.':history'}) {
                 if ($contrib{$idx.':history'} =~ /:/) {
                     my @oldversions = split/:/,$contrib{$idx.':history'};
                     $numoldver = @oldversions;
                 } else {
                     $numoldver = 1;
                 }
             }
           if ($ENV{'form.replydisc'}) {            if ($ENV{'form.replydisc'}) {
               if ($contrib{$idx.':history'}) {                if ($contrib{$idx.':history'}) {
                   if ($contrib{$idx.':history'} =~ /:/) {                    if ($contrib{$idx.':history'} =~ /:/) {
Line 977  END Line 990  END
               }                }
               my $message;                my $message;
               if ($idx > 0) {                if ($idx > 0) {
                   if ($contrib{$idx.':message'} =~ /::::\Q$numoldver\E::::(.+?)$/si) {                    if ($contrib{$idx.':message'} =~ /^<version num="0"/) {
                       $message = $1;                        my %versions = ();
                         &get_post_versions(\%versions,$contrib{$idx.':message'},$numoldver);
                         $message = &HTML::Entities::decode($versions{$numoldver});
                   } else {                    } else {
                       $message = $contrib{$idx.':message'};                        $message = $contrib{$idx.':message'};
                   }                    }
Line 988  END Line 1003  END
       $message=~s/\n/\<br \/\>/g;        $message=~s/\n/\<br \/\>/g;
       $quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($message).'</blockquote>';        $quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($message).'</blockquote>';
               if ($idx > 0) {                if ($idx > 0) {
                   if ($contrib{$idx.':subject'} =~ /::::\Q$numoldver\E::::(.+?)$/si) {                    if ($contrib{$idx.':subject'} =~ /^<version num="0"/) {
                       $subject = $1;                        my %versions = ();
                         &get_post_versions(\%versions,$contrib{$idx.':subject'},$numoldver);
                         $subject = &HTML::Entities::decode($versions{$numoldver});
                   } else {                    } else {
                       $subject = $contrib{$idx.':subject'};                        $subject = $contrib{$idx.':subject'};
                   }                    }
Line 998  END Line 1015  END
               $subject = &HTML::Entities::encode($subject,'<>&"');                $subject = &HTML::Entities::encode($subject,'<>&"');
           } else {            } else {
               $attachmenturls = $contrib{$idx.':attachmenturl'};                $attachmenturls = $contrib{$idx.':attachmenturl'};
               if ($contrib{$idx.':message'} =~ /.*::::(\d+)::::(.*?)$/si) {                if ($contrib{$idx.':message'} =~ /^<version num="0">/) {
                   $numoldver = $1;                    my %versions = ();
                   $comment = $2;                    &get_post_versions(\%versions,$contrib{$idx.':message'},$numoldver);
                     $comment = $versions{$numoldver};
               } else {                } else {
                   $comment = $contrib{$idx.':message'};                    $comment = &HTML::Entities::encode($contrib{$idx.':message'},'<>&"');
               }                }
               $comment = &HTML::Entities::encode($comment,'<>&"');                if ($contrib{$idx.':subject'} =~ /<version num="0">/) {
               if ($contrib{$idx.':subject'} =~ /.*::::\d+::::(.+?)$/si) {                    my %versions = ();
                   $subject = $1;                    &get_post_versions(\%versions,$contrib{$idx.':subject'},$numoldver);
                     $subject = $versions{$numoldver}; 
               } else {                } else {
                   $subject = $contrib{$idx.':subject'};                    $subject = &HTML::Entities::encode($contrib{$idx.':subject'},'<>&"');
               }                }
               $subject = &HTML::Entities::encode($subject,'<>&"');  
               if (defined($contrib{$idx.':replyto'})) {                if (defined($contrib{$idx.':replyto'})) {
                   $parentmsg = $contrib{$idx.':replyto'};                    $parentmsg = $contrib{$idx.':replyto'};
               }                }
Line 1652  END Line 1670  END
 END  END
 }  }
   
   sub get_post_versions {
       my ($versions,$incoming,$numver) = @_;
       my $p = HTML::LCParser->new(\$incoming);
       my $done = 0;                                                                       
       while ( (my $token = $p->get_tag("version")) && (!$done)) {
           my $num = $token->[1]{num};
           my $text = $p->get_text("/version");
           if (defined($numver)) {
               if ($num == $numver) {
                   $$versions{$numver}=$text;
                   $done = 1;
               }
           } else {
               $$versions{$num}=$text;
           }
       }
       return;
   }
   
 sub fail_redirect {  sub fail_redirect {
   my ($r,$feedurl) = @_;    my ($r,$feedurl) = @_;
   if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' };    if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' };
Line 2014  sub adddiscuss { Line 2051  sub adddiscuss {
             }              }
             my $numnewver = $numoldver + 1;              my $numnewver = $numoldver + 1;
             if (defined($oldcontrib{$oldidx.':subject'})) {              if (defined($oldcontrib{$oldidx.':subject'})) {
                 if ($oldcontrib{$oldidx.':subject'} =~ /::::\d+::::/) {                  if ($oldcontrib{$oldidx.':subject'} =~ /^<version num="0">/) {
                     $contrib{'subject'} = $oldcontrib{$oldidx.':subject'}.'::::'.$numnewver.'::::'.$contrib{'subject'};                      $contrib{'subject'} = '<version num="'.$numnewver.'">'.&HTML::Entities::encode($contrib{'subject'},'<>&"').'</version>';
                       $contrib{'subject'} = $oldcontrib{$oldidx.':subject'}.$contrib{'subject'};
                 } else {                  } else {
                      $contrib{'subject'} = '::::0::::'.$oldcontrib{$oldidx.':subject'}.'::::1::::'.$contrib{'subject'};                      $contrib{'subject'} = '<version num="0">'.&HTML::Entities::encode($oldcontrib{$oldidx.':subject'},'<>&"').'</version><version num="1">'.&HTML::Entities::encode($contrib{'subject'},'<>&"').'</version>';
                 }                  }
             }               } 
             if (defined($oldcontrib{$oldidx.':message'})) {              if (defined($oldcontrib{$oldidx.':message'})) {
                 if ($oldcontrib{$oldidx.':message'} =~ /::::\d+::::/) {                  if ($oldcontrib{$oldidx.':message'} =~ /^<version num="0">/) {
                     $contrib{'message'} = $oldcontrib{$oldidx.':message'}.'::::'.$numnewver.'::::'.$contrib{'message'};                      $contrib{'message'} = '<version num="'.$numnewver.'">'.&HTML::Entities::encode($contrib{'message'},'<>&"').'</version>';
                       $contrib{'message'} = $oldcontrib{$oldidx.':message'}.$contrib{'message'};
                 } else {                  } else {
                     $contrib{'message'} = '::::0::::'.$oldcontrib{$oldidx.':message'}.'::::1::::'.$contrib{'message'};                      $contrib{'message'} = '<version num="0">'.&HTML::Entities::encode($oldcontrib{$oldidx.':message'},'<>&"').'</version><version num="1">'.&HTML::Entities::encode($contrib{'message'},'<>&"').'</version>';
                 }                  }
             }              }
             $contrib{'history'} .= $oldcontrib{$oldidx.':timestamp'};              $contrib{'history'} .= $oldcontrib{$oldidx.':timestamp'};
Line 2459  END Line 2498  END
           if ($contrib{$idx.':history'}) {            if ($contrib{$idx.':history'}) {
               my $attachmenturls = $contrib{$idx.':attachmenturl'};                my $attachmenturls = $contrib{$idx.':attachmenturl'};
               my @postversions = ();                my @postversions = ();
                 my %messages = ();
                 my %subjects = ();
               if ($contrib{$idx.':history'} =~ m/:/) {                if ($contrib{$idx.':history'} =~ m/:/) {
                   @postversions = split/:/,$contrib{$idx.':history'};                    @postversions = split/:/,$contrib{$idx.':history'};
               } else {                } else {
                   @postversions = ("$contrib{$idx.':history'}");                    @postversions = ("$contrib{$idx.':history'}");
               }                }
               if (@postversions > 0) {                if (@postversions > 0) {
                     &get_post_versions(\%messages,$contrib{$idx.':message'});
                     &get_post_versions(\%subjects,$contrib{$idx.':subject'});
                   push @postversions,$contrib{$idx.':timestamp'};                    push @postversions,$contrib{$idx.':timestamp'};
                   my $screenname=&Apache::loncommon::screenname(                    my $screenname=&Apache::loncommon::screenname(
                                             $contrib{$idx.':sendername'},                                              $contrib{$idx.':sendername'},
Line 2485  END Line 2528  END
                   for (my $i=0; $i<@postversions; $i++) {                    for (my $i=0; $i<@postversions; $i++) {
                       my ($timesent,$message,$subject,$attachmsg);                        my ($timesent,$message,$subject,$attachmsg);
                       $timesent = &Apache::lonlocal::locallocaltime($postversions[$i]);                        $timesent = &Apache::lonlocal::locallocaltime($postversions[$i]);
                       if ($i == @postversions-1) {                        $message=&HTML::Entities::decode($messages{$i});
                           ($message)=($contrib{$idx.':message'} =~ /.*::::\Q$i\E::::(.+?)$/si);                        $subject=&HTML::Entities::decode($subjects{$i});
                           ($subject)=($contrib{$idx.':subject'} =~ /.*::::\Q$i\E::::(.+?)$/si);  
                       } else {   
                           ($message)=($contrib{$idx.':message'} =~ /::::\Q$i\E::::(.+?)::::/si);  
                           ($subject)=($contrib{$idx.':subject'} =~ /::::\Q$i\E::::(.+?)::::/si);  
                       }  
                       $message=~s/\n/\<br \/\>/g;                        $message=~s/\n/\<br \/\>/g;
                       $message=&Apache::lontexconvert::msgtexconverted($message);                        $message=&Apache::lontexconvert::msgtexconverted($message);
                       $subject=~s/\n/\<br \/\>/g;                        $subject=~s/\n/\<br \/\>/g;

Removed from v.1.111  
changed lines
  Added in v.1.112


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