Diff for /loncom/interface/lonfeedback.pm between versions 1.388 and 1.392

version 1.388, 2022/01/18 16:55:30 version 1.392, 2022/11/16 14:24:35
Line 1312  sub build_posting_display { Line 1312  sub build_posting_display {
                                 @{$$usernamesort{$contrib{$idx.':senderdomain'}}{$contrib{$idx.':sendername'}}} = ("$idx");                                  @{$$usernamesort{$contrib{$idx.':senderdomain'}}{$contrib{$idx.':sendername'}}} = ("$idx");
                             }                              }
 # Set up for sorting by last name, then first name  # Set up for sorting by last name, then first name
                             my %names = &Apache::lonnet::get('environment',                              my %names = &Apache::loncommon::getnames($contrib{$idx.':sendername'},
                                  ['firstname','lastname'],$contrib{$idx.':senderdomain'},                                                                       $contrib{$idx.':senderdomain'});
                                   ,$contrib{$idx.':sendername'});  
                             my $lastname = $names{'lastname'};                              my $lastname = $names{'lastname'};
                             my $firstname = $names{'firstname'};                              my $firstname = $names{'firstname'};
                             if ($lastname eq '') {                              if ($lastname eq '') {
Line 1694  sub get_post_contents { Line 1693  sub get_post_contents {
                                         $$contrib{$idx.':sendername'},                                          $$contrib{$idx.':sendername'},
                                         $$contrib{$idx.':senderdomain'});                                          $$contrib{$idx.':senderdomain'});
     $$screenname=$$contrib{$idx.':screenname'};      $$screenname=$$contrib{$idx.':screenname'};
     $$showaboutme = &Apache::lonnet::usertools_access($$contrib{$idx.':sendername'},      $$showaboutme = &Apache::loncommon::aboutme_on($$contrib{$idx.':sendername'},
                                                       $$contrib{$idx.':senderdomain'},                                                     $$contrib{$idx.':senderdomain'});
                                                       'aboutme');  
     my $sender = $$plainname;      my $sender = $$plainname;
     if ($$showaboutme) {      if ($$showaboutme) {
         $sender = &Apache::loncommon::aboutmewrapper(          $sender = &Apache::loncommon::aboutmewrapper(
Line 2763  sub fail_redirect { Line 2761  sub fail_redirect {
   my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif');    my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif');
   my %parms=('only_body'   => 1);    my %parms=('only_body'   => 1);
   if ($delay !~ /^\d+(|\.\d+)$/) {    if ($delay !~ /^\d+(|\.\d+)$/) {
       $delay = 0;        $delay = 2;
   }    }
   if ($env{'form.modal'}) {    if ($env{'form.modal'}) {
       my $onload = 'document.forms.reldt.submit()';        my $onload = 'document.forms.reldt.submit()';
Line 2793  ENDFAILREDIR Line 2791  ENDFAILREDIR
   
 sub redirect_back {  sub redirect_back {
   my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$blog,$status,$previous,$sort,    my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$blog,$status,$previous,$sort,
       $rolefilter,$statusfilter,$sectionpick,$grouppick,$numpicks,$group,$toolarge) = @_;        $rolefilter,$statusfilter,$sectionpick,$grouppick,$numpicks,$group,$toolarge,$delay) = @_;
   my $sorttag = '';    my $sorttag = '';
   my $roletag = '';    my $roletag = '';
   my $statustag = '';    my $statustag = '';
Line 2892  sub redirect_back { Line 2890  sub redirect_back {
   &Apache::lonenc::check_encrypt(\$feedurl);    &Apache::lonenc::check_encrypt(\$feedurl);
   my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif');    my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif');
   my %parms=('only_body'   => 1);    my %parms=('only_body'   => 1);
     if ($delay !~ /^\d+(|\.\d+)$/) {
         $delay = 0;
     }
   if ($env{'form.modal'}) {    if ($env{'form.modal'}) {
       my $onload = 'document.forms.reldt.submit()';        my $onload = 'document.forms.reldt.submit()';
         if ($delay) {
             my $js_delay = int(1000 * $delay);
             $onload = "setTimeout(function(){
                           document.forms.reldt.submit();
                        },$js_delay);";
         }
       $parms{'add_entries'}={'onload' => $onload};        $parms{'add_entries'}={'onload' => $onload};
   } else {    } else {
       $parms{'redirect'}=[0,$feedurl];        $parms{'redirect'}=[$delay,$feedurl];
   }    }
   my $start_page=    my $start_page=
       &Apache::loncommon::start_page('Feedback sent',undef,\%parms);        &Apache::loncommon::start_page('Feedback sent',undef,\%parms);
Line 3161  sub feedback_available { Line 3168  sub feedback_available {
 }  }
   
 sub send_msg {  sub send_msg {
     my ($title,$feedurl,$email,$citations,$attachmenturl,$symb,%to)=@_;      my ($title,$feedurl,$email,$citations,$attachmenturl,$symb,$clientip,%to)=@_;
     my $status='';      my $status='';
     my $sendsomething=0;      my $sendsomething=0;
       my $delay; 
       my $senthide;
       my %setters;
       my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) =
           &Apache::loncommon::blockcheck(\%setters,'com',$clientip);
       if ($by_ip) {
           $senthide = 1;
       }
     my $restitle = &get_resource_title($symb,$feedurl);      my $restitle = &get_resource_title($symb,$feedurl);
     if ($title=~/^Error/) { $title=&mt('Feedback').': '.$title; }      if ($title=~/^Error/) { $title=&mt('Feedback').': '.$title; }
     unless ($title=~/\w/) { $title=&mt('Feedback'); }      unless ($title=~/\w/) { $title=&mt('Feedback'); }
Line 3177  sub send_msg { Line 3192  sub send_msg {
     } else {      } else {
  unless (&Apache::lonmsg::user_normal_msg($user,$domain,   unless (&Apache::lonmsg::user_normal_msg($user,$domain,
  $title.' ['.$restitle.']',$email,$citations,$feedurl,   $title.' ['.$restitle.']',$email,$citations,$feedurl,
  $attachmenturl,undef,undef,$symb,$restitle)=~/ok/) {   $attachmenturl,undef,undef,$symb,$restitle,undef,
                                                            undef,undef,undef,$senthide)=~/ok/) {
     $status.='<br />'.&mt('Error sending message to').' '.$key.'<br />';      $status.='<br />'.&mt('Error sending message to').' '.$key.'<br />';
  } else {   } else {
     $sendsomething++;      $sendsomething++;
Line 3185  sub send_msg { Line 3201  sub send_msg {
     }      }
  }   }
     }      }
       if ($sendsomething && $senthide) {
           if ($by_ip) {
               my $showdom = &Apache::lonnet::domain($blockdom);
               if ($showdom eq '') {
                   $showdom = $blockdom;
               }
               $delay = 4;
               $status.='<br />'.&mt("Message content of feedback you send to instructor(s) from your current IP address: [_1] will be unavailable in your 'Sent' folder.",$clientip).
                        '<ul><li>'.
                        &mt('This does not affect delivery of feedback to your instructor(s).').
                        '</li><li>'.
                        &mt('Note: some types of communication functionality are blocked for certain IP address(es).').
                        '</li><li>'.
                        &mt('This restriction was set by an administrator in the [_1] LON-CAPA domain.',
                            $showdom).
                        '</li></ul><br />';
           }
       }
   
 # Records of number of feedback messages are kept under the "symb" called "_feedback"  # Records of number of feedback messages are kept under the "symb" called "_feedback"
 # There are two entries within the framework of a course:  # There are two entries within the framework of a course:
Line 3202  sub send_msg { Line 3236  sub send_msg {
     }      }
         }          }
     }      }
     return ($status,$sendsomething);      return ($status,$sendsomething,$delay);
 }  }
   
 # Routine to get the complete feedback records  # Routine to get the complete feedback records
Line 4700  ENDREDIR Line 4734  ENDREDIR
   if ($options) {    if ($options) {
       &mail_screen($r,$feedurl,$options,$symb,$attachmax{'text'});        &mail_screen($r,$feedurl,$options,$symb,$attachmax{'text'});
   } else {    } else {
       &fail_redirect($r,$feedurl,1);        &fail_redirect($r,$feedurl,2);
   }    }
   return OK;    return OK;
       }        }
Line 4766  ENDREDIR Line 4800  ENDREDIR
       my ($typestyle,%to) = &Apache::lonmsg::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 $clientip = &Apache::lonnet::get_requestor_ip($r);
       $feedurl,$email,$citations,        my ($status,$numsent,$delay)=&send_msg(&clear_out_html($env{'form.subject'}),
       $attachmenturl,$usersymb,%to);               $feedurl,$email,$citations,
                $attachmenturl,$usersymb,$clientip,%to);
   
 # Discussion? Store that.  # Discussion? Store that.
       my $numpost=0;        my $numpost=0;
Line 4804  ENDREDIR Line 4839  ENDREDIR
       
 # Receipt screen and redirect back to where came from  # Receipt screen and redirect back to where came from
       &redirect_back($r,$feedurl,$typestyle,$numsent,$numpost,$blog,$status,$env{'form.previous'},        &redirect_back($r,$feedurl,$typestyle,$numsent,$numpost,$blog,$status,$env{'form.previous'},
                      undef,undef,undef,undef,undef,undef,$group,$toolarge);                       undef,undef,undef,undef,undef,undef,$group,$toolarge,$delay);
   }    }
   return OK;    return OK;
 }  }

Removed from v.1.388  
changed lines
  Added in v.1.392


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