mirror of
https://github.com/nasa/openmct.git
synced 2025-06-21 08:39:59 +00:00
[Tables] Changed the way that new rows are added to table
Fixed failing tests
This commit is contained in:
@ -73,7 +73,7 @@ define(
|
||||
/*
|
||||
* Listen for rows added individually (eg. for real-time tables)
|
||||
*/
|
||||
$scope.$on('addRow', this.newRow.bind(this));
|
||||
$scope.$on('add:row', this.newRow.bind(this));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -98,19 +98,13 @@ define(
|
||||
* `addRow` broadcast event.
|
||||
* @private
|
||||
*/
|
||||
MCTTableController.prototype.newRow = function (event, row) {
|
||||
MCTTableController.prototype.newRow = function (event, rowIndex) {
|
||||
var row = this.$scope.rows[rowIndex];
|
||||
//Add row to the filtered, sorted list of all rows
|
||||
if (this.filterRows([row]).length > 0) {
|
||||
this.insertSorted(this.$scope.displayRows, row);
|
||||
}
|
||||
|
||||
//Keep 'rows' synchronized as it provides the unsorted,
|
||||
// unfiltered model for this view
|
||||
if (!this.$scope.rows) {
|
||||
this.$scope.rows = [];
|
||||
}
|
||||
this.$scope.rows.push(row);
|
||||
|
||||
this.$timeout(this.setElementSizes.bind(this))
|
||||
.then(this.scrollToBottom.bind(this));
|
||||
};
|
||||
@ -354,7 +348,7 @@ define(
|
||||
return rowsToSort;
|
||||
}
|
||||
|
||||
return rowsToSort.slice(0).sort(function(a, b) {
|
||||
return rowsToSort.sort(function(a, b) {
|
||||
//If the values to compare can be compared as
|
||||
// numbers, do so. String comparison of number
|
||||
// values can cause inconsistencies
|
||||
@ -447,7 +441,7 @@ define(
|
||||
}
|
||||
|
||||
if (this.$scope.enableSort) {
|
||||
displayRows = this.sortRows(displayRows);
|
||||
displayRows = this.sortRows(displayRows.slice(0));
|
||||
}
|
||||
this.$scope.displayRows = displayRows;
|
||||
};
|
||||
@ -467,15 +461,15 @@ define(
|
||||
return;
|
||||
}
|
||||
|
||||
//Apply filters and sort a copy of the the new rows
|
||||
this.filterAndSort((newRows || []).slice(0));
|
||||
//Resize columns appropriately
|
||||
this.filterAndSort(newRows || []);
|
||||
this.resize();
|
||||
};
|
||||
|
||||
/**
|
||||
* Applies user defined filters to rows. These filters are based on
|
||||
* the text entered in the search areas in each column
|
||||
* the text entered in the search areas in each column.
|
||||
* @param rowsToFilter {Object[]} The rows to apply filters to
|
||||
* @returns {Object[]} A filtered copy of the supplied rows
|
||||
*/
|
||||
MCTTableController.prototype.filterRows = function(rowsToFilter) {
|
||||
var filters = {},
|
||||
|
@ -83,12 +83,19 @@ define(
|
||||
}
|
||||
|
||||
function updateData(){
|
||||
var datum;
|
||||
var datum,
|
||||
row;
|
||||
self.handle.getTelemetryObjects().forEach(function(telemetryObject){
|
||||
datum = self.handle.getDatum(telemetryObject);
|
||||
if (datum) {
|
||||
var rowValue = self.table.getRowValues(telemetryObject, datum);
|
||||
self.$scope.$broadcast('addRow', rowValue);
|
||||
row = self.table.getRowValues(telemetryObject, datum);
|
||||
self.$scope.rows = self.$scope.rows || [];
|
||||
if (!self.$scope.rows){
|
||||
self.$scope.rows = [row];
|
||||
} else {
|
||||
self.$scope.rows.push(row);
|
||||
self.$scope.$broadcast('add:row', self.$scope.rows.length - 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -122,37 +122,30 @@ define(
|
||||
true // Lossless
|
||||
);
|
||||
|
||||
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.handle.request({}).then(this.addHistoricalData.bind(this));
|
||||
|
||||
this.setup();
|
||||
};
|
||||
|
||||
/**
|
||||
* Add any historical data available
|
||||
* Populates historical data on scope when it becomes available
|
||||
* @private
|
||||
*/
|
||||
TelemetryTableController.prototype.addHistoricalData = function(domainObject, series) {
|
||||
var i,
|
||||
newRows = [];
|
||||
TelemetryTableController.prototype.addHistoricalData = function() {
|
||||
var rowData = [],
|
||||
self = this;
|
||||
|
||||
for (i=0; i < series.getPointCount(); i++) {
|
||||
this.$scope.rows.push(this.table.getRowValues(domainObject, this.handle.makeDatum(domainObject, series, i)));
|
||||
}
|
||||
this.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)));
|
||||
}
|
||||
});
|
||||
|
||||
this.$scope.rows = rowData;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user