[Bps-public-commit] r19658 - in Net-Google-Code/trunk: . lib/Net/Google t/sample

sunnavy at bestpractical.com sunnavy at bestpractical.com
Thu May 14 02:57:52 EDT 2009


Author: sunnavy
Date: Thu May 14 02:57:49 2009
New Revision: 19658

Added:
   Net-Google-Code/trunk/t/sample/20.code.downloads.html
Removed:
   Net-Google-Code/trunk/t/sample/10.downloads.xml
Modified:
   Net-Google-Code/trunk/Makefile.PL
   Net-Google-Code/trunk/lib/Net/Google/Code.pm
   Net-Google-Code/trunk/t/20.code.t

Log:
do *not* parse downloads via feeds: current feed only list 20 downloads, not all. this change results in the uselessness of XML::Atom requirement

Modified: Net-Google-Code/trunk/Makefile.PL
==============================================================================
--- Net-Google-Code/trunk/Makefile.PL	(original)
+++ Net-Google-Code/trunk/Makefile.PL	Thu May 14 02:57:49 2009
@@ -12,7 +12,6 @@
 requires 'WWW::Mechanize';
 requires 'HTML::TreeBuilder';
 requires 'Params::Validate';
-requires 'XML::Atom';
 
 recursive_author_tests('xt/');
 

Modified: Net-Google-Code/trunk/lib/Net/Google/Code.pm
==============================================================================
--- Net-Google-Code/trunk/lib/Net/Google/Code.pm	(original)
+++ Net-Google-Code/trunk/lib/Net/Google/Code.pm	Thu May 14 02:57:49 2009
@@ -111,26 +111,64 @@
 
 
 sub load_downloads {
-	my $self = shift;
-	
-    require XML::Atom::Feed;
-	my $content = $self->fetch( $self->base_feeds_url . 'downloads/basic' );
-	my $feed = XML::Atom::Feed->new( \$content );
-	my @fentries = $feed->entries;
-	
+    my $self = shift;
+
+    my $content = $self->fetch( $self->base_feeds_url . 'downloads/list' );
+    require HTML::TreeBuilder;
+    my $tree = HTML::TreeBuilder->new;
+    $tree->parse_content($content);
+    $tree->elementify;
     my @downloads;
-	foreach my $entry (@fentries) {
+    my $pagination = $tree->look_down( class => 'pagination' );
+    if ( my ( $start, $end, $total ) =
+        $pagination->as_text =~ /(\d+)\s+-\s+(\d+)\s+of\s+(\d+)/ )
+    {
+
         require Net::Google::Code::Download;
-		my $title  = $entry->title;
-        # title is like: Net-Google-Code-0.01.tar.gz (37.4 KB)
-		my ($filename) = ( $title =~ /^\s*(.+)\s+\(.+\)\s*$/ );
-        my $download = Net::Google::Code::Download->new(
-            project => $self->project,
-            name    => $filename
-        );
+        my @name_tags = $tree->look_down( class => 'vt id col_0' );
+        my @names;
+        for my $tag (@name_tags) {
+            my $name = $tag->as_text;
+            $name =~ s/^\s+//;
+            $name =~ s/\s+$//;
+            my $download = Net::Google::Code::Download->new(
+                name    => $name,
+                project => $self->project,
+            );
+            push @downloads, $download;
+        }
+
+        while ( scalar @downloads < $total ) {
+            if ( $self->mech->follow_link( text_regex => qr/Next\s+/ ) ) {
+                if ( $self->mech->response->is_success ) {
+                    my $content = $self->mech->content;
+                    my $tree    = HTML::TreeBuilder->new;
+                    $tree->parse_content($content);
+                    my @name_tags = $tree->look_down( class => 'vt id col_0' );
+                    my @names;
+                    for my $tag (@name_tags) {
+                        my $name = $tag->as_text;
+                        $name =~ s/^\s+//;
+                        $name =~ s/\s+$//;
+                        my $download =
+                          Net::Google::Code::Download->new( name => $name );
+                        push @downloads, $download;
+                    }
+                }
+                else {
+                    die "failed to follow 'Next' link";
+                }
+            }
+            else {
+                warn "didn't find enough downloads";
+                last;
+            }
+        }
+    }
+
+    for my $download (@downloads) {
         $download->load;
-        push @downloads, $download;
-	}
+    }
     $self->downloads( \@downloads );
 }
 

Modified: Net-Google-Code/trunk/t/20.code.t
==============================================================================
--- Net-Google-Code/trunk/t/20.code.t	(original)
+++ Net-Google-Code/trunk/t/20.code.t	Thu May 14 02:57:49 2009
@@ -10,11 +10,11 @@
 use_ok('Net::Google::Code');
 
 my $homepage_file     = "$Bin/sample/20.code.html";
-my $downloads_file    = "$Bin/sample/10.downloads.xml";
+my $downloads_file    = "$Bin/sample/20.code.downloads.html";
 my $download_file     = "$Bin/sample/10.download.html";
 
 my $wikis_file    = "$Bin/sample/11.wikis.html";
-my $svn_file = "$Bin/sample/11.TestPage.wiki";
+my $wiki_svn_file = "$Bin/sample/11.TestPage.wiki";
 my $wiki_file = "$Bin/sample/11.TestPage.html";
 
 my $mock = Test::MockModule->new('Net::Google::Code');
@@ -59,8 +59,8 @@
 
 # test downloads
 $project->load_downloads;
-is( scalar @{ $project->downloads }, 1, 'have 1 download' );
-my $download = $project->downloads->[0];
+is( scalar @{ $project->downloads }, 2, 'have 2 downloads' );
+my $download = $project->downloads->[1];
 isa_ok( $download, 'Net::Google::Code::Download' );
 is( $download->name, 'Net-Google-Code-0.01.tar.gz', 'download name' );
 is( $download->size, '37.4 KB', 'download size' );
@@ -74,7 +74,7 @@
         shift;
         my $url = shift;
         if ( $url =~ /svn/ ) {
-            read_file($svn_file);
+            read_file($wiki_svn_file);
         }
         else {
             read_file($wiki_file);

Added: Net-Google-Code/trunk/t/sample/20.code.downloads.html
==============================================================================
--- (empty file)
+++ Net-Google-Code/trunk/t/sample/20.code.downloads.html	Thu May 14 02:57:49 2009
@@ -0,0 +1,738 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <script type="text/javascript">
+ 
+ 
+ 
+ var codesite_token = "1e80acf41d325e863ad42260ff3d5a87";
+ 
+ </script>
+ <title>Downloads - 
+ net-google-code -
+ 
+ Google Code</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/13924206732975079159/css/ph_core.css">
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/13924206732975079159/css/ph_list.css" >
+ 
+ 
+ 
+ <link type="application/atom+xml" rel="alternate" href="/feeds/p/net-google-code/downloads/basic">
+ 
+ 
+<!--[if IE]>
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/13924206732975079159/css/d_ie.css" >
+<![endif]-->
+</head>
+<body class="t2">
+ <div id="gaia">
+ 
+ <span>
+ 
+ <b>sunnavy at gmail.com</b>
+ 
+ 
+ | <a href="/u/sunnavy/" id="projects-dropdown" onclick="return false;">My favorites</a>
+ 
+ | <a href="/u/sunnavy/" onclick="_CS_click('/gb/ph/profile');" title="Profile, Updates, and Settings">Profile</a>
+ | <a href="http://www.google.com/accounts/Logout?continue=http%3A%2F%2Fcode.google.com%2Fp%2Fnet-google-code%2Fdownloads%2Flist" onclick="_CS_click('/gb/ph/signout');">Sign out</a>
+ 
+ </span>
+
+ </div>
+ <div class="gbh" style="left: 0pt;"></div>
+ <div class="gbh" style="right: 0pt;"></div>
+ 
+ 
+ <div style="height: 1px"></div>
+ <table style="padding:0px; margin: 20px 0px 0px 0px; width:100%" cellpadding="0" cellspacing="0">
+ <tr style="height: 58px;">
+ <td style="width: 55px; text-align:center;">
+ <a href="/p/net-google-code/">
+ 
+ 
+ 
+ <img src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png"
+ alt="Project Logo">
+ 
+ 
+ 
+ </a>
+ </td>
+ <td style="padding-left: 0.8em">
+ 
+ <div id="pname" style="margin: 0px 0px -3px 0px">
+ <a href="/p/net-google-code/" style="text-decoration:none; color:#000">net-google-code</a>
+ </div>
+ <div id="psum">
+ <i><a id="project_summary_link" href="/p/net-google-code/" style="text-decoration:none; color:#000">a simple client library for google code</a></i>
+ </div>
+ 
+ </td>
+ <td style="white-space:nowrap; text-align:right">
+ 
+ <form action="/hosting/search">
+ <input size="30" name="q" value="">
+ <input type="submit" name="projectsearch" value="Search projects" >
+ </form>
+ 
+ </tr>
+ </table>
+
+
+<table id="mt" cellspacing="0" cellpadding="0" width="100%" border="0">
+ <tr>
+ <th onclick="if (!cancelBubble) _go('/p/net-google-code/');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/net-google-code/">Project Home</a>
+ </div>
+ </div>
+ </th><td>  </td>
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/net-google-code/downloads/list');">
+ <div class="tab active">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/net-google-code/downloads/list">Downloads</a>
+ </div>
+ </div>
+ </th><td>  </td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/net-google-code/w/list');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/net-google-code/w/list">Wiki</a>
+ </div>
+ </div>
+ </th><td>  </td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/net-google-code/issues/list');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/net-google-code/issues/list">Issues</a>
+ </div>
+ </div>
+ </th><td>  </td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/net-google-code/source/checkout');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/net-google-code/source/checkout">Source</a>
+ </div>
+ </div>
+ </th><td>  </td>
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/net-google-code/admin');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/net-google-code/admin">Administer</a>
+ </div>
+ </div>
+ </th>
+ <td width="100%"> </td>
+ </tr>
+</table>
+<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
+ <tr>
+ 
+ 
+ 
+ 
+ <td>
+ <div class="issueList">
+<div class="isf">
+ 
+ 
+ 
+ <span class="inIssueEntry"> 
+ <a href="entry">New download</a>
+ </span> |
+ 
+ 
+ <span class="inIssueList"> 
+ <span>Search</span>
+ <form action="list" method="GET" style="display:inline">
+ <select id="can" name="can" style="font-size:92%">
+ <option disabled="disabled">Search within:</option>
+ 
+ <option value="1" > All downloads</option>
+ <option value="3" > Featured downloads</option>
+ <option value="2" selected="selected"> Current downloads</option>
+ 
+ 
+ <option value="4" > Deprecated downloads</option>
+ 
+ </select>
+ <span>for</span>
+ <input type="text" size="32" id="q" name="q" value="" style="font-size:92%" >
+ 
+ <input type="hidden" name="colspec" value="Filename Summary Uploaded Size DownloadCount" >
+ <input type="submit" value="Search" style="font-size:92%" >
+ </form>
+ </span>
+
+</div>
+</div>
+
+ </td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td height="4" align="right" valign="top" class="bevel-right">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ </td>
+ </tr>
+</table>
+<script type="text/javascript">
+ var cancelBubble = false;
+ function _go(url) { document.location = url; }
+</script>
+
+<div id="maincol">
+
+ 
+<!-- IE -->
+
+
+
+
+<script type="text/javascript">
+function _showBelow(){}
+function _toggleStar(){}
+function _rowRolloverOn(){}
+function _rowRolloverOff(){}
+function _goIssue(){}
+function _goFile(){}
+</script>
+
+<div id="colcontrol">
+<div class="bubble_bg">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner" id="bub">
+ <div style="margin-bottom: 6px;">
+ 
+ 
+ <div class="pagination">
+ 
+ 1 - 2
+ of 2
+ 
+ </div>
+ 
+
+
+ 
+   
+ 
+ <form id="colspecform" action="list" method="GET" autocomplete="off" style="display:inline">
+ <input type="hidden" name="can" value=2 >
+ <input type="hidden" name="q" value="" >
+ <input type="hidden" name="sort" value="" >
+ <span id="columnspec" style="display:none;"><span style="font-size: 95%">Columns: </span><input type="text" size="60" style="font-size: 80%" name="colspec" id="colspec"
+ value="Filename Summary Uploaded Size DownloadCount" />  <input type="submit" style="font-size: 80%" name="nobtn" value="Update" > 
+ 
+ </span>
+ </form>
+ </div>
+ <table cellspacing="0" cellpadding="2" border="0" class="results" id="resultstable" width="100%">
+ <tbody>
+ <tr id="headingrow"><th style="border-left: 0">   </th>
+ 
+ 
+ <th class="col_0" nowrap="nowrap" onclick="_showBelow('pop_0',this)"><a href="#" style="text-decoration: none">Filename</a></th>
+ 
+ 
+ 
+ 
+ <th class="col_1" nowrap="nowrap" id="summaryheading" onclick="_showBelow('pop_1',this)" width="100%"><a href="#" style="text-decoration: none">Summary + Labels</a></th>
+ 
+ 
+ 
+ 
+ 
+ <th class="col_2" nowrap="nowrap" onclick="_showBelow('pop_2',this)"><a href="#" style="text-decoration: none">Uploaded</a></th>
+ 
+ 
+ 
+ 
+ 
+ <th class="col_3" nowrap="nowrap" onclick="_showBelow('pop_3',this)"><a href="#" style="text-decoration: none">Size</a></th>
+ 
+ 
+ 
+ 
+ 
+ <th class="col_4" nowrap="nowrap" onclick="_showBelow('pop_4',this)"><a href="#" style="text-decoration: none">DownloadCount</a></th>
+ 
+ 
+ 
+ <th onclick="return _showBelow('pop__dot',this)" style="width:3ex"><a href="#columnprefs" style="text-decoration: none; background: none; margin-right:0; padding-right:0">...</a></th>
+ </tr>
+ 
+ 
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this); cancelBubble=false">
+ <td class="vt" nowrap="nowrap" style="padding:2px 2px 0 2px">
+  </td>
+ 
+ 
+ 
+  
+ <td class="vt id col_0">
+ <a href="http://net-google-code.googlecode.com/files/Net-Google-Code-0.04.tar.gz" style="white-space:nowrap"
+ 
+ >
+ 
+ Net-Google-Code-0.04.tar.gz
+ 
+
+</a>
+ </td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_1" width="100%"
+ onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=">
+ 
+ Net-Google-Code-0.04
+ 
+
+</a>
+   
+<a
+ onclick="cancelBubble=true;"
+ class="label" href="list?q=label:0.04"
+ >0.04</a>
+
+
+ </td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_2" onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=" style="white-space:nowrap">
+ 
+ 60 minutes ago
+ 
+
+</a></td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_3" onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=" style="white-space:nowrap">
+ 
+ 48.0 KB
+ 
+
+</a></td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_4" onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.04.tar.gz&can=2&q=" style="white-space:nowrap">
+ 
+ 0
+ 
+
+</a></td>
+ 
+ 
+ <td> </td>
+ </tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this); cancelBubble=false">
+ <td class="vt" nowrap="nowrap" style="padding:2px 2px 0 2px">
+  </td>
+ 
+ 
+ 
+  
+ <td class="vt id col_0">
+ <a href="http://net-google-code.googlecode.com/files/Net-Google-Code-0.01.tar.gz" style="white-space:nowrap"
+ 
+ >
+ 
+ Net-Google-Code-0.01.tar.gz
+ 
+
+</a>
+ </td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_1" width="100%"
+ onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=">
+ 
+ Net-Google-Code-0.01
+ 
+
+</a>
+   
+<a
+ onclick="cancelBubble=true;"
+ class="label" href="list?q=label:0.01"
+ >0.01</a>
+<a
+ onclick="cancelBubble=true;"
+ class="label" href="list?q=label:simple"
+ >simple</a>
+
+
+ </td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_2" onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=" style="white-space:nowrap">
+ 
+ Jan 06
+ 
+
+</a></td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_3" onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=" style="white-space:nowrap">
+ 
+ 37.4 KB
+ 
+
+</a></td>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ <td class="vt col_4" onclick="if (!cancelBubble) _go('detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=')"
+ ><a onclick="cancelBubble=true;" href="detail?name=Net-Google-Code-0.01.tar.gz&can=2&q=" style="white-space:nowrap">
+ 
+ 16
+ 
+
+</a></td>
+ 
+ 
+ <td> </td>
+ </tr>
+ 
+ 
+ </tbody>
+ </table>
+ 
+ 
+ <div class="pagination">
+ 
+ 1 - 2
+ of 2
+ 
+ </div>
+ 
+
+
+   
+ <div style="margin-top: 1px; font-size: small">
+ 
+ 
+ </div>
+
+ 
+ <div id="pop_0" class="popup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortUp('filename')"><td>Sort Up</td></tr>
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortDown('filename')"><td>Sort Down</td></tr>
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_0')"><td>Hide Column</td></tr>
+ </table>
+ </div>
+ 
+
+ 
+ 
+ <div id="pop_1" class="popup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortUp('summary')"><td>Sort Up</td></tr>
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortDown('summary')"><td>Sort Down</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this);" onmouseout="_rowRolloverOff(this)"><td onmouseover="_showRight('filter_1', this);">Show only <img src="http://www.gstatic.com/codesite/ph/images/triangle.gif" border="0/"></td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_1')"><td>Hide Column</td></tr>
+ </table>
+ </div>
+ 
+ 
+
+ 
+ 
+ <div id="pop_2" class="popup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortUp('uploaded')"><td>Sort Up</td></tr>
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortDown('uploaded')"><td>Sort Down</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_2')"><td>Hide Column</td></tr>
+ 
+ </table>
+ </div>
+ 
+ 
+
+ 
+ 
+ <div id="pop_3" class="popup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortUp('size')"><td>Sort Up</td></tr>
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortDown('size')"><td>Sort Down</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_3')"><td>Hide Column</td></tr>
+ 
+ </table>
+ </div>
+ 
+ 
+
+ 
+ 
+ <div id="pop_4" class="popup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortUp('downloadcount')"><td>Sort Up</td></tr>
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_sortDown('downloadcount')"><td>Sort Down</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this);_closeSubmenus()" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_4')"><td>Hide Column</td></tr>
+ 
+ </table>
+ </div>
+ 
+ 
+
+
+ <div id="filter_0" class="popup subpopup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ 
+ </table>
+ </div>
+
+ <div id="filter_1" class="popup subpopup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_filterTo('label','simple');">
+ <td>simple</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_filterTo('label','0.01');">
+ <td>0.01</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_filterTo('label','0.04');">
+ <td>0.04</td></tr>
+ 
+ </table>
+ </div>
+
+ <div id="filter_2" class="popup subpopup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ 
+ </table>
+ </div>
+
+ <div id="filter_3" class="popup subpopup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ 
+ </table>
+ </div>
+
+ <div id="filter_4" class="popup subpopup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ 
+ </table>
+ </div>
+
+ <div id="pop__dot" class="popup">
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr><th>Show columns:</th></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_0')"><td> <span class="col_0">♦</span> Filename</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_1')"><td> <span class="col_1">♦</span> Summary</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_2')"><td> <span class="col_2">♦</span> Uploaded</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_3')"><td> <span class="col_3">♦</span> Size</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);_toggleColumn('hide_col_4')"><td> <span class="col_4">♦</span> DownloadCount</td></tr>
+ 
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this);addcol('UploadedBy')"><td>    UploadedBy</td></tr>
+ 
+ <tr onmouseover="_rowRolloverOn(this)" onmouseout="_rowRolloverOff(this)" onclick="_closeAllPopups(this); document.getElementById('columnspec').style.display=''; return true;"><td>    Edit column spec...</td></tr>
+ </table>
+ </div>
+ </div>
+ <div class="round1"></div>
+ <div class="round2"></div>
+ <div class="round4"></div>
+</div>
+</div>
+<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/13924206732975079159/js/dit_scripts_20081013.js"></script>
+
+<script type="text/javascript">
+ var cancelBubble = false;
+ var _allColumnNames = [
+ 'filename', 'summary', 'uploaded', 'size', 'downloadcount'
+ ];
+ 
+ function addcol(colname) {
+ var colspec = _getElById('colspec');
+ colspec.value += ' ' + colname;
+ document.getElementById('colspecform').submit();
+ }
+ _onload();
+</script>
+ 
+ <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/13924206732975079159/js/core_scripts_20081103.js"></script>
+ <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
+ 
+ 
+ 
+ </div>
+<div id="footer" dir="ltr">
+ 
+ <div class="text">
+ 
+ ©2009 Google -
+ <a href="/">Code Home</a> -
+ <a href="/tos.html">Terms of Service</a> -
+ <a href="http://www.google.com/privacy.html">Privacy Policy</a> -
+ <a href="/more/">Site Directory</a> -
+ <a href="/p/support/">Project Hosting Help</a>
+ 
+ </div>
+</div>
+<script type="text/javascript">
+/**
+ * Reports analytics.
+ * It checks for the analytics functionality (window._gat) every 100ms
+ * until the analytics script is fully loaded in order to invoke siteTracker.
+ */
+function _CS_reportAnalytics() {
+ window.setTimeout(function() {
+ if (window._gat) {
+ var siteTracker = _gat._getTracker("UA-18071-1");
+ siteTracker._initData();
+ siteTracker._trackPageview();
+ 
+ } else {
+ _CS_reportAnalytics();
+ }
+ }, 100);
+}
+</script>
+
+ 
+ 
+ <div class="hostedBy" style="margin-top: -20px;">
+ <span style="vertical-align: top;">Hosted by</span>
+ <a href="/hosting/">
+ <img src="http://www.gstatic.com/codesite/ph/images/google_code_tiny.gif" width="107" height="24" alt="Google Code">
+ </a>
+ </div>
+ 
+ 
+ 
+ 
+
+
+ 
+ </body>
+</html>
+



More information about the Bps-public-commit mailing list