Diff for /loncom/interface/lonsupportreq.pm between versions 1.69 and 1.77

version 1.69, 2012/08/27 06:28:06 version 1.77, 2014/01/17 17:17:42
Line 39  use Apache::lonacc(); Line 39  use Apache::lonacc();
 use Apache::lonauth();  use Apache::lonauth();
 use Apache::courseclassifier;  use Apache::courseclassifier;
 use LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);
    use HTML::Entities;
   
 sub handler {  sub handler {
     my ($r) = @_;      my ($r) = @_;
Line 57  sub handler { Line 57  sub handler {
     if ($r->uri eq '/adm/helpdesk') {      if ($r->uri eq '/adm/helpdesk') {
         &Apache::lonacc::get_posted_cgi($r);          &Apache::lonacc::get_posted_cgi($r);
     }      }
     my $function = $env{'form.function'};      my $function;
       if ($env{'form.function'}) {
           if (($env{'form.function'} eq 'norole')  ||
               ($env{'form.function'} eq 'student') ||
               ($env{'form.function'} eq 'admin')   ||
               ($env{'form.function'} eq 'author')) {
               $function = $env{'form.function'};
           }
       }
     my $origurl = $env{'form.origurl'};      my $origurl = $env{'form.origurl'};
       $origurl =~ s{^https?://}{};
       $origurl =~ s/(`)//g;
       $origurl =~ s/\$/\(\$\)/g;
     my $command = $env{'form.command'};      my $command = $env{'form.command'};
   
     if ($command eq 'process') {      if ($command eq 'process') {
Line 102  sub print_request_form { Line 113  sub print_request_form {
     }      }
     $formname = 'logproblem';      $formname = 'logproblem';
     my $machine = &Apache::lonnet::absolute_url();      my $machine = &Apache::lonnet::absolute_url();
     if ($origurl =~ m-^https?://-) {      my $sourceurl = $machine.$origurl;
         $server = $origurl;      $server = $machine.&Apache::loncommon::cleanup_html($origurl);
     } else {      $server =~ s/\?.*$//;
         $server = $machine.$origurl;  
     }  
     my $showserver = $server;  
     $showserver =~ s/\?.*$//;  
     my %lt = &Apache::lonlocal::texthash (      my %lt = &Apache::lonlocal::texthash (
                   email => 'The e-mail address you entered',                    email => 'The e-mail address you entered',
                   notv => 'is not a valid e-mail address',                    notv => 'is not a valid e-mail address',
Line 287  ENDJS Line 294  ENDJS
     }      }
     $r->print('<form method="post" action="" name="logproblem"'.$formtype.'>'."\n");      $r->print('<form method="post" action="" name="logproblem"'.$formtype.'>'."\n");
     my $output = &Apache::lonhtmlcommon::start_pick_box().      my $output = &Apache::lonhtmlcommon::start_pick_box().
   #                 &Apache::lonhtmlcommon::row_headline().
   #                 '<span class="LC_info">'.
   #                 &mt('(All fields marked with * are required.)').
   #                 '</span>'.
   #                 &Apache::lonhtmlcommon::row_closure().
                  &Apache::lonhtmlcommon::row_title($lt{'name'},undef,$css[$num])."\n";                   &Apache::lonhtmlcommon::row_title($lt{'name'},undef,$css[$num])."\n";
     my $fullname = '';      my $fullname = '';
     if ((defined($lastname) && $lastname ne '') && (defined($firstname) && $firstname ne '')) {      if ((defined($lastname) && $lastname ne '') && (defined($firstname) && $firstname ne '')) {
Line 358  ENDJS Line 370  ENDJS
     $num ++;      $num ++;
     $i = $num%2;      $i = $num%2;
     $output .= &Apache::lonhtmlcommon::row_title("$lt{'urlp'}",undef,$css[$i]).      $output .= &Apache::lonhtmlcommon::row_title("$lt{'urlp'}",undef,$css[$i]).
                $showserver."\n".'<input type="hidden" name="sourceurl" value="'.                 $server."\n".'<input type="hidden" name="sourceurl" value="'.
                &HTML::Entities::encode($server,'"<>&').'" />'."\n".                 &HTML::Entities::encode($sourceurl,'"<>&').'" />'."\n".
                &Apache::lonhtmlcommon::row_closure().                 &Apache::lonhtmlcommon::row_closure().
                &Apache::lonhtmlcommon::row_title("$lt{'phon'}",undef,'LC_evenrow_value').                 &Apache::lonhtmlcommon::row_title("$lt{'phon'}",undef,'LC_evenrow_value').
                '<input type="text" size="15" name="phone" /><br />'."\n".                 '<input type="text" size="15" name="phone" /><br />'."\n".
Line 548  sub print_request_receipt { Line 560  sub print_request_receipt {
             if ($r->uri eq '/adm/helpdesk') {              if ($r->uri eq '/adm/helpdesk') {
                 &print_header($r,$url,'process');                  &print_header($r,$url,'process');
             }              }
             $r->print('<h3>'.&mt('Support request failed').'</h3>'.              $r->print(
                       '<span class="LC_error">'.                  '<h2>'.&mt('Support request failed').'</h2>'.
                       &mt('Validation of the code you entered failed.').                        &Apache::lonhtmlcommon::confirm_success(
                           &mt('Validation of the code you entered failed.'),1).
                   '<br /><br />'.
                   &Apache::lonhtmlcommon::actionbox([
                       &mt('[_1]Go back[_2] and try again',
                           '<a href="javascript:history.go(-1)">','</a>')]).
                       &Apache::loncommon::end_page());                        &Apache::loncommon::end_page());
             return;              return;
         }          }
Line 634  sub print_request_receipt { Line 651  sub print_request_receipt {
                  adin        => 'Additional information recorded',                   adin        => 'Additional information recorded',
     );      );
   
     my (@ok_ccs,@bad_ccs,$badccmsg,$okcclist,$public,$homeserver);      my (@ok_ccs,@bad_ccs,$badccmsg,$okcclist,$homeserver);
     if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {      unless ($public) {
         $public = 1;  
     } else {  
         if (($env{'user.name'} ne '') && ($env{'user.domain'} ne '')) {          if (($env{'user.name'} ne '') && ($env{'user.domain'} ne '')) {
             $homeserver = &Apache::lonnet::homeserver($env{'user.name'},              $homeserver = &Apache::lonnet::homeserver($env{'user.name'},
                                                       $env{'user.domain'});                                                        $env{'user.domain'});
Line 670  sub print_request_receipt { Line 685  sub print_request_receipt {
            $okcclist = join(', ',@ok_ccs);              $okcclist = join(', ',@ok_ccs); 
         }           } 
         if (@bad_ccs == 1) {          if (@bad_ccs == 1) {
             $badccmsg .= '<br />'.&mt('The following Cc e-mail address is invalid: ').$bad_ccs[0];              if ($bad_ccs[0] ne '') {
                   $badccmsg .= '<br />'.&mt('The following Cc e-mail address is invalid: ').&Apache::loncommon::cleanup_html($bad_ccs[0]);
               }
         } elsif (@bad_ccs > 1) {          } elsif (@bad_ccs > 1) {
             my $bad_cc_string = join(', ',@bad_ccs);              $badccmsg .= '<br />'.&mt('The following Cc e-mail addresses are invalid: '). &Apache::loncommon::cleanup_html(join(', ',@bad_ccs));
             $badccmsg .= '<br />'.&mt('The following Cc e-mail addresses are invalid: ').$bad_cc_string;  
         }          }
     }      }
     $env{'form.user'} = "'".$env{'form.uname'}.':'.$env{'form.udom'}."'";      $env{'form.user'} = "'".$env{'form.uname'}.':'.$env{'form.udom'}."'";
Line 696  END Line 712  END
         if ($env{'form.'.$item} ne '') {          if ($env{'form.'.$item} ne '') {
             if ($item eq 'description') {              if ($item eq 'description') {
                 my $descrip = $env{'form.description'};                  my $descrip = $env{'form.description'};
                 $descrip =  &cleanup_html($descrip);                  $descrip =  &Apache::loncommon::cleanup_html($descrip);
                 $descrip =~ s|[\n\r\f]|<br />|g;                  $descrip =~ s|[\n\r\f]|<br />|g;
                 $displaymsg .=                   $displaymsg .= 
                     '<span class="LC_helpform_receipt_cat">'.                      '<span class="LC_helpform_receipt_cat">'.
Line 704  END Line 720  END
             } elsif ($item eq 'sourceurl') {              } elsif ($item eq 'sourceurl') {
                 my $showurl = $env{'form.sourceurl'};                  my $showurl = $env{'form.sourceurl'};
                 $showurl =~ s/\?.*$//;                  $showurl =~ s/\?.*$//;
                 $showurl =  &cleanup_html($showurl);                  $showurl =  &Apache::loncommon::cleanup_html($showurl);
                 $displaymsg .=                   $displaymsg .= 
                     '<span class="LC_helpform_receipt_cat">'.                      '<span class="LC_helpform_receipt_cat">'.
                     "$lt{$item}</span>: $showurl<br />\n";                      "$lt{$item}</span>: $showurl<br />\n";
             } elsif ($item eq 'cc') {              } elsif ($item eq 'cc') {
                 $displaymsg .=                  if ($okcclist) {
                     '<span class="LC_helpform_receipt_cat">'.                      my $showcclist = &Apache::loncommon::cleanup_html($okcclist);
                     "$lt{$item}</span>: $okcclist<br />\n";                      $displaymsg .=
                           '<span class="LC_helpform_receipt_cat">'.
                           "$lt{$item}</span>: $showcclist<br />\n";
                   }
             } else {              } else {
                 my $showitem = $env{'form.'.$item};                  my $showitem = $env{'form.'.$item};
                 $showitem = &cleanup_html($showitem);                  $showitem = &Apache::loncommon::cleanup_html($showitem);
                 $displaymsg .=                   $displaymsg .= 
                     '<span class="LC_helpform_receipt_cat">'.                      '<span class="LC_helpform_receipt_cat">'.
                     "$lt{$item}</span>: $showitem<br />\n";                      "$lt{$item}</span>: $showitem<br />\n";
Line 735  END Line 754  END
   
     $r->print(<<"END");      $r->print(<<"END");
 $start_page  $start_page
 <form name="logproblem">  <form name="logproblem" action="">
 <input type="hidden" name="command" value="result" />  <input type="hidden" name="command" value="result" />
 </form>  </form>
 END  END
Line 805  END Line 824  END
   
     my $attachmentpath = '';      my $attachmentpath = '';
     my $attachmentsize = '';      my $attachmentsize = '';
     if ((defined($env{'user.name'})) && ($env{'user.name'} ne 'public')      if ((defined($env{'user.name'})) && (!$public)) {
         && ($env{'user.domain'} ne 'public')) {  
         if ($homeserver && $env{'form.screenshot.filename'}) {          if ($homeserver && $env{'form.screenshot.filename'}) {
             $attachmentsize = length($env{'form.screenshot'});              $attachmentsize = length($env{'form.screenshot'});
             if ($attachmentsize > 131072) {              if ($attachmentsize > 131072) {
Line 951  sub print_header { Line 969  sub print_header {
     } else {      } else {
         $reviewtext = &mt('Please review the information in "Log-in help" if you are unable to log-in.');          $reviewtext = &mt('Please review the information in "Log-in help" if you are unable to log-in.');
     }      }
       my $linkback;
     if ($origurl eq '') {      if ($origurl eq '') {
         $origurl = 'javascript:history.go(-1)';          $linkback = 'javascript:history.go(-1)';
       } else {
           $linkback = &HTML::Entities::encode($origurl,'"<>&');
     }      }
     my $loginhelp = &Apache::lonauth::loginhelpdisplay();      my $loginhelp = &Apache::lonauth::loginhelpdisplay();
     if ($loginhelp eq '') {      if ($loginhelp eq '') {
Line 972  sub print_header { Line 993  sub print_header {
    <tr>     <tr>
     <td align="center"><span class="LC_nobreak"><img src="$location/help/help.png" border="0" alt="($lt{'login'})" style="vertical-align:middle" />&nbsp;<b><a href="$loginhelp">$lt{'login'}</a></b>&nbsp;</span></td>      <td align="center"><span class="LC_nobreak"><img src="$location/help/help.png" border="0" alt="($lt{'login'})" style="vertical-align:middle" />&nbsp;<b><a href="$loginhelp">$lt{'login'}</a></b>&nbsp;</span></td>
     <td align="center"><span class="LC_nobreak">&nbsp;<b>$helpdesk_link<img src="$location/lonIcons/helpdesk.gif" border="0" alt="($lt{'ask'})" style="vertical-align:middle" />&nbsp;$lt{'ask'}</a></b>&nbsp;</span></td>$getstartlink      <td align="center"><span class="LC_nobreak">&nbsp;<b>$helpdesk_link<img src="$location/lonIcons/helpdesk.gif" border="0" alt="($lt{'ask'})" style="vertical-align:middle" />&nbsp;$lt{'ask'}</a></b>&nbsp;</span></td>$getstartlink
     <td align="center"><span class="LC_nobreak">&nbsp;<b><a href="$origurl" target="_top"><img src="$location/lonIcons/move_up.gif" border="0" alt="($lt{'back'})" style="vertical-align:middle" />&nbsp;$lt{'back'}</a></b>&nbsp;</span></td>      <td align="center"><span class="LC_nobreak">&nbsp;<b><a href="$linkback" target="_top"><img src="$location/lonIcons/move_up.gif" border="0" alt="($lt{'back'})" style="vertical-align:middle" />&nbsp;$lt{'back'}</a></b>&nbsp;</span></td>
    </tr>     </tr>
  </table>   </table>
 </fieldset>  </fieldset>
Line 989  END Line 1010  END
         $r->print(<<"END");          $r->print(<<"END");
  <tr>   <tr>
   <td colspan="3">$reviewtext     <td colspan="3">$reviewtext 
   $lt{'ifyo'}<br />    $lt{'ifyo'}
 <span style="font-size:90%;"><b>$lt{'stud'}</b>:   <p class="LC_info">
 $stuwarn $lt{'cont'}</span>  <b>$lt{'stud'}:</b> 
 <br /><br />  $stuwarn $lt{'cont'}
   </p><br />
   </td>    </td>
  </tr>   </tr>
 END  END
Line 1005  END Line 1027  END
 sub get_domain {  sub get_domain {
     my $codedom;      my $codedom;
     if (exists($env{'form.codedom'})) {      if (exists($env{'form.codedom'})) {
         $codedom = $env{'form.codedom'};          if (&Apache::lonnet::domain($env{'form.codedom'}) ne '') {
     } elsif ($env{'request.course.id'}) {              return $env{'form.codedom'};
           }
       }
       if ($env{'request.course.id'}) {
         $codedom = $env{'course.'.$env{'request.course.id'}.'.domain'};          $codedom = $env{'course.'.$env{'request.course.id'}.'.domain'};
     } elsif ($env{'request.role.domain'}) {      } elsif ($env{'request.role.domain'}) {
         $codedom = $env{'request.role.domain'};          $codedom = $env{'request.role.domain'};
Line 1016  sub get_domain { Line 1041  sub get_domain {
     return $codedom;      return $codedom;
 }  }
   
 sub cleanup_html {  
     my ($incoming) = @_;  
     my $outgoing;  
     if ($incoming ne '') {  
         $outgoing = $incoming;  
         $outgoing =~ s/\#/&#035;/g;  
         $outgoing =~ s/\&/&#038;/g;  
         $outgoing =~ s/</&#060;/g;  
         $outgoing =~ s/>/&#062;/g;  
         $outgoing =~ s/\(/&#040/g;  
         $outgoing =~ s/\)/&#041;/g;  
         $outgoing =~ s/"/&#034;/g;  
         $outgoing =~ s/'/&#039;/g;  
         $outgoing =~ s/\$/&#036;/g;  
     }  
     return $outgoing;  
 }  
   
 1;  1;

Removed from v.1.69  
changed lines
  Added in v.1.77


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