Diff for /loncom/interface/lonfeedback.pm between versions 1.241 and 1.242

version 1.241, 2007/01/23 01:27:17 version 1.242, 2007/02/23 00:39:31
Line 2662  ENDCITE Line 2662  ENDCITE
   return ($email,$citations);    return ($email,$citations);
 }  }
   
 sub secapply {  
     my $rec=shift;  
     my $defaultflag=shift;  
     $rec=~s/\s+//g;  
     $rec=~s/\@/\:/g;  
     my ($adr,$sections_or_groups)=($rec=~/^([^\(]+)\(([^\)]+)\)/);  
     if ($sections_or_groups) {  
  foreach my $item (split(/\;/,$sections_or_groups)) {  
             if (($item eq $env{'request.course.sec'}) ||  
                 ($defaultflag && ($item eq '*'))) {  
                 return $adr;   
             } elsif ($env{'request.course.groups'}) {  
                 my @usersgroups = split(/:/,$env{'request.course.groups'});  
                 if (grep(/^\Q$item\E$/,@usersgroups)) {  
                     return $adr;  
                 }  
             }   
         }  
     } else {  
        return $rec;  
     }  
     return '';  
 }  
   
 =pod   
   
 =over 4  
   
 =item *  
   
 decide_receiver($feedurl,$author,$question,$course,$policy,$defaultflag);  
   
 Arguments  
   $feedurl - /res/ url of resource (only need if $author is true)  
   $author,$question,$course,$policy - all true/false parameters  
     if true will attempt to find the addresses of user that should receive  
     this type of feedback (author - feedback to author of resource $feedurl,  
     $question 'Resource Content Questions', $course 'Course Content Question',  
     $policy 'Course Policy')  
     (Additionally it also checks $env for whether the corresponding form.<name>  
     element exists, for ease of use in a html response context)  
      
   $defaultflag - (internal should be left blank) if true gather addresses   
                  that aren't for a section even if I have a section  
                  (used for reccursion internally, first we look for  
                  addresses for our specific section then we recurse  
                  and look for non section addresses)  
   
 Returns  
   $typestyle - string of html text, describing what addresses were found  
   %to - a hash, which keys are addresses of users to send messages to  
         the keys will look like   name:domain  
   
 =cut  
   
 sub decide_receiver {  
   my ($feedurl,$author,$question,$course,$policy,$defaultflag) = @_;  
   &Apache::lonenc::check_decrypt(\$feedurl);  
   my $typestyle='';  
   my %to=();  
   if ($env{'form.discuss'} eq 'author' ||$author) {  
     $typestyle.='Submitting as Author Feedback<br />';  
     $feedurl=~ m{^/res/($LONCAPA::domain_re)/($LONCAPA::username_re)/};  
     $to{$2.':'.$1}=1;  
   }  
   if ($env{'form.discuss'} eq 'question' ||$question) {  
     $typestyle.=&mt('Submitting as Question').'<br />';  
     foreach my $item (split(/\,/,  
    $env{'course.'.$env{'request.course.id'}.'.question.email'})  
      ) {  
  my $rec=&secapply($item,$defaultflag);  
         if ($rec) { $to{$rec}=1; }  
     }   
   }  
   if ($env{'form.discuss'} eq 'course' ||$course) {  
     $typestyle.=&mt('Submitting as Comment').'<br />';  
     foreach my $item (split(/\,/,  
    $env{'course.'.$env{'request.course.id'}.'.comment.email'})  
      ) {  
  my $rec=&secapply($item,$defaultflag);  
         if ($rec) { $to{$rec}=1; }  
     }   
   }  
   if ($env{'form.discuss'} eq 'policy' ||$policy) {  
     $typestyle.=&mt('Submitting as Policy Feedback').'<br />';  
     foreach my $item (split(/\,/,  
    $env{'course.'.$env{'request.course.id'}.'.policy.email'})  
      ) {  
  my $rec=&secapply($item,$defaultflag);  
         if ($rec) { $to{$rec}=1; }  
     }   
   }  
   if ((scalar(%to) eq '0') && (!$defaultflag)) {  
      ($typestyle,%to)=  
  &decide_receiver($feedurl,$author,$question,$course,$policy,1);  
   }  
   return ($typestyle,%to);  
 }  
   
 sub feedback_available {  sub feedback_available {
     my ($question,$course,$policy)=@_;      my ($question,$course,$policy)=@_;
     my ($typestyle,%to)=&decide_receiver('',0,$question,$course,$policy);      my ($typestyle,%to)=&Apache::lonmsg::decide_receiver('',0,$question,
    $course,$policy);
     return scalar(%to);      return scalar(%to);
 }  }
   
Line 3840  ENDREDIR Line 3743  ENDREDIR
      $usersaw,$useranswer);       $usersaw,$useranswer);
     
 # Who gets this?  # Who gets this?
       my ($typestyle,%to) = &decide_receiver($feedurl);        my ($typestyle,%to) = &Apache::lonmsg::decide_receiver($feedurl);
   
 # Actually send mail  # Actually send mail
       my ($status,$numsent)=&send_msg(&clear_out_html($env{'form.subject'},        my ($status,$numsent)=&send_msg(&clear_out_html($env{'form.subject'},

Removed from v.1.241  
changed lines
  Added in v.1.242


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