[Tables] Restored telemetry datum field 'name'. Fixed bug with default sort not working

This commit is contained in:
Henry 2017-02-10 15:35:17 -08:00
parent a3311e4c57
commit 34dc457aff
3 changed files with 33 additions and 20 deletions

View File

@ -122,7 +122,11 @@ define(
$scope.$watchCollection('filters', function () { $scope.$watchCollection('filters', function () {
self.setRows($scope.rows); self.setRows($scope.rows);
}); });
$scope.$watch('headers', this.setHeaders); $scope.$watch('headers', function (newHeaders, oldHeaders) {
if (newHeaders !== oldHeaders) {
this.setHeaders(newHeaders);
}
}.bind(this));
$scope.$watch('rows', this.setRows); $scope.$watch('rows', this.setRows);
/* /*

View File

@ -240,6 +240,8 @@ define(
TelemetryTableController.prototype.loadColumns = function (objects) { TelemetryTableController.prototype.loadColumns = function (objects) {
var telemetryApi = this.openmct.telemetry; var telemetryApi = this.openmct.telemetry;
this.$scope.headers = [];
if (objects.length > 0) { if (objects.length > 0) {
var metadatas = objects.map(telemetryApi.getMetadata.bind(telemetryApi)); var metadatas = objects.map(telemetryApi.getMetadata.bind(telemetryApi));
var allColumns = telemetryApi.commonValuesForHints(metadatas, []); var allColumns = telemetryApi.commonValuesForHints(metadatas, []);
@ -437,8 +439,6 @@ define(
return Promise.resolve(objects); return Promise.resolve(objects);
} }
} }
scope.headers = [];
scope.rows = []; scope.rows = [];
return getDomainObjects() return getDomainObjects()

View File

@ -29,7 +29,8 @@ define([
* @implements module:openmct.TelemetryAPI~TelemetryProvider * @implements module:openmct.TelemetryAPI~TelemetryProvider
* @constructor * @constructor
*/ */
function LegacyTelemetryProvider(instantiate) { function LegacyTelemetryProvider(openmct, instantiate) {
this.telemetryApi = openmct.telemetry;
this.instantiate = instantiate; this.instantiate = instantiate;
} }
@ -45,22 +46,28 @@ define([
}; };
function createDatum(domainObject, metadata, legacySeries, i) { function createDatum(domainObject, metadata, legacySeries, i) {
var datum;
if (legacySeries.getDatum) { if (legacySeries.getDatum) {
return legacySeries.getDatum(i); datum = legacySeries.getDatum(i);
} else {
datum = {};
metadata.valuesForHints(['x']).forEach(function (metadatum) {
datum[metadatum.key] = legacySeries.getDomainValue(i, metadatum.key);
});
metadata.valuesForHints(['y']).forEach(function (metadatum) {
datum[metadatum.key] = legacySeries.getRangeValue(i, metadatum.key);
});
} }
var datum = {};
metadata.domains.reduce(function (d, domain) {
d[domain.key] = legacySeries.getDomainValue(i, domain.key);
return d;
}, datum);
metadata.ranges.reduce(function (d, range) {
d[range.key] = legacySeries.getRangeValue(i, range.key);
return d;
}, datum);
/**
* If telemetry metadata defines a 'name' field, and one is not present
* on the datum, add it.
*/
if (metadata.value('name') !== undefined && datum.name === undefined) {
datum.name = domainObject.name; datum.name = domainObject.name;
}
return datum; return datum;
} }
@ -93,11 +100,12 @@ define([
* telemetry data. * telemetry data.
*/ */
LegacyTelemetryProvider.prototype.request = function (domainObject, request) { LegacyTelemetryProvider.prototype.request = function (domainObject, request) {
var metadata = this.telemetryApi.getMetadata(domainObject);
var oldObject = this.instantiate(utils.toOldFormat(domainObject), utils.makeKeyString(domainObject.identifier)); var oldObject = this.instantiate(utils.toOldFormat(domainObject), utils.makeKeyString(domainObject.identifier));
var capability = oldObject.getCapability("telemetry"); var capability = oldObject.getCapability("telemetry");
return capability.requestData(request).then(function (telemetrySeries) { return capability.requestData(request).then(function (telemetrySeries) {
return Promise.resolve(adaptSeries(domainObject, capability.getMetadata(), telemetrySeries)); return Promise.resolve(adaptSeries(domainObject, metadata, telemetrySeries));
}).catch(function (error) { }).catch(function (error) {
return Promise.reject(error); return Promise.reject(error);
}); });
@ -118,11 +126,12 @@ define([
* @returns {platform|telemetry.TelemetrySubscription|*} * @returns {platform|telemetry.TelemetrySubscription|*}
*/ */
LegacyTelemetryProvider.prototype.subscribe = function (domainObject, callback, request) { LegacyTelemetryProvider.prototype.subscribe = function (domainObject, callback, request) {
var metadata = this.telemetryApi.getMetadata(domainObject);
var oldObject = this.instantiate(utils.toOldFormat(domainObject), utils.makeKeyString(domainObject.identifier)); var oldObject = this.instantiate(utils.toOldFormat(domainObject), utils.makeKeyString(domainObject.identifier));
var capability = oldObject.getCapability("telemetry"); var capability = oldObject.getCapability("telemetry");
function callbackWrapper(series) { function callbackWrapper(series) {
callback(createDatum(domainObject, capability.getMetadata(), series, series.getPointCount() - 1)); callback(createDatum(domainObject, metadata, series, series.getPointCount() - 1));
} }
return capability.subscribe(callbackWrapper, request); return capability.subscribe(callbackWrapper, request);
@ -145,7 +154,7 @@ define([
// Push onto the start of the default providers array so that it's // Push onto the start of the default providers array so that it's
// always the last resort // always the last resort
openmct.telemetry.defaultProviders.unshift( openmct.telemetry.defaultProviders.unshift(
new LegacyTelemetryProvider(instantiate)); new LegacyTelemetryProvider(openmct, instantiate));
}; };
}); });