Diff for /loncom/interface/lonsupportreq.pm between versions 1.43 and 1.44

version 1.43, 2007/05/07 14:02:45 version 1.44, 2007/09/05 05:46:19
Line 58  sub handler { Line 58  sub handler {
     }      }
     my $function = $env{'form.function'};      my $function = $env{'form.function'};
     my $origurl = &unescape($env{'form.origurl'});      my $origurl = &unescape($env{'form.origurl'});
     my $action = $env{'form.action'};      my $command = $env{'form.command'};
   
     if ($action eq 'process') {      if ($command eq 'process') {
         &print_request_receipt($r,$origurl,$function);          &print_request_receipt($r,$origurl,$function);
     } else {      } else {
         &print_request_form($r,$origurl,$function);          &print_request_form($r,$origurl,$function);
Line 71  sub handler { Line 71  sub handler {
 sub print_request_form {  sub print_request_form {
     my ($r,$origurl,$function) = @_;      my ($r,$origurl,$function) = @_;
     my ($os,$browser,$bversion,$uhost,$uname,$udom,$uhome,$urole,$usec,$email,$cid,$cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server,$formname);      my ($os,$browser,$bversion,$uhost,$uname,$udom,$uhome,$urole,$usec,$email,$cid,$cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server,$formname);
     my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');      $function = &Apache::loncommon::get_users_function() if (!$function);
     if (($tablecolor eq '') || ($tablecolor eq '#FFFFFF')) {  
         $tablecolor = '#EEEE99';  
     }  
     $ccode = '';      $ccode = '';
     $os = $env{'browser.os'};      $os = $env{'browser.os'};
     $browser = $env{'browser.type'};      $browser = $env{'browser.type'};
Line 93  sub print_request_form { Line 90  sub print_request_form {
     } else {      } else {
         $server = $machine.$origurl;          $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 103  sub print_request_form { Line 102  sub print_request_form {
                   emad => 'E-mail address',                    emad => 'E-mail address',
                   unme => 'username',                    unme => 'username',
                   doma => 'domain',                    doma => 'domain',
                   entr => 'Enter the username you use to log-in to your LON-CAPA system, and choose your domain.',                    entu => 'Enter the username you use to log-in to LON-CAPA',
                     chdo => 'Choose your LON-CAPA domain',
                     entr => 'Enter the username you use to log-in to LON-CAPA, and your domain.',
                   urlp => 'URL of page',                    urlp => 'URL of page',
                   phon => 'Phone',                    phon => 'Phone',
                   crsd => 'Course Details',                    crsd => 'Course Details',
Line 117  sub print_request_form { Line 118  sub print_request_form {
                   subj => 'Subject',                    subj => 'Subject',
                   detd => 'Detailed Description',                    detd => 'Detailed Description',
                   opfi => 'Optional file upload',                    opfi => 'Optional file upload',
                   uplf => 'Upload a file (e.g., a screenshot) relevant to your support request (128 KB max. size)',                    uplf => 'Upload a file (e.g., a screenshot) relevant to your help request (128 KB max.)',
                   fini => 'Finish',                    fini => 'Finish',
                   clfm => 'Clear Form',                    clfm => 'Clear Form',
     );      );
Line 140  function validate() { Line 141  function validate() {
   
 END  END
     $scripttag .= &Apache::lonhtmlcommon::javascript_valid_email();      $scripttag .= &Apache::lonhtmlcommon::javascript_valid_email();
     if ($cid =~ m/_/) {      if ($cid) {
         ($cdom,$cnum) = split(/_/,$cid);          $cdom = $env{'course.'.$cid.'.domain'};
           $cnum = $env{'course.'.$cid.'.num'};
     }      }
     if ($cdom && $cnum) {      if ($cdom && $cnum) {
         my %csettings = &Apache::lonnet::get('environment',['description','internal.coursecode','internal.sectionnums'],$cdom,$cnum);          my %csettings = &Apache::lonnet::get('environment',['description','internal.coursecode','internal.sectionnums'],$cdom,$cnum);
Line 149  END Line 151  END
         $ccode = $csettings{'internal.coursecode'};          $ccode = $csettings{'internal.coursecode'};
         $sectionlist = $csettings{'internal.sectionnums'};          $sectionlist = $csettings{'internal.sectionnums'};
     }      }
     if ($env{'environment.critnotification'}) {  
       if ($env{'environment.permanentemail'}) {
           $email = $env{'environment.permanentemail'};
       } elsif ($env{'environment.critnotification'}) {
         $email = $env{'environment.critnotification'};          $email = $env{'environment.critnotification'};
     }      } elsif ($env{'environment.notification'}) {
     if (!$email && $env{'environment.notification'}) {  
         $email = $env{'environment.notification'};          $email = $env{'environment.notification'};
     }      }
     if ($env{'environment.lastname'}) {      if ($env{'environment.lastname'}) {
Line 225  function initialize_codes() { Line 229  function initialize_codes() {
         }          }
     }      }
   
     my $js = '<script type"text/javascript">'."\n$scripttag\n$jscript\n".      my $js = '<script type="text/javascript">'."\n$scripttag\n$jscript\n".
  '</script>';   '</script>';
     my %add_entries = (topmargin    => "0",      my %add_entries = (topmargin    => "0",
        marginheight => "0",         marginheight => "0",
        onLoad       =>"initialize_codes()",);         onLoad       =>"initialize_codes()",);
   
     my $start_page =      
  &Apache::loncommon::start_page('Support Request',$js,      $r->print(&Apache::loncommon::start_page('Support Request',$js,
        { 'function'    => $function,         { 'function'    => $function,
  'add_entries' => \%add_entries,   'add_entries' => \%add_entries,
  'only_body'   => 1,});   'only_body'   => 1,}));
     $r->print($start_page);  
   
     if ($r->uri eq '/adm/helpdesk') {      if ($r->uri eq '/adm/helpdesk') {
         &print_header($r,$origurl);          &print_header($r,$origurl);
     }      }
     $r->print(<<"END");      $r->print('<form method="post" name="logproblem" enctype="multipart/form-data">'."\n");
 <form method="post" name="logproblem" enctype="multipart/form-data">      my $output = &Apache::lonhtmlcommon::start_pick_box().
  <table width="580" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000">                   &Apache::lonhtmlcommon::row_title($lt{'name'},undef,'LC_oddrow_value')."\n";
   <tr>  
    <td>  
     <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">  
      <tr>  
       <td>  
        <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">  
         <tr>  
          <td>  
   <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#ffffff">  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'name'}:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
 END  
     my $fullname = '';      my $fullname = '';
     if ((defined($lastname) && $lastname ne '') && (defined($firstname) && $firstname ne '')) {      if ((defined($lastname) && $lastname ne '') && (defined($firstname) && $firstname ne '')) {
         $fullname = "$firstname $lastname";           $fullname = "$firstname $lastname"; 
         $r->print("$fullname<input type=\"hidden\" name=\"username\" value=\"$fullname\" />");          $output .= $fullname.'<input type="hidden" name="username" value="'.&HTML::Entities::encode($fullname,'"<>&').'" />';
     } else {      } else {
         if (defined($firstname) && $firstname ne '') {          if (defined($firstname) && $firstname ne '') {
             $fullname = $firstname;              $fullname = $firstname;
         } elsif (defined($lastname) && $lastname ne '') {          } elsif (defined($lastname) && $lastname ne '') {
             $fullname= " $lastname";              $fullname = " $lastname";
         }          }
         $r->print('<input type="text" size="20" name="username" value="'.$fullname.'" />');          $output .= '<input type="text" size="20" name="username" value="'.&HTML::Entities::encode($fullname,'"<>&').'" />';
     }      }
     $r->print(<<END);      $output .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="'.$lt{'subm'}.'" onclick="validate()" />&nbsp;'.
                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="$lt{'subm'}" onClick="validate()" />&nbsp;                  &Apache::lonhtmlcommon::row_closure()."\n".
                </td>                  &Apache::lonhtmlcommon::row_title($lt{'emad'},undef,'LC_evenrow_value').
               </tr>                  '<input type="text" size="20" name="email" value="'.
              </table>                  &HTML::Entities::encode($email,'"<>&').'" /><br />'."\n".
             </td>                  &Apache::lonhtmlcommon::row_closure().
            </tr>                  &Apache::lonhtmlcommon::row_title("$lt{'unme'}/$lt{'doma'}",undef,'LC_oddrow_value');
            <tr>      my $udom_input = '<input type="hidden" name="udom" value="'.
             <td width="100%" colspan="2" bgcolor="#000000">                       &HTML::Entities::encode($udom,'"<>&').'" />';
              <img src="/adm/lonMisc/blackdot.gif" /><br />      my $uname_input = '<input type="hidden" name="uname" value="'.
             </td>                        &HTML::Entities::encode($uname,'"<>&').'" />'; 
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'emad'}:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
                 <input type="text" size="20" name="email" value="$email" /><br />  
                </td>  
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
             <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'unme'}/$lt{'doma'}:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
 END  
     my $udom_input = '<input type="hidden" name="udom" value="'.$udom.'" />';  
     my $uname_input = '<input type="hidden" name="uname" value="'.$uname.'" />';   
     if (defined($uname) && defined($udom)) {      if (defined($uname) && defined($udom)) {
         $r->print('<i>'.$lt{'unme'}.'</i>:&nbsp;'.$uname.'&nbsp;&nbsp;<i>'.$lt{'doma'}.'</i>:&nbsp;'.$udom.$udom_input.$uname_input);          $output .= '<i>'.$lt{'unme'}.'</i>:&nbsp;'.$uname.'&nbsp;&nbsp;<i>'.$lt{'doma'}.'</i>:&nbsp;'.$udom.$udom_input.$uname_input;
     } else {      } else {
         my $udomform = '';          my $udomform = '';
         my $unameform = '';          my $unameform = '';
         if (defined($udom)) {          if (defined($udom)) {
               $output .= $lt{'entu'};
           } elsif (defined($uname)) {
               $output .= $lt{'chdo'};
           } else {
               $output .= $lt{'entr'};
           }
           $output .= '<br />';
           if (defined($udom)) {
             $udomform = '<i>'.$lt{'doma'}.'</i>:&nbsp;'.$udom.$udom_input;              $udomform = '<i>'.$lt{'doma'}.'</i>:&nbsp;'.$udom.$udom_input;
         } elsif (defined($uname)) {          } elsif (defined($uname)) {
             $unameform = '<i>'.$lt{'unme'}.'</i>:&nbsp;'.$uname.'&nbsp;&nbsp;'.$uname_input;              $unameform = '<i>'.$lt{'unme'}.'</i>:&nbsp;'.$uname.'&nbsp;&nbsp;'.$uname_input;
Line 348  END Line 294  END
         if ($unameform eq '') {          if ($unameform eq '') {
             $unameform= '<i>'.$lt{'unme'}.'</i>:&nbsp;<input type="text" size="12" name="uname" value="'.$uname.'" />&nbsp;&nbsp;';              $unameform= '<i>'.$lt{'unme'}.'</i>:&nbsp;<input type="text" size="12" name="uname" value="'.$uname.'" />&nbsp;&nbsp;';
         }          }
         $r->print($unameform.$udomform.'<br />'.$lt{'entr'});          $output .= $unameform.$udomform;
     }      }
     $r->print(<<END);      $output .= &Apache::lonhtmlcommon::row_closure().
                </td>                 &Apache::lonhtmlcommon::row_title("$lt{'urlp'}",undef,'LC_evenrow_value').
               </tr>                 $showserver.'<input type="hidden" name="sourceurl" value="'.
              </table>                 &HTML::Entities::encode($server,'"<>&').'" />'.
             </td>                 &Apache::lonhtmlcommon::row_closure().
            </tr>                 &Apache::lonhtmlcommon::row_title("$lt{'phon'}",undef,'LC_oddrow_value').
            <tr>                 '<input type="text" size="15" name="phone" /><br />'.
             <td width="100%" colspan="2" bgcolor="#000000">                 &Apache::lonhtmlcommon::row_closure().
              <img src="/adm/lonMisc/blackdot.gif" /><br />                 &Apache::lonhtmlcommon::row_title("$lt{'crsd'}$details_title",undef,'LC_evenrow_value');
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'urlp'}:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
                 $server<input type="hidden" name="sourceurl" value="$server" />  
                </td>  
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
             <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'phon'} #:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
                 <input type="text" size="15" name="phone"><br>  
                </td>  
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
             <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'crsd'}:</b>$details_title  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table border="0" cellpadding="3" cellspacing="3">  
               <tr>  
                <td>  
 END  
     if ($cnum) {       if ($cnum) { 
         if ($coursecodes{$cnum}) {          if ($coursecodes{$cnum}) {
             foreach my $item (@codetitles) {              foreach my $item (@codetitles) {
                 $r->print('<i>'.$item.'</i>:&nbsp;'.$codes{$cnum}{$item}.';&nbsp;');                  $output .= '<i>'.$item.'</i>:&nbsp;'.$codes{$cnum}{$item}.';&nbsp;';
             }              }
             $r->print('&nbsp;<input type="hidden" name="coursecode" value="'.$coursecodes{$cnum}.'" />');              $output .= '&nbsp;<input type="hidden" name="coursecode" value="'.&HTML::Entities::encode($coursecodes{$cnum},'"<>&').'" />';
         } else {          } else {
             $r->print($lt{'enin'}.':&nbsp;              $output .= $lt{'enin'}.':&nbsp;
                   <input type="text" name="coursecode" size="15" value="" />');                    <input type="text" name="coursecode" size="15" value="" />';
         }          }
     } else {      } else {
         if ($totcodes > 0) {          if ($totcodes > 0) {
             my $numtitles = @codetitles;              my $numtitles = @codetitles;
             if ($numtitles == 0) {              if ($numtitles == 0) {
                 $r->print($lt{'enin'}.':&nbsp;                  $output .= $lt{'enin'}.':&nbsp;
                   <input type="text" name="coursecode" size="15" value="" />');                    <input type="text" name="coursecode" size="15" value="" />';
             } else {              } else {
                 my $lasttitle = $numtitles;                  my $lasttitle = $numtitles;
                 if ($numtitles > 4) {                  if ($numtitles > 4) {
                     $lasttitle = 4;                      $lasttitle = 4;
                 }                   } 
                 $r->print('<table><tr><td>'.$codetitles[0].'<br />'."\n".                  $output .= '<table><tr><td>'.$codetitles[0].'<br />'."\n".
                       '<select name="'.$codetitles[0].'" onChange="courseSet('."'$codetitles[0]'".')">'."\n".                        '<select name="'.$codetitles[0].'" onchange="courseSet('."'$codetitles[0]'".')">'."\n".
                       ' <option value="-1" />'.$lt{'sele'}."\n");                        ' <option value="-1" />'.$lt{'sele'}."\n";
                 my @items = ();                  my @items = ();
                 my @longitems = ();                  my @longitems = ();
                 if ($idlist{$codetitles[0]} =~ /","/) {                  if ($idlist{$codetitles[0]} =~ /","/) {
Line 469  END Line 351  END
                     @longitems = @items;                      @longitems = @items;
                 }                  }
                 for (my $i=0; $i<@items; $i++) {                  for (my $i=0; $i<@items; $i++) {
                     $r->print(' <option value="'.$items[$i].'">'.$longitems[$i].'</option>');                      $output .= ' <option value="'.$items[$i].'">'.$longitems[$i].'</option>'."\n";
                 }                  }
                 $r->print('</select></td>');                  $output .= '</select></td>';
                 for (my $i=1; $i<$numtitles; $i++) {                  for (my $i=1; $i<$numtitles; $i++) {
                     $r->print('<td>'.$codetitles[$i].'<br />'."\n".                      $output .= '<td>'.$codetitles[$i].'<br />'."\n".
                      '<select name="'.$codetitles[$i].'" onChange="courseSet('."'$codetitles[$i]'".')">'."\n".                       '<select name="'.$codetitles[$i].'" onchange="courseSet('."'$codetitles[$i]'".')">'."\n".
                      '<option value="-1">&lt;-'.$lt{'pick'}.' '.$codetitles[$i-1].'</option>'."\n".                       '<option value="-1">&lt;-'.$lt{'pick'}.' '.$codetitles[$i-1].'</option>'."\n".
                      '</select>'."\n".                       '</select>'."\n".
                      '</td>'                       '</td>'."\n";
                     );  
                 }                  }
                 $r->print('</tr></table>');                  $output .= '</tr></table>';
                 if ($numtitles > 4) {                  if ($numtitles > 4) {
                     $r->print('<br /><br />'.$codetitles[$numtitles].'<br />'."\n".                      $output .= '<br /><br />'.$codetitles[$numtitles].'<br />'."\n".
                           '<select name="'.$codetitles[$numtitles].'" onChange="courseSet('."'$codetitles[$numtitles]'".')">'."\n".                            '<select name="'.$codetitles[$numtitles].'" onchange="courseSet('."'$codetitles[$numtitles]'".')">'."\n".
                           '<option value="-1">&lt;-'.$lt{'pick'}.' '.$codetitles[$numtitles-1].'</option>'."\n".                            '<option value="-1">&lt;-'.$lt{'pick'}.' '.$codetitles[$numtitles-1].'</option>'."\n".
                           '</select>'."\n");                            '</select>'."\n";
                 }                  }
             }              }
         } else {          } else {
             $r->print($lt{'enin'}.':&nbsp;              $output .= $lt{'enin'}.':&nbsp;
                   <input type="text" name="coursecode" size="15" value="" />');                    <input type="text" name="coursecode" size="15" value="" />';
         }          }
     }      }
     if ($ctitle) {      if ($ctitle) {
         $r->print('<br /><i>'.$lt{'titl'}.'</i>:&nbsp;'.$ctitle.'<input type="hidden" name="title" value="'.$ctitle.'" />');          $output .= '<br /><i>'.$lt{'titl'}.'</i>:&nbsp;'.$ctitle.
                      '<input type="hidden" name="title" value="'.
                      &HTML::Entities::encode($ctitle,'"<>&').'" />'."\n";
     } else {      } else {
         $r->print('<br />'.$lt{'enct'}.':&nbsp;          $output .= '<br />'.$lt{'enct'}.':&nbsp;
                  <input type="text" name="title" size="25" value="" />');                   <input type="text" name="title" size="25" value="" />'."\n";
     }      }
     $r->print(<<END);      $output .= &Apache::lonhtmlcommon::row_closure().
                </td>                 &Apache::lonhtmlcommon::row_title($lt{'secn'},undef,'LC_oddrow_value');
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
             <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'secn'}: </b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
 END  
     if ($sectionlist) {      if ($sectionlist) {
         $r->print("<select name=\"section\"\n>".          $output .= "<select name=\"section\"\n>".
                   "  <option value=\"\" selected=\"selected\">$lt{'sele'}</option>\n");                     "  <option value=\"\" selected=\"selected\">$lt{'sele'}</option>\n";
         foreach my $id (sort(keys(%groupid))) {          foreach my $id (sort(keys(%groupid))) {
             if ($id eq $groupid{$id} || $groupid{$id} eq '') {              if ($id eq $groupid{$id} || $groupid{$id} eq '') {
                 $r->print("  <option value=\"$id\" >$id</option>\n");                  $output .= "  <option value=".
                              &HTML::Entities::encode($id,'"<>&').
                              " >$id</option>\n";
             } else {              } else {
                 $r->print("  <option value=\"$id\" >$id - ($lt{'lsec'}: $groupid{$id})</option>\n");                  $output .= "  <option value=".
                              &HTML::Entities::encode($id,'"<>&').
                              " >$id - ($lt{'lsec'}: $groupid{$id})</option>\n";
             }              }
         }          }
         $r->print("</select>");          $output .= "</select>";
     } else {      } else {
         $r->print("<input type=\"text\" name=\"section\" size=\"10\"/>");          $output .= '<input type="text" name="section" size="10" />';
     }      }
     $r->print(<<END);      $output .= &Apache::lonhtmlcommon::row_closure().
                </td>                 &Apache::lonhtmlcommon::row_title($lt{'subj'},undef,'LC_evenrow_value').
               </tr>                 '  <input type="text" size="40" name="subject" />'."\n".
              </table>                 &Apache::lonhtmlcommon::row_closure().
             </td>                 &Apache::lonhtmlcommon::row_title($lt{'detd'},undef,'LC_oddrow_value').
            </tr>                 '  <textarea rows="10" cols="45" name="description" wrap="virtual"></textarea>'.
            <tr>                 &Apache::lonhtmlcommon::row_closure();
             <td width="100%" colspan="2" bgcolor="#000000">      my $lastrow = 'LC_evenrow_value';
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'subj'}</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
                 <input type="text" size="40" name="subject">  
                </td>  
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
             <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'detd'}:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
                 <textarea rows="10" cols="45" name="description" wrap="virtual"></textarea>  
                </td>  
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
     <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
     </td>  
    </tr>  
 END  
     if (defined($env{'user.name'})) {      if (defined($env{'user.name'})) {
         $r->print(<<END);          $output .= &Apache::lonhtmlcommon::row_title($lt{'opfi'},undef,'LC_evenrow_value').
            <tr>                     ' <input type="file" name="screenshot" size="20" /><br />'.$lt{'uplf'}."\n".
             <td width="140" bgcolor="$tablecolor">          &Apache::lonhtmlcommon::row_closure();
              <table width="140" border="0" cellpadding="8" cellspacing="0">          $lastrow = 'LC_oddrow_value';
               <tr>  
                <td align="right"><b>$lt{'opfi'}:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
                 <input type="file" name="screenshot" size="20" /><br />$lt{'uplf'}  
                </td>  
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
             <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
 END  
     }      }
       $output .= &Apache::lonhtmlcommon::row_title($lt{'fini'},undef,$lastrow);
     $r->print(<<END);      $output .= <<END;
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'fini'}:</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table border="0" cellpadding="8" cellspacing="0">               <table border="0" cellpadding="8" cellspacing="0">
               <tr>                <tr>
                <td>                 <td>
                 <input type="hidden" name="action" value="process" />                  <input type="hidden" name="command" value="process" />
                 <input type="button" value="$lt{'subm'}" onClick="validate()"/> &nbsp;                  <input type="button" value="$lt{'subm'}" onclick="validate()" /> &nbsp;
                </td>                 </td>
                <td>&nbsp;</td>                 <td>&nbsp;</td>
                <td>                 <td>
                 <input type="reset" value="$lt{'clfm'}">                  <input type="reset" value="$lt{'clfm'}" />
                </td>                 </td>
               </tr>                </tr>
              </table>               </table>
             </td>  END
            </tr>      $output .= &Apache::lonhtmlcommon::row_closure(1);
           </table>      $output .= &Apache::lonhtmlcommon::end_pick_box();
          </td>      $r->print(<<END);
         </tr>  $output
        </table>  
       </td>  
      </tr>  
     </table>  
    </td>  
   </tr>  
  </table>  
 </form>  </form>
   <br />
 END  END
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
     return;      return;
Line 679  sub print_request_receipt { Line 453  sub print_request_receipt {
     my $to =  $Apache::lonnet::perlvar{'lonSupportEMail'};      my $to =  $Apache::lonnet::perlvar{'lonSupportEMail'};
     my $from = $admin;      my $from = $admin;
     my $reporttime = &Apache::lonlocal::locallocaltime(time);      my $reporttime = &Apache::lonlocal::locallocaltime(time);
     my $fontcolor = &Apache::loncommon::designparm($function.'.font');  
     my $vlinkcolor = &Apache::loncommon::designparm($function.'.vlink');  
     my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');  
     my @formvars = ('username','email','uname','udom','sourceurl','phone','section','coursecode','title','subject','description','screenshot');      my @formvars = ('username','email','uname','udom','sourceurl','phone','section','coursecode','title','subject','description','screenshot');
   
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},\@formvars);      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},\@formvars);
Line 701  sub print_request_receipt { Line 472  sub print_request_receipt {
         }          }
     }      }
     my %lt = &Apache::lonlocal::texthash (      my %lt = &Apache::lonlocal::texthash (
                  name => 'Name',                   username    => 'Name',
                  email => 'Email',                   email       => 'Email',
                  unme => 'Username/domain',                   user        => 'Username/domain',
                  tel => 'Tel',                   phone       => 'Phone',
                  crsi => 'Course Information',                   crsi        => 'Course Information',
                  subj => 'Subject',                   subject     => 'Subject',
                  desc => 'Description',                   description => 'Description',
                  date => 'Date/Time',                   sourceurl   => 'URL',
                  secn => 'Section',                   date        => 'Date/Time',
                  asup => 'A support request has been sent to',                   secn        => 'Section',
                  warn => 'Warning: Problem with support e-mail address',                   asup        => 'A support request has been sent to',
                  your => 'Your support request contained the following information',                   warn        => 'Warning: Problem with support e-mail address',
                  sect => 'section',                   your        => 'Your support request contained the following information',
                  info => 'Information supplied',                   sect        => 'section',
                  adin => 'Additional information recorded',                   info        => 'Information supplied',
                    adin        => 'Additional information recorded',
     );      );
    
     my $supportmsg = qq|      $env{'form.user'} = "'".$env{'form.uname'}.':'.$env{'form.udom'}."'";
 $lt{'name'}: $env{'form.username'}      $env{'form.csri'} = $env{'form.title'}.' - '.$coursecode.' - '.$lt{'sect'}.': '.$env{'form.section'};
       my $supportmsg = <<END;
   $lt{'username'}: $env{'form.username'}
 $lt{'email'}: $env{'form.email'}  $lt{'email'}: $env{'form.email'}
 $lt{'unme'}: $env{'form.uname'} - $env{'form.udom'}  $lt{'user'}: $env{'form.user'}
 $lt{'tel'}: $env{'form.phone'}  $lt{'phone'}: $env{'form.phone'}
 $lt{'crsi'}: $env{'form.title'} - $coursecode - $lt{'secn'}: $env{'form.section'}  $lt{'crsi'}: $env{'form.csri'}
 $lt{'subj'}: $env{'form.subject'}  $lt{'subject'}: $env{'form.subject'}
 $lt{'desc'}: $env{'form.description'}  $lt{'description'}: $env{'form.description'}
 URL: $env{'form.sourceurl'}  $lt{'sourceurl'}: $env{'form.sourceurl'}
 $lt{'date'}: $reporttime  $lt{'date'}: $reporttime
   
     |;  END
     my $descrip = $env{'form.description'};      my $displaymsg;
     $descrip =~ s#\n#<br />#g;      foreach my $item ('username','email','user','phone','crsi','subject','description','sourceurl') {
     my $displaymsg = qq|          if ($env{'form.'.$item} ne '') {
 <font color="$fontcolor">$lt{'name'}:</font><font color="$vlinkcolor"> $env{'form.username'}</font><br />              if ($item eq 'description') {
 <font color="$fontcolor">$lt{'email'}: </font><font color="$vlinkcolor">$env{'form.email'}</font><br />                  my $descrip = $env{'form.description'};
 <font color="$fontcolor">$lt{'unme'}: </font><font color="$vlinkcolor">$env{'form.uname'} - $env{'form.udom'}</font><br />                  $descrip =~ s|\n|<br />|g;
 <font color="$fontcolor">$lt{'tel'}: </font><font color="$vlinkcolor">$env{'form.phone'}</font><br />                  $displaymsg .= 
 <font color="$fontcolor">$lt{'crsi'}: </font><font color="$vlinkcolor">$env{'form.title'} - $coursecode - $lt{'sect'}: $env{'form.section'}</font><br />                      '<span class="LC_helpform_receipt_cat">'.
 <font color="$fontcolor">$lt{'subj'}: </font><font color="$vlinkcolor">$env{'form.subject'}</font><br />                      "$lt{$item}</span>: $descrip<br />\n";
 <font color="$fontcolor">$lt{'desc'}: </font><font color="$vlinkcolor">$descrip</font><br />              } elsif ($item eq 'sourceurl') {
 <font color="$fontcolor">URL: </font><font color="$vlinkcolor">$env{'form.sourceurl'}</font><br />                  my $showurl = $env{'form.sourceurl'};
 <font color="$fontcolor">$lt{'date'}: </font><font color="$vlinkcolor">$reporttime</font><br />                  $showurl =~ s/\?.*$//;
     |;                  $displaymsg .= 
                       '<span class="LC_helpform_receipt_cat">'.
                       "$lt{$item}</span>: $showurl<br />\n";
               } else {
                   $displaymsg .= 
                       '<span class="LC_helpform_receipt_cat">'.
                       "$lt{$item}</span>: $env{'form.'.$item}<br />\n";
               }
           }
       }
       $displaymsg .= '<span class="LC_helpform_receipt_cat">'.
                      $lt{'date'}.'</span>: '.$reporttime.'<br />'."\n";
   
     my $start_page =       my $start_page = 
  &Apache::loncommon::start_page('Support request recorded',undef,   &Apache::loncommon::start_page('Support request recorded',undef,
Line 756  $lt{'date'}: $reporttime Line 541  $lt{'date'}: $reporttime
     $r->print(<<"END");      $r->print(<<"END");
 $start_page  $start_page
 <form name="logproblem">  <form name="logproblem">
 <input type="hidden" name="action" value="result" />  <input type="hidden" name="command" value="result" />
 </form>  </form>
 END  END
     if ($r->uri eq '/adm/helpdesk') {      if ($r->uri eq '/adm/helpdesk') {
Line 782  END Line 567  END
     }      }
   
     my $subject = $env{'form.subject'};      my $subject = $env{'form.subject'};
     $subject =~ s#(`)#'#g;      $subject =~ s/(`)/'/g;
     $subject =~ s#\$#\(\$\)#g;      $subject =~ s/\$/\(\$\)/g;
     $supportmsg =~ s#(`)#'#g;      $supportmsg =~ s/(`)/'/g;
     $supportmsg =~ s#\$#\(\$\)#g;      $supportmsg =~ s/\$/\(\$\)/g;
     $displaymsg =~ s#(`)#'#g;      $displaymsg =~ s/(`)/'/g;
     $displaymsg =~ s#\$#\(\$\)#g;      $displaymsg =~ s/\$/\(\$\)/g;
     my $fname;      my $fname;
   
     my $attachmentpath = '';      my $attachmentpath = '';
Line 811  END Line 596  END
   
     if ($attachmentpath =~ m-/([^/]+)$-) {      if ($attachmentpath =~ m-/([^/]+)$-) {
         $fname = $1;          $fname = $1;
         $displaymsg .= '<br />'.&mt('An uploaded screenshot file - [_1] ([_2] bytes) was included in the request sent by [_3] from LON-CAPA domain',$fname,$attachmentsize,$env{'user.name'}.': '.$env{'user.domain'});          $displaymsg .= '<br />'.&mt('An uploaded screenshot file \'[_1]\' ([_2] bytes) was included in the request sent by [_3].',$fname,$attachmentsize,$env{'user.name'}.': '.$env{'user.domain'});
         $supportmsg .= "\n";          $supportmsg .= "\n";
         foreach my $var (@cookievars) {          foreach my $var (@cookievars) {
             $supportmsg .= "$var: $cookies{$var}\n";              $supportmsg .= "$var: $cookies{$var}\n";
Line 860  END Line 645  END
 ### Send it:  ### Send it:
     $msg->send('sendmail');      $msg->send('sendmail');
   
     if ($attachmentpath =~ m#$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+#) {      if ($attachmentpath =~ m|$Apache::lonnet::perlvar{'lonDaemons'}/tmp/helprequests/(\d+)/[^/]+|) {
         unlink($attachmentpath);          unlink($attachmentpath);
     }      }
     $r->print(qq|      $r->print('<b>'.$lt{'your'}.'</b>:<br /><br />'."\n");
  <b>$lt{'your'}</b>:<br /><br />      $r->print(&Apache::lonhtmlcommon::start_pick_box('LC_helpform_receipt').
  <table width="580" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000">                &Apache::lonhtmlcommon::row_title($lt{'info'},undef,'LC_oddrow_value')."\n".$displaymsg."\n".
   <tr>                &Apache::lonhtmlcommon::row_closure().
    <td>                &Apache::lonhtmlcommon::row_title($lt{'adin'},undef,'LC_evenrow_value'));
     <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">      my $envmsg;
      <tr>  
       <td>  
        <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">  
         <tr>  
          <td>  
           <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#ffffff">  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'info'}</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>$displaymsg</td>  
               </tr>  
              </table>  
             </td>  
            </tr>  
            <tr>  
             <td width="100%" colspan="2" bgcolor="#000000">  
              <img src="/adm/lonMisc/blackdot.gif" /><br />  
             </td>  
            </tr>  
            <tr>  
             <td width="140" bgcolor="$tablecolor">  
              <table width="140" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td align="right"><b>$lt{'adin'}</b>  
                </td>  
               </tr>  
              </table>  
             </td>  
             <td width="100%" valign="top">  
              <table width="100%" border="0" cellpadding="8" cellspacing="0">  
               <tr>  
                <td>  
     |);  
     foreach my $var (@cookievars) {      foreach my $var (@cookievars) {
         unless($cookies{$var} eq '') {          if ($cookies{$var} ne '') {
             $r->print("$var:&nbsp;<font color='$vlinkcolor'>$cookies{$var}</font>, ");              $envmsg.= '<span class="LC_helpform_receipt_cat">'.
                         $var.'</span>:&nbsp;'.$cookies{$var}.', ';
         }          }
     }      }
     foreach my $var (@ENVvars) {      foreach my $var (@ENVvars) {
         unless($ENV{$var} eq '') {          if ($ENV{$var} ne '') {
             $r->print("$var:&nbsp;<font color='$vlinkcolor'>$ENV{$var}</font>, ");              $envmsg .= '<span class="LC_helpform_receipt_cat">'.
                          $var.'</span>:&nbsp;'.$ENV{$var}.', ';
         }          }
     }      }
     foreach my $var (@envvars) {      foreach my $var (@envvars) {
         unless($env{$var} eq '') {           if ($env{$var} ne '') { 
             $r->print("$var:&nbsp;<font color='$vlinkcolor'>$env{$var}</font>, ");              $envmsg .= '<span class="LC_helpform_receipt_cat">'.
                          $var.'</span>:&nbsp;'.$env{$var}.', ';
         }          }
     }      }
     $r->print("      $envmsg =~ s/, $//;
                </td>      $r->print($envmsg."\n".
               </tr>                &Apache::lonhtmlcommon::row_closure(1)."\n".
              </table>                &Apache::lonhtmlcommon::end_pick_box()."\n".
             </td>                &Apache::loncommon::end_page());
            </tr>  
           </table>  
          </td>  
         </tr>  
        </table>  
       </td>  
      </tr>  
     </table>  
    </td>  
   </tr>  
  </table>  
     ");  
     $r->print(&Apache::loncommon::end_page());  
 }  }
   
 sub print_header {  sub print_header {
     my ($r,$origurl,$action) = @_;      my ($r,$origurl,$command) = @_;
     my $location=&Apache::loncommon::lonhttpdurl("/adm");      my $location=&Apache::loncommon::lonhttpdurl("/adm");
     my $tablecolor = '#EEEE99';  
     my ($component_url);      my ($component_url);
     my $helpdesk_link = '<a href="javascript:validate()">';      my $helpdesk_link = '<a href="javascript:validate()">';
     if ($action eq 'process') {      if ($command eq 'process') {
         $helpdesk_link = '<a href="/adm/helpdesk">';          $helpdesk_link = '<a href="/adm/helpdesk">';
     }      }
     my %lt = &Apache::lonlocal::texthash (      my %lt = &Apache::lonlocal::texthash (
Line 970  sub print_header { Line 702  sub print_header {
 <table width="620" border="0" cellspacing="0" cellpadding="0" height="55">   <tr height="50">    <td width='5'>&nbsp;</td>  <table width="620" border="0" cellspacing="0" cellpadding="0" height="55">   <tr height="50">    <td width='5'>&nbsp;</td>
    <td>     <td>
     <fieldset><legend><img src="$location/lonIcons/minilogo.gif" height='20' width='29' valign='bottom' />&nbsp;&nbsp;<b><font size="+1">LON-CAPA help/support</font></b></legend>      <fieldset><legend><img src="$location/lonIcons/minilogo.gif" height='20' width='29' valign='bottom' />&nbsp;&nbsp;<b><font size="+1">LON-CAPA help/support</font></b></legend>
  <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000">   <table id="LC_helpmenu_links">
   <tr>     <tr>
    <td>      <td align="center"><span class="LC_nobreak"><img src="$location/help/gif/smallHelp.gif" border="0" alt="($lt{'login'})" valign="middle" />&nbsp;<b><a href="/adm/loginproblems.html">$lt{'login'}</a></b>&nbsp;</span></td>
     <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">      <td align="center"><span class="LC_nobreak">&nbsp;<b>$helpdesk_link<img src="$location/lonIcons/helpdesk.gif" border="0" alt="($lt{'ask'})" valign="middle" />&nbsp;$lt{'ask'}</a></b>&nbsp;</span></td>$getstartlink
      <tr>      <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'})" valign="middle" />&nbsp;$lt{'back'}</a></b>&nbsp;</span></td>
       <td>     </tr>
        <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">  
         <tr>  
          <td>  
           <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#ffffff">  
            <tr bgcolor="$tablecolor">  
             <td align="center"><img src="$location/help/gif/smallHelp.gif" border="0" alt="($lt{'login'})" valign="middle" />&nbsp;<b><a href="/adm/loginproblems.html">$lt{'login'}</a></td>  
             <td align="center">&nbsp;<b>$helpdesk_link<img src="$location/lonIcons/helpdesk.gif" border="0" alt="($lt{'ask'})" valign="middle" />&nbsp;$lt{'ask'}</a></b>&nbsp;</td>$getstartlink  
             <td align="center">&nbsp;<b><a href="$origurl" target="_top"><img src="$location/lonIcons/move_up.gif" border="0" alt="($lt{'back'})" valign="middle" />&nbsp;$lt{'back'}</a></b>&nbsp;</td>  
            </tr>  
           </table>  
          </td>  
         </tr>  
        </table>  
       </td>  
      </tr>  
     </table>  
    </td>  
   </tr>  
  </table>   </table>
 </fieldset>  </fieldset>
   </td>    </td>
Line 1003  sub print_header { Line 717  sub print_header {
   <td colspan='3' height='5'>&nbsp;</td>    <td colspan='3' height='5'>&nbsp;</td>
  </tr>   </tr>
 END  END
     unless ($action eq 'process') {      if  ($command ne 'process') {
         $r->print('          $r->print('
  <tr>   <tr>
   <td colspan="3">'.&mt('    <td colspan="3">'.&mt('
 Please review the information in "Log-in help"').$getstarttext.' '.&mt('if you are unable to log-in').'.  '.&mt('If your problem is still unresolved, the form below can be used to send a question to the LON-CAPA helpdesk').'.<br /><font size="-1"><b>'.&mt('Note').':</b> '.&mt('Student questions about course content should be directed to the course instructor').'.</font><br /><br />  Please review the information in "Log-in help"').$getstarttext.' '.&mt('if you are unable to log-in').'.  '.&mt('If your problem is still unresolved, the form below can be used to send a question to the LON-CAPA helpdesk').'.<br /><font size="-1"><b>'.&mt('Students').'</b>: '.&mt('Do <b>not</b> use this form to ask questions about course content.').' '.&mt('Contact your instructor instead.').'</font><br /><br />
   </td>    </td>
  </tr>');   </tr>');
     }      }

Removed from v.1.43  
changed lines
  Added in v.1.44


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