You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by br...@apache.org on 2009/02/03 22:00:06 UTC

svn commit: r740438 - in /incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH: ChangeLog src/com/ecyrd/jspwiki/Release.java src/webdocs/scripts/jspwiki-common.js src/webdocs/templates/default/AttachmentTab.jsp src/webdocs/templates/default/InfoContent.jsp

Author: brushed
Date: Tue Feb  3 21:00:03 2009
New Revision: 740438

URL: http://svn.apache.org/viewvc?rev=740438&view=rev
Log:
2.8.2-svn-8
        * JSPWIKI-480, fix sorting on timestamps (modified date) in the Attachement and Info tab

Modified:
    incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
    incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
    incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/scripts/jspwiki-common.js
    incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/AttachmentTab.jsp
    incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/InfoContent.jsp

Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog?rev=740438&r1=740437&r2=740438&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog Tue Feb  3 21:00:03 2009
@@ -1,3 +1,15 @@
+2009-02-03  Dirk Frederickx <di...@gmail.org>
+
+        * 2.8.2-svn-8
+        
+        * JSPWIKI-480, sorting on timestamps (modified date) in
+        the Attachement tab and the Info tab was not always working,
+        as timeformats are depending on the user-preferences.
+        An invisible javascript parsable timeformat attribute is now 
+        added to the tables, independent of the user-preferred timeformat.
+        This attribute is used by the js sorting routines.
+
+
 2009-02-02  Dirk Frederickx <di...@gmail.org>
 
         * 2.8.2-svn-7

Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java?rev=740438&r1=740437&r2=740438&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java Tue Feb  3 21:00:03 2009
@@ -77,7 +77,7 @@
      *  <p>
      *  If the build identifier is empty, it is not added.
      */
-    public static final String     BUILD         = "7";
+    public static final String     BUILD         = "8";
     
     /**
      *  This is the generic version string you should use

Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/scripts/jspwiki-common.js
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/scripts/jspwiki-common.js?rev=740438&r1=740437&r2=740438&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/scripts/jspwiki-common.js (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/scripts/jspwiki-common.js Tue Feb  3 21:00:03 2009
@@ -1318,7 +1318,7 @@
 		this.DescendingTitle = "sort.descending".localize();
 		
 		$ES('.sortable table',page).each(function(table){
-			if( table.rows.length < 2 ) return;
+			if( table.rows.length <= 2 ) return;
 
 			$A(table.rows[0].cells).each(function(th){
 				th=$(th);
@@ -1375,42 +1375,70 @@
 	},
 
 	guessDataType: function(rows, colidx){
+
 		var num=date=ip4=euro=kmgt=true;
+
 		rows.each(function(r,i){
-			var v = $getText(r.cells[colidx]).clean().toLowerCase();
+
+			var v = r.cells[colidx];
+			v = v.getAttribute('sortvalue') || $getText(v);
+			v = v.clean().toLowerCase();
+
 			if(num)  num  = !isNaN(parseFloat(v));
 			if(date) date = !isNaN(Date.parse(v));
 			if(ip4)  ip4  = v.test(/(?:\\d{1,3}\\.){3}\\d{1,3}/); //169.169.0.1
 			if(euro) euro = v.test(/^[£$€][0-9.,]+/);
 			if(kmgt) kmgt = v.test(/(?:[0-9.,]+)\s*(?:[kmgt])b/);  //2 MB, 4GB, 1.2kb, 8Tb
+
 		});
+
 		return (kmgt) ? 'kmgt': (euro) ? 'euro': (ip4) ? 'ip4': (date) ? 'date': (num) ? 'num': 'string';
+
 	},
 
 	convert: function(val, datatype){
-		switch(datatype){
-			case "num" : return parseFloat( val.match( Number.REparsefloat ) );
-			case "euro": return parseFloat( val.replace(/[^0-9.,]/g,'') );
-			case "date": return new Date( Date.parse( val ) );
+
+		switch( datatype ){
+
+			case "num" : 
+				return parseFloat( val.match( Number.REparsefloat ) );
+				
+			case "euro": 
+				return parseFloat( val.replace(/[^0-9.,]/g,'') );
+				
+			case "date": 
+				return new Date( Date.parse( val ) );
+				
 			case "ip4" : 
 				var octet = val.split( "." );
 				return parseInt(octet[0]) * 1000000000 + parseInt(octet[1]) * 1000000 + parseInt(octet[2]) * 1000 + parseInt(octet[3]);
+
 			case "kmgt":
 				var v = val.toString().toLowerCase().match(/([0-9.,]+)\s*([kmgt])b/);
 				if(!v) return 0;
 				var z=v[2];
 				z = (z=='m') ? 3 : (z=='g') ? 6 : (z=='t') ? 9 : 0;
 				return v[1].toFloat()*Math.pow(10,z);
-			default: return val.toString().toLowerCase();
+
+			default: 
+				return val.toString().toLowerCase();
+
 		}
+
 	},
 
-	createCompare: function(i, datatype) {
-		return function(row1, row2) {
-			var val1 = Sortable.convert( $getText(row1.cells[i]), datatype );
-			var val2 = Sortable.convert( $getText(row2.cells[i]), datatype );
+	createCompare: function( i, datatype ){
+
+		return function( row1, row2 ){
 
-			if(val1<val2){ return -1 } else if(val1>val2){ return 1 } else return 0;
+			//fixme: should cache the converted sortable values
+			var v1 = row1.cells[i],
+				v2 = row2.cells[i],
+				val1 = Sortable.convert( v1.getAttribute('sortvalue') || $getText(v1), datatype ),
+				val2 = Sortable.convert( v2.getAttribute('sortvalue') || $getText(v2), datatype );
+
+			return val1 - val2;
+			
 		}
 	}
 }

Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/AttachmentTab.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/AttachmentTab.jsp?rev=740438&r1=740437&r2=740438&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/AttachmentTab.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/AttachmentTab.jsp Tue Feb  3 21:00:03 2009
@@ -48,7 +48,9 @@
 
     </table>
   </form>
+
   <wiki:Messages div="error" />
+
 </wiki:Permission>
 <wiki:Permission permission="!upload">
 <div class="formhelp"><fmt:message key="attach.add.permission"/></div>
@@ -105,7 +107,9 @@
       <td style="text-align:center;">
         <a href="<wiki:PageInfoLink format='url' />" title="<fmt:message key='attach.moreinfo.title'/>"><wiki:PageVersion /></a>
       </td>
-	  <td style="white-space:nowrap;"><fmt:formatDate value="<%= att.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" /></td>
+	  <td style="white-space:nowrap;" sortvalue="<fmt:formatDate value='<%= att.getLastModified() %>' pattern='EEE, d MMM yyyy hh:mm:ss' />">
+	  <fmt:formatDate value="<%= att.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" />
+	  </td>
       <td><wiki:Author /></td>
       <wiki:Permission permission="delete">
       <td>

Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/InfoContent.jsp
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/InfoContent.jsp?rev=740438&r1=740437&r2=740438&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/InfoContent.jsp (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/InfoContent.jsp Tue Feb  3 21:00:03 2009
@@ -199,7 +199,9 @@
           </wiki:LinkTo>
         </td>
 
-        <td><fmt:formatDate value="<%= currentPage.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" /></td>
+	    <td style="white-space:nowrap;" sortvalue="<fmt:formatDate value='<%= currentPage.getLastModified() %>' pattern='EEE, d MMM yyyy hh:mm:ss' />">
+        <fmt:formatDate value="<%= currentPage.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" />
+        </td>
         <td style="white-space:nowrap;text-align:right;">
           <c:set var="ff"><wiki:PageSize /></c:set>
           <fmt:formatNumber value='${ff/1000}' maxFractionDigits='3' minFractionDigits='1'/>&nbsp;<fmt:message key="info.kilobytes"/>
@@ -358,7 +360,9 @@
       <td style="white-space:nowrap;text-align:right;">
         <fmt:formatNumber value='<%=Double.toString(att.getSize()/1000.0) %>' groupingUsed='false' maxFractionDigits='1' minFractionDigits='1'/>&nbsp;<fmt:message key="info.kilobytes"/>
       </td>
-	  <td style="white-space:nowrap;"><fmt:formatDate value="<%= att.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" /></td>
+	  <td style="white-space:nowrap;" sortvalue="<fmt:formatDate value='<%= att.getLastModified() %>' pattern='EEE, d MMM yyyy hh:mm:ss' />">
+	  <fmt:formatDate value="<%= att.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" />
+	  </td>
       <td><wiki:Author /></td>
       <%--
       // FIXME: This needs to be added, once we figure out what is going on.



Re: svn commit: r740438 - in /incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH: ChangeLog src/com/ecyrd/jspwiki/Release.java src/webdocs/scripts/jspwiki-common.js src/webdocs/templates/default/AttachmentTab.jsp src/webdocs/templates/default/InfoContent.jsp

Posted by Janne Jalkanen <ja...@ecyrd.com>.
Excellent.  Could we also get this documented wherever "sortable" is  
documented?  It might be very useful knowledge for e.g. plugin writers.

/Janne

On Feb 3, 2009, at 23:00 , brushed@apache.org wrote:

> Author: brushed
> Date: Tue Feb  3 21:00:03 2009
> New Revision: 740438
>
> URL: http://svn.apache.org/viewvc?rev=740438&view=rev
> Log:
> 2.8.2-svn-8
>     * JSPWIKI-480, fix sorting on timestamps (modified date) in the  
> Attachement and Info tab
>
> Modified:
> incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
> incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/ 
> Release.java
> incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/scripts/ 
> jspwiki-common.js
> incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/ 
> default/AttachmentTab.jsp
> incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/ 
> default/InfoContent.jsp
>
> Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog?rev=740438&r1=740437&r2=740438&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog (original)
> +++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/ChangeLog Tue Feb   
> 3 21:00:03 2009
> @@ -1,3 +1,15 @@
> +2009-02-03  Dirk Frederickx <di...@gmail.org>
> +
> +        * 2.8.2-svn-8
> +
> +        * JSPWIKI-480, sorting on timestamps (modified date) in
> +        the Attachement tab and the Info tab was not always working,
> +        as timeformats are depending on the user-preferences.
> +        An invisible javascript parsable timeformat attribute is now
> +        added to the tables, independent of the user-preferred  
> timeformat.
> +        This attribute is used by the js sorting routines.
> +
> +
> 2009-02-02  Dirk Frederickx <di...@gmail.org>
>
>      * 2.8.2-svn-7
>
> Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ 
> ecyrd/jspwiki/Release.java
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/Release.java?rev=740438&r1=740437&r2=740438&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/ 
> jspwiki/Release.java (original)
> +++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/ 
> jspwiki/Release.java Tue Feb  3 21:00:03 2009
> @@ -77,7 +77,7 @@
>   *  <p>
>   *  If the build identifier is empty, it is not added.
>   */
> -    public static final String     BUILD         = "7";
> +    public static final String     BUILD         = "8";
>
>  /**
>   *  This is the generic version string you should use
>
> Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> scripts/jspwiki-common.js
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/scripts/jspwiki-common.js?rev=740438&r1=740437&r2=740438&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> scripts/jspwiki-common.js (original)
> +++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> scripts/jspwiki-common.js Tue Feb  3 21:00:03 2009
> @@ -1318,7 +1318,7 @@
> 		this.DescendingTitle = "sort.descending".localize();
> 		
> 		$ES('.sortable table',page).each(function(table){
> -			if( table.rows.length < 2 ) return;
> +			if( table.rows.length <= 2 ) return;
>
> 			$A(table.rows[0].cells).each(function(th){
> 				th=$(th);
> @@ -1375,42 +1375,70 @@
> 	},
>
> 	guessDataType: function(rows, colidx){
> +
> 		var num=date=ip4=euro=kmgt=true;
> +
> 		rows.each(function(r,i){
> -			var v = $getText(r.cells[colidx]).clean().toLowerCase();
> +
> +			var v = r.cells[colidx];
> +			v = v.getAttribute('sortvalue') || $getText(v);
> +			v = v.clean().toLowerCase();
> +
> 			if(num)  num  = !isNaN(parseFloat(v));
> 			if(date) date = !isNaN(Date.parse(v));
> 			if(ip4)  ip4  = v.test(/(?:\\d{1,3}\\.){3}\\d{1,3}/); //169.169.0.1
> 			if(euro) euro = v.test(/^[£$€][0-9.,]+/);
> 			if(kmgt) kmgt = v.test(/(?:[0-9.,]+)\s*(?:[kmgt])b/);  //2 MB,  
> 4GB, 1.2kb, 8Tb
> +
> 		});
> +
> 		return (kmgt) ? 'kmgt': (euro) ? 'euro': (ip4) ? 'ip4': (date) ?  
> 'date': (num) ? 'num': 'string';
> +
> 	},
>
> 	convert: function(val, datatype){
> -		switch(datatype){
> -			case "num" : return  
> parseFloat( val.match( Number.REparsefloat ) );
> -			case "euro": return parseFloat( val.replace(/[^0-9.,]/g,'') );
> -			case "date": return new Date( Date.parse( val ) );
> +
> +		switch( datatype ){
> +
> +			case "num" :
> +				return parseFloat( val.match( Number.REparsefloat ) );
> +				
> +			case "euro":
> +				return parseFloat( val.replace(/[^0-9.,]/g,'') );
> +				
> +			case "date":
> +				return new Date( Date.parse( val ) );
> +				
> 			case "ip4" :
> 				var octet = val.split( "." );
> 				return parseInt(octet[0]) * 1000000000 + parseInt(octet[1]) *  
> 1000000 + parseInt(octet[2]) * 1000 + parseInt(octet[3]);
> +
> 			case "kmgt":
> 				var v = val.toString().toLowerCase().match(/([0-9.,]+) 
> \s*([kmgt])b/);
> 				if(!v) return 0;
> 				var z=v[2];
> 				z = (z=='m') ? 3 : (z=='g') ? 6 : (z=='t') ? 9 : 0;
> 				return v[1].toFloat()*Math.pow(10,z);
> -			default: return val.toString().toLowerCase();
> +
> +			default:
> +				return val.toString().toLowerCase();
> +
> 		}
> +
> 	},
>
> -	createCompare: function(i, datatype) {
> -		return function(row1, row2) {
> -			var val1 = Sortable.convert( $getText(row1.cells[i]), datatype );
> -			var val2 = Sortable.convert( $getText(row2.cells[i]), datatype );
> +	createCompare: function( i, datatype ){
> +
> +		return function( row1, row2 ){
>
> -			if(val1<val2){ return -1 } else if(val1>val2){ return 1 } else  
> return 0;
> +			//fixme: should cache the converted sortable values
> +			var v1 = row1.cells[i],
> +				v2 = row2.cells[i],
> +				val1 = Sortable.convert( v1.getAttribute('sortvalue') ||  
> $getText(v1), datatype ),
> +				val2 = Sortable.convert( v2.getAttribute('sortvalue') ||  
> $getText(v2), datatype );
> +
> +			return val1 - val2;
> +			
> 		}
> 	}
> }
>
> Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> templates/default/AttachmentTab.jsp
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/AttachmentTab.jsp?rev=740438&r1=740437&r2=740438&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> templates/default/AttachmentTab.jsp (original)
> +++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> templates/default/AttachmentTab.jsp Tue Feb  3 21:00:03 2009
> @@ -48,7 +48,9 @@
>
>  </table>
> </form>
> +
> <wiki:Messages div="error" />
> +
> </wiki:Permission>
> <wiki:Permission permission="!upload">
> <div class="formhelp"><fmt:message key="attach.add.permission"/></div>
> @@ -105,7 +107,9 @@
>    <td style="text-align:center;">
>      <a href="<wiki:PageInfoLink format='url' />"  
> title="<fmt:message key='attach.moreinfo.title'/ 
> >"><wiki:PageVersion /></a>
>    </td>
> -	  <td style="white-space:nowrap;"><fmt:formatDate value="<%=  
> att.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="$ 
> {prefs.TimeZone}" /></td>
> +	  <td style="white-space:nowrap;" sortvalue="<fmt:formatDate  
> value='<%= att.getLastModified() %>' pattern='EEE, d MMM yyyy  
> hh:mm:ss' />">
> +	  <fmt:formatDate value="<%= att.getLastModified() %>" pattern="$ 
> {prefs.DateFormat}" timeZone="${prefs.TimeZone}" />
> +	  </td>
>    <td><wiki:Author /></td>
>    <wiki:Permission permission="delete">
>    <td>
>
> Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> templates/default/InfoContent.jsp
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/templates/default/InfoContent.jsp?rev=740438&r1=740437&r2=740438&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> templates/default/InfoContent.jsp (original)
> +++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/ 
> templates/default/InfoContent.jsp Tue Feb  3 21:00:03 2009
> @@ -199,7 +199,9 @@
>        </wiki:LinkTo>
>      </td>
>
> -        <td><fmt:formatDate value="<%=  
> currentPage.getLastModified() %>" pattern="${prefs.DateFormat}"  
> timeZone="${prefs.TimeZone}" /></td>
> +	    <td style="white-space:nowrap;" sortvalue="<fmt:formatDate  
> value='<%= currentPage.getLastModified() %>' pattern='EEE, d MMM  
> yyyy hh:mm:ss' />">
> +        <fmt:formatDate value="<%= currentPage.getLastModified()  
> %>" pattern="${prefs.DateFormat}" timeZone="${prefs.TimeZone}" />
> +        </td>
>      <td style="white-space:nowrap;text-align:right;">
>        <c:set var="ff"><wiki:PageSize /></c:set>
>        <fmt:formatNumber value='${ff/1000}' maxFractionDigits='3'  
> minFractionDigits='1'/>&nbsp;<fmt:message key="info.kilobytes"/>
> @@ -358,7 +360,9 @@
>    <td style="white-space:nowrap;text-align:right;">
>      <fmt:formatNumber value='<%=Double.toString(att.getSize()/ 
> 1000.0) %>' groupingUsed='false' maxFractionDigits='1'  
> minFractionDigits='1'/>&nbsp;<fmt:message key="info.kilobytes"/>
>    </td>
> -	  <td style="white-space:nowrap;"><fmt:formatDate value="<%=  
> att.getLastModified() %>" pattern="${prefs.DateFormat}" timeZone="$ 
> {prefs.TimeZone}" /></td>
> +	  <td style="white-space:nowrap;" sortvalue="<fmt:formatDate  
> value='<%= att.getLastModified() %>' pattern='EEE, d MMM yyyy  
> hh:mm:ss' />">
> +	  <fmt:formatDate value="<%= att.getLastModified() %>" pattern="$ 
> {prefs.DateFormat}" timeZone="${prefs.TimeZone}" />
> +	  </td>
>    <td><wiki:Author /></td>
>    <%--
>    // FIXME: This needs to be added, once we figure out what is  
> going on.
>