[LON-CAPA-cvs] cvs: loncom /interface lonsupportreq.pm

raeburn lon-capa-cvs-allow@mail.lon-capa.org
Wed, 05 Sep 2007 05:46:20 -0000


This is a MIME encoded message

--raeburn1188971180
Content-Type: text/plain

raeburn		Wed Sep  5 01:46:20 2007 EDT

  Modified files:              
    /loncom/interface	lonsupportreq.pm 
  Log:
  - css replacement for existing data tabling (nested tables).
  - use lonhtml::pick_box()
  - remove variables no longer used ($tablecolor, $fontcolor, $vlinkcolor etc.)
  - use HTML::Entities::encode() to encode form input
  - style (remove unless, change delimiters in regexps etc.)
  - change message to students
  - do not display blank fields when echoing data submitted on receipt page
  - use LC_nobreak span for link items in help link in "Contact Helpdesk" page linked from log-in page.
  - a few wording changes
  
  
--raeburn1188971180
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20070905014620.txt"

Index: loncom/interface/lonsupportreq.pm
diff -u loncom/interface/lonsupportreq.pm:1.43 loncom/interface/lonsupportreq.pm:1.44
--- loncom/interface/lonsupportreq.pm:1.43	Mon May  7 10:02:45 2007
+++ loncom/interface/lonsupportreq.pm	Wed Sep  5 01:46:19 2007
@@ -1,5 +1,5 @@
 #
-# $Id: lonsupportreq.pm,v 1.43 2007/05/07 14:02:45 raeburn Exp $
+# $Id: lonsupportreq.pm,v 1.44 2007/09/05 05:46:19 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -58,9 +58,9 @@
     }
     my $function = $env{'form.function'};
     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);
     } else {
         &print_request_form($r,$origurl,$function);
@@ -71,10 +71,7 @@
 sub print_request_form {
     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 $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');
-    if (($tablecolor eq '') || ($tablecolor eq '#FFFFFF')) {
-        $tablecolor = '#EEEE99';
-    }
+    $function = &Apache::loncommon::get_users_function() if (!$function);
     $ccode = '';
     $os = $env{'browser.os'};
     $browser = $env{'browser.type'};
@@ -93,6 +90,8 @@
     } else {
         $server = $machine.$origurl;
     }
+    my $showserver = $server;
+    $showserver =~ s/\?.*$//;
     my %lt = &Apache::lonlocal::texthash (
                   email => 'The e-mail address you entered',
                   notv => 'is not a valid e-mail address',
@@ -103,7 +102,9 @@
                   emad => 'E-mail address',
                   unme => 'username',
                   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',
                   phon => 'Phone',
                   crsd => 'Course Details',
@@ -117,7 +118,7 @@
                   subj => 'Subject',
                   detd => 'Detailed Description',
                   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',
                   clfm => 'Clear Form',
     );
@@ -140,8 +141,9 @@
 
 END
     $scripttag .= &Apache::lonhtmlcommon::javascript_valid_email();
-    if ($cid =~ m/_/) {
-        ($cdom,$cnum) = split(/_/,$cid);
+    if ($cid) {
+        $cdom = $env{'course.'.$cid.'.domain'};
+        $cnum = $env{'course.'.$cid.'.num'};
     }
     if ($cdom && $cnum) {
         my %csettings = &Apache::lonnet::get('environment',['description','internal.coursecode','internal.sectionnums'],$cdom,$cnum);
@@ -149,10 +151,12 @@
         $ccode = $csettings{'internal.coursecode'};
         $sectionlist = $csettings{'internal.sectionnums'};
     }
-    if ($env{'environment.critnotification'}) {
+
+    if ($env{'environment.permanentemail'}) {
+        $email = $env{'environment.permanentemail'};
+    } elsif ($env{'environment.critnotification'}) {
         $email = $env{'environment.critnotification'};
-    }
-    if (!$email && $env{'environment.notification'}) {
+    } elsif ($env{'environment.notification'}) {
         $email = $env{'environment.notification'};
     }
     if ($env{'environment.lastname'}) {
@@ -225,118 +229,60 @@
         }
     }
 	
-    my $js = '<script type"text/javascript">'."\n$scripttag\n$jscript\n".
+    my $js = '<script type="text/javascript">'."\n$scripttag\n$jscript\n".
 	'</script>';
     my %add_entries = (topmargin    => "0",
 		       marginheight => "0",
 		       onLoad       =>"initialize_codes()",);
 
-    my $start_page =
-	&Apache::loncommon::start_page('Support Request',$js,
+    
+    $r->print(&Apache::loncommon::start_page('Support Request',$js,
 				       { 'function'    => $function,
 					 'add_entries' => \%add_entries,
-					 'only_body'   => 1,});
-    $r->print($start_page);
-
+					 'only_body'   => 1,}));
     if ($r->uri eq '/adm/helpdesk') {
         &print_header($r,$origurl);
     }
-    $r->print(<<"END");
-<form method="post" name="logproblem" enctype="multipart/form-data">
- <table width="580" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000">
-  <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
+    $r->print('<form method="post" name="logproblem" enctype="multipart/form-data">'."\n");
+    my $output = &Apache::lonhtmlcommon::start_pick_box().
+                 &Apache::lonhtmlcommon::row_title($lt{'name'},undef,'LC_oddrow_value')."\n";
     my $fullname = '';
     if ((defined($lastname) && $lastname ne '') && (defined($firstname) && $firstname ne '')) {
         $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 {
         if (defined($firstname) && $firstname ne '') {
             $fullname = $firstname;
         } 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);
-                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="$lt{'subm'}" onClick="validate()" />&nbsp;
-               </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{'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.'" />'; 
+    $output .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="'.$lt{'subm'}.'" onclick="validate()" />&nbsp;'.
+                &Apache::lonhtmlcommon::row_closure()."\n".
+                &Apache::lonhtmlcommon::row_title($lt{'emad'},undef,'LC_evenrow_value').
+                '<input type="text" size="20" name="email" value="'.
+                &HTML::Entities::encode($email,'"<>&').'" /><br />'."\n".
+                &Apache::lonhtmlcommon::row_closure().
+                &Apache::lonhtmlcommon::row_title("$lt{'unme'}/$lt{'doma'}",undef,'LC_oddrow_value');
+    my $udom_input = '<input type="hidden" name="udom" value="'.
+                     &HTML::Entities::encode($udom,'"<>&').'" />';
+    my $uname_input = '<input type="hidden" name="uname" value="'.
+                      &HTML::Entities::encode($uname,'"<>&').'" />'; 
     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 {
         my $udomform = '';
         my $unameform = '';
         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;
         } elsif (defined($uname)) {
             $unameform = '<i>'.$lt{'unme'}.'</i>:&nbsp;'.$uname.'&nbsp;&nbsp;'.$uname_input;
@@ -348,105 +294,41 @@
         if ($unameform eq '') {
             $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);
-               </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{'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
+    $output .= &Apache::lonhtmlcommon::row_closure().
+               &Apache::lonhtmlcommon::row_title("$lt{'urlp'}",undef,'LC_evenrow_value').
+               $showserver.'<input type="hidden" name="sourceurl" value="'.
+               &HTML::Entities::encode($server,'"<>&').'" />'.
+               &Apache::lonhtmlcommon::row_closure().
+               &Apache::lonhtmlcommon::row_title("$lt{'phon'}",undef,'LC_oddrow_value').
+               '<input type="text" size="15" name="phone" /><br />'.
+               &Apache::lonhtmlcommon::row_closure().
+               &Apache::lonhtmlcommon::row_title("$lt{'crsd'}$details_title",undef,'LC_evenrow_value');
     if ($cnum) { 
         if ($coursecodes{$cnum}) {
             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 {
-            $r->print($lt{'enin'}.':&nbsp;
-                  <input type="text" name="coursecode" size="15" value="" />');
+            $output .= $lt{'enin'}.':&nbsp;
+                  <input type="text" name="coursecode" size="15" value="" />';
         }
     } else {
         if ($totcodes > 0) {
             my $numtitles = @codetitles;
             if ($numtitles == 0) {
-                $r->print($lt{'enin'}.':&nbsp;
-                  <input type="text" name="coursecode" size="15" value="" />');
+                $output .= $lt{'enin'}.':&nbsp;
+                  <input type="text" name="coursecode" size="15" value="" />';
             } else {
                 my $lasttitle = $numtitles;
                 if ($numtitles > 4) {
                     $lasttitle = 4;
                 } 
-                $r->print('<table><tr><td>'.$codetitles[0].'<br />'."\n".
-                      '<select name="'.$codetitles[0].'" onChange="courseSet('."'$codetitles[0]'".')">'."\n".
-                      ' <option value="-1" />'.$lt{'sele'}."\n");
+                $output .= '<table><tr><td>'.$codetitles[0].'<br />'."\n".
+                      '<select name="'.$codetitles[0].'" onchange="courseSet('."'$codetitles[0]'".')">'."\n".
+                      ' <option value="-1" />'.$lt{'sele'}."\n";
                 my @items = ();
                 my @longitems = ();
                 if ($idlist{$codetitles[0]} =~ /","/) {
@@ -469,200 +351,92 @@
                     @longitems = @items;
                 }
                 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++) {
-                    $r->print('<td>'.$codetitles[$i].'<br />'."\n".
-                     '<select name="'.$codetitles[$i].'" onChange="courseSet('."'$codetitles[$i]'".')">'."\n".
+                    $output .= '<td>'.$codetitles[$i].'<br />'."\n".
+                     '<select name="'.$codetitles[$i].'" onchange="courseSet('."'$codetitles[$i]'".')">'."\n".
                      '<option value="-1">&lt;-'.$lt{'pick'}.' '.$codetitles[$i-1].'</option>'."\n".
                      '</select>'."\n".
-                     '</td>'
-                    );
+                     '</td>'."\n";
                 }
-                $r->print('</tr></table>');
+                $output .= '</tr></table>';
                 if ($numtitles > 4) {
-                    $r->print('<br /><br />'.$codetitles[$numtitles].'<br />'."\n".
-                          '<select name="'.$codetitles[$numtitles].'" onChange="courseSet('."'$codetitles[$numtitles]'".')">'."\n".
+                    $output .= '<br /><br />'.$codetitles[$numtitles].'<br />'."\n".
+                          '<select name="'.$codetitles[$numtitles].'" onchange="courseSet('."'$codetitles[$numtitles]'".')">'."\n".
                           '<option value="-1">&lt;-'.$lt{'pick'}.' '.$codetitles[$numtitles-1].'</option>'."\n".
-                          '</select>'."\n");
+                          '</select>'."\n";
                 }
             }
         } else {
-            $r->print($lt{'enin'}.':&nbsp;
-                  <input type="text" name="coursecode" size="15" value="" />');
+            $output .= $lt{'enin'}.':&nbsp;
+                  <input type="text" name="coursecode" size="15" value="" />';
         }
     }
     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 {
-        $r->print('<br />'.$lt{'enct'}.':&nbsp;
-                 <input type="text" name="title" size="25" value="" />');
+        $output .= '<br />'.$lt{'enct'}.':&nbsp;
+                 <input type="text" name="title" size="25" value="" />'."\n";
     }
-    $r->print(<<END);
-               </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{'secn'}: </b>
-               </td>
-              </tr>
-             </table>
-            </td>
-            <td width="100%" valign="top">
-             <table width="100%" border="0" cellpadding="8" cellspacing="0">
-              <tr>
-               <td>
-END
+    $output .= &Apache::lonhtmlcommon::row_closure().
+               &Apache::lonhtmlcommon::row_title($lt{'secn'},undef,'LC_oddrow_value');
     if ($sectionlist) {
-        $r->print("<select name=\"section\"\n>".
-                  "  <option value=\"\" selected=\"selected\">$lt{'sele'}</option>\n");
+        $output .= "<select name=\"section\"\n>".
+                   "  <option value=\"\" selected=\"selected\">$lt{'sele'}</option>\n";
         foreach my $id (sort(keys(%groupid))) {
             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 {
-                $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 {
-        $r->print("<input type=\"text\" name=\"section\" size=\"10\"/>");
+        $output .= '<input type="text" name="section" size="10" />';
     }
-    $r->print(<<END);
-               </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{'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
+    $output .= &Apache::lonhtmlcommon::row_closure().
+               &Apache::lonhtmlcommon::row_title($lt{'subj'},undef,'LC_evenrow_value').
+               '  <input type="text" size="40" name="subject" />'."\n".
+               &Apache::lonhtmlcommon::row_closure().
+               &Apache::lonhtmlcommon::row_title($lt{'detd'},undef,'LC_oddrow_value').
+               '  <textarea rows="10" cols="45" name="description" wrap="virtual"></textarea>'.
+               &Apache::lonhtmlcommon::row_closure();
+    my $lastrow = 'LC_evenrow_value';
     if (defined($env{'user.name'})) {
-        $r->print(<<END);
-           <tr>
-            <td width="140" bgcolor="$tablecolor">
-             <table width="140" border="0" cellpadding="8" cellspacing="0">
-              <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{'opfi'},undef,'LC_evenrow_value').
+                   ' <input type="file" name="screenshot" size="20" /><br />'.$lt{'uplf'}."\n".
+        &Apache::lonhtmlcommon::row_closure();
+        $lastrow = 'LC_oddrow_value';
     }
-
-    $r->print(<<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">
+    $output .= &Apache::lonhtmlcommon::row_title($lt{'fini'},undef,$lastrow);
+    $output .= <<END;
              <table border="0" cellpadding="8" cellspacing="0">
               <tr>
                <td>
-                <input type="hidden" name="action" value="process" />
-                <input type="button" value="$lt{'subm'}" onClick="validate()"/> &nbsp;
+                <input type="hidden" name="command" value="process" />
+                <input type="button" value="$lt{'subm'}" onclick="validate()" /> &nbsp;
                </td>
                <td>&nbsp;</td>
                <td>
-                <input type="reset" value="$lt{'clfm'}">
+                <input type="reset" value="$lt{'clfm'}" />
                </td>
               </tr>
              </table>
-            </td>
-           </tr>
-          </table>
-         </td>
-        </tr>
-       </table>
-      </td>
-     </tr>
-    </table>
-   </td>
-  </tr>
- </table>
+END
+    $output .= &Apache::lonhtmlcommon::row_closure(1);
+    $output .= &Apache::lonhtmlcommon::end_pick_box();
+    $r->print(<<END);
+$output
 </form>
+<br />
 END
     $r->print(&Apache::loncommon::end_page());
     return;
@@ -679,9 +453,6 @@
     my $to =  $Apache::lonnet::perlvar{'lonSupportEMail'};
     my $from = $admin;
     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');
 
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},\@formvars);
@@ -701,48 +472,62 @@
         }
     }
     my %lt = &Apache::lonlocal::texthash (
-                 name => 'Name',
-                 email => 'Email',
-                 unme => 'Username/domain',
-                 tel => 'Tel',
-                 crsi => 'Course Information',
-                 subj => 'Subject',
-                 desc => 'Description',
-                 date => 'Date/Time',
-                 secn => 'Section',
-                 asup => 'A support request has been sent to',
-                 warn => 'Warning: Problem with support e-mail address',
-                 your => 'Your support request contained the following information',
-                 sect => 'section',
-                 info => 'Information supplied',
-                 adin => 'Additional information recorded',
+                 username    => 'Name',
+                 email       => 'Email',
+                 user        => 'Username/domain',
+                 phone       => 'Phone',
+                 crsi        => 'Course Information',
+                 subject     => 'Subject',
+                 description => 'Description',
+                 sourceurl   => 'URL',
+                 date        => 'Date/Time',
+                 secn        => 'Section',
+                 asup        => 'A support request has been sent to',
+                 warn        => 'Warning: Problem with support e-mail address',
+                 your        => 'Your support request contained the following information',
+                 sect        => 'section',
+                 info        => 'Information supplied',
+                 adin        => 'Additional information recorded',
     );
-
-    my $supportmsg = qq|
-$lt{'name'}: $env{'form.username'}
+ 
+    $env{'form.user'} = "'".$env{'form.uname'}.':'.$env{'form.udom'}."'";
+    $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{'unme'}: $env{'form.uname'} - $env{'form.udom'}
-$lt{'tel'}: $env{'form.phone'}
-$lt{'crsi'}: $env{'form.title'} - $coursecode - $lt{'secn'}: $env{'form.section'}
-$lt{'subj'}: $env{'form.subject'}
-$lt{'desc'}: $env{'form.description'}
-URL: $env{'form.sourceurl'}
+$lt{'user'}: $env{'form.user'}
+$lt{'phone'}: $env{'form.phone'}
+$lt{'crsi'}: $env{'form.csri'}
+$lt{'subject'}: $env{'form.subject'}
+$lt{'description'}: $env{'form.description'}
+$lt{'sourceurl'}: $env{'form.sourceurl'}
 $lt{'date'}: $reporttime
 
-    |;
-    my $descrip = $env{'form.description'};
-    $descrip =~ s#\n#<br />#g;
-    my $displaymsg = qq|
-<font color="$fontcolor">$lt{'name'}:</font><font color="$vlinkcolor"> $env{'form.username'}</font><br />
-<font color="$fontcolor">$lt{'email'}: </font><font color="$vlinkcolor">$env{'form.email'}</font><br />
-<font color="$fontcolor">$lt{'unme'}: </font><font color="$vlinkcolor">$env{'form.uname'} - $env{'form.udom'}</font><br />
-<font color="$fontcolor">$lt{'tel'}: </font><font color="$vlinkcolor">$env{'form.phone'}</font><br />
-<font color="$fontcolor">$lt{'crsi'}: </font><font color="$vlinkcolor">$env{'form.title'} - $coursecode - $lt{'sect'}: $env{'form.section'}</font><br />
-<font color="$fontcolor">$lt{'subj'}: </font><font color="$vlinkcolor">$env{'form.subject'}</font><br />
-<font color="$fontcolor">$lt{'desc'}: </font><font color="$vlinkcolor">$descrip</font><br />
-<font color="$fontcolor">URL: </font><font color="$vlinkcolor">$env{'form.sourceurl'}</font><br />
-<font color="$fontcolor">$lt{'date'}: </font><font color="$vlinkcolor">$reporttime</font><br />
-    |;
+END
+    my $displaymsg;
+    foreach my $item ('username','email','user','phone','crsi','subject','description','sourceurl') {
+        if ($env{'form.'.$item} ne '') {
+            if ($item eq 'description') {
+                my $descrip = $env{'form.description'};
+                $descrip =~ s|\n|<br />|g;
+                $displaymsg .= 
+                    '<span class="LC_helpform_receipt_cat">'.
+                    "$lt{$item}</span>: $descrip<br />\n";
+            } elsif ($item eq 'sourceurl') {
+                my $showurl = $env{'form.sourceurl'};
+                $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 = 
 	&Apache::loncommon::start_page('Support request recorded',undef,
@@ -756,7 +541,7 @@
     $r->print(<<"END");
 $start_page
 <form name="logproblem">
-<input type="hidden" name="action" value="result" />
+<input type="hidden" name="command" value="result" />
 </form>
 END
     if ($r->uri eq '/adm/helpdesk') {
@@ -782,12 +567,12 @@
     }
 
     my $subject = $env{'form.subject'};
-    $subject =~ s#(`)#'#g;
-    $subject =~ s#\$#\(\$\)#g;
-    $supportmsg =~ s#(`)#'#g;
-    $supportmsg =~ s#\$#\(\$\)#g;
-    $displaymsg =~ s#(`)#'#g;
-    $displaymsg =~ s#\$#\(\$\)#g;
+    $subject =~ s/(`)/'/g;
+    $subject =~ s/\$/\(\$\)/g;
+    $supportmsg =~ s/(`)/'/g;
+    $supportmsg =~ s/\$/\(\$\)/g;
+    $displaymsg =~ s/(`)/'/g;
+    $displaymsg =~ s/\$/\(\$\)/g;
     my $fname;
 
     my $attachmentpath = '';
@@ -811,7 +596,7 @@
 
     if ($attachmentpath =~ m-/([^/]+)$-) {
         $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";
         foreach my $var (@cookievars) {
             $supportmsg .= "$var: $cookies{$var}\n";
@@ -860,99 +645,46 @@
 ### Send it:
     $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);
     }
-    $r->print(qq|
- <b>$lt{'your'}</b>:<br /><br />
- <table width="580" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000">
-  <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{'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>
-    |);
+    $r->print('<b>'.$lt{'your'}.'</b>:<br /><br />'."\n");
+    $r->print(&Apache::lonhtmlcommon::start_pick_box('LC_helpform_receipt').
+              &Apache::lonhtmlcommon::row_title($lt{'info'},undef,'LC_oddrow_value')."\n".$displaymsg."\n".
+              &Apache::lonhtmlcommon::row_closure().
+              &Apache::lonhtmlcommon::row_title($lt{'adin'},undef,'LC_evenrow_value'));
+    my $envmsg;
     foreach my $var (@cookievars) {
-        unless($cookies{$var} eq '') {
-            $r->print("$var:&nbsp;<font color='$vlinkcolor'>$cookies{$var}</font>, ");
+        if ($cookies{$var} ne '') {
+            $envmsg.= '<span class="LC_helpform_receipt_cat">'.
+                      $var.'</span>:&nbsp;'.$cookies{$var}.', ';
         }
     }
     foreach my $var (@ENVvars) {
-        unless($ENV{$var} eq '') {
-            $r->print("$var:&nbsp;<font color='$vlinkcolor'>$ENV{$var}</font>, ");
+        if ($ENV{$var} ne '') {
+            $envmsg .= '<span class="LC_helpform_receipt_cat">'.
+                       $var.'</span>:&nbsp;'.$ENV{$var}.', ';
         }
     }
     foreach my $var (@envvars) {
-        unless($env{$var} eq '') { 
-            $r->print("$var:&nbsp;<font color='$vlinkcolor'>$env{$var}</font>, ");
+        if ($env{$var} ne '') { 
+            $envmsg .= '<span class="LC_helpform_receipt_cat">'.
+                       $var.'</span>:&nbsp;'.$env{$var}.', ';
         }
     }
-    $r->print("
-               </td>
-              </tr>
-             </table>
-            </td>
-           </tr>
-          </table>
-         </td>
-        </tr>
-       </table>
-      </td>
-     </tr>
-    </table>
-   </td>
-  </tr>
- </table>
-    ");
-    $r->print(&Apache::loncommon::end_page());
+    $envmsg =~ s/, $//;
+    $r->print($envmsg."\n".
+              &Apache::lonhtmlcommon::row_closure(1)."\n".
+              &Apache::lonhtmlcommon::end_pick_box()."\n".
+              &Apache::loncommon::end_page());
 }
 
 sub print_header {
-    my ($r,$origurl,$action) = @_;
+    my ($r,$origurl,$command) = @_;
     my $location=&Apache::loncommon::lonhttpdurl("/adm");
-    my $tablecolor = '#EEEE99';
     my ($component_url);
     my $helpdesk_link = '<a href="javascript:validate()">';
-    if ($action eq 'process') {
+    if ($command eq 'process') {
         $helpdesk_link = '<a href="/adm/helpdesk">';
     }
     my %lt = &Apache::lonlocal::texthash (
@@ -970,30 +702,12 @@
 <table width="620" border="0" cellspacing="0" cellpadding="0" height="55">   <tr height="50">    <td width='5'>&nbsp;</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>
- <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000">
-  <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 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 id="LC_helpmenu_links">
+   <tr>
+    <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>
+    <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
+    <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>
+   </tr>
  </table>
 </fieldset>
   </td>
@@ -1003,11 +717,11 @@
   <td colspan='3' height='5'>&nbsp;</td>
  </tr>
 END
-    unless ($action eq 'process') {
+    if  ($command ne 'process') {
         $r->print('
  <tr>
   <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>
  </tr>');
     }

--raeburn1188971180--