Fixed sorting, now use correct binary prefixes, refs #492

Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
This commit is contained in:
Florian Aders (EleRas)
2011-04-24 10:24:56 +02:00
parent 654af4fbc6
commit a810a49a74
4 changed files with 86 additions and 9 deletions

View File

@@ -1,6 +1,31 @@
$header $header
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script>
<script type="text/javascript" src="templates/jquery.tablesorter.min.js"></script> <script type="text/javascript" src="templates/jquery.tablesorter.min.js"></script>
<script type="text/javascript">
$.tablesorter.addParser( {
id: 'filesize',
is: function(s) {
return s.match( new RegExp( /[0-9]+(\.[0-9]+)?\ (KiB|Bi|GiB|MiB|TiB)/ ) );
},
format: function(s) {
var suf = s.match( new RegExp( /(KiB|Bi|GiB|MiB|TiB)/) )[1];
var num = parseFloat( s.match( new RegExp( /^[0-9]+(\.[0-9]+)?/ ) )[0] );
switch( suf ) {
case 'Bi':
return num;
case 'KiB':
return num * 1024;
case 'MiB':
return num * 1024 * 1024;
case 'GiB':
return num * 1024 * 1024 * 1024;
case 'TiB':
return num * 1024 * 1024 * 1024 * 1024;
}
},
type: 'numeric'
});
</script>
{$stats_tables} {$stats_tables}
<br /> <br />
<br /> <br />

View File

@@ -34,7 +34,7 @@
{ {
// extract data from markup and return it // extract data from markup and return it
if(node.innerHTML != '-') { if(node.innerHTML != '-') {
return 1 + node.innerHTML.substr(0,node.innerHTML.length-3); return 1 + node.innerHTML.substr(0,node.innerHTML.length);
} else { } else {
return '1'; return '1';
} }
@@ -42,10 +42,23 @@
$(document).ready(function() $(document).ready(function()
{ {
$("#stats{$overview['year']}").tablesorter( { $("#stats{$overview['year']}").tablesorter( {
textExtraction: myTextExtraction textExtraction: myTextExtraction,
} ); headers: {
} 1: {sorter: 'filesize'},
); 2: {sorter: 'filesize'},
3: {sorter: 'filesize'},
4: {sorter: 'filesize'},
5: {sorter: 'filesize'},
6: {sorter: 'filesize'},
7: {sorter: 'filesize'},
8: {sorter: 'filesize'},
9: {sorter: 'filesize'},
10: {sorter: 'filesize'},
11: {sorter: 'filesize'},
12: {sorter: 'filesize'}
},
});
});
</script> </script>
<br /> <br />
<br /> <br />

View File

@@ -1,6 +1,31 @@
$header $header
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script>
<script type="text/javascript" src="templates/jquery.tablesorter.min.js"></script> <script type="text/javascript" src="templates/jquery.tablesorter.min.js"></script>
<script type="text/javascript">
$.tablesorter.addParser( {
id: 'filesize',
is: function(s) {
return s.match( new RegExp( /[0-9]+(\.[0-9]+)?\ (KiB|Bi|GiB|MiB|TiB)/ ) );
},
format: function(s) {
var suf = s.match( new RegExp( /(KiB|Bi|GiB|MiB|TiB)/) )[1];
var num = parseFloat( s.match( new RegExp( /^[0-9]+(\.[0-9]+)?/ ) )[0] );
switch( suf ) {
case 'Bi':
return num;
case 'KiB':
return num * 1024;
case 'MiB':
return num * 1024 * 1024;
case 'GiB':
return num * 1024 * 1024 * 1024;
case 'TiB':
return num * 1024 * 1024 * 1024 * 1024;
}
},
type: 'numeric'
});
</script>
<article> <article>
<header> <header>
<h2> <h2>

View File

@@ -33,7 +33,7 @@
{ {
// extract data from markup and return it // extract data from markup and return it
if(node.innerHTML != '-') { if(node.innerHTML != '-') {
return 1 + node.innerHTML.substr(0,node.innerHTML.length-3); return 1 + node.innerHTML.substr(0,node.innerHTML.length);
} else { } else {
return '1'; return '1';
} }
@@ -41,8 +41,22 @@
$(document).ready(function() $(document).ready(function()
{ {
$("#stats{$overview['year']}").tablesorter( { $("#stats{$overview['year']}").tablesorter( {
textExtraction: myTextExtraction textExtraction: myTextExtraction,
} ); headers: {
1: {sorter: 'filesize'},
2: {sorter: 'filesize'},
3: {sorter: 'filesize'},
4: {sorter: 'filesize'},
5: {sorter: 'filesize'},
6: {sorter: 'filesize'},
7: {sorter: 'filesize'},
8: {sorter: 'filesize'},
9: {sorter: 'filesize'},
10: {sorter: 'filesize'},
11: {sorter: 'filesize'},
12: {sorter: 'filesize'}
},
});
} }
); );
</script> </script>