From 522a3408e90421ec55528a94c16a9d37f1fb2b1c Mon Sep 17 00:00:00 2001 From: Kimmo Huoman Date: Tue, 28 Jun 2016 04:11:42 +0300 Subject: [PATCH] Export CSV in the same format as presented in Table panel. Fixes issue #5372. The data is exported in the same exact format as presented in the table panel. This is achieved by using the same renderer as the UI uses. --- public/app/plugins/panel/table/module.ts | 3 ++- public/app/plugins/panel/table/renderer.ts | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/panel/table/module.ts b/public/app/plugins/panel/table/module.ts index 473ce4baa48..d7e6f7918a2 100644 --- a/public/app/plugins/panel/table/module.ts +++ b/public/app/plugins/panel/table/module.ts @@ -139,7 +139,8 @@ class TablePanelCtrl extends MetricsPanelCtrl { } exportCsv() { - FileExport.exportTableDataToCsv(this.table); + var renderer = new TableRenderer(this.panel, this.table, this.dashboard.isTimezoneUtc()); + FileExport.exportTableDataToCsv(renderer.render_values()); } link(scope, elem, attrs, ctrl) { diff --git a/public/app/plugins/panel/table/renderer.ts b/public/app/plugins/panel/table/renderer.ts index 63301a37309..0eb65916fc7 100644 --- a/public/app/plugins/panel/table/renderer.ts +++ b/public/app/plugins/panel/table/renderer.ts @@ -141,4 +141,21 @@ export class TableRenderer { return html; } + + render_values() { + let rows = []; + + for (var y = 0; y < this.table.rows.length; y++) { + let row = this.table.rows[y]; + let new_row = []; + for (var i = 0; i < this.table.columns.length; i++) { + new_row.push(this.formatColumnValue(i, row[i])); + } + rows.push(new_row); + } + return { + columns: this.table.columns, + rows: rows, + }; + } }