Translated using Weblate (French)
[phpmyadmin.git] / js / server_status_sorter.js
blobb0891c16883b8477fba0f761903e64c223e39c6d
1 // TODO: tablesorter shouldn't sort already sorted columns
2 function initTableSorter(tabid) {
3     var $table, opts;
4     switch (tabid) {
5     case 'statustabs_queries':
6         $table = $('#serverstatusqueriesdetails');
7         opts = {
8             sortList: [[3, 1]],
9             widgets: ['fast-zebra'],
10             headers: {
11                 1: { sorter: 'fancyNumber' },
12                 2: { sorter: 'fancyNumber' }
13             }
14         };
15         break;
16     }
17     $table.tablesorter(opts);
18     $table.find('tr:first th')
19         .append('<div class="sorticon"></div>');
22 $(function () {
23     $.tablesorter.addParser({
24         id: "fancyNumber",
25         is: function (s) {
26             return (/^[0-9]?[0-9,\.]*\s?(k|M|G|T|%)?$/).test(s);
27         },
28         format: function (s) {
29             var num = jQuery.tablesorter.formatFloat(
30                 s.replace(PMA_messages.strThousandsSeparator, '')
31                  .replace(PMA_messages.strDecimalSeparator, '.')
32             );
34             var factor = 1;
35             switch (s.charAt(s.length - 1)) {
36             case '%':
37                 factor = -2;
38                 break;
39             // Todo: Complete this list (as well as in the regexp a few lines up)
40             case 'k':
41                 factor = 3;
42                 break;
43             case 'M':
44                 factor = 6;
45                 break;
46             case 'G':
47                 factor = 9;
48                 break;
49             case 'T':
50                 factor = 12;
51                 break;
52             }
54             return num * Math.pow(10, factor);
55         },
56         type: "numeric"
57     });
59     $.tablesorter.addParser({
60         id: "withinSpanNumber",
61         is: function (s) {
62             return (/<span class="original"/).test(s);
63         },
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;
67         },
68         type: "numeric"
69     });
71     // faster zebra widget: no row visibility check, faster css class switching, no cssChildRow check
72     $.tablesorter.addWidget({
73         id: "fast-zebra",
74         format: function (table) {
75             $("tr:even", table.tBodies[0])
76                 .removeClass(table.config.widgetZebra.css[0])
77                 .addClass(table.config.widgetZebra.css[1]);
78             $("tr:odd", table.tBodies[0])
79                 .removeClass(table.config.widgetZebra.css[1])
80                 .addClass(table.config.widgetZebra.css[0]);
81         }
82     });
83 });