mirror of
https://github.com/nasa/openmct.git
synced 2025-01-19 11:17:04 +00:00
Fixing conflicts
This commit is contained in:
commit
a993ee6126
@ -1,139 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module defining RTEventListController.
|
|
||||||
* Created by shale on 06/25/2014. Based on RT Scrolling lists.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
["./DomainColumn", "./RangeColumn"],
|
|
||||||
function (DomainColumn, RangeColumn) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var ROW_COUNT = 100;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The RTEventListController is responsible for populating
|
|
||||||
* the contents of the messages view.
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
function RTEventListController($scope, telemetryHandler, telemetryFormatter) {
|
|
||||||
var handle,
|
|
||||||
lastUpdated = {},
|
|
||||||
lastIds = [],
|
|
||||||
columns = [],
|
|
||||||
headers = [],
|
|
||||||
rows = [];
|
|
||||||
|
|
||||||
function getTelemetryObjects() {
|
|
||||||
return handle ? handle.getTelemetryObjects() : [];
|
|
||||||
}
|
|
||||||
|
|
||||||
function idsChanged(telemetryObjects) {
|
|
||||||
function mismatch(id, index) {
|
|
||||||
return id !== telemetryObjects[index].getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
return lastIds.length !== telemetryObjects.length ||
|
|
||||||
lastIds.some(mismatch);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setupColumns(telemetryObjects) {
|
|
||||||
var id = $scope.domainObject && $scope.domainObject.getId(),
|
|
||||||
firstId =
|
|
||||||
telemetryObjects[0] && telemetryObjects[0].getId();
|
|
||||||
|
|
||||||
columns = [];
|
|
||||||
|
|
||||||
if (telemetryObjects > 1 || id !== firstId) {
|
|
||||||
columns.push(new NameColumn());
|
|
||||||
}
|
|
||||||
columns.push(new DomainColumn(telemetryFormatter));
|
|
||||||
columns.push(new RangeColumn());
|
|
||||||
|
|
||||||
headers = columns.map(function (column) {
|
|
||||||
return column.getTitle();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateObjects(telemetryObjects) {
|
|
||||||
if (idsChanged(telemetryObjects)) {
|
|
||||||
setupColumns(telemetryObjects);
|
|
||||||
lastIds = telemetryObjects.map(function (telemetryObject) {
|
|
||||||
return telemetryObject.getId();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function addRow(telemetryObject) {
|
|
||||||
var id = telemetryObject.getId(),
|
|
||||||
domainValue = handle.getDomainValue(telemetryObject);
|
|
||||||
if (lastUpdated[id] !== domainValue &&
|
|
||||||
domainValue !== undefined) {
|
|
||||||
// Instead of unshift (scrolling), use push (messages)
|
|
||||||
rows.push(columns.map(function (column) {
|
|
||||||
return column.getValue(telemetryObject, handle);
|
|
||||||
}));
|
|
||||||
rows.splice(ROW_COUNT, Number.MAX_VALUE);
|
|
||||||
lastUpdated[id] = domainValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateValues() {
|
|
||||||
getTelemetryObjects().forEach(addRow);
|
|
||||||
}
|
|
||||||
|
|
||||||
function releaseSubscription() {
|
|
||||||
if (handle) {
|
|
||||||
handle.unsubscribe();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function makeSubscription(domainObject) {
|
|
||||||
releaseSubscription();
|
|
||||||
rows = [];
|
|
||||||
handle = telemetryHandler.handle(
|
|
||||||
domainObject,
|
|
||||||
updateValues,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.$on("$destroy", releaseSubscription);
|
|
||||||
|
|
||||||
$scope.$watch("domainObject", makeSubscription);
|
|
||||||
$scope.$watch(getTelemetryObjects, updateObjects);
|
|
||||||
|
|
||||||
return {
|
|
||||||
rows: function () {
|
|
||||||
return rows;
|
|
||||||
},
|
|
||||||
headers: function () {
|
|
||||||
return headers;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return RTEventListController;
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,84 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RTEventSpec. Created by vwoeltje on 11/6/14. Modified by shale on 06/23/2015.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
["../src/DomainColumn"],
|
|
||||||
function (DomainColumn) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var TEST_DOMAIN_VALUE = "some formatted domain value";
|
|
||||||
|
|
||||||
describe("An event list domain column", function () {
|
|
||||||
var mockDataSet,
|
|
||||||
testMetadata,
|
|
||||||
mockFormatter,
|
|
||||||
column;
|
|
||||||
|
|
||||||
beforeEach(function () {
|
|
||||||
mockDataSet = jasmine.createSpyObj(
|
|
||||||
"data",
|
|
||||||
[ "getDomainValue" ]
|
|
||||||
);
|
|
||||||
mockFormatter = jasmine.createSpyObj(
|
|
||||||
"formatter",
|
|
||||||
[ "formatDomainValue", "formatRangeValue" ]
|
|
||||||
);
|
|
||||||
testMetadata = {
|
|
||||||
key: "testKey",
|
|
||||||
name: "Test Name"
|
|
||||||
};
|
|
||||||
mockFormatter.formatDomainValue.andReturn(TEST_DOMAIN_VALUE);
|
|
||||||
|
|
||||||
column = new DomainColumn(testMetadata, mockFormatter);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a column header from domain metadata", function () {
|
|
||||||
expect(column.getTitle()).toEqual("Test Name");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("looks up data from a data set", function () {
|
|
||||||
column.getValue(undefined, mockDataSet, 42);
|
|
||||||
expect(mockDataSet.getDomainValue)
|
|
||||||
.toHaveBeenCalledWith(42, "testKey");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("formats domain values as time", function () {
|
|
||||||
mockDataSet.getDomainValue.andReturn(402513731000);
|
|
||||||
|
|
||||||
// Should have just given the value the formatter gave
|
|
||||||
expect(column.getValue(undefined, mockDataSet, 42))
|
|
||||||
.toEqual(TEST_DOMAIN_VALUE);
|
|
||||||
|
|
||||||
// Make sure that service interactions were as expected
|
|
||||||
expect(mockFormatter.formatDomainValue)
|
|
||||||
.toHaveBeenCalledWith(402513731000);
|
|
||||||
expect(mockFormatter.formatRangeValue)
|
|
||||||
.not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,110 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RTEventSpec. Created by shale on 06/25/2015.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
["../src/RTEventListController"],
|
|
||||||
function (RTEventListController) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
describe("The real time event list controller", function () {
|
|
||||||
var mockScope,
|
|
||||||
mockTelemetry,
|
|
||||||
testMetadata,
|
|
||||||
controller;
|
|
||||||
|
|
||||||
beforeEach(function () {
|
|
||||||
mockScope = jasmine.createSpyObj(
|
|
||||||
"$scope",
|
|
||||||
[ "$on", "$watch" ]
|
|
||||||
);
|
|
||||||
mockTelemetry = jasmine.createSpyObj(
|
|
||||||
"telemetryController",
|
|
||||||
[ "getResponse", "getMetadata", "getTelemetryObjects" ]
|
|
||||||
);
|
|
||||||
testMetadata = [
|
|
||||||
{
|
|
||||||
domains: [
|
|
||||||
{ key: "d0", name: "D0" },
|
|
||||||
{ key: "d1", name: "D1" }
|
|
||||||
],
|
|
||||||
ranges: [
|
|
||||||
{ key: "r0", name: "R0" },
|
|
||||||
{ key: "r1", name: "R1" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
domains: [
|
|
||||||
{ key: "d0", name: "D0" },
|
|
||||||
{ key: "d2", name: "D2" }
|
|
||||||
],
|
|
||||||
ranges: [
|
|
||||||
{ key: "r0", name: "R0" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
];
|
|
||||||
mockTelemetry.getMetadata.andReturn(testMetadata);
|
|
||||||
mockTelemetry.getResponse.andReturn([]);
|
|
||||||
mockTelemetry.getTelemetryObjects.andReturn([]);
|
|
||||||
mockScope.telemetry = mockTelemetry;
|
|
||||||
controller = new EventListController(mockScope);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("listens for telemetry data updates", function () {
|
|
||||||
expect(mockScope.$on).toHaveBeenCalledWith(
|
|
||||||
"telemetryUpdate",
|
|
||||||
jasmine.any(Function)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("watches for telemetry controller changes", function () {
|
|
||||||
expect(mockScope.$watch).toHaveBeenCalledWith(
|
|
||||||
"telemetry",
|
|
||||||
jasmine.any(Function)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("provides a column for each unique domain and range", function () {
|
|
||||||
// Should have five columns based on metadata above,
|
|
||||||
// (d0, d1, d2, r0, r1)
|
|
||||||
mockScope.$watch.mostRecentCall.args[1](mockTelemetry);
|
|
||||||
expect(mockScope.headers).toEqual(["D0", "D1", "D2", "R0", "R1"]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not throw if telemetry controller is undefined", function () {
|
|
||||||
// Just a general robustness check
|
|
||||||
mockScope.telemetry = undefined;
|
|
||||||
expect(mockScope.$watch.mostRecentCall.args[1])
|
|
||||||
.not.toThrow();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("provides default columns if domain/range metadata is unavailable", function () {
|
|
||||||
mockTelemetry.getMetadata.andReturn([]);
|
|
||||||
mockScope.$watch.mostRecentCall.args[1](mockTelemetry);
|
|
||||||
expect(mockScope.headers).toEqual(["Time", "Message"]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,81 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
* Open MCT Web includes source code licensed under additional open source
|
|
||||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
||||||
* this source code distribution or the Licensing information page available
|
|
||||||
* at runtime from the About dialog for additional information.
|
|
||||||
*****************************************************************************/
|
|
||||||
/*global define,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RTEventSpec. Created by vwoeltje on 11/6/14. Modified by shale on 06/23/2015.
|
|
||||||
*/
|
|
||||||
define(
|
|
||||||
["../src/RangeColumn"],
|
|
||||||
function (RangeColumn) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var TEST_RANGE_VALUE = "some formatted range value";
|
|
||||||
|
|
||||||
describe("An event list range column", function () {
|
|
||||||
var mockDataSet,
|
|
||||||
testMetadata,
|
|
||||||
mockFormatter,
|
|
||||||
column;
|
|
||||||
|
|
||||||
beforeEach(function () {
|
|
||||||
mockDataSet = jasmine.createSpyObj(
|
|
||||||
"data",
|
|
||||||
[ "getRangeValue" ]
|
|
||||||
);
|
|
||||||
mockFormatter = jasmine.createSpyObj(
|
|
||||||
"formatter",
|
|
||||||
[ "formatDomainValue", "formatRangeValue" ]
|
|
||||||
);
|
|
||||||
testMetadata = {
|
|
||||||
key: "testKey",
|
|
||||||
name: "Test Name"
|
|
||||||
};
|
|
||||||
mockFormatter.formatRangeValue.andReturn(TEST_RANGE_VALUE);
|
|
||||||
|
|
||||||
column = new RangeColumn(testMetadata, mockFormatter);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("reports a column header from range metadata", function () {
|
|
||||||
expect(column.getTitle()).toEqual("Test Name");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("looks up data from a data set", function () {
|
|
||||||
column.getValue(undefined, mockDataSet, 42);
|
|
||||||
expect(mockDataSet.getRangeValue)
|
|
||||||
.toHaveBeenCalledWith(42, "testKey");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("formats range values as time", function () {
|
|
||||||
mockDataSet.getRangeValue.andReturn(123.45678);
|
|
||||||
expect(column.getValue(undefined, mockDataSet, 42))
|
|
||||||
.toEqual(TEST_RANGE_VALUE);
|
|
||||||
|
|
||||||
// Make sure that service interactions were as expected
|
|
||||||
expect(mockFormatter.formatRangeValue)
|
|
||||||
.toHaveBeenCalledWith(123.45678);
|
|
||||||
expect(mockFormatter.formatDomainValue)
|
|
||||||
.not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
@ -1,6 +0,0 @@
|
|||||||
[
|
|
||||||
"DomainColumn",
|
|
||||||
"RTEventListController",
|
|
||||||
"policies/MessagesViewPolicy",
|
|
||||||
"RangeColumn"
|
|
||||||
]
|
|
Loading…
Reference in New Issue
Block a user