1 // TODO: tablesorter shouldn't sort already sorted columns
2 function initTableSorter(tabid) {
5 case 'statustabs_queries':
6 $table = $('#serverstatusqueriesdetails');
9 widgets: ['fast-zebra'],
11 1: { sorter: 'fancyNumber' },
12 2: { sorter: 'fancyNumber' }
16 case 'statustabs_allvars':
17 $table = $('#serverstatusvariables');
20 widgets: ['fast-zebra'],
22 1: { sorter: 'withinSpanNumber' }
27 $table.tablesorter(opts);
28 $table.find('tr:first th')
29 .append('<img class="icon sortableIcon" src="themes/dot.gif" alt="">');
33 $.tablesorter.addParser({
36 return /^[0-9]?[0-9,\.]*\s?(k|M|G|T|%)?$/.test(s);
39 var num = jQuery.tablesorter.formatFloat(
40 s.replace(PMA_messages['strThousandsSeparator'], '')
41 .replace(PMA_messages['strDecimalSeparator'], '.')
45 switch (s.charAt(s.length - 1)) {
46 case '%': factor = -2; break;
47 // Todo: Complete this list (as well as in the regexp a few lines up)
48 case 'k': factor = 3; break;
49 case 'M': factor = 6; break;
50 case 'G': factor = 9; break;
51 case 'T': factor = 12; break;
54 return num * Math.pow(10, factor);
59 $.tablesorter.addParser({
60 id: "withinSpanNumber",
62 return /<span class="original"/.test(s);
64 format: function(s, table, html) {
65 var res = html.innerHTML.match(/<span(\s*style="display:none;"\s*)?\s*class="original">(.*)?<\/span>/);
66 return (res && res.length >= 3) ? res[2] : 0;
71 // faster zebra widget: no row visibility check, faster css class switching, no cssChildRow check
72 $.tablesorter.addWidget({
74 format: function (table) {
75 if (table.config.debug) {
76 var time = new Date();
78 $("tr:even", table.tBodies[0])
79 .removeClass(table.config.widgetZebra.css[0])
80 .addClass(table.config.widgetZebra.css[1]);
81 $("tr:odd", table.tBodies[0])
82 .removeClass(table.config.widgetZebra.css[1])
83 .addClass(table.config.widgetZebra.css[0]);
84 if (table.config.debug) {
85 $.tablesorter.benchmark("Applying Fast-Zebra widget", time);