fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2010-12-29 05:13 am

[dw-free] Need consistent styling across the site

[commit: http://hg.dwscoalition.org/dw-free/rev/51f91108e1ed]

http://bugs.dwscoalition.org/show_bug.cgi?id=3243

Tweak HTML -- use thead where applicable; this improves the styling in most
cases. Also tweak the logic/class names for alternating rows in a couple of
pages (missed them!)

Patch by [personal profile] fu.


Files modified:
  • cgi-bin/DW/Setting/XPostAccounts.pm
  • cgi-bin/LJ/SpellCheck.pm
  • cgi-bin/LJ/Widget/LinksList.pm
  • cgi-bin/LJ/Widget/ManageSiteMessages.pm
  • htdocs/admin/faq/faqcat.bml
  • htdocs/admin/invites/codetrace.bml
  • htdocs/admin/invites/promo.bml
  • htdocs/admin/invites/requests.bml
  • htdocs/admin/invites/review.bml
  • htdocs/admin/memcache.bml
  • htdocs/admin/navtag.bml
  • htdocs/admin/pay/index.bml
  • htdocs/admin/priv/index.bml
  • htdocs/admin/schema/index.bml
  • htdocs/admin/spamreports.bml
  • htdocs/admin/statushistory.bml
  • htdocs/admin/sysban.bml
  • htdocs/admin/translate/help-severity.bml
  • htdocs/admin/translate/index.bml
  • htdocs/admin/translate/teams.bml
  • htdocs/admin/userlog.bml
  • htdocs/community/manage.bml
  • htdocs/community/members.bml
  • htdocs/community/moderate.bml
  • htdocs/community/pending.bml
  • htdocs/community/sentinvites.bml
  • htdocs/customize/advanced/layers.bml
  • htdocs/feeds/index.bml
  • htdocs/feeds/list.bml
  • htdocs/manage/banusers.bml
  • htdocs/manage/emailpost.bml
  • htdocs/manage/invitecodes.bml
  • htdocs/manage/invites.bml
  • htdocs/manage/logins.bml
  • htdocs/manage/moodthemes.bml
  • htdocs/shop/history.bml
  • htdocs/support/help.bml
  • htdocs/support/highscores.bml
  • htdocs/support/history.bml
  • htdocs/tools/emailmanage.bml
  • htdocs/tools/recent_comments.bml
  • htdocs/tools/recent_emailposts.bml
  • views/admin/rename.tt
  • views/interests/findsim.tt
  • views/interests/popular.tt
  • views/stats/site.tt
--------------------------------------------------------------------------------
diff -r dec5adeda112 -r 51f91108e1ed cgi-bin/DW/Setting/XPostAccounts.pm
--- a/cgi-bin/DW/Setting/XPostAccounts.pm	Wed Dec 29 11:11:03 2010 +0800
+++ b/cgi-bin/DW/Setting/XPostAccounts.pm	Wed Dec 29 13:13:46 2010 +0800
@@ -65,6 +65,7 @@ sub option {
     $ret .= "<h2>" . $class->ml('setting.xpost.accounts') ."</h2><br/>"; 
     $ret .= "<table class='setting_table'>\n";
     if (scalar @accounts) {
+        $ret .= "<thead>";
         $ret .= "<tr>\n";
         $ret .= "<th>" . $class->ml('setting.xpost.option.username') . "</th>\n";
         $ret .= "<th>" . $class->ml('setting.xpost.option.server') . "</th>\n";
@@ -73,6 +74,7 @@ sub option {
         $ret .= "<th>" . $class->ml('setting.xpost.option.change') . "</th>\n";
         $ret .= "<th>" . $class->ml('setting.xpost.option.delete') . "</th>\n";
         $ret .= "</tr>\n";
+        $ret .= "</thead>";
 
         # display each account
         foreach my $externalacct (@accounts) {
diff -r dec5adeda112 -r 51f91108e1ed cgi-bin/LJ/SpellCheck.pm
--- a/cgi-bin/LJ/SpellCheck.pm	Wed Dec 29 11:11:03 2010 +0800
+++ b/cgi-bin/LJ/SpellCheck.pm	Wed Dec 29 13:13:46 2010 +0800
@@ -138,7 +138,7 @@ sub check_html {
     $iwrite->close;
 
 
-    return ( ( $mscnt || $other_bad ) ? "$output<table cellpadding=3 border=0><tr><th>Text</th><th>Suggestions</th></tr>$footnotes</table>" : "" );
+    return ( ( $mscnt || $other_bad ) ? "$output<table cellpadding=3 border=0><thead><tr><th>Text</th><th>Suggestions</th></tr></thead>$footnotes</table>" : "" );
 }
 
 1;
diff -r dec5adeda112 -r 51f91108e1ed cgi-bin/LJ/Widget/LinksList.pm
--- a/cgi-bin/LJ/Widget/LinksList.pm	Wed Dec 29 11:11:03 2010 +0800
+++ b/cgi-bin/LJ/Widget/LinksList.pm	Wed Dec 29 13:13:46 2010 +0800
@@ -49,8 +49,8 @@ sub render_body {
     $showlinks = $caplinks if $showlinks > $caplinks;
 
     $ret .= "<table border='0' cellspacing='5' cellpadding='0'>";
-    $ret .= "<tr><th>" . $class->ml('widget.linkslist.table.order') . "</th>";
-    $ret .= "<th>" . $class->ml('widget.linkslist.table.title') . "</th><td>&nbsp;</td></tr>";
+    $ret .= "<thead><tr><th>" . $class->ml('widget.linkslist.table.order') . "</th>";
+    $ret .= "<th>" . $class->ml('widget.linkslist.table.title') . "</th><td>&nbsp;</td></tr></thead>";
 
     foreach my $ct (1..$showlinks) {
         my $it = $linkobj->[$ct-1] || {};
diff -r dec5adeda112 -r 51f91108e1ed cgi-bin/LJ/Widget/ManageSiteMessages.pm
--- a/cgi-bin/LJ/Widget/ManageSiteMessages.pm	Wed Dec 29 11:11:03 2010 +0800
+++ b/cgi-bin/LJ/Widget/ManageSiteMessages.pm	Wed Dec 29 13:13:46 2010 +0800
@@ -58,7 +58,7 @@ sub render_body {
     return $ret . "<?p No messages started during the selected month. p?>" unless @this_months_messages;
 
     $ret .= "<table border='1' cellpadding='3'>";
-    $ret .= "<tr><th>Message</th><th>Start Date</th><th>End Date</th><th colspan='2'>Active Status</th><th>Edit</th></tr>";
+    $ret .= "<thead><tr><th>Message</th><th>Start Date</th><th>End Date</th><th colspan='2'>Active Status</th><th>Edit</th></tr></thead>";
     foreach my $row (@this_months_messages) {
         my $start_date = DateTime->from_epoch( epoch => $row->{time_start}, time_zone => 'America/Los_Angeles' );
         my $end_date = DateTime->from_epoch( epoch => $row->{time_end}, time_zone => 'America/Los_Angeles' );
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/faq/faqcat.bml
--- a/htdocs/admin/faq/faqcat.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/faq/faqcat.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -210,7 +210,7 @@ body<=
             $ret .= "<form action='faqcat.bml' method='post'>\n";
             $ret .= LJ::form_auth();
             $ret .= LJ::html_hidden( 'faqcats' => join ( ",", map { $faqcat{$_}->{faqcat} } keys %faqcat ) );
-            $ret .= "<table><tr><th style='padding: 5px'><?_ml .label.catname _ml?></th><th style='padding: 5px'><?_ml .label.catkey _ml?></th><th style='padding: 5px'><?_ml .label.catorder _ml?></th><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp</th></tr>";
+            $ret .= "<table><thead><tr><th style='padding: 5px'><?_ml .label.catname _ml?></th><th style='padding: 5px'><?_ml .label.catkey _ml?></th><th style='padding: 5px'><?_ml .label.catorder _ml?></th><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp</th></tr></thead>";
 
             foreach my $faqcat ( sort { $faqcat{$a}->{catorder} <=> $faqcat{$b}->{catorder} } keys %faqcat ) {
 
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/invites/codetrace.bml
--- a/htdocs/admin/invites/codetrace.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/invites/codetrace.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -57,7 +57,7 @@ sub display_codes {
 sub display_codes {
     my ($account, @codes) = @_;
 
-    my $ret = "<table border='1' cellpadding='5'><tr><th>Code</th><th>Owner</th><th>Recipient</th><th>Reason</th><th>Date generated</th><th>Date sent</th><th>Date used</th><th>Email</th></tr>";
+    my $ret = "<table border='1' cellpadding='5'><thead><tr><th>Code</th><th>Owner</th><th>Recipient</th><th>Reason</th><th>Date generated</th><th>Date sent</th><th>Date used</th><th>Email</th></tr></thead>";
 
     foreach my $code ( @codes ) {
         my $owner = $code->owner == $account->id ? $account : LJ::load_userid( $code->owner );
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/invites/promo.bml
--- a/htdocs/admin/invites/promo.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/invites/promo.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -213,7 +213,7 @@ body<=
         $ret .= '<a href="/admin/invites/promo?state=noneleft">' . $ML{'.state.noneleft'} . '</a>';
 
         $ret .= "<table>";
-        $ret .= "<tr><th>$ML{'.heading.code'}</th><th>$ML{'.heading.active'}</th><th>$ML{'.heading.count'}</th><th>$ML{'.heading.suggest'}</th><th>$ML{'.heading.paid'}</tr>";
+        $ret .= "<thead><tr><th>$ML{'.heading.code'}</th><th>$ML{'.heading.active'}</th><th>$ML{'.heading.count'}</th><th>$ML{'.heading.suggest'}</th><th>$ML{'.heading.paid'}</tr></thead>";
         
         if ( scalar( @$codes ) ) {
             foreach my $code (@$codes) {
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/invites/requests.bml
--- a/htdocs/admin/invites/requests.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/invites/requests.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -59,7 +59,7 @@ body<=
     $ret .= "<form method='post'>";
     $ret .= LJ::form_auth();
     $ret .= "<table>";
-    $ret .= "<tr><th>User</th><th>Time Generated</th><th>P/C</th><th>Ct</th><th>Give</th><th>Reason</th></tr>";
+    $ret .= "<thead><tr><th>User</th><th>Time Generated</th><th>P/C</th><th>Ct</th><th>Give</th><th>Reason</th></tr></thead>";
     foreach my $outstanding ( @outstanding ) {
         my $u = $users->{$outstanding->userid};
         
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/invites/review.bml
--- a/htdocs/admin/invites/review.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/invites/review.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -53,7 +53,7 @@ body<=
 
     my @codes = DW::InviteCodes->by_owner( userid => $u->id );
     $ret .= "<table>";
-    $ret .= "<tr><th>Recipient</th><th>Last Active</th><th>Paid?</th></tr>";
+    $ret .= "<thead><tr><th>Recipient</th><th>Last Active</th><th>Paid?</th></tr></thead>";
 
     foreach my $code ( @codes ) {
         my $recipient = LJ::load_userid( $code->recipient );
@@ -73,7 +73,7 @@ body<=
     $ret .= "<?h2 Requests for Invite Codes h2?>";    
     my @requests = DW::InviteCodeRequests->by_user( userid => $u->id );
     $ret .= "<table>";
-    $ret .= "<tr><th>Requested on</th><th>Processed on</th><th>Status</th><th>Request reason</th></tr>";
+    $ret .= "<thead><tr><th>Requested on</th><th>Processed on</th><th>Status</th><th>Request reason</th></tr></thead>";
 
     foreach my $request ( @requests ) {
         $ret .= "<tr>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/memcache.bml
--- a/htdocs/admin/memcache.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/memcache.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -46,7 +46,7 @@ _c?>
 </div>
 <h1>Memory Cache Overview</h1>
 <table border='1' cellpadding='5'>
-<tr><th>Host</th><th>Hit Rate</th><th>Curr/Max Size</th><th><span title='Utilization'>Utlz %</span></th><th>Uptime</th><th>Version</th></tr>
+<thead><tr><th>Host</th><th>Hit Rate</th><th>Curr/Max Size</th><th><span title='Utilization'>Utlz %</span></th><th>Uptime</th><th>Version</th></tr></thead>
 END_TOP
     }
 
@@ -153,7 +153,7 @@ END_TOP
 
 	    $ret .= "<h2>Slab classes</h2>";
 	    $ret .= "<table border='1' cellpadding='2'>";
-	    $ret .= "<tr><th>class</th><th>size</th><th>used</th><th>total</th><th colspan='2'>free</th><th>pages</th><th>max age</th></tr>\n";
+	    $ret .= "<thead><tr><th>class</th><th>size</th><th>used</th><th>total</th><th colspan='2'>free</th><th>pages</th><th>max age</th></tr></thead>\n";
 	    foreach my $cls (0..31) {
 		my $size = $stat{'slabs'}{"$cls:chunk_size"};
 		next unless $size;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/navtag.bml
--- a/htdocs/admin/navtag.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/navtag.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -112,7 +112,7 @@ _c?>
 	    $ret .= LJ::html_text({ name => 'add_tags', size => 30 });
 	    $ret .= LJ::html_hidden('add_tags_url', $dest);
 	} else {
-	    $ret .= "<table><tr><th>Add Tags</th><th>URL</th></tr>";
+	    $ret .= "<table><thead><tr><th>Add Tags</th><th>URL</th></tr></thead>";
 	    $ret .= "<tr><td>";
 	    $ret .= LJ::html_text({ name => 'add_tags', size => 30 });
 	    $ret .= "</td><td>";
@@ -153,7 +153,7 @@ _c?>
         $ret .= LJ::form_auth();
         $ret .= "<?h1 Tags Pointing At " . LJ::ehtml($url) . " h1?>";
 
-        $ret .= "<table><tr><th>Tag</th><th>Remove</th></tr>";
+        $ret .= "<table><thead><tr><th>Tag</th><th>Remove</th></tr></thead>";
 
         my $dest = LJ::NavTag::Dest->new_from_url($url);
 
@@ -181,7 +181,7 @@ _c?>
 	my $ret;
 
 	$ret .= "<?h1 Destinations Of Tag " . LJ::ehtml($tag) . " h1?>";
-	$ret .= "<table><tr><th>Title</th><th>Destination</th></tr>";
+	$ret .= "<table><thead><tr><th>Title</th><th>Destination</th></tr></thead>";
 
 	my @dests = LJ::NavTag->dests_of_tag($tag);
 
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/pay/index.bml
--- a/htdocs/admin/pay/index.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/pay/index.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -133,8 +133,8 @@ EOF
 
         if ( @carts ) {
             $body .= "<table border='1'>";
-            $body .= "<tr><th>Cart Number</th><th>Date</th><th>Total</th>";
-            $body .= "<th>Payment Method</th><th>Status</th><th>Details</th>";
+            $body .= "<thead><tr><th>Cart Number</th><th>Date</th><th>Total</th>";
+            $body .= "<th>Payment Method</th><th>Status</th><th>Details</th></tr></thead>";
             foreach my $cart ( @carts ) {
                 my $state = $cart->state;
                 my $paymentmethod = $cart->paymentmethod;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/priv/index.bml
--- a/htdocs/admin/priv/index.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/priv/index.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -208,7 +208,7 @@ body<=
         $ret .= "<input type='hidden' name='user' value='$user' />\n";
         $sth = $dbh->prepare("SELECT pm.prmid, pm.prlid, pm.arg FROM priv_map pm, priv_list pl WHERE pm.prlid=pl.prlid AND pm.userid=$userid ORDER BY pl.privcode,pm.arg");
         $sth->execute;
-        $ret .= "<table cellpadding='5' cellspacing='1' border='1'><tr><th>Revoke</th><th>Privilege</th><th>Arg</th></tr>\n";
+        $ret .= "<table cellpadding='5' cellspacing='1' border='1'><thead><tr><th>Revoke</th><th>Privilege</th><th>Arg</th></tr></thead>\n";
         while (my ($prmid, $prlid, $arg) = $sth->fetchrow_array)
         {
             my $prec = $priv{$prlid};
@@ -294,7 +294,7 @@ body<=
                           "FROM priv_map pm, useridmap u WHERE pm.prlid=$priv AND pm.userid=u.userid$viewarg ".
                           "ORDER BY u.user,pm.arg LIMIT $skip,$limit");
         $sth->execute;
-        $ret .= "<table cellpadding='5' cellspacing='1' border='1'><tr><th>Revoke</th><th>User</th><th>Arg</th></tr>\n";
+        $ret .= "<table cellpadding='5' cellspacing='1' border='1'><thead><tr><th>Revoke</th><th>User</th><th>Arg</th></tr></thead>\n";
 
         my $showgrant = remote_can_grant($remote, $pcode, $FORM{'viewarg'});
         my $foundcount = 0;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/schema/index.bml
--- a/htdocs/admin/schema/index.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/schema/index.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -48,7 +48,7 @@ body<=
          $table{$name} = { 'public' => $public, 'des' => $des };
      }
 
-     $body .= "<?h1 Tables h1?><?p Click a table for more information. p?><p><table cellpadding=4><tr bgcolor=<?emcolor?>><th>Table</th><th>Description</th></tr>\n";
+     $body .= "<?h1 Tables h1?><?p Click a table for more information. p?><p><table cellpadding=4><thead><tr bgcolor=<?emcolor?>><th>Table</th><th>Description</th></tr></thead>\n";
      $sth = $dbh->prepare("SHOW TABLES");
      $sth->execute;
      while (my ($table) = $sth->fetchrow_array) {
@@ -99,14 +99,14 @@ body<=
 
      $sth = $dbh->prepare("DESCRIBE $table");
      $sth->execute;
-     $body .= "<table cellpadding=3><tr bgcolor=<?emcolor?>>";
+     $body .= "<table cellpadding=3><thead><tr bgcolor=<?emcolor?>>";
      $body .= "<th>Key?</th>";
      $body .= "<th>Column</th>";
      $body .= "<th>Type</th>";
      $body .= "<th>Null</th>";
      $body .= "<th>Default</th>";
      $body .= "<th>Description</th>";
-     $body .= "</tr>\n";
+     $body .= "</tr></thead>\n";
      while (my $row = $sth->fetchrow_hashref)
      {
          my $name = $row->{'Field'};
@@ -148,11 +148,11 @@ body<=
 
      $sth = $dbh->prepare("SELECT * FROM $table LIMIT $MAX_ROWS");
      $sth->execute;
-     $body .= "<table cellpadding=3><tr bgcolor=<?emcolor?>>";
+     $body .= "<table cellpadding=3><thead><tr bgcolor=<?emcolor?>>";
      foreach my $col (@{$sth->{'NAME'}}) {
          $body .= "<th>$col</th>\n";
      }
-     $body .= "</tr>\n";
+     $body .= "</tr></thead>\n";
 
      while (my $row = $sth->fetchrow_arrayref) {
          $body .= "<tr valign=top>\n";
@@ -194,11 +194,11 @@ body<=
 
      $sth = $dbh->prepare("DESCRIBE $table");
      $sth->execute;
-     $body .= "<p><table cellpadding=3><tr bgcolor=<?emcolor?>>";
+     $body .= "<p><table cellpadding=3><thead><tr bgcolor=<?emcolor?>>";
      $body .= "<th>Column</th>";
      $body .= "<th>Type</th>";
      $body .= "<th>Description</th>";
-     $body .= "</tr>\n";
+     $body .= "</tr></thead>\n";
      while (my $row = $sth->fetchrow_hashref)
      {
          my $name = $row->{'Field'};
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/spamreports.bml
--- a/htdocs/admin/spamreports.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/spamreports.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -288,9 +288,9 @@ _c?>
     # now spit out the requested table
     return unless @headers;
     $body .= "<?p [ <a href=\"spamreports\">&lt;&lt; Front Page</a> ] p?>";
-    $body .= "<table width=\"50%\">\n<tr>";
+    $body .= "<table width=\"50%\">\n<thead><tr>";
     $body .= "<th align=\"center\">$_</th>" foreach @headers;
-    $body .= "</tr>\n";
+    $body .= "</tr></thead>\n";
     foreach (@rows) {
         $body .= "<tr>";
         $body .= "<td align=\"center\">$_</td>" foreach @$_;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/statushistory.bml
--- a/htdocs/admin/statushistory.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/statushistory.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -91,13 +91,13 @@ _c?>
         $ret .= "&nbsp;&nbsp;$_=" . LJ::eall($FORM{$_}) if $FORM{$_}
     }
     $ret .= "</b></p>\n";
-    $ret .= "<table border='1' cellpadding='5' width='100%'>\n<tr>";
+    $ret .= "<table border='1' cellpadding='5' width='100%'>\n<thead><tr>";
     foreach (qw(user admin shtype shdate notes)) {
         my $link = "statushistory?user=$FORM{'user'}&admin=$FORM{'admin'}&type=$FORM{'type'}&orderby=$_";
         $link .= $FORM{'orderby'} eq $_ && $FORM{'flow'} eq 'asc' ? "&flow=desc" : "&flow=asc";
         $ret .= "<th><a href='$link'>$_</a></th>";
     }
-    $ret .= "</tr>\n";
+    $ret .= "</tr></thead>\n";
 
     # query built above
     my $ct = 0;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/sysban.bml
--- a/htdocs/admin/sysban.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/sysban.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -108,7 +108,7 @@ FORM
 
         $ret = <<QUERYFORM;
 <table>
-<tr><th>Value</th><th>Expiration</th><th>Change expiry</th><th>Note</th><th>Action</th></tr>
+<thead><tr><th>Value</th><th>Expiration</th><th>Change expiry</th><th>Note</th><th>Action</th></tr></thead>
 QUERYFORM
 
         foreach my $value ( keys %$existing_bans ) {
@@ -178,7 +178,7 @@ QUERYFORM
         my $sysbans = LJ::sysban_populate_full_by_value( $banquery, @sysban_privs ) || {};
         if ( %$sysbans ) {
             $ret .= "Sysbans for " . LJ::ehtml( $banquery );
-            $ret .= "<table><tr><th>Type</th><th>Expiration</th><th>Note</th></tr>";
+            $ret .= "<table><thead><tr><th>Type</th><th>Expiration</th><th>Note</th></tr></thead>";
             while ( my ( $what, $details ) = each %$sysbans  ) {
                 $ret .= "<tr>";
                 $ret .= "<td>$what</td>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/translate/help-severity.bml
--- a/htdocs/admin/translate/help-severity.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/translate/help-severity.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -1,7 +1,7 @@
 <h1>Description of severity levels:</h1>
 
 <table cellpadding='3'>
-<tr valign='top'><th>Severity</th><th>Description</th></tr>
+<thead><tr valign='top'><th>Severity</th><th>Description</th></tr></thead>
 <tr valign='top'><td><b>0</b></td><td>Translate is up-to-date</td></tr>
 <tr valign='top'><td><b>1</b></td><td>Parent language has changed a little.  Your translation might need updating.</td></tr>
 <tr valign='top'><td><b>2</b></td><td>Parent language has changed.  Your translation probably needs updating.</td></tr>
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/translate/index.bml
--- a/htdocs/admin/translate/index.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/translate/index.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -49,7 +49,7 @@ body<=
 
     $ret .= BML::ml('.text', {'aopts' => "href='$LJ::SITEROOT/admin/translate/teams'"});
 
-    $ret .= "<p><table border='1' cellspacing='1' cellpadding='3'><tr>";
+    $ret .= "<p><table border='1' cellspacing='1' cellpadding='3'><thead><tr>";
     foreach (@cols) {
         if ($sortcol eq $_->[0]) {
             $ret .= "<th>$_->[1]</th>";
@@ -58,7 +58,7 @@ body<=
         }
         if ($_->[0] eq $sortcol && $_->[3]) { $sorter = $_->[3]; }
     }
-    $ret .= "</tr>\n";
+    $ret .= "</tr></thead>\n";
 
     foreach my $r (sort $sorter values %lang) {
         $ret .= "<tr>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/translate/teams.bml
--- a/htdocs/admin/translate/teams.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/translate/teams.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -40,7 +40,7 @@ body<=
     }
 
     $ret .= "<p><table cellpadding='5' border='1'>";
-    $ret .= "<tr><th>$ML{'.table.language'}</th><th>$ML{'.table.community'}</th><th>$ML{'.table.users'}</th></tr>";
+    $ret .= "<thead><tr><th>$ML{'.table.language'}</th><th>$ML{'.table.community'}</th><th>$ML{'.table.users'}</th></tr></thead>";
 
     foreach my $l (sort { $a->{'lnname'} cmp $b->{'lnname'} } values %lang) {
         $ret .= "<tr valign='top' align='left'><td><b>$l->{'lnname'}</b></td>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/admin/userlog.bml
--- a/htdocs/admin/userlog.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/admin/userlog.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -77,9 +77,9 @@ FORM
 
     $ret .= "<?p Latest log entries for " . LJ::ljuser($u) . ". p?>";
     $ret .= "<table style='border: solid 1px black; width: 95%;'>\n";
-    $ret .= "<tr>";
+    $ret .= "<thead><tr>";
     $ret .= join('', map { "<th class='logrow'>$_</th>" } ("Date and Time", "Action", "Initiator", "IP Address", "Uniq Cookie"));
-    $ret .= "</tr>\n";
+    $ret .= "</tr></thead>\n";
 
     while (my $row = $sth->fetchrow_hashref) {
         my $extra = {};
diff -r dec5adeda112 -r 51f91108e1ed htdocs/community/manage.bml
--- a/htdocs/community/manage.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/community/manage.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -80,7 +80,7 @@ body<=
 
        # Make up the first table row, linking to the other sort methods
        my @snames;
-       $ret .= "<table cellpadding='0' cellspacing='0' style='width: 100%;'><tr>";
+       $ret .= "<table cellpadding='0' cellspacing='0' style='width: 100%;'><thead><tr>";
 
        if (!defined $GET{'sortby'} || $GET{'sortby'} eq 'username') {
            $ret .= "<th>$ML{'.commlist.username'}</th>";
@@ -107,11 +107,13 @@ body<=
            $ret .= "<th>&nbsp;</th>";
        }
 
+       $ret .= "</tr></thead>";
+
        my $rc = 0;
        foreach my $id (@snames) {
            my $user = $names{$id}->[0];
            my $name = $names{$id}->[1];
-           my $rstyle = ($rc++ & 1) ? "odd" : "even";
+           my $rstyle = ($rc++ & 1) ? "even" : "odd";
            $ret .= "<tr class='$rstyle'><td><?ljcomm $user ljcomm?></td><td>" . LJ::eall($name) . "</td><td nowrap='nowrap'>";
            if ($admin{$id}) {
                $ret .= BML::ml('Actionlink', {
diff -r dec5adeda112 -r 51f91108e1ed htdocs/community/members.bml
--- a/htdocs/community/members.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/community/members.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -527,16 +527,16 @@ body<=
     }
 
     my $sortlink = BML::get_uri() . "?authas=$cname&sort=";
-    $ret .= "<br /><div align='center'><table cellpadding='0' cellspacing='0'>\n<tr>" .
+    $ret .= "<br /><div align='center'><table cellpadding='0' cellspacing='0'>\n<thead><tr>" .
             "<th><a href='${sortlink}name'>$ML{'.key.user'}</a></th>";
     $ret .= "<th><a href='${sortlink}$_'>".$ML{".key.$_"}."</a></th>" for (@attribs);
-    $ret .= "</tr>\n";
+    $ret .= "</tr></thead>\n";
 
     # rows for existing users
     my $rc = 0;
     my @wstrs;
     foreach(@users) {
-        my $rstyle = ($rc++ & 1) ? "odd" : "even";
+        my $rstyle = ($rc++ & 1) ? "even" : "odd";
         $ret .= "<tr class='$rstyle'><td>" . LJ::ljuser($_->{'name'}) . "</td>";
         my $wstr;
         foreach my $key (@attribs) {
@@ -553,7 +553,7 @@ body<=
     # if on the last page, let users add to the list
     if ($items{'page'} == $items{'pages'}) {
         foreach(1..5) {
-            my $rstyle = ($rc++ & 1) ? "altrow2" : "altrow1";
+            my $rstyle = ($rc++ & 1) ? "even" : "odd";
             $ret .= "<tr class='$rstyle'><td>";
             $ret .= LJ::html_text({ 'name' => "add_$_", 'size' => '10', 'class' => 'text', 'maxlength' => '75' }) . "</td>";
             foreach my $key (@attribs) {
diff -r dec5adeda112 -r 51f91108e1ed htdocs/community/moderate.bml
--- a/htdocs/community/moderate.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/community/moderate.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -324,11 +324,12 @@ body<=
         } else {
             $ret .= qq{
             <table cellpadding='5'>
-                <tr>
-                    <th>$ML{'.brlist.time'}</th>                <th>$ML{'.brlist.poster'}</th>
+                <thead><tr>
+                    <th>$ML{'.brlist.time'}</th>
+                    <th>$ML{'.brlist.poster'}</th>
                     <th>$ML{'.brlist.subject'}</th>
                     <th>$ML{'.brlist.actions'}</th>
-                </tr>
+                </tr></thead>
             };
 
             my %users;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/community/pending.bml
--- a/htdocs/community/pending.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/community/pending.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -168,7 +168,7 @@ body<=
     }
 
     # table headers
-    $ret .= "<br /><div align='center'><table class='userslist-table' cellspacing='0' cellpadding='2'>\n<tr><th>";
+    $ret .= "<br /><div align='center'><table class='userslist-table' cellspacing='0' cellpadding='2'>\n<thead><tr><th>";
     $ret .= LJ::html_check({ id => 'all', name => 'all', checked => 'checked', 
 	onchange =>
 		"var inputs = document.pending_member_form.getElementsByTagName('input');
@@ -185,13 +185,13 @@ body<=
 			}
 		}", 
   	 selected => 0 });
-    $ret .= "</th><th>$ML{'/community/members.bml.key.user'}</th></tr>\n";
+    $ret .= "</th><th>$ML{'/community/members.bml.key.user'}</th></tr></thead>\n";
 
     # rows for existing users
     my $rc = 0;
     foreach (@users) {
-        my $rstyle = ($rc++ & 1) ? '#efefef' : '#fff';
-        $ret .= "<tr style='background-color: $rstyle;'><td>";
+        my $rstyle = ($rc++ & 1) ? 'even' : 'odd';
+        $ret .= "<tr class='$rstyle'><td>";
         $ret .= LJ::html_check({ id => 'pending_' . $_->userid, name => 'pending_' . $_->userid, 
                                  selected => $jumpto ? ($_->user eq $jumpto ? 1 : 0) : 1 });
         $ret .= "</td><td>" . LJ::ljuser($_->{user}) . "</td></tr>\n";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/community/sentinvites.bml
--- a/htdocs/community/sentinvites.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/community/sentinvites.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -219,13 +219,13 @@ body<=
 </table>
 <br />
 END
-    $ret .= "<table cellpadding='0' cellspacing='0'>\n<tr>" .
+    $ret .= "<table cellpadding='0' cellspacing='0'>\n<thead><tr>" .
             "<th><a href='${sortlink}name'>$ML{'/community/members.bml.key.user'}</a></th>";
     $ret .= "<th><a href='${sortlink}$_'>$_</a></th>" foreach @titleattribs;
     $ret .= "<th><a href='${sortlink}maint'>$ML{'.key.sentby'}</a></th>";
     $ret .= "<th><a href='${sortlink}date'>$ML{'.key.date'}</a></th>";
     $ret .= "<th><a href='${sortlink}status'>$ML{'.key.status'}</a></th>";
-    $ret .= "</tr>\n";
+    $ret .= "</tr></thead>\n";
 
     $ret .= "<form method='post'>";
     $ret .= LJ::form_auth();
@@ -238,7 +238,7 @@ END
     # rows for existing users
     my $rc = 0;
     foreach(@users) {
-        my $rstyle = ($rc++ & 1) ? "odd" : "even";
+        my $rstyle = ($rc++ & 1) ? "even" : "odd";
         $ret .= "<tr class='$rstyle'><td>" . LJ::ljuser($_->{user}) . "</td>";
         foreach my $key (@attribs) {
             $ret .= "<td align='center'>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/customize/advanced/layers.bml
--- a/htdocs/customize/advanced/layers.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/customize/advanced/layers.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -195,7 +195,7 @@ _c?>
     $body .= "<?h1 $ML{'.yourlayers.header'} h1?>\n";
     if (%$ulay) {
         $body .= "<table id='table_yourlayers' class='grid' cellpadding='3' border='1'>\n";
-        $body .= "<tr><th>$ML{'.yourlayers.table.layerid'}</th><th>$ML{'.yourlayers.table.type'}</th><th>$ML{'.yourlayers.table.name'}</th><th>$ML{'.yourlayers.table.actions'}</th></tr>\n";
+        $body .= "<thead><tr><th>$ML{'.yourlayers.table.layerid'}</th><th>$ML{'.yourlayers.table.type'}</th><th>$ML{'.yourlayers.table.name'}</th><th>$ML{'.yourlayers.table.actions'}</th></tr></thead>\n";
         my $lastbase = 0;
         foreach my $lid (sort { $ulay->{$a}->{'b2lid'} <=> $ulay->{$b}->{'b2lid'} || $a <=> $b } 
                          keys %$ulay) 
diff -r dec5adeda112 -r 51f91108e1ed htdocs/feeds/index.bml
--- a/htdocs/feeds/index.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/feeds/index.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -226,8 +226,8 @@ body<=
     if (@pop) {
         $ret .= "<?h1 $ML{'.add.pop.title'} h1?><?p $ML{'.add.pop.text'} p?>";
         $ret .= "<p><table cellpadding='3' style='margin-bottom: 10px; width: 80%;'>";
-        $ret .= "<tr><th>$ML{'.table.account'}</th><th>$ML{'.table.feed'}</th><td></td>";
-        $ret .= "<th align='right'>$ML{'.table.watchers'}</th></tr>";
+        $ret .= "<thead><tr><th>$ML{'.table.account'}</th><th>$ML{'.table.feed'}</th><td></td>";
+        $ret .= "<th align='right'>$ML{'.table.watchers'}</th></tr></thead>";
         foreach (@pop) {
             my ($user, $url, $count) = @$_;
             $ret .= "<tr>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/feeds/list.bml
--- a/htdocs/feeds/list.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/feeds/list.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -29,14 +29,14 @@ body<=
  my $navbar = LJ::paging_bar($items{'page'}, $items{'pages'});
  @data = @{$items{'items'}};
 
- $ret .= $navbar . "<table id='synlist'><tr valign='bottom'>";
+ $ret .= $navbar . "<table id='synlist'><thead><tr valign='bottom'>";
  $ret .= $GET{'sort'} eq "username" ? "<th>" . $ML{'.username'} . "</th>":
                                       "<th><a href='" . BML::self_link({ 'sort' => "username"}) . "'>" . $ML{'.username'} . "</a>";
  $ret .= $GET{'sort'} eq "feeddesc" ? "<th>" . $ML{'.feeddesc'} . "</th>":
                                       "<th><a href='" . BML::self_link({ 'sort' => "feeddesc"}) . "'>" . $ML{'.feeddesc'} . "</a>";
  $ret .= $GET{'sort'} eq "numreaders" ? "<th>" . $ML{'.numreaders'} . "</th>":
                                         "<th><a href='" . BML::self_link({ 'sort' => "numreaders"}) . "'>" . $ML{'.numreaders'} . "</a>";
- $ret .= "</th><th>&nbsp;</th></tr>";
+ $ret .= "</th><th>&nbsp;</th></tr></thead>";
  foreach (@data) {
      $ret .= "<tr>";
      $ret .= "<td>" . LJ::ljuser($_->{'user'}, { 'type' => 'Y' }) . "</td>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/manage/banusers.bml
--- a/htdocs/manage/banusers.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/manage/banusers.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -108,7 +108,7 @@ body<=
         my $us = LJ::load_userids(@$banned);
 
         $ret .= $u->is_community ? "<p>$ML{'.intro.unban.comm'}</p>" : "<p>$ML{'.intro.unban.self'}</p>";
-        $ret .= "<table class='userslist-table' cellspacing=0 cellpadding=0><tr><th>";
+        $ret .= "<table class='userslist-table' cellspacing=0 cellpadding=0><thead><tr><th>";
         $ret .= LJ::html_check({ id => 'all', name => 'all', onchange =>
                 "var inputs=document.ban_users_form.getElementsByTagName('input');
                 for (var i = 0; i < inputs.length; i++) {
@@ -123,7 +123,7 @@ body<=
                         inputs[i].checked = this.checked;                  
                     } 
                }", selected => 0 });
-        $ret .= "</th><th>$ML{'/community/members.bml.key.user'}</th></tr>\n";
+        $ret .= "</th><th>$ML{'/community/members.bml.key.user'}</th></tr></thead>\n";
 		
 		my $rc = 0;
 		
diff -r dec5adeda112 -r 51f91108e1ed htdocs/manage/emailpost.bml
--- a/htdocs/manage/emailpost.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/manage/emailpost.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -397,10 +397,9 @@ body<=
     $ret .= "<form method='post' action='emailpost'>\n";
     $ret .= LJ::form_auth();
     $ret .= "<div style='margin-left:40px;'>";
-    $ret .= "<table border=\"0\"><th>$ML{'.addresses.table.address'}</th>";
+    $ret .= "<table border=\"0\"><thead><tr><th>$ML{'.addresses.table.address'}</th>";
     $ret .= "<th>$ML{'setting.emailposting.option.senderrors'}</th>";
-    $ret .= "<td>&nbsp;</td>";
-    $ret .= "<th>$ML{'setting.emailposting.option.helpmessage'}</th></tr>";
+    $ret .= "<th>$ML{'setting.emailposting.option.helpmessage'}</th></tr></thead>";
     for(0..2) { # Limited to 3 addresses.
         $ret .= '<tr><td>';
         my $selected = 0;
@@ -411,7 +410,7 @@ body<=
         $ret .= '<center>' . 
             LJ::html_check({name => "check_$_", selected => $selected})
             . '</center>';
-        $ret .= '</td><td width="20"></td><td>';
+        $ret .= '</td><td>';
         $ret .= '<center>' . 
             LJ::html_check( { name => "help_$_", selected => 0 } )
             . '</center>';
diff -r dec5adeda112 -r 51f91108e1ed htdocs/manage/invitecodes.bml
--- a/htdocs/manage/invitecodes.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/manage/invitecodes.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -86,7 +86,7 @@ body<=
         } @invitecodes;
 
 
-        $ret .= "<table class='invitecodes' id='invitecodes'><tr><th>$ML{'.header.code'}</th><th>$ML{'.header.recipient'}</th><th width='200'>$ML{'.header.used'}</th><th width='200'>$ML{'.header.sent'}</th><th>$ML{'.header.email'}</th></tr>";
+        $ret .= "<table class='invitecodes' id='invitecodes'><thead><tr><th>$ML{'.header.code'}</th><th>$ML{'.header.recipient'}</th><th width='200'>$ML{'.header.used'}</th><th width='200'>$ML{'.header.sent'}</th><th>$ML{'.header.email'}</th></tr></thead>";
     
         foreach my $code ( @invitecodes ) {
             $ret .= "<tr>";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/manage/invites.bml
--- a/htdocs/manage/invites.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/manage/invites.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -113,15 +113,15 @@ body<=
     # prepare table
     $ret .= "<form method='post'>\n<div align='center'><table id='invites-list' cellspacing='0' cellpadding='0'>";
     $ret .= LJ::form_auth();
-    $ret .= "<tr><th>$ML{'.community.title'}</th><th>$ML{'.abilities.title'}</th>";
+    $ret .= "<thead><tr><th>$ML{'.community.title'}</th><th>$ML{'.abilities.title'}</th>";
     $ret .= "<th colspan='2'>$ML{'.actions.title'}</th>";
-    $ret .= "</tr>";
+    $ret .= "</tr></thead>";
 
     # now list memberships
     my $rc = 0;
     foreach my $invite (@$pending) {
         # get variables we'll need for HTML generation
-        my $rstyle = ($rc++ & 1) ? "odd" : "even";
+        my $rstyle = ($rc++ & 1) ? "even" : "odd";
         my $cu = $us->{$invite->[0]};
         my $key = "pending_$invite->[0]";
         my @tags = ();
diff -r dec5adeda112 -r 51f91108e1ed htdocs/manage/logins.bml
--- a/htdocs/manage/logins.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/manage/logins.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -74,9 +74,10 @@ body<=
     } else {
         $body .= "<?h1 $ML{'.loggedin.header'} h1?>";
     }
-    $body .= "<table width='100%'><tr><th>$ML{'.loggedin.table.time'}</th><th>$ML{'.loggedin.table.ip'}</th><th width='45%'>$ML{'.loggedin.table.useragent'}</th>";
+    $body .= "<table width='100%'><thead><tr><th>$ML{'.loggedin.table.time'}</th><th>$ML{'.loggedin.table.ip'}</th><th width='45%'>$ML{'.loggedin.table.useragent'}</th>";
     $body .= "<th>$ML{'.loggedin.table.exptype'}</th><th>$ML{'.loggedin.table.bound'}</th><th>$ML{'.loggedin.table.create'}</th><th>$ML{'.loggedin.table.expire'}</th>" if $adminmode;
-    $body .= "<th>$ML{'.loggedin.table.logout'}</th></tr>\n" unless $user;
+    $body .= "<th>$ML{'.loggedin.table.logout'}</th>\n" unless $user;
+    $body .= "</tr></thead>";
 
     foreach my $login (sort { $a->[1] <=> $b->[1] } @$logins) {
         unless (defined $sessions->{$login->[1]}) {
@@ -117,7 +118,7 @@ body<=
     } else {
         $body .= "<?h1 $ML{'.prior.header'} h1?>\n";
     }
-    $body .= "<table width='100%'><tr><th>$ML{'.prior.table.time'}</th><th>$ML{'.prior.table.ip'}</th><th width='57%'>$ML{'.prior.table.useragent'}</th></tr>";
+    $body .= "<table width='100%'><thead><tr><th>$ML{'.prior.table.time'}</th><th>$ML{'.prior.table.ip'}</th><th width='57%'>$ML{'.prior.table.useragent'}</th></tr></thead>";
     foreach my $login (sort { $b->[1] <=> $a->[1] } @prior) {
         $body .= "<tr>\n";
         $body .= "<td>" . LJ::ehtml(LJ::time_to_http($login->[0])) . "</td>\n";
diff -r dec5adeda112 -r 51f91108e1ed htdocs/manage/moodthemes.bml
--- a/htdocs/manage/moodthemes.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/manage/moodthemes.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -451,7 +451,7 @@ body<=
                 $ret .= LJ::html_hidden('edit' => 1,
                                         'themeids' => join(",", map { $_->{moodthemeid} } @user_themes));
                 $ret .= "<table>";
-                $ret .= "<tr><th></th><th>$ML{'.yourthemes.example.happy'}</th><th>$ML{'.yourthemes.example.sad'}</th><th>$ML{'.yourthemes.example.angry'}</th><th></th></tr>";
+                $ret .= "<thead><tr><th></th><th>$ML{'.yourthemes.example.happy'}</th><th>$ML{'.yourthemes.example.sad'}</th><th>$ML{'.yourthemes.example.angry'}</th><th></th></tr></thead>";
                 foreach my $theme ( @user_themes ) {
                     my $ename = LJ::ehtml( $theme->{name} );
                     my $tid = $theme->{moodthemeid};
diff -r dec5adeda112 -r 51f91108e1ed htdocs/shop/history.bml
--- a/htdocs/shop/history.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/shop/history.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -39,8 +39,8 @@ body<=
 
     my $ret;
     $ret .= "<table class='shop-cart'>";
-    $ret .= "<tr><th>$ML{'.cart.header.ordernumber'}</th><th>$ML{'.cart.header.date'}</th><th>$ML{'.cart.header.total'}</th>";
-    $ret .= "<th>$ML{'.cart.header.paymentmethod'}</th><th>$ML{'.cart.header.status'}</th><th>$ML{'.cart.header.details'}</th></tr>";
+    $ret .= "<thead><tr><th>$ML{'.cart.header.ordernumber'}</th><th>$ML{'.cart.header.date'}</th><th>$ML{'.cart.header.total'}</th>";
+    $ret .= "<th>$ML{'.cart.header.paymentmethod'}</th><th>$ML{'.cart.header.status'}</th><th>$ML{'.cart.header.details'}</th></tr></thead>";
     foreach my $cart ( @carts ) {
         my $state = $cart->state;
         my $paymentmethod = $cart->paymentmethod;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/support/help.bml
--- a/htdocs/support/help.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/support/help.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -258,7 +258,7 @@ body<=
 
  my %marked = map { $_ => 1 } split( ',', $GET{mark} );
  my $uri = "$LJ::SITEROOT/support/help?cat=$filtercat&state=$state";
- $ret .= "<p><table class='supporttable'><tr bgcolor='#d0d0d0'>\n";
+ $ret .= "<p><table class='supporttable'><thead><tr bgcolor='#d0d0d0'>\n";
  if ( $can_close ) {
     my $link = "$uri&sort=$sort&closeall=" . ( $GET{closeall} ? 0 : 1 );
     $ret .= "<th>&nbsp;<a href='$link'>X</a></th>\n";
@@ -272,7 +272,7 @@ body<=
      }
  }
  $ret .= "<th>$ML{'.th.status'}</th>\n";
- $ret .= "</tr>";
+ $ret .= "</tr></thead>";
 
  foreach my $sp (@support_log)
  {
diff -r dec5adeda112 -r 51f91108e1ed htdocs/support/highscores.bml
--- a/htdocs/support/highscores.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/support/highscores.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -80,12 +80,12 @@ body<=
  $ret .= $navbar;
  $ret .= "<table id='support-highscores'>";
  $ret .= qq{
-    <tr>
+    <thead><tr>
         <th>$ML{'.header.rank'}</th>
         <th>$ML{'.header.delta'}</th>
         <th>$ML{'.header.user'}</th>
         <th>$ML{'.header.points'}</th>
-    </tr>};
+    </tr></thead>};
  my $count = 0;
  foreach (@rows)
  {
diff -r dec5adeda112 -r 51f91108e1ed htdocs/support/history.bml
--- a/htdocs/support/history.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/support/history.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -86,8 +86,8 @@ body<=
             # get categories
             my $cats = LJ::Support::load_cats();
 
-            $ret .= '<table><tr><th>Summary</th><th>State</th><th>Answered By</th>' .
-                    '<th>Category</th><th>Opened By</th><th>Time Opened</th></tr>';
+            $ret .= '<table><thead><tr><th>Summary</th><th>State</th><th>Answered By</th>' .
+                    '<th>Category</th><th>Opened By</th><th>Time Opened</th></tr></thead>';
             foreach my $id (sort { $a <=> $b } keys %reqs) {
                 # verify user can see this category (public_read or has supportread in it)
                 next unless $cats->{$reqs{$id}->{spcatid}}{public_read} ||
diff -r dec5adeda112 -r 51f91108e1ed htdocs/tools/emailmanage.bml
--- a/htdocs/tools/emailmanage.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/tools/emailmanage.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -133,11 +133,11 @@ body<=
         $ret .= "<form method='post' action='emailmanage$getextra'>";
         $ret .= LJ::form_auth();
         $ret .= "<table border='1' cellpadding='2' style='margin-bottom: 3px;'>\n";
-        $ret .= qq{<tr>
+        $ret .= qq{<thead><tr>
                     <th>$ML{'.header.check'}</th>
                     <th>$ML{'.header.email'}</th>
                     <th>$ML{'.header.date'}</th>
-                </tr>};
+                </tr></thead>};
         $ret .= $rows;
         $ret .= "</table>\n";
         $ret .= LJ::html_submit(undef, $ML{'.delete_selected'});
diff -r dec5adeda112 -r 51f91108e1ed htdocs/tools/recent_comments.bml
--- a/htdocs/tools/recent_comments.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/tools/recent_comments.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -284,9 +284,9 @@ body<=
         $ret .= "<?h1 $ML{ '.latest.posted' } h1?><?p " . BML::ml('.last.num.posted.by', {num => $count, user => LJ::ljuser($u) }) . " p?>";
         my %jcount;  # jid -> ct
         $ret .= "<table style='text-align: left'>";
-        $ret .= "<tr><th>$ML{ '.time' }</th><th>&nbsp;$ML{ '.location' }</th><th>&nbsp;$ML{ '.delete' }</th>";
+        $ret .= "<thead><tr><th>$ML{ '.time' }</th><th>&nbsp;$ML{ '.location' }</th><th>&nbsp;$ML{ '.delete' }</th>";
         $ret .= "<th>&nbsp;$ML{ '.edit' }</th>" if $remote->can_edit_comments;
-        $ret .= "</tr>";
+        $ret .= "</tr></thead>";
 
         foreach my $r (@posted) {
             $jcount{$r->{'journalid'}}++;
diff -r dec5adeda112 -r 51f91108e1ed htdocs/tools/recent_emailposts.bml
--- a/htdocs/tools/recent_emailposts.bml	Wed Dec 29 11:11:03 2010 +0800
+++ b/htdocs/tools/recent_emailposts.bml	Wed Dec 29 13:13:46 2010 +0800
@@ -14,41 +14,6 @@ _c?>
 _c?>
 <?page
 title=>Email gateway log
-head<=
-    <style type="text/css">
-
-    .disp
-    {
-        width: 700px;
-        border-left: 1px solid #c2c2c2;
-        border-top: 1px solid #c2c2c2;
-    }
-
-    .disp td
-    {
-        font-size: 0.85em;
-        border-right: 1px solid #c2c2c2;
-        padding: 6px;
-        border-bottom: 1px solid #c2c2c2;
-        vertical-align: top;
-    }
-
-    .err
-    {
-        background-color: #efefef;
-    }
-
-    .disp th
-    {
-        padding: 6px;
-        border-bottom: 1px solid #999;
-        border-right: 1px solid #999;
-        background-color: #dedede;
-        text-align: left;
-    }
-    
-    </style>
-<=head
 body<=
 <?_code
 {
@@ -110,19 +75,19 @@ body<=
     }
 
     $ret .= q{
-        <table class="disp" cellspacing="0">
-            <tr>
+        <table class="grid" cellspacing="0">
+            <thead><tr>
                 <th>When</th>
                 <th>Subject</th>
                 <th>Error?</th>
                 <th>Server Message</th>
-            </tr>
+            </tr></thead>
     };
 
     foreach ( reverse sort keys %$data ) {
         my $row = {};
         LJ::decode_url_string( $data->{$_}->{extra}, $row );
-        $ret .= $row->{e} ? "<tr class='err'>" : "<tr class='ok'>";
+        $ret .= $row->{e} ? "<tr class='error-box'>" : "<tr class='ok'>";
         $ret .= qq{
             <td nowrap="1">$data->{$_}->{ftime}</td>
             <td nowrap="1"><em>$row->{s}</em></td>
diff -r dec5adeda112 -r 51f91108e1ed views/admin/rename.tt
--- a/views/admin/rename.tt	Wed Dec 29 11:11:03 2010 +0800
+++ b/views/admin/rename.tt	Wed Dec 29 13:13:46 2010 +0800
@@ -18,7 +18,7 @@ the same terms as Perl itself.  For a co
         <p>[% '.renames.list.empty' | ml( user = user ) | html %]</p>
     [% ELSE %]
         <table>
-            <tr><th>From</th><th>To</th><th>Renamed by</th><th>Account renamed</th><th>Renamed on</th></tr>
+            <thead><tr><th>From</th><th>To</th><th>Renamed by</th><th>Account renamed</th><th>Renamed on</th></tr></thead>
         
             [% FOREACH rename = renames %]
             <tr>
diff -r dec5adeda112 -r 51f91108e1ed views/interests/findsim.tt
--- a/views/interests/findsim.tt	Wed Dec 29 11:11:03 2010 +0800
+++ b/views/interests/findsim.tt	Wed Dec 29 13:13:46 2010 +0800
@@ -24,11 +24,11 @@
 
 <h1>[% '.findsim_do.similar.head' | ml %]</h1>
 <p>[% ".findsim_do.similar.text" | ml(user = findsim_u.ljuser_display) %]</p>
-<p><table cellpadding='3'><tr valign='bottom'>
+<p><table cellpadding='3'><thead><tr valign='bottom'>
     <th>#</th>
     <th width='250'>[% 'username' | ml %]</th>
     <th>[% '.findsim_do.magic' | ml %]</th>
-</tr>
+</tr></thead>
 [%- FOREACH findsim_data -%]
     <tr>
         <td>[% count %]</td>
diff -r dec5adeda112 -r 51f91108e1ed views/interests/popular.tt
--- a/views/interests/popular.tt	Wed Dec 29 11:11:03 2010 +0800
+++ b/views/interests/popular.tt	Wed Dec 29 13:13:46 2010 +0800
@@ -30,11 +30,11 @@
 </p>
 [%- IF pop_ints -%]
     [%- IF no_text_mode; pop_cloud; ELSE -%]
-        <p><table><tr>
+        <p><table><thead><tr>
             <th width='150' style="text-align: left">
             [% '.interest' | ml %]</th>
             <th>[% '.count' | ml %]</th>
-        </tr>
+        </tr></thead>
         [%- FOREACH i = pop_ints -%]
         <tr>
             <td><a href='[% i.url | url %]'>[% i.eint %]</a></td>
diff -r dec5adeda112 -r 51f91108e1ed views/stats/site.tt
--- a/views/stats/site.tt	Wed Dec 29 11:11:03 2010 +0800
+++ b/views/stats/site.tt	Wed Dec 29 13:13:46 2010 +0800
@@ -143,11 +143,11 @@ class="bargraph" />
 <h2>[% '.paid.title' | ml %]</h2>
 <p>[% '.paid.explanation' | ml %]</p>
 [% IF paid.defined %]
-    <table class='stats-matrix'><tr>
+    <table class='stats-matrix'><thead><tr>
     [% FOREACH h = [ 'level' 'number' 'pct_total' 'pct_active' ] %]
         <th>[% ".paid.colhdr.$h" | ml %]</th>
     [% END %]
-    </tr>
+    </tr></thead>
     [% allpaid = 0 %]
     [% FOREACH level = [ 'paid' 'premium' 'seed' ] %]
         <tr><th>[% ".paid.rowhdr.$level" | ml %]</th>
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org