From ea0b86fe72dd725833127ac99c2ee596bbdd3767 Mon Sep 17 00:00:00 2001 From: Henry Date: Sun, 13 Mar 2016 19:12:55 -0700 Subject: [PATCH] [Tables] Fixed issue with historical tables composed of multiple objects --- .../table/res/templates/mct-table.html | 5 ++-- .../src/controllers/MCTTableController.js | 9 ++++++++ .../controllers/TelemetryTableController.js | 23 +++++++++++++++---- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/platform/features/table/res/templates/mct-table.html b/platform/features/table/res/templates/mct-table.html index 2f7ade13b4..5997376587 100644 --- a/platform/features/table/res/templates/mct-table.html +++ b/platform/features/table/res/templates/mct-table.html @@ -6,7 +6,8 @@ @@ -57,7 +58,7 @@ 'box-sizing': 'border-box' }" class="{{visibleRow.contents[header].cssClass}}"> - {{ visibleRow.contents[header].text }} + {{ visibleRow.contents[header].text }} diff --git a/platform/features/table/src/controllers/MCTTableController.js b/platform/features/table/src/controllers/MCTTableController.js index 4bae5915d1..82b68011a7 100644 --- a/platform/features/table/src/controllers/MCTTableController.js +++ b/platform/features/table/src/controllers/MCTTableController.js @@ -238,12 +238,16 @@ define( column = firstRow.find('td'), headerHeight = thead.prop('offsetHeight'), rowHeight = 20, + columnWidth, + tableWidth = 0, overallHeight = headerHeight + (rowHeight * (this.$scope.displayRows ? this.$scope.displayRows.length - 1 : 0)); this.$scope.columnWidths = []; while (column.length) { + columnWidth = column.prop('offsetWidth'); this.$scope.columnWidths.push(column.prop('offsetWidth')); + tableWidth += columnWidth; column = column.next(); } this.$scope.headerHeight = headerHeight; @@ -251,6 +255,11 @@ define( this.$scope.totalHeight = overallHeight; this.setVisibleRows(); this.$scope.overrideRowPositioning = true; + if (tableWidth > 0) { + this.$scope.totalWidth = tableWidth + 'px'; + } else { + this.$scope.totalWidth = 'none'; + } }; /** diff --git a/platform/features/table/src/controllers/TelemetryTableController.js b/platform/features/table/src/controllers/TelemetryTableController.js index 6833331d90..59dbafe2a3 100644 --- a/platform/features/table/src/controllers/TelemetryTableController.js +++ b/platform/features/table/src/controllers/TelemetryTableController.js @@ -106,6 +106,8 @@ define( only). */ TelemetryTableController.prototype.subscribe = function() { + var self = this; + if (this.handle) { this.handle.unsubscribe(); } @@ -120,7 +122,22 @@ define( true // Lossless ); - this.handle.request({}, this.addHistoricalData.bind(this)); + function getHistoricalData(){ + var rowData = []; + + self.handle.getTelemetryObjects().forEach(function(telemetryObject){ + var series = self.handle.getSeries(telemetryObject) || {}, + pointCount = series.getPointCount ? series.getPointCount() : 0, + i = 0; + + for (; i < pointCount; i++) { + rowData.push(self.table.getRowValues(telemetryObject, self.handle.makeDatum(telemetryObject, series, i))); + } + }); + + self.$scope.rows = rowData; + } + this.handle.request({}).then(getHistoricalData); this.setup(); }; @@ -134,10 +151,8 @@ define( newRows = []; for (i=0; i < series.getPointCount(); i++) { - newRows.push(this.table.getRowValues(domainObject, this.handle.makeDatum(domainObject, series, i))); + this.$scope.rows.push(this.table.getRowValues(domainObject, this.handle.makeDatum(domainObject, series, i))); } - - this.$scope.rows = newRows; }; /**