diff --git a/public/app/plugins/panel/table/renderer.ts b/public/app/plugins/panel/table/renderer.ts index 6d75f5c97c9..63301a37309 100644 --- a/public/app/plugins/panel/table/renderer.ts +++ b/public/app/plugins/panel/table/renderer.ts @@ -36,7 +36,7 @@ export class TableRenderer { return v; } - createColumnFormater(style) { + createColumnFormater(style, column) { if (!style) { return this.defaultCellFormater; } @@ -53,7 +53,7 @@ export class TableRenderer { } if (style.type === 'number') { - let valueFormater = kbn.valueFormats[style.unit]; + let valueFormater = kbn.valueFormats[column.unit || style.unit]; return v => { if (v === null || v === void 0) { @@ -85,7 +85,7 @@ export class TableRenderer { let column = this.table.columns[colIndex]; var regex = kbn.stringToJsRegex(style.pattern); if (column.text.match(regex)) { - this.formaters[colIndex] = this.createColumnFormater(style); + this.formaters[colIndex] = this.createColumnFormater(style, column); return this.formaters[colIndex](value); } } diff --git a/public/app/plugins/panel/table/specs/renderer_specs.ts b/public/app/plugins/panel/table/specs/renderer_specs.ts index 75a6b03af98..edbe136b079 100644 --- a/public/app/plugins/panel/table/specs/renderer_specs.ts +++ b/public/app/plugins/panel/table/specs/renderer_specs.ts @@ -11,7 +11,8 @@ describe('when rendering table', () => { {text: 'Value'}, {text: 'Colored'}, {text: 'Undefined'}, - {text: 'String'} + {text: 'String'}, + {text: 'United', unit: 'bps'}, ]; var panel = { @@ -40,6 +41,12 @@ describe('when rendering table', () => { { pattern: 'String', type: 'string', + }, + { + pattern: 'United', + type: 'number', + unit: 'ms', + decimals: 2, } ] }; @@ -51,6 +58,11 @@ describe('when rendering table', () => { expect(html).to.be('2014-01-01T06:06:06+00:00'); }); + it('number column with unit specified should ignore style unit', () => { + var html = renderer.renderCell(5, 1230); + expect(html).to.be('1.23 kbps'); + }); + it('number column should be formated', () => { var html = renderer.renderCell(1, 1230); expect(html).to.be('1.230 s'); @@ -62,8 +74,8 @@ describe('when rendering table', () => { }); it('colored cell should have style', () => { - var html = renderer.renderCell(2, 40); - expect(html).to.be('40.0'); + var html = renderer.renderCell(2, 40); + expect(html).to.be('40.0'); }); it('colored cell should have style', () => {