From 1758ec53f792bef7000c2ee8bf0df86c30d2bf94 Mon Sep 17 00:00:00 2001 From: Patrick Seidensal Date: Thu, 5 Sep 2019 17:14:25 +0200 Subject: [PATCH] mgr/dashboard: key-value-table doesn't render booleans Fixes: https://tracker.ceph.com/issues/41668 Signed-off-by: Patrick Seidensal --- .../table-key-value.component.spec.ts | 6 ++++ .../table-key-value.component.ts | 29 ++++++++++--------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.spec.ts index 9bbf4fb0598..516b513e29d 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.spec.ts @@ -301,6 +301,8 @@ describe('TableKeyValueComponent', () => { describe('hide empty items', () => { beforeEach(() => { component.data = { + booleanFalse: false, + booleanTrue: true, string: '', array: [], object: {}, @@ -326,6 +328,8 @@ describe('TableKeyValueComponent', () => { component.ngOnInit(); expect(component.tableData).toEqual([ { key: 'array', value: '' }, + { key: 'booleanFalse', value: false }, + { key: 'booleanTrue', value: true }, { key: 'emptyObject array', value: '' }, { key: 'emptyObject object', value: '' }, { key: 'emptyObject string', value: '' }, @@ -344,6 +348,8 @@ describe('TableKeyValueComponent', () => { component.hideEmpty = true; component.ngOnInit(); expect(component.tableData).toEqual([ + { key: 'booleanFalse', value: false }, + { key: 'booleanTrue', value: true }, { key: 'someArray', value: '0, 1' }, { key: 'someDifferentNumber', value: 1 }, { key: 'someNumber', value: 0 }, diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.ts index d4f8848b848..b1d3e369b34 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.ts @@ -181,23 +181,24 @@ export class TableKeyValueComponent implements OnInit, OnChanges { _convertValue(v: Item): Item { if (_.isArray(v.value)) { + if (_.isEmpty(v.value) && this.hideEmpty) { + return; + } v.value = v.value.map((item) => (_.isObject(item) ? JSON.stringify(item) : item)).join(', '); + } else if (_.isObject(v.value)) { + if ((this.hideEmpty && _.isEmpty(v.value)) || !this.renderObjects) { + return; + } + } else if (_.isString(v.value)) { + if (v.value === '' && this.hideEmpty) { + return; + } + if (this.isDate(v.value)) { + v.value = this.datePipe.transform(v.value) || v.value; + } } - const isEmpty = _.isEmpty(v.value) && !_.isNumber(v.value); - if ((this.hideEmpty && isEmpty) || (_.isObject(v.value) && !this.renderObjects)) { - return; - } else if (isEmpty && !this.hideEmpty && v.value !== '') { - v.value = ''; - } - if (!isEmpty && _.isString(v.value)) { - v.value = this.convertString(v.value); - } - return v; - } - private convertString(s: string) { - const date = this.isDate(s) && this.datePipe.transform(s); - return date || s; + return v; } private isDate(s) { -- 2.39.5