Add currency sorting
[contractdashboard.git] / lib / common.inc.php
blob:a/lib/common.inc.php -> blob:b/lib/common.inc.php
--- a/lib/common.inc.php
+++ b/lib/common.inc.php
@@ -82,6 +82,59 @@
 		</style> 

 		<script type="text/javascript" language="javascript" src="media/js/jquery.dataTables.js"></script> 

 		<script type="text/javascript" charset="utf-8"> 

+jQuery.fn.dataTableExt.aTypes.unshift(  

+    function ( sData )  

+    {  

+        var sValidChars = "0123456789.-,";  

+        var Char;  

+          

+        /* Check the numeric part */  

+        for ( i=1 ; i<sData.length ; i++ )   

+        {   

+            Char = sData.charAt(i);   

+            if (sValidChars.indexOf(Char) == -1)   

+            {  

+                return null;  

+            }  

+        }  

+          

+        /* Check prefixed by currency */  

+        if ( sData.charAt(0) == '$' || sData.charAt(0) == '£' )  

+        {  

+            return 'currency';  

+        }  

+        return null;  

+    }  

+);

+jQuery.fn.dataTableExt.oSort['currency-asc'] = function(a,b) {

+	/* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */

+	var x = a == "-" ? 0 : a.replace( /,/g, "" );

+	var y = b == "-" ? 0 : b.replace( /,/g, "" );

+	

+	/* Remove the currency sign */

+	x = x.substring( 1 );

+	y = y.substring( 1 );

+	

+	/* Parse and return */

+	x = parseFloat( x );

+	y = parseFloat( y );

+	return x - y;

+};

+

+jQuery.fn.dataTableExt.oSort['currency-desc'] = function(a,b) {

+	/* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */

+	var x = a == "-" ? 0 : a.replace( /,/g, "" );

+	var y = b == "-" ? 0 : b.replace( /,/g, "" );

+	

+	/* Remove the currency sign */

+	x = x.substring( 1 );

+	y = y.substring( 1 );

+	

+	/* Parse and return */

+	x = parseFloat( x );

+	y = parseFloat( y );

+	return y - x;

+};

 			$(document).ready(function() {

 				$('table').dataTable();

 			} );