jspwiki-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From brus...@apache.org
Subject 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
Date Tue, 03 Feb 2009 21:00:06 GMT
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 <dirk.frederickx@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 <dirk.frederickx@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.



Mime
View raw message