Sort devices by name

This commit is contained in:
2017-11-08 11:48:35 +01:00
parent b8d0cd83b6
commit 75717e8a76

View File

@@ -42,6 +42,10 @@ function correctDeviceName(name) {
return name;
}
function strcmp(a, b) {
return ( ( a == b ) ? 0 : ( ( a > b ) ? 1 : -1 ) );
}
function clone(object) {
return jQuery.extend(true, {}, object);
}
@@ -90,6 +94,20 @@ function setCorrectDatasetLabels(data) {
}
}
function compareDatasets(dataset_a, dataset_b) {
return strcmp(dataset_a.label, dataset_b.label);
}
function sortDataset(data) {
data.datasets.sort(compareDatasets);
}
function prepareDataset(data, is_bar) {
setCorrectDatasetLabels(data);
sortDataset(data);
setDatasetColor(data, is_bar);
}
function findDatasetMaxValue(data) {
var max_value = 0;
for (dataset of data.datasets) {
@@ -108,8 +126,7 @@ function findDatasetMaxValue(data) {
function buildChart(ctx, bare_data) {
var data = clone(bare_data);
setCorrectDatasetLabels(data);
setDatasetColor(data, true);
prepareDataset(data, true);
var my_chart = new Chart(
ctx,
{
@@ -176,8 +193,7 @@ function updateEnabledScenesCallback(bare_data) {
*/
disabled_scenes.reverse();
var updated_data = clone(bare_data);
setCorrectDatasetLabels(updated_data);
setDatasetColor(updated_data, true);
prepareDataset(updated_data, true);
for (scene of disabled_scenes) {
// Remove label first.
updated_data.labels.splice(scene.index, 1);
@@ -229,8 +245,7 @@ function historyChartGetSceneStats(bare_data, scene_name) {
function buildHistoryChart(ctx, bare_data, scene_name) {
var data = historyChartGetSceneStats(bare_data, scene_name);
setCorrectDatasetLabels(data);
setDatasetColor(data, false);
prepareDataset(data, false);
new Chart(
ctx,
{
@@ -255,6 +270,14 @@ function buildHistoryChart(ctx, bare_data, scene_name) {
});
}
function comapreTableRows(row_a, row_b) {
return strcmp(row_a[0], row_b[0]);
}
function sortTableRows(rows) {
rows.sort(comapreTableRows);
}
function buildSpreadsheet(ctx, data) {
// Generate columns for header.
var columns = [{label: "", name: "", width: 300}];
@@ -274,6 +297,7 @@ function buildSpreadsheet(ctx, data) {
}
rows.push(row);
}
sortTableRows(rows);
// Create actual table.
$(ctx).jqGrid({
data: rows,