Files
grafana/public/app/panels/table/table_model.ts
2015-11-09 17:58:02 +01:00

53 lines
998 B
TypeScript

import {transformers} from './transformers';
export class TableModel {
columns: any[];
rows: any[];
constructor() {
this.columns = [];
this.rows = [];
}
sort(options) {
if (options.col === null || this.columns.length < options.col) {
return;
}
this.rows.sort(function(a, b) {
a = a[options.col];
b = b[options.col];
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
});
this.columns[options.col].sort = true;
if (options.desc) {
this.rows.reverse();
this.columns[options.col].desc = true;
}
}
static transform(data, panel) {
var model = new TableModel();
if (!data || data.length === 0) {
return model;
}
var transformer = transformers[panel.transform];
if (!transformer) {
throw {message: 'Transformer ' + panel.transformer + ' not found'};
}
transformer.transform(data, panel, model);
return model;
}
}