]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: key-value-table doesn't render booleans
authorPatrick Seidensal <pseidensal@suse.com>
Thu, 5 Sep 2019 15:14:25 +0000 (17:14 +0200)
committerAlfonso Martínez <almartin@redhat.com>
Thu, 21 Nov 2019 15:49:39 +0000 (16:49 +0100)
Fixes: https://tracker.ceph.com/issues/41668
Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
(cherry picked from commit 1758ec53f792bef7000c2ee8bf0df86c30d2bf94)

src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.ts

index 35d0a87125d9d1c38dbfd2cb6501c3c75a1820b3..7ac58f1cb04a51588c1ad13ce647f23931695a52 100644 (file)
@@ -294,6 +294,8 @@ describe('TableKeyValueComponent', () => {
   describe('hide empty items', () => {
     beforeEach(() => {
       component.data = {
+        booleanFalse: false,
+        booleanTrue: true,
         string: '',
         array: [],
         object: {},
@@ -319,6 +321,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: '' },
@@ -337,6 +341,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 },
index 9e1e9bd38b05edea1b8648ae0af9e0986990f1e0..d58cb788d02bc3010a69fb060cef963074c20e78 100644 (file)
@@ -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) {