[ros-diffs] [cfinck] 27242: - Add support for revision ranges (e.g. 27300-27306) - Sort the files alphabetically - Improved the revision number check - Removed the MAX_FILES_PER_REV option The new "info.png" was also taken from the Tango Icon Theme 0.8.0 Demonstration at http://reactos.colinfinck.de/getbuilds has also been updated.

cfinck at svn.reactos.org cfinck at svn.reactos.org
Wed Jun 20 00:15:04 CEST 2007


Author: cfinck
Date: Wed Jun 20 02:15:03 2007
New Revision: 27242

URL: http://svn.reactos.org/svn/reactos?rev=27242&view=rev
Log:
- Add support for revision ranges (e.g. 27300-27306)
- Sort the files alphabetically
- Improved the revision number check
- Removed the MAX_FILES_PER_REV option

The new "info.png" was also taken from the Tango Icon Theme 0.8.0
Demonstration at http://reactos.colinfinck.de/getbuilds has also been updated.

Added:
    trunk/web/reactos.org/htdocs/getbuilds/images/info.png   (with props)
Modified:
    trunk/web/reactos.org/htdocs/getbuilds/ajax-getfiles-provider.php
    trunk/web/reactos.org/htdocs/getbuilds/getbuilds.css
    trunk/web/reactos.org/htdocs/getbuilds/getbuilds.js.php
    trunk/web/reactos.org/htdocs/getbuilds/index.php
    trunk/web/reactos.org/htdocs/getbuilds/lang/de.inc.php
    trunk/web/reactos.org/htdocs/getbuilds/lang/en.inc.php

Modified: trunk/web/reactos.org/htdocs/getbuilds/ajax-getfiles-provider.php
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/getbuilds/ajax-getfiles-provider.php?rev=27242&r1=27241&r2=27242&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/getbuilds/ajax-getfiles-provider.php (original)
+++ trunk/web/reactos.org/htdocs/getbuilds/ajax-getfiles-provider.php Wed Jun 20 02:15:03 2007
@@ -12,7 +12,6 @@
 
 	// Configuration
 	$ISO_DIR = ".";
-	$MAX_FILES_PER_REV = 4;
 
 
 	// Functions
@@ -34,36 +33,60 @@
 		return number_format( $size, 2, ".", ",") . $unit;
 	}
 	
+	function ArraySort(&$array, $elem)
+	{
+		global $sort_elem;
+		
+		$sort_elem = $elem;
+		usort( $array, "ArraySort_callback" );
+	}
+	
+	function ArraySort_callback($a, $b)
+	{
+		global $sort_elem;
+		
+		return strnatcasecmp( $a[$sort_elem], $b[$sort_elem] );
+	}
+	
+	
 	// Entry point
-	if( !isset( $_GET["rev"] ) )
-		die("No revision specified!");
+	if( !isset( $_GET["from"] ) || !isset( $_GET["to"] ) )
+		die("No revision range specified!");
 	
-	$revfiles = 0;
+	$files = array();
+	$i = 0;
 	$dir = opendir( $ISO_DIR ) or die("opendir failed!");
-	header("Content-type: text/xml; charset=utf-8");
 ?>
 <files>
 <?php
 	while( $fname = readdir($dir) )
 	{
-		if( strpos( $fname, "-" . $_GET["rev"] . "-" ) !== false )
+		for( $j = $_GET["from"]; $j <= $_GET["to"]; $j++ )
 		{
-			$fsize = fsize_str( filesize( "$ISO_DIR/$fname" ) );
-			$fdate = date( "Y-m-d H:i", filemtime( "$ISO_DIR/$fname" ) );
-?>
-<file>
-	<name><?php echo $fname; ?></name>
-	<size><?php echo $fsize; ?></size>
-	<date><?php echo $fdate; ?></date>
-</file>
-<?php
-			$revfiles++;
-			
-			if( $revfiles == $MAX_FILES_PER_REV )
+			if( strpos( $fname, "-$j-" ) !== false )
+			{
+				$files[$i]["name"] = $fname;
+				$files[$i]["size"] = fsize_str( filesize( "$ISO_DIR/$fname" ) );
+				$files[$i]["date"] = date( "Y-m-d H:i", filemtime( "$ISO_DIR/$fname" ) );
+				
+				$i++;
 				break;
+			}
 		}
 	}
 	
 	closedir($dir);
+	ArraySort( $files, "name" );
+	
+	for( $j = 0; $j < $i; $j++ )
+	{
+?>
+<file>
+	<name><?php echo $files[$j]["name"]; ?></name>
+	<size><?php echo $files[$j]["size"]; ?></size>
+	<date><?php echo $files[$j]["date"]; ?></date>
+</file>
+<?php
+	}
 ?>
 </files>

Modified: trunk/web/reactos.org/htdocs/getbuilds/getbuilds.css
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/getbuilds/getbuilds.css?rev=27242&r1=27241&r2=27242&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/getbuilds/getbuilds.css (original)
+++ trunk/web/reactos.org/htdocs/getbuilds/getbuilds.css Wed Jun 20 02:15:03 2007
@@ -58,10 +58,6 @@
 	vertical-align: top;
 }
 
-#showrev {
-	margin-bottom: 2em;
-}
-
 #showrev img {
 	vertical-align: middle;
 	cursor: pointer;
@@ -74,6 +70,10 @@
 
 #ajaxloadinginfo {
 	margin-left: 10px;
+}
+
+#infobox {
+	margin-bottom: 2em;
 }
 
 .datatable {

Modified: trunk/web/reactos.org/htdocs/getbuilds/getbuilds.js.php
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/getbuilds/getbuilds.js.php?rev=27242&r1=27241&r2=27242&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/getbuilds/getbuilds.js.php (original)
+++ trunk/web/reactos.org/htdocs/getbuilds/getbuilds.js.php Wed Jun 20 02:15:03 2007
@@ -74,7 +74,7 @@
 	}
 }
 
-function getfilesCallback(http_request, rev)
+function getfilesCallback(http_request, revs)
 {
 	if( http_request.responseXML == null )
 	{
@@ -91,7 +91,7 @@
 	var files = http_request.responseXML.getElementsByTagName("file");
 
 	if( files.length == 0 )
-		datatable += '<tr class="odd"><td><?php echo $getbuilds_langres["nofiles1"]; ?>' + rev + '<?php echo $getbuilds_langres["nofiles2"]; ?></td><td>&nbsp;</td><td>&nbsp;</td></tr>';
+		datatable += '<tr class="odd"><td><?php echo $getbuilds_langres["nofiles1"]; ?>' + revs + '<?php echo $getbuilds_langres["nofiles2"]; ?></td><td>&nbsp;</td><td>&nbsp;</td></tr>';
 	else
 	{
 		var oddeven = false;
@@ -139,56 +139,70 @@
 		setrowcolor( elem, "#EEEEEE" );
 }
 
-function getrevnum()
+var from;
+var to;
+
+function getrevnums()
 {
 	var rev = document.getElementById("revnum").value;
 	
-	if( isNaN(rev) )
-	{
-		alert("<?php echo $getbuilds_langres["invalidrev"]; ?>");
-		return false;
-	}
-	else
-		return rev;
+	if( isNaN(rev) || rev < 1 )
+	{
+		// Maybe the user entered a revision range
+		var hyphen = rev.indexOf("-");
+		
+		if( hyphen > 0 )
+		{
+			from = rev.substr( 0, hyphen );
+			to = rev.substr( hyphen + 1 );
+		}
+		
+		if( hyphen <= 0 || isNaN(from) || isNaN(to) )
+		{
+			alert("Invalid revision number!");
+			return false;
+		}
+	}
+	else
+	{
+		from = rev;
+		to = rev;
+	}
+	
+	return true;
 }
 
 function prevrev()
 {
-	var rev = getrevnum();
-	
-	if( rev )
-	{
-		rev--;
+	if( getrevnums() )
+	{
+		from--;
 		
 		// 25700 is the lowest rev on the server at the time, when this script has been written
 		// There is no harm if this rev does not exist anymore on the FTP server, it's just a min value
-		if(rev < 25700)
+		if(from < 25700)
 			return;
 		
-		document.getElementById("revnum").value = rev;
+		document.getElementById("revnum").value = from;
 	}
 }
 
 function nextrev()
 {
-	var rev = getrevnum();
-	
-	if( rev )
-	{
-		rev++;
-		document.getElementById("revnum").value = rev;
+	if( getrevnums() )
+	{
+		from++;
+		document.getElementById("revnum").value = from;
 	}
 }
 
 function showrev()
 {
-	var rev = getrevnum();
-
-	if( rev )
-		ajaxGet( "getfiles", "rev=" + rev, rev );
+	if( getrevnums() )
+		ajaxGet( 'getfiles', 'from=' + from + '&to=' + to, document.getElementById("revnum").value );
 }
 
 function checkrevnum(elem)
 {
-	elem.value = elem.value.replace( /[^[0-9]/g, "");
-}
+	elem.value = elem.value.replace( /[^[0-9-]/g, "");
+}

Added: trunk/web/reactos.org/htdocs/getbuilds/images/info.png
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/getbuilds/images/info.png?rev=27242&view=auto
==============================================================================
Binary file - no diff available.

Propchange: trunk/web/reactos.org/htdocs/getbuilds/images/info.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: trunk/web/reactos.org/htdocs/getbuilds/index.php
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/getbuilds/index.php?rev=27242&r1=27241&r2=27242&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/getbuilds/index.php (original)
+++ trunk/web/reactos.org/htdocs/getbuilds/index.php Wed Jun 20 02:15:03 2007
@@ -39,7 +39,7 @@
 	<?php require_once("getbuilds.js.php"); ?>
 	</script>
 </head>
-<body onload="ajaxGet('getfiles', 'rev=<?php echo $rev; ?>', <?php echo $rev; ?>);">
+<body onload="ajaxGet('getfiles', 'from=<?php echo $rev; ?>&to=<?php echo $rev; ?>', <?php echo $rev; ?>);">
 
 <h2><?php echo $getbuilds_langres["title"]; ?></h2>
 
@@ -89,7 +89,7 @@
 				'<div id="showrev">' +
 					'<?php echo $getbuilds_langres["showrevfiles"]; ?>: ' +
 					'<img src="images/leftarrow.gif" alt="&lt;" title="<?php echo $getbuilds_langres["prevrev"]; ?>" onclick="prevrev();"> ' +
-					'<input type="text" id="revnum" value="<?php echo $rev; ?>" size="6" onkeyup="checkrevnum(this);"> ' +
+					'<input type="text" id="revnum" value="<?php echo $rev; ?>" size="12" onkeyup="checkrevnum(this);"> ' +
 					'<img src="images/rightarrow.gif" alt="&gt;" title="<?php echo $getbuilds_langres["nextrev"]; ?>" onclick="nextrev();">&nbsp;&nbsp; ' +
 					
 					'<button type="submit" onclick="showrev();"><strong><?php echo $getbuilds_langres["showrev"]; ?></strong></button>' +
@@ -97,6 +97,10 @@
 					'<span id="ajaxloadinginfo">' +
 						'<img src="images/ajax_loading.gif"> <strong><?php echo $getbuilds_langres["gettinglist"]; ?>...</strong>' +
 					'</span>' +
+				'</div>' +
+				
+				'<div id="infobox">' +
+					'<img src="images/info.png" alt="INFO:"> <?php echo $getbuilds_langres["rangeinfo"]; ?>' +
 				'</div>' +
 				
 				'<div id="filetable">' +

Modified: trunk/web/reactos.org/htdocs/getbuilds/lang/de.inc.php
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/getbuilds/lang/de.inc.php?rev=27242&r1=27241&r2=27242&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/getbuilds/lang/de.inc.php (original)
+++ trunk/web/reactos.org/htdocs/getbuilds/lang/de.inc.php Wed Jun 20 02:15:03 2007
@@ -25,6 +25,7 @@
 	$getbuilds_langres["nextrev"] = "Nächste Revision";
 	$getbuilds_langres["showrev"] = "Anzeigen";
 	$getbuilds_langres["gettinglist"] = "Dateiliste wird geladen";
+	$getbuilds_langres["rangeinfo"] = "Sie können eine Revisionsnummer (z.B. <i>27154</i>) oder einen Revisionsbereich (z.B. <i>27000-27154</i>) eingeben.";
 	$getbuilds_langres["filename"] = "Dateiname";
 	$getbuilds_langres["filesize"] = "Größe";
 	$getbuilds_langres["filedate"] = "Zuletzt geändert";

Modified: trunk/web/reactos.org/htdocs/getbuilds/lang/en.inc.php
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/getbuilds/lang/en.inc.php?rev=27242&r1=27241&r2=27242&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/getbuilds/lang/en.inc.php (original)
+++ trunk/web/reactos.org/htdocs/getbuilds/lang/en.inc.php Wed Jun 20 02:15:03 2007
@@ -25,6 +25,7 @@
 	$getbuilds_langres["nextrev"] = "Next revision";
 	$getbuilds_langres["showrev"] = "Show";
 	$getbuilds_langres["gettinglist"] = "Getting file list";
+	$getbuilds_langres["rangeinfo"] = "You can enter a revision number (e.g. <i>27154</i>) or a revision range (e.g. <i>27000-27154</i>).";
 	$getbuilds_langres["filename"] = "File name";
 	$getbuilds_langres["filesize"] = "Size";
 	$getbuilds_langres["filedate"] = "Last changed";




More information about the Ros-diffs mailing list