Skip to content

v4.0.0

Latest
Compare
Choose a tag to compare
@ozyx ozyx released this 10 Sep 21:18
· 6 commits to master since this release
e664afd

What's Changed

πŸ’₯ Notable Changes

openmct-e2e subpackage

The Open MCT e2e testing framework has been separated into a standalone package, openmct-e2e, in
preparation for distribution as a dependency for consumers of Open MCT.

Importing Open MCT

module, main, import and require fields have been added to the package.json so that the
openmct main bundle can be imported using either CommonJS or ESModule syntax.

Note

Open MCT is published in a UMD module format. Although this allows for flexibility in consumption,
the framework is still intended to be used within a browser environment where the window global
is available. See the openmct-hello repository for an
example of using or extending the Open MCT framework.

Accessibility

  • The default theme "Espresso" is now WCAG 2.0 AA and Section 508 compliant. This is automatically enforced through our visual accessibility testing suite, which runs on every commit.

API

TelemetryAPI
  • [EXPERIMENTAL] Add support for telemetry batching when using WebSockets
Misc
  • index.html is no longer published as part of the distribution.
  • The Timelist object no longer automatically scrolls to the current event.
  • Tab Displays no longer eager-load by default (tabs are now lazy-loaded by default).
Commits

πŸ• Features

Actions

Reload

A new action "Reload" has been added to the context menus for all components that provide a view. Triggering this action will reload the view and all of its children. This is useful for reloading an individual view without needing to refresh the entire page.

JSON Import / Export
  • JSON import and export feature now shows a progress bar when using external persistence storage

Plan

  • Swimlanes can now be ordered based on the Plan JSON
  • Activities within a plan may now have their "state" set in the inspector view.
    • Plan activities must contain a unique id property in order to enable this feature.

Timelist

  • Activities may now be filtered by any of their metadata values.

CouchDB Plugin

  • Support for using multiple CouchDB databases at once
  • Support for read-only database configurations
  • See the CouchDB plugin documentation for more details

Themes

  • Add "Darkmatter" theme
openmct.install(openmct.plugins.DarkmatterTheme());

Note

Migrating from v3.x.x

Despite the major version bump, there are no known breaking changes between v3.x.x and v4.0.0. Projects consuming openmct should be able to upgrade to v4.0.0 without issue.

Commits

πŸŽ‰ Enhancements

  • Flexible and Stacked Plot layouts styling behavior is now consistent
  • JSON import performance has been significantly improved
  • Recent objects panel is now collapsible
Commits

πŸ”§ Maintenance

Commits

⚑ Performance

Commits
  • chore: upgrade eventemitter to v5.0.2 by @ozyx in #7709
  • Destroy canvas in plots if not visible by @scottbell in #7263
  • When searching, build the path objects asynchronously while returning the results by @scottbell in #7265
  • Defer intersection monitoring until needed to prevent race conditions by @scottbell in #7278

πŸ› Bug Fixes

Commits
  • fix(#7234): Fix frame deletion in Flexible Layouts by @ozyx in #7244
  • Provide visibility based rendering as part of the view api by @scottbell in #7241
  • Prevent rubber-banding in Telemetry Table filter input by @scottbell in #7248
  • chore: bump d3-scale and use ESModule imports by @ozyx in #7245
  • Update API documentation for Visibility-Based Rendering by @scottbell in #7262
  • Inconsistent behavior with multiple annotations in imagery by @scottbell in #7261
  • Handle aborted get requests and null domain objects when using ObjectAPI by @scottbell in #7276
  • Provide own renderWhenVisible function since manually creating an object view by @davetsay in #7281
  • Update API Readme to indicate renderWhenVisible function is optional by @scottbell in #7285
  • Fix Notebook entry hover problem by @charlesh88 in #7106
  • fix(#7338): Persisted styles correctly apply to StackedPlotItems on mount by @ozyx in #7341
  • Set location hash if query parameters or path have changed by @scottbell in #7306
  • Add right click actions on imagery to allow high resolution download by @scottbell in #7371
  • fix(#7055): Expand on image with double click by @360macky in #7308
  • Clear active role if no longer in available roles by @scottbell in #7345
  • Provide renderWhenVisible to LadTableSets by @scottbell in #7384
  • Fix actions menu on display layout alphanumerics by @scottbell in #7414
  • Get actions collection on Preview Container update by @michaelrogers in #7385
  • Set disabled items to use disabled property by @charlesh88 in #7342
  • Use different root for renderWhenVisible by @scottbell in #7415
  • Have countdowns in the Timelist use a - symbol by @scottbell in #7452
  • Filter values as a string not an object by @shefalijoshi in #7448
  • Ensure previews work for plots by @scottbell in #7459
  • Plot legends expand by default when enabled by @scottbell in #7453
  • When plan view is used in a gantt chart, handle the domain object differently. by @shefalijoshi in #7473
  • Bypass cache/dirty when canceling transaction by @scottbell in #7503
  • Ensure object specific actions load in previews by @scottbell in #7504
  • style: ensure legacy indicators align with Vue indicators by @ozyx in #7458
  • Check role when receiving status updates in the Operator Status Indicator by @scottbell in #7509
  • fix(#7456): allow children of Overlay Plots to be removed by @ozyx in #7516
  • Fix visible toolbar overflow by @charlesh88 in #7037
  • [Mobile] Center Confirmation Dialog Texts by @rukmini-bose in #7492
  • Limit lines handle plot resizing by @shefalijoshi in #7151
  • fix(overlay plot): legend updates correctly when removing element via remove action by @ozyx in #7531
  • fix[#7215](Fault Management): Fix shelving and acknowledging faults with single and bulk actions by @ozyx in #7559
  • fix(#7524): Open in New Tab action from a sub-object in a layout by @ozyx in #7542
  • Request batch when idle by @akhenry in #7526
  • [Telemetry Table] Address issues found during testing Table Performance by @jvigliotta in #7529
  • allow inspector pane content to scroll vertically by @davetsay in #7567
  • fix(#7552): Fix notebook snapshot image annotations by @ozyx in #7555
  • Prevent Metadata Time System Error for Missing Objects by @jvigliotta in #7565
  • [Plot] Fix plot swatch behavior when vertical space is small by @rukmini-bose in #7493
  • Resize plans properly by @scottbell in #7597
  • [TC Popup] Fix Calendar so it is not cutoff by @rukmini-bose in #7596
  • For the setTimeConductorMode, use the close time popup button rather than the submit button to dismiss time popup by @shefalijoshi in #7613
  • [Telemetry Table] Telemetry mode bug fixes by @jvigliotta in #7601
  • Ensure a request for telemetry happens in Condition Sets by @scottbell in #7592
  • Handle empty namespaces in import by @scottbell in #7619
  • fix: πŸ€– beep boop beep, you forgot an await πŸ€– by @ozyx in #7630
  • fix(#7633): add missing await by @ozyx in #7643
  • For an existing View in a Preview, ensure we pull the same ActionCollection by @scottbell in #7632
  • Disable reload in preview by @scottbell in #7639
  • fix(#7623): Resize ConductorAxis properly by @ozyx in #7624
  • Mct7636 by @jvigliotta in #7645
  • [Telemetry Tables] Don't mutate configuration if object is not able to be persisted by @jvigliotta in #7626
  • Do not add unused created attribute to metadata of couch documents on create by @davetsay in #7656
  • Handle the case where the pasted data is not an image by @shefalijoshi in #7628
  • Revert "Handle the case where the pasted data is not an image" by @akhenry in #7668
  • Handle paste events for images and text properly by @davetsay in #7679
  • Fix nested Flexible Layout direction problem by @charlesh88 in #7637
  • this is 2024. * observers no more. by @davetsay in #7715
  • [Telemetry Tables] Make sure tables auto scroll correctly on first load by @jvigliotta in #7720
  • fix(#7670): Ensure objects unsubscribe from staleness when destroyed by @jvigliotta in #7736
  • If display bounds are out of sync with time conductor, don't purge data out of bounds by @shefalijoshi in #7732
  • Ensure time conductor mode is set when synchronizing time range by @shefalijoshi in #7731
  • Plots correctly use configuration set on the parent if they can't their own by @shefalijoshi in #7770
  • fix(#6812): Align Plot and Plan X-Axes in Time Strips by @shefalijoshi in #7744
  • fix(#7791): tc form shouldn't submit bounds changes on dismiss by @ozyx in #7792

New Contributors

Full Changelog: v3.2.1...v4.0.0