Skip to content

Commit

Permalink
Back merge release/5.3.0 into main (#262)
Browse files Browse the repository at this point in the history
Co-authored-by: Jamie V. <jamie.j.vigliotta@nasa.gov>
Co-authored-by: mudinthewater <35539679+mudinthewater@users.noreply.github.com>
Co-authored-by: Peter Di Pasquale <peter.di.pasquale@jpl.nasa.gov>
  • Loading branch information
4 people authored Jan 23, 2025
1 parent d0a03b8 commit a1b9468
Show file tree
Hide file tree
Showing 30 changed files with 204 additions and 251 deletions.
32 changes: 26 additions & 6 deletions config.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,7 @@
*/
timeSystems: [
'scet',
'ert',
'sclk',
'lmst'
'ert'
],

/**
Expand Down Expand Up @@ -283,7 +281,9 @@
*/
allowRealtime: true,
/**
* allowLAD: whether or not to allow latest data relative time conductor.
* allowLAD: whether or not to allow latest data relative time conductor.
*
* Note: allowRealtime must be true to use this option
*/
allowLAD: true,
/**
Expand Down Expand Up @@ -436,10 +436,28 @@
},

/**
* Enable global filters for ALL telemetry requests that support the filter
* Enable global filters for ALL telemetry requests that support the filter.
* Telemetry filters modify the 'filter' field in queries to MCWS.
*
* key property is required and other options are optional
* globalFilters: array, optional - list of global filters to configure.
* * key: string, required. Filter column, e.g. vcid
* * name: string, required. Identifier of the filter in the selection window.
* * icon: 'icon-flag', string, icon. Not implemented - potentially icon for minimized filter list.
* * filter: object, required. Filter object to implement
* * * comparator: string, required. currently supports 'equals'
* * * singleSelectionThreshold: boolean, required. currently supports true only.
* * * defaultLabel: string, optional. Defaults to 'None'. Label to show if filter inactive.
* * * possibleValues: array, required. List of values and labels for filter.
* * * * label: string, required. Label to show in filter selection dropdown.
* * * * value: string, required. value to set parameter to in filtered query.
* How to use:
* The global filters will be available from the Global Filters indicator
* The global filters will be available from the Global Filters indicator.
* Enable a filter by selecting the desired filter from the dropdown and hitting update.
* Outgoing requests that use the 'filter' parameter to MCWS will be modified with your filter.
* example below, selecting 'A side' will ensure that the filter parameter in mcws includes:
* vcid='1,2,3'. Note that poorly formatted filters may not pass MCWS API validation.
*
*/
/*
globalFilters: [
Expand All @@ -450,6 +468,7 @@
filter: {
comparator: 'equals',
singleSelectionThreshold: true,
defaultLabel: "A & B",
possibleValues: [
{
label: 'A Side',
Expand All @@ -468,6 +487,7 @@
filter: {
comparator: 'equals',
singleSelectionThreshold: true,
defaultLabel: "REC & RLT",
possibleValues: [
{
label: 'Realtime',
Expand Down
45 changes: 22 additions & 23 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,52 +1,51 @@
{
"name": "openmct-mcws",
"version": "5.3.0-rc2",
"version": "2512.01-next",
"description": "Open MCT for MCWS",
"devDependencies": {
"@braintree/sanitize-url": "6.0.2",
"@vue/compiler-sfc": "3.3.8",
"babel-loader": "8.2.3",
"@braintree/sanitize-url": "6.0.4",
"@vue/compiler-sfc": "3.4.3",
"babel-loader": "8.2.0",
"babel-plugin-istanbul": "6.1.1",
"bower": "^1.7.7",
"comma-separated-values": "3.6.4",
"copy-webpack-plugin": "11.0.0",
"css-loader": "4.0.0",
"copy-webpack-plugin": "12.0.2",
"css-loader": "6.10.0",
"eventemitter3": "5.0.1",
"file-saver": "2.0.5",
"git-rev-sync": "3.0.2",
"html2canvas": "1.4.1",
"imports-loader": "0.8.0",
"jasmine-core": "4.1.1",
"jasmine-core": "5.1.1",
"jshint": "^2.7.0",
"karma": "6.3.20",
"karma-chrome-launcher": "3.1.1",
"karma": "6.4.2",
"karma-chrome-launcher": "3.2.0",
"karma-cli": "2.0.0",
"karma-coverage": "2.2.0",
"karma-coverage-istanbul-reporter": "3.0.3",
"karma-html-reporter": "^0.2.7",
"karma-jasmine": "4.0.1",
"karma-sourcemap-loader": "0.3.8",
"karma-webpack": "5.0.0",
"karma-jasmine": "5.1.0",
"karma-sourcemap-loader": "0.4.0",
"karma-webpack": "5.0.1",
"lodash": "4.17.21",
"marked": "^4.0.10",
"mini-css-extract-plugin": "2.6.0",
"moment": "2.29.4",
"marked": "12.0.0",
"mini-css-extract-plugin": "2.7.6",
"moment": "2.30.1",
"node-bourbon": "^4.2.3",
"openmct": "nasa/openmct#omm-r5.3.0-rc1",
"printj": "^1.2.1",
"openmct": "nasa/openmct#omm-r5.3.0-rc3",
"printj": "1.3.1",
"raw-loader": "^0.5.1",
"resolve-url-loader": "5.0.0",
"sass": "1.52.2",
"sass-loader": "12.6.0",
"sass": "1.71.1",
"sass-loader": "14.1.1",
"source-map-loader": "^0.2.4",
"style-loader": "^1.0.1",
"vue": "3.3.8",
"style-loader": "3.3.3",
"vue": "3.4.24",
"vue-loader": "16.8.3",
"webpack": "5.94.0",
"webpack-cli": "5.1.1",
"webpack-dev-server": "5.0.2",
"webpack-merge": "5.10.0",
"zepto": "^1.2.0"
"webpack-merge": "5.10.0"
},
"scripts": {
"clean": "npm cache clean --force;rm -rf ./dist ./node_modules ./target ./package-lock.json",
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<groupId>gov.nasa.arc.wtd</groupId>
<artifactId>openmct-client</artifactId>
<name>Open MCT for MCWS Client</name>
<version>5.3.0-rc2</version>
<version>2512.01-next</version>
<packaging>war</packaging>

<properties>
Expand Down
4 changes: 2 additions & 2 deletions src/AMMOSPlugins.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ define([
openmct.install(new TaxonomyPlugin(options.taxonomy));
openmct.install(new LinkPlugin(options));
openmct.install(new VenuePlugin.default(options));
openmct.install(FrameWatchViewPlugin.default());
openmct.install(FrameEventFilterViewPlugin.default());
openmct.install(FrameWatchViewPlugin.default(options.tablePerformanceOptions));
openmct.install(FrameEventFilterViewPlugin.default(options.tablePerformanceOptions));
openmct.install(new ChannelTablePlugin.default(options.tablePerformanceOptions));
openmct.install(new ChannelTableSetPlugin.default());
openmct.install(new ChannelLimitsPlugin.default());
Expand Down
5 changes: 3 additions & 2 deletions src/dictionaryView/dictionaryViewProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export default class DictionaryViewProvider {
};

const view = {
show: function (element, editMode) {
show: function (element, editMode, { renderWhenVisible }) {
const componentDefinition = {
components: {
DictionaryView
Expand All @@ -46,7 +46,8 @@ export default class DictionaryViewProvider {
domainObject,
table,
objectPath,
currentView: view
currentView: view,
renderWhenVisible
},
template: `
<dictionary-view
Expand Down
28 changes: 0 additions & 28 deletions src/dictionaryView/dictionaryViewTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,34 +22,6 @@ export default class DictionaryViewTable extends TelemetryTable {
addTelemetryObject(telemetryObject) {
this.addColumnsForObject(telemetryObject, true);

const keyString = this.openmct.objects.makeKeyString(telemetryObject.identifier);
let requestOptions = this.buildOptionsFromConfiguration(telemetryObject);
let columnMap = this.getColumnMapForObject(keyString);
let limitEvaluator = this.openmct.telemetry.limitEvaluator(telemetryObject);

const telemetryProcessor = this.getTelemetryProcessor(keyString, columnMap, limitEvaluator);
const telemetryRemover = this.getTelemetryRemover();

this.removeTelemetryCollection(keyString);

this.telemetryCollections[keyString] = this.openmct.telemetry
.requestCollection(telemetryObject, requestOptions);

this.telemetryCollections[keyString].on('requestStarted', this.incrementOutstandingRequests);
this.telemetryCollections[keyString].on('requestEnded', this.decrementOutstandingRequests);
this.telemetryCollections[keyString].on('remove', telemetryRemover);
this.telemetryCollections[keyString].on('add', telemetryProcessor);
this.telemetryCollections[keyString].on('clear', this.clearData);
// this.telemetryCollections[keyString].load();

this.telemetryObjects[keyString] = {
telemetryObject,
keyString,
requestOptions,
columnMap,
limitEvaluator
};

this.emit('object-added', telemetryObject);
}

Expand Down
3 changes: 1 addition & 2 deletions src/exportDataAction/ExportDataTaskSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,8 @@ define([

describe('when invoked', () => {

beforeEach(async (done) => {
beforeEach(async () => {
await task.invoke();
done();
});

it('requests comprehensive telemetry for all objects', () => {
Expand Down
3 changes: 2 additions & 1 deletion src/frameaccountability/frameAccountabilityViewProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ export default class FrameAccountabilityViewProvider {
this.domainObject = domainObject;
this.keystring = openmct.objects.makeKeyString(this.domainObject.identifier);
this.openmct = openmct;
this.table = this.instantiateBadFramesTable();
this.expectedVcidList = options.frameAccountabilityExpectedVcidList;
this.tablePerformanceOptions = options.tablePerformanceOptions;
this._destroy = null;

this.table = this.instantiateBadFramesTable();
}
instantiateBadFramesTable() {
const domainObject = {
Expand Down
7 changes: 5 additions & 2 deletions src/globalFilters/FilterField.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
name="setSelectionThreshold"
@change="updateFilterValueFromDropdown($event, filter.comparator, $event.target.value)"
>
<option key="NONE" value="NONE">
None
<option value="NONE">
{{ defaultLabel }}
</option>
<option
v-for="option in filter.possibleValues"
Expand Down Expand Up @@ -53,6 +53,9 @@ export default {
computed: {
name() {
return this.filterName || this.filterKey;
},
defaultLabel(){
return this.filter.defaultLabel ?? 'None';
}
},
data() {
Expand Down
8 changes: 5 additions & 3 deletions src/globalFilters/GlobalFilterSelector.vue
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@
</button>
</div>
</div>

</template>

<script>
import FilterField from './FilterField.vue';
import { toRaw } from 'vue';
export default {
inject: [
Expand Down Expand Up @@ -68,8 +70,8 @@ export default {
};
},
mounted() {
this.updatedFilters = structuredClone(this.activeFilters);
this.updatedFilters = structuredClone(toRaw(this.activeFilters));
this.openOverlay();
},
methods: {
Expand All @@ -84,7 +86,7 @@ export default {
this.updatedFilters[key][comparator] = value;
},
updateFilters() {
this.$emit('update-filters', this.updatedFilters);
this.$emit('update-filters', toRaw(this.updatedFilters));
this.closeOverlay();
},
Expand All @@ -94,7 +96,7 @@ export default {
openOverlay() {
this.overlay = this.openmct.overlays.overlay({
element: this.$el,
size: 'small',
size: 'fit',
dismissable: true,
onDestroy: () => {
this.$emit('close-filter-selector');
Expand Down
10 changes: 5 additions & 5 deletions src/historical/HistoricalProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -517,11 +517,11 @@ define([
}

const sessions = this.getSessionService();
const session = sessions.getHistoricalSession();
const sessionFilter = sessions.getHistoricalSessionFilter();

if (session) {
params.filter.session_id = '(' + session.numbers.join(',') + ')';
params.filter.session_host = session.host;
if (sessionFilter) {
params.filter.session_id = `(${sessionFilter.numbers.join(',')})`;
params.filter.session_host = sessionFilter.host;
} else if (window.openmctMCWSConfig?.sessions?.historicalSessionFilter?.disable !== true && window.openmctMCWSConfig?.sessions?.historicalSessionFilter?.denyUnfilteredQueries === true) {
const notificationMessage = 'Filtering by historical sessions is required for historical queries.';

Expand All @@ -531,7 +531,7 @@ define([
}

if (this.isUnsupportedDomain(provider, options)) {
const message = !session
const message = !sessionFilter
? `This view requires a session or supported time system for historical requests.`
: `This view does not support ${options.domain}. Historical data might not match the time system.`;

Expand Down
2 changes: 1 addition & 1 deletion src/historical/HistoricalProviderSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ describe('Historical Provider', function () {
});

mockSessionService = jasmine.createSpyObj('SessionService', [
'getHistoricalSession'
'getHistoricalSessionFilter'
]);
spyOn(HistoricalProvider.prototype, 'getSessionService').and.returnValue(mockSessionService);

Expand Down
Loading

0 comments on commit a1b9468

Please sign in to comment.