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

bowersj2 lon-capa-cvs@mail.lon-capa.org
Thu, 13 Jun 2002 17:54:04 -0000


bowersj2		Thu Jun 13 13:54:04 2002 EDT

  Modified files:              
    /loncom/interface	lontest.pm 
  Log:
  Prettified the debugging output. Added <wbr> (word breaks)
  so the debug output should fit without horizontal scrolling.
  Fixes bug 527.
  
  
  
Index: loncom/interface/lontest.pm
diff -u loncom/interface/lontest.pm:1.3 loncom/interface/lontest.pm:1.4
--- loncom/interface/lontest.pm:1.3	Wed Dec 19 12:17:46 2001
+++ loncom/interface/lontest.pm	Thu Jun 13 13:54:04 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # A debugging harness.
 #
-# $Id: lontest.pm,v 1.3 2001/12/19 17:17:46 albertel Exp $
+# $Id: lontest.pm,v 1.4 2002/06/13 17:54:04 bowersj2 Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -32,30 +32,65 @@
 use strict;
 use Apache::Constants qw(:common :http);
 
+# section takes one env var name as input, and returns
+# what section the given env var is in, which is the part
+# of the env var before the first period.
+# Returns the section, or blank string for 'no section',
+# which is normal for the standard ENV vars like REQUEST_URI.
+sub section
+{
+    my ($name) = @_;
+    return $1 if $name =~ m/\A([^.]*)\./;
+    return '';
+}
+
  sub handler {
      my $r = shift;
      $r->content_type('text/html');
      $r->send_http_header;
      return OK if $r->header_only;
-    
 
      $r->print('<html><body>');
 
      my $envkey;
  
      $->print("<hr><h1>Debugging</h1><hr>\n");
+     $->print("<font face='Courier'>");
      
      my $i=0;
+     my $interval = 20; # change this to change how many keys/table
+     my $prevSection = ''; # keeps track of the section we're in.
      foreach $envkey (sort keys %ENV) {
- 	$r->print("$envkey ---- $ENV{$envkey}<br>");
-        $i++;
+	 if (not ($i % $interval))
+         {
+	     $r->print('</table>') unless $i eq 0;
+	     $r->print('<table border="0">')
+         }
+	 my $sec = section($envkey);
+
+	 if ($prevSection ne $sec) # new section, print header
+	 {
+	     $r->print('<tr><td colspan="2">');
+	     $r->print("<br><br><h2 style='color: #008800'><u>$sec</u></h2>");
+	     $r->print('</td></tr>');
+	     $prevSection = $sec;
+	 }
+
+	 my $envVal = $ENV{$envkey};
+	 $envVal =~ s/(.{50})/\1\<wbr\>/g;
+	 $envkey =~ s/(.{30})/\1\<wbr\>/g;
+	 
+	 $r->print("<tr><td valign='top'><b>$envkey</b></td>");
+         $r->print("<td valign='top'>$envVal</td></tr>\n");
+	 $i++;
      }
 
-     $r->print('<h1>Total Number of Elements: '.$i.'</h1>');
+     $r->print('</table></font><h1>Total Number of Elements: '.$i.'</h1>');
  
 # ------------------------------------------------------------------- End Debug
      $r->print('</body></html>');        
  }
+
 
 1;
 __END__