<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>

<script type="text/javascript" src="js/highcharts.js"></script>
<script type="text/javascript" src="js/highcharts-3d.js"></script>

<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css"/>
<link rel="stylesheet" href="css/reporting.css" type="text/css"/>
<link rel="stylesheet" href="css/font-awesome.min.css"/>

<script type="text/javascript">
$(document).ready(function() {
    // this will tell tablesorter to try looking for the data-value attribute
    // if present, it'll sort by that instead
    // otherwise, it'll sort by the text content of the table cell
    $("#tablesorter").tablesorter({
        textAttribute: 'data-value',
        // ignores the first row of the header, the 'scenario', 'steps', since
        // sorting those doesn't make sense
        selectorHeaders: '> thead tr:not(.dont-sort) th',
    });
});
</script>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>

<script type="text/javascript" src="js/highcharts.js"></script>
<script type="text/javascript" src="js/highcharts-3d.js"></script>

<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css"/>
<link rel="stylesheet" href="css/reporting.css" type="text/css"/>
<link rel="stylesheet" href="css/font-awesome.min.css"/>

<script type="text/javascript">
$(document).ready(function() {
    // this will tell tablesorter to try looking for the data-value attribute
    // if present, it'll sort by that instead
    // otherwise, it'll sort by the text content of the table cell
    $("#tablesorter").tablesorter({
        textAttribute: 'data-value',
        // ignores the first row of the header, the 'scenario', 'steps', since
        // sorting those doesn't make sense
        selectorHeaders: '> thead tr:not(.dont-sort) th',
        // use a stable sort
        sortStable: true
    });
});
</script>

Use stable sorting on tables
Use stable sorting on tables

This is an issue when multiple entries in a list have the same value.
If step A and step B both took 3ms, then a stable sort will guarantee
that every time the list is sorted, A and B will appear in the same
order with respect to another. Some sorting implementations can't make
this guarantee.

By default, tablesorter disables this.

More info: https://en.wikipedia.org/wiki/Sorting_algorithm#Stability
