Commit Graph

2062 Commits

Author SHA1 Message Date
Jesse Mazzella
82fa4c1597
feat: Mission Status for Situational Awareness (#7418)
* refactor: `UserIndicator` use vue component directly

* style(WIP): filler styles for user-indicator

* feat(WIP): working on mission status indicators

* feat: support mission statuses

* feat(WIP): can display mission statuses now

* feat(WIP): add composables and dynamically calculate popup position

* feat(WIP): dismissible popup, use moar compositionAPI

* Closes #7420
- Styling and markup for mission status control panel.
- Tweaks and additions to some common style elements.

* feat: set/unset mission status for role

* refactor: rename some functions

* feat: more renaming, get mission role statuses working

* refactor: more method renaming

* fix: remove dupe method

* feat: hook up event listeners

* refactor: convert to CompositionAPI and listen to events

* fix: add that back in, woops

* test: fix some existing tests

* lint: words for the word god

* refactor: rename

* fix: setting mission statuses

* style: fix go styling

* style: add mission status button

* refactor: rename `MissionRole` -> `MissionAction`

* test: fix most existing tests

* test: remove integration tests already covered by e2e

- These tests are going to be wonky since they depend on the View. Any unit tests depending on Vue / the View will become increasingly volatile over time as we migrate more of the app into the main Vue app. Since these LOC are already covered by e2e, I'm going to remove them. We will need to move towards a more component / Vue-friendly testing framework to stabilize all of this.

* docs: add documentation

* refactor: rename

* fix: a comma

* refactor: a word

* fix: emit parameter format

* fix: correct emit for `missionStatusActionChange`

---------

Co-authored-by: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2024-02-02 22:50:16 +00:00
Jesse Mazzella
ee5081f807
test(visual): add unclipped activity names visual tests + a11y fixes (#7454)
* test: add unclipped activity names visual tests + a11y fixes

* lint: add additional dictionaries
2024-02-02 19:47:52 +00:00
Scott Bell
3cbaa7bf07
Have countdowns in the Timelist use a - symbol (#7452)
* fix issue

* add test

* remove debugger

* expanded legend showing, but malformed

* Revert "expanded legend showing, but malformed"

This reverts commit b954f00257.
2024-02-02 09:37:37 +01:00
Shefali Joshi
18e4b9da65
Add Expanded view for Time List (#7378)
* Add activity states domain object and interceptor to auto create one

* Add activity state inspector option

* Only save status if we have a unique ids for activities

* Include the id in the activity properties

* Don't show activity state section in the inspector if multiple activities are selected

* Display activity properties when an activity row is selected in the timelist

* Add compact view for timelist

* Add inspector configuration for compact view

* Set colors based on time relation of activity

* Use activity id as key if it is available

* Ensure the correct option is selected for activity states

* Closes #7377
- Markup and CSS sanding and polishing.
- Still WIP!

* Closes #7377
- Markup and CSS sanding and polishing.
- Still WIP!

* Add status label

* Rename to Expanded view and isExpanded as properties. Add display style dropdown configuration in the inspector.

* Refactor activity selection. Display activity properties

* Closes #7377
- Label formatting Todo notes about states.
- Computed values and `v-ifs` added to control display for progress pie and countdown 'hero'.
- Still WIP!

* Closes #7377
- Add svg icons and some stubbed in logic.
- Still WIP!

* Remove activity states plugin. Move the activity states interceptor to the plan plugin.

* Change activity states interceptor parameters to options

* Rename constants

* Fix activity states test

* Addresses review comments making code more readable.

* Closes #7377
- Significant adds for large Time List element styling for activity states.
- `$color*` Time List-related theme constants remapped and significantly enhanced.
- Code cleanup and removal of stubbed-in SCSS vars.

* Closes #7377
- Unit testing and colors in Snow in progress.
- Fixed erroneous checkin in ExpandedViewItem.vue.

* Remove ExpandedView component and pull the ExpandedViewItem up to the top level.
Same for ListView, pulling the ListItem up one level.

* Fix sorting for compact view.
Hardcode options for switching compact/expanded views.

* Closes #7377
- Snow Time List colors finalized and smoke tested.
- New graphic SVG for skipped activity.
- Added aria labels to SVG graphics.

* Closes #7377
- Fixed div with no class.

* Add e2e test for activity states feature.

* Address review comments. Rename variables, documentation.

* No shallow copy

* Merge updates to activity-state

* Sync with activity states PR

* Draft of progress-pie

* - Add `s-selected` styling for Expanded Time List elements.

* Add 2 new date formats

* Look and feel enhancements for pie, zero duration events and start and end time formats

* Fix pie show/hide condition

* Final touches to the pie and labels

* Refactor label logic

* Closes #7377
- Added `sweep-hand` animation element to progress pie graphic SVG.

* Remove use of ListView - no point passing arrays around since we are already using sortedItems and itemProperties for expandedViewItems

* We addded a new column for duration and changed the previous duration to countdown. This required adjustment of the test

* Fix expanded view for timelist tests

* Closes #7377
- Fixed display logic for inferred execution states.

* Closes #7377
- Fixed a bug that threw console errors when a value was undefined.

* Optimize rendering of timelist activities

* Remove focused test

* Address review comments

* Remove reactive selection for plan activities

* destructure props into individual item properties for render performance benefits

* Use local variables and remove JSON utility methods

* Change cancelled to skipped

* Focus the activity tab when shown

* Fix label updates

* Add countup to cspell

* Remove progress pie due to licensing unknowns

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov>
2024-01-30 16:30:57 -08:00
Scott Bell
d42aa545bb
Add support for multiple CouchDB databases, multiple namespaces, and readOnly configurations (#7413)
* two namespaces appear

* works with two databases

* try to batch requests

* fix indicators

* add option to omit root for myitems

* ready for review

* ready for review

* ready for review

* typo in README

* spelling

* spelling

* update readme

* fix tests

* Update src/plugins/persistence/couch/README.md

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* remove omitRoot

* remove omitRoot

* fix my items to check for namespace when intercepting

* update readme

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2024-01-30 15:10:31 -08:00
Charles Hacskaylo
068ac4899d
Fix constrast for accessibility (#7315)
* Closes #7304
- Change colors to increase contrast.
- New base level theme color var: `$colorBodyFgSubtle`.
- Minor CSS cleanups.
- WARNING: this appears to have added a regression in selects
that colors the arrow black in Espresso.

* Closes #7304
- Fix dropdown arrow colors, whew.
- Normalize font sizes in Status area.
- More color changes for contrast, including new theme constants.
- TODO: compare and sync Espresso with other themes.
- TODO: check for regressions!

* disable ruleset

* Closes #7304
- Normalize font sizes in multiple spots.
- More color changes for contrast, including more new theme constants.
- TODO: compare and sync Espresso with other themes.
- TODO: check for regressions!

* Closes #7304
- Reorganize CSS files for more uniformity.

* Closes #7304
- CSS normalized across all themes via Google Sheet at https://docs.google.com/spreadsheets/d/1SEEtuNSq6I7gvVHKpHW8_fp8Ltc-HOAWxrSAkUzS6Kw/edit?usp=sharing

* Closes #7304
- Color tweaks, normalization.

* Closes #7304
- Color tweaks, normalization.
- Search layout, contrast and font-size improvements.
- Added '+' icons to collapsed pane buttons.

* Closes #7304
- Shell head layout improvements.

* Update ColorKey for Take Snapshot Failures and Opacity labels. Also fix create menu

* Closes #7410
- CHERRY PICK FROM event-colors-7410.
- Event display approach modified to include background color.
- Theme colors modified and constrast verified via Wave a11y browser plugin.

* Closes #7304
- Set back to install Espresso theme by default.

* temporarily skip

* remove comment

* lint

* Update default colors

* update snapshot

* missed

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
2024-01-29 21:30:55 -08:00
Scott Bell
f8d936a834
Use different root for renderWhenVisible (#7415)
* attempt to fix

* reenable test

* going to revert most of this, but works

* slowly reverting changes

* further reversions to the mean

* reversion to the mean

* revert

* change to use openmct element

* reference issue

* reference issue

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
2024-01-29 15:33:47 -08:00
Andrew Henry
5c21c34568
Support telemetry batching and move WebSocket handling to worker (#7391)
* Support subscription batching from API, Tables, and Plots

* Added batching worker

* Added configurable batch size and throttling rate

* Support batch size based throttling

* Default to latest strategy

* Don't hide original error

* Added copyright statement

* Renamed BatchingWebSocketProvider to BatchingWebSocket

* Adding docs

* renamed class. changed throttling strategy to be driven by the main thread

* Renamed classes

* Added more documentation

* Fixed broken tests

* Addressed review comments

* Clean up and reconnect on websocket close

* Better management of subscription strategies

* Add tests to catch edge cases where two subscribers request different strategies

* Ensure callbacks are invoked with telemetry in the requested format

* Remove console out. Oops

* Fix linting errors
2024-01-29 15:17:55 -08:00
David Tsay
1d40b134b6
Make Tabs eager loading configurable but default to false (#7199)
* convert tabs plugin to use es6 import/export

* default of eager load is false but configurable

* change true/false select to toggleSwitch

* add and clean up unit tests

* Update test

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
2024-01-29 12:08:38 -08:00
Shefali Joshi
dc5a3236b3
Activity state display for plans in Gantt and Time list views (#7370)
* Add activity states domain object and interceptor to auto create one

* Add activity state inspector option

* Only save status if we have a unique ids for activities

* Include the id in the activity properties

* Don't show activity state section in the inspector if multiple activities are selected

* Display activity properties when an activity row is selected in the timelist

* Use activity id as key if it is available

* Ensure the correct option is selected for activity states

* Add status label

* Refactor activity selection. Display activity properties

* Remove activity states plugin. Move the activity states interceptor to the plan plugin.

* Change activity states interceptor parameters to options

* Rename constants

* Fix activity states test

* Add e2e test for activity states feature.

* Address review comments. Rename variables, documentation.

* No shallow copy

* Suppress lint warning for conditionals

* Remove check for abort controller

* Move classes to components

* number primitive

* Closes #7369
- WIP tweaks to simplify the Inspector view.

* Ensure 'notStarted' is the default state for activities

* Remove extra quotes

* Closes #7369
- Mod to `s-selected` styling to allow selection visiblity on Time List rows.

* Use generated key for vue

* Fix e2e tests

* Fix timelist test

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2024-01-28 15:46:10 -08:00
Shefali Joshi
60e1eeba8e
Add filtering by metadata (#7388)
* Add filtering by metadata. Add new sourceMap property to get a list of properties for metadata filtering.

* Change filter label names

* Add aria-labels

* Closes #7389
- Added a "No filters applied" message for both input areas.
- Added additional detail about how it works in the hint text visible while editing.

* Restore valid state if there is an error

* Fix linting error

* Tests for filtering by metadata

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
2024-01-28 18:04:52 +00:00
Charles Hacskaylo
1fc6056c51
Set disabled items to use disabled property (#7342)
* Closes #7322
- New CSS for `aria-disabled = true` property.
- Changed multiple items to use aria-disabled instead of .disabled, including:
  - Action menu
  - Super menu
  - Notebook drag area
- Tree item style modded to only italicize when is-navigated and is being edited.

* Closes #7322
- New CSS for `aria-disabled = true` property.
- Changed multiple items to use aria-disabled instead of .disabled, including:
  - Action menu
  - Super menu
  - Notebook drag area
- Tree item style modded to only italicize when is-navigated and is being edited.
- Create button sets itself to `disabled` when the editor is in use.

* Closes #7322
- Create button now _actually_ sets itself to `aria-disabled` when the editor is in use.
- CSS removes selector for `.is-editing`.

* fix conflict

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
2024-01-26 14:55:13 -08:00
Jamie V
b9df97e2bc
Table performance paging (#7399)
* dereactifying the row before passing it to the commponent

* debouncin

* i mean... throttle

* initial

* UI functionality, switching between modes, prevention of export in performance mode, respect size option in swgs

* added limit maintenance in table row collectins, autoscroll respecting sort order

* updating the logic to work correctly :)

* added handling for overflow rows, this way if an object is removed, we can go back to the most recent rows for all remaining items and repopulate the table if necessary

* removing debug row numbers

* Closes #7268
- Layout and style sanding and polishing.
- Added title to button.
- More direct button labeling.

* Closes #7268
Partially closes #7147
- Removed footer hover behavior: table footer now always visible.
- Tweaks to style, margin etc. to make footer more compact.

* moved row limiting out of table row collections and into telemetry collections, table row collections will only limit what they return in getRows, handling sorting when in different modes

* have swgs return enough data to fill the requested bounds

* support minmax in swgs

* using undefined for more clarity

* clearing up boolean typo

* Address lint fixes

* removing autoscroll for descending, it is not necessary

* update snapshots

* lint

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2024-01-26 13:24:24 -08:00
Jamie V
b985619d16
Table CPU Performance Improvements (#7392)
* dereactifying the row before passing it to the commponent

* debouncin

* i mean... throttle
2024-01-26 10:40:16 -08:00
Michael Rogers
3e31bbef97
Get actions collection on Preview Container update (#7385)
* Get actions collection on Preview Container update

* Added fixme and link to initial ticket

* Stubbed out preview mode e2e test

* Lint fix

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2024-01-26 17:35:52 +00:00
Scott Bell
3e5ada8f5f
Fix actions menu on display layout alphanumerics (#7414)
* remove errant action

* add e2e test
2024-01-25 16:26:03 +01:00
Scott Bell
2b2c74da9c
New action to reload an individual view and all of its children (#7362)
* add reload action plugin

* checking for domain object before reloading

* check if objects are equal before refreshing

* add test

* lint

* change to label

* ensure object styles are initialized

* resubscribe to staleness too

* add better labels for tabels

* ensure tab uses exact for label now due to table aria changes

* fix table tests

* make tabs exact

* update conflicts

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2024-01-25 05:36:44 +00:00
Charles Hacskaylo
0340fe18fa
Change Imagery positional freshness label from 'POS' to 'ROV' (#7409)
Closes #7404
- Change 'POS' to 'ROV'.
2024-01-25 05:18:29 +00:00
Jesse Mazzella
114864429a
feat(#7394): Incorporate Status Indicators into the main Vue app (#7395)
* feat(IndicatorAPI): accept Vue components

- Adds a new property to Indicators, `component`, which is a synchronous or asynchronous Vue component.
- Adds `wrapHtmlElement` utility function to create anonymous Vue components out of `HTMLElement`s (for backwards compatibility)
- Refactors StatusIndicators.vue to use dynamic components, allowing us to dynamically render indicators (and keep it all within Vue's ecosystem).

* refactor(indicators): use dynamic Vue components instead of `mount()`

- Refactors some indicators to use Vue components directly as async components

* refactor: use Vue reactivity for timestamps in clock indicator

* fix(test): fix unit tests and remove some console logs

* test(e2e): stabilize ladSet e2e test

* test: mix in some Vue indicators in indicatorSpec

* refactor: cleanup variable names

* docs: update IndicatorAPI docs

* fix(e2e): wait for async status bar components to load before snapshot

* a11y(e2e): add aria-labels and wait for status bar to load

* test(e2e): add exact: true

* fix: initializing indicators

* fix(typo): uhhh.. how did that get there? O_o

* fix: use synchronous components for default indicators

* test: clean up, remove unnecessary `nextTick()`s

* test: remove more `nextTick()`s

* refactor: lint:fix

* fix: `on` -> `off`

* test(e2e): stabilize tabs test

* test(e2e): attempt to stabilize limit lines tests with `toHaveCount()` assertion
2024-01-23 23:15:22 +00:00
John Hill
4cf63062c0
Mct7367-tests (#7387)
* refactor(ExportAsJSONAction): use private methods

* refactor: remove unnecessary webpack alias

* refactor: lint

* fix: tests for `ExportAsJSONAction`

* test: stabilize `InspectorStylesSpec` tests

* docs: fix jsdocs

* chore: remove dead / redundant code

* refactor(LocalStorageObjectProvider): use `getItem()` and `setItem()`

* refactor(ExportAsJSONAction): use `Promise.all` where applicable

* refactor(MenuAPI): one-liner

* feat: add percentage ProgressBar to ExportAsJSONAction

* fix(ProgressBar.vue): v-if conditionals

* test(fix): update mockLocalStorage

* test: fix locators

* test: remove unneeded awaits

* fix: example imagery urls (moved after NASA wordpress migration)

* Revert "refactor(LocalStorageObjectProvider): use `getItem()` and `setItem()`"

This reverts commit 4f8403adab.

* test(e2e): fix logPlot test

* Revert "Revert "refactor(LocalStorageObjectProvider): use `getItem()` and `setItem()`""

This reverts commit 0de66401cd.

* test(e2e): remove waitForNavigations

* driveby and fixes

* aria improvement

* getting tests back oline

* more tests

* add last test

* Add a11y

* lint

* lint

* driveby

* review comments

* driveby rename

* fix selectors and break up test suites

* add test for snapshot in header

* last lint fixes

* stable

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2024-01-22 21:41:56 -08:00
Scott Bell
43ae3cf655
Provide renderWhenVisible to LadTableSets (#7384)
* Provide renderWhenVisible for LadTables

* fix open in new tab

* add test for open in new tab

* fix test to include renderWhenVisible

* refactor test

* fix tests

* fix tests

* having timing issues now
2024-01-19 09:47:44 +01:00
Jesse Mazzella
01434ff2d5
feat(#7367): ProgressBar for ExportAsJSONAction (#7374)
* refactor(ExportAsJSONAction): use private methods

* refactor: remove unnecessary webpack alias

* refactor: lint

* fix: tests for `ExportAsJSONAction`

* test: stabilize `InspectorStylesSpec` tests

* docs: fix jsdocs

* chore: remove dead / redundant code

* refactor(LocalStorageObjectProvider): use `getItem()` and `setItem()`

* refactor(ExportAsJSONAction): use `Promise.all` where applicable

* refactor(MenuAPI): one-liner

* feat: add percentage ProgressBar to ExportAsJSONAction

* fix(ProgressBar.vue): v-if conditionals

* test(fix): update mockLocalStorage

* test: fix locators

* test: remove unneeded awaits

* fix: example imagery urls (moved after NASA wordpress migration)

* Revert "refactor(LocalStorageObjectProvider): use `getItem()` and `setItem()`"

This reverts commit 4f8403adab.

* test(e2e): fix logPlot test

* Revert "Revert "refactor(LocalStorageObjectProvider): use `getItem()` and `setItem()`""

This reverts commit 0de66401cd.

* test(e2e): remove waitForNavigations
2024-01-18 12:21:36 +01:00
Scott Bell
70f5ba9ca8
Clear active role if no longer in available roles (#7345)
* if role is removed from user, reprompt

* add some basic user login tests

* add more robust user tests

* add more robust user tests

* resolve PR comments

* setup event listener earlier
2024-01-16 17:57:57 +01:00
Marcelo Arias
11f3ce9470
fix(#7055): Expand on image with double click (#7308)
* Add double click event to expand image view

* Add performance tests for large view and close
button

* Add example imagery in flexible layout to test double-click functionality

* Remove click event listener in ImageryView.vue

* Move test to 'Example Imagery in Flexible layout'

* Refactor exampleImagery.e2e.spec.js

* Remove unnecessary code for opening and closing
large view in imagery.contract.per.spec.js

* Replace pageSelector with getByRole on double-click image test

* Add role and aria-label to focused image

* Remove unnecessary code and role attribute from ImageryView.vue

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2024-01-14 15:55:11 -08:00
John Hill
6ce340cebd
[e2e] Update remaining tests and add missing comparison coverage (#7363) 2024-01-11 14:47:00 -08:00
Scott Bell
6fd7b6f7a3
Add right click actions on imagery to allow high resolution download (#7371)
* action stubs in place

* first draft of actions

* delete copy

* add test

* remove console.debug
2024-01-11 19:57:04 +01:00
Jesse Mazzella
3ff2f029eb
chore: update copyright end year to 2024 (#7364) 2024-01-09 13:31:51 -08:00
Shefali Joshi
67a1094a1f
Timelist centering algorithm change and duration formatting change (#7194)
* Change the centering algorithm for timelist
Make duration formatting better

* test: add time list countdown and countup test

* test: respond to comments

* chore: lint fix

* fix: lint errors and visual suite failures

* Change parameters to options object

* Fix regression with auto scroll. Improve code readability

* Add defaults for getPreciseDuration options object

* Defaults for options

* Add missing await

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2024-01-08 23:14:33 +00:00
Scott Bell
64d4ddd80e
Set location hash if query parameters or path have changed (#7306)
* refactor to es6 class

* change URL on path or params change

* add test for url

* put into edit mode for test

* es6 module export

* a11y: add `status` role to clock component

* a11y: add label to overlay

* a11y: update roles for search results

* a11y: add `dialog` role and label for PreviewContainer

* refactor(e2e): get rid of a bunch of `page.locator()`s

* refactor(e2e): spruce up locators

* test: fix unit tests

* fix tests with new aria labels

* fix tests with new aria labels

* fix tests with new aria labels

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2024-01-08 20:29:01 +01:00
Jesse Mazzella
dfba4e23c5
fix(#7338): Persisted styles correctly apply to StackedPlotItems on mount (#7341)
* refactor: use `Plot` component directly in `StackedPlotItem` template

* test(e2e): fix style test for stackedplot

* test(e2e): add annotation back in

* test: fix unit tests

* refactor: tidy up

* fix: move const, remove eslint ignore

* fix: apply staleness styling properly

* refactor: remove unused data()

* refactor: remove unused `isMissing`

* refactor: remove debug statements
2024-01-08 10:19:41 -08:00
Khalid Adil
70de7363d8
[Flexible Layouts] Flexible Layout styling fixes (#7319) 2024-01-03 17:11:35 -08:00
Tristan F
fce98a1c47
refactor: migrate to ESM (#7331)
* refactor: move package.json to type: module

this is where the fun begins

* chore: move webpack common and prod to esm

* chore: move webpack to esm, eslint to explicit cjs

* refactor: migrate all files to esm

* style: lint

* refactor: begin moving karma to cjs, use dynamic esm import

* refactor: move index-test to cjs

* refactor: begin moving e2e to ESM

this was manual. I'm committing this because I'm about to try the `cjstoesm` tool

* refactor: move all to esm

* fix: make all e2e tests use .js imports

* refactor: begin moving exports to esm

* refactor: use URL transforms instead of __dirname

* fix: use libraryExport: default to properly handle openmct

* fix: export all playwright configs as modules

* refactor: move all instances of __dirname to import.meta.url

* refactor: lint, drop unnecessary URL call

* fix: use correct URL path on helper/addNoneditableObject.js

* fix: more incorrect URL resolve issues

* fix: parse json after reading it
2024-01-02 07:24:22 -08:00
Tristan F
68e60e332e
fix: cleanup from #7029 (#7328)
* refactor: fix issues arose from #7029

* refactor: move replaceAll -> replace in makeKeyString

* fix: move order of escape to backslash first

* style: lint
2023-12-28 12:39:28 -08:00
Tristan F
2e03bc394c
feat: AMD -> ES6 (#7029)
* feat: full amd -> es6 conversion

* fix: move MCT to ES6 class

* fix: default drop, correct imports

* fix: correct all imports

* fix: property typo

* fix: avoid anonymous functions

* fix: correct typo

scarily small - can see why this e2e coverage issue is high priority

* fix: use proper uuid format

* style: fmt

* fix: import vue correctly, get correct layout

* fix: createApp without JSON

fixes template issues

* fix: don't use default on InspectorDataVisualization

* fix: remove more .default calls

* Update src/api/api.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* Update src/plugins/plugins.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* Update src/plugins/plugins.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* fix: suggestions

* fix: drop unnecessary this.annotation initialization

* fix: move all initialization calls to constructor

* refactor: move vue dist import to webpack alias

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-12-27 12:15:51 -08:00
Jesse Mazzella
715a44864e
Reduce bundle size (#7246)
* chore: use ESModule imports for d3 libraries

* chore: add d3 types

* chore: use minified plotly

* chore: use ESModule style imports for printj

* chore: use `terser-webpack-plugin` to minimize

* Revert "chore: use minified plotly"

This reverts commit 0ae9b39d41b6e38f0fe38cd89a2cd73869f31c36.

* Revert "Revert "chore: use minified plotly""

This reverts commit 08973a2d2e6675206907f678d447717ac6526613.

* fix: use default minification options

* test: stabilize notebook image drop e2e test

* test(fix): remove .only()

* refactor: convert TelemetryValueFormatter to es6 class

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-12-20 11:23:24 -08:00
John Hill
0d97675a0a
[CI] Add a11y checks to our visual testing suite (#7047)
* Add a VISUAL_URL constant and remove all vestiges of hide inspector and tree

* hide timer and add concurrency

* turn off concurrency

* factor out old appAction

* Add expand button to panes

* remove old slow annotations

* fix fault

* update domcontentloaded

* missed refactor

* driveby: setTimeBounds private

* add comments to the percyCSS

* suggest MISSION_TIME

* more notes

* regen

* clean up test

* driveby: clean up order

* restructure

* add new suite now that i'ts hidden

* use mission time everywhere possible

* driveby

* rerun generatedata

* comments

* lint fix

* add inital pass of a11y tests

* first pass for fixing a11y problems

* update build

* add copyright

* check for slashes

* rename files

* update testcases

* update to latest

* updates

* section 508

* final version

* remove leftover

* comments

* documentation

* bad merge

* comment

* use current ruleset

* typo

* feedback

* remove time conductor due to false positives

* default to closed tabs

* add some more accessiblity checking

* change to a condition widget and update search

* lint fix

* turns this into a single function

* update doc to match single function

* update to single function

* update to new function

* lint

* update locator for search input

* fix extra page

* why

* comments

* comments

* refacotr

* wrong paths and fixes
2023-12-19 14:16:08 -08:00
Scott Bell
ec910dcbdc
Add tests for inspector data pivoting (#7282)
* inspector view needs renderWhenVisible function

* add a default visualization source

* add plugin to exercise data pivotting

* use correct key string

* test skeleton

* add e2e test

---------

Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
2023-12-19 04:33:50 -06:00
Scott Bell
3fccac0bfc
Automatically check additional views for memory leaks on navigation (#7300)
* add new objects for navigation testing

* add test for remaining objects

* cleanup plotly on dismount

* lint

* remove vestigial object

* do not need to call destroy here

* do not need to call destroy here

* refactor: ensure path to test file always resolves

* refactor: better locators

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-12-15 10:13:41 +01:00
Scott Bell
2675220452
Defer intersection monitoring until needed to prevent race conditions (#7278)
* defer visibility rendering until actually used to prevent race conditions

* remove extrace space
2023-12-15 09:40:36 +01:00
Charles Hacskaylo
97bffc554f
Fix Notebook entry hover problem (#7106)
Closes #7105
- Removed `:not(:focus)` CSS check for hover.
- New theme constant for a more subdued hover effect to differentiate
from active editing mode.

Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-12-14 06:39:09 -08:00
Shefali Joshi
250db8d7f9
Allow specification of swimlanes via configuration (#7200)
* Use specified group order for plans

* Allow groupIds to be a function

* Fix typo in if statement

* Check that activities are present for a given group

* Change refresh to emit the new model

* Update domainobject on change

* Revert changes for domainObject

* Revert groupIds as functions. Check if groups are objects with names instead.

* Add e2e test for plan swim lane order

* Address review comments - improve if statement

* Move function to right util helper

* Fix path for imported code

* Remove focused test

* Change the name of the ordered group configuration
2023-12-14 06:19:42 -08:00
David Tsay
9ed8d4f5a5
Provide own renderWhenVisible function since manually creating an object view (#7281)
inspector view needs renderWhenVisible function
2023-12-08 18:33:49 +01:00
Scott Bell
93e5219917
Handle aborted get requests and null domain objects when using ObjectAPI (#7276)
* handle null domain objects

* add some test coverage for aborting search results

* to make test independent
2023-12-05 17:43:49 +00:00
Scott Bell
2d9c0414f7
Inconsistent behavior with multiple annotations in imagery (#7261)
* fix opacity issue

* wip, though selection still weird

* remove debugging

* plots still have issue with last tag

* add some better tests

* Apply suggestions from code review

Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>

* remove hardlined classnames

* case sensitivity

* good job tests finding issue

---------

Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-12-04 19:12:24 -08:00
Scott Bell
72e0621ecd
When searching, build the path objects asynchronously while returning the results (#7265)
* build paths as fast as we can

* fix tests

* add abort controllers and async load tags
2023-12-04 13:40:28 -08:00
Scott Bell
e7b9481aa9
Destroy canvas in plots if not visible (#7263)
* first draft

* add some more debugging

* add test and remove debug

* Remove debug function

* consolidate destroy

* add better canvas name and handle if gl has gone missing

* extra check for extension
2023-12-04 21:28:24 +00:00
Jesse Mazzella
97cb783c4b
chore: bump d3-scale and use ESModule imports (#7245)
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-11-28 14:07:34 -08:00
Scott Bell
415b65237b
Prevent rubber-banding in Telemetry Table filter input (#7248)
* should debounce the filtering of the telemetry, not the setting of the input

* add some laggy typing to check for debouncing issues

* revert test
2023-11-28 17:39:34 +01:00
Scott Bell
7ce3ed5597
Provide visibility based rendering as part of the view api (#7241)
* first draft

* in preview mode, just show it

* fix unit tests
2023-11-20 09:19:00 -08:00
Jesse Mazzella
b9ae461b7d
fix(#7234): Fix frame deletion in Flexible Layouts (#7244)
* fix: use the correct event name for frame deletion

* test: add test for frame removal

* refactor: update test locators, add a11y

* test: upgrade locator

* test: assert dialog text
2023-11-17 18:02:58 +00:00
Charles Hacskaylo
15ee8303e4
Gauge fixes for NaN and composition policy (#5608)
* Closes #5536, #5538
- Significant changes to code flow for better handling of missing telemetry values; closes #5538.
- Changes to flow to handle range display when updating composition and when ranges are set by limits.
- Added `GaugeCompositionPolicy.js`; closes #5536.

* Closes #5536, #5538
- Code cleanup, linting.

* Closes #5538
- Linting fixes.

* Closes #5538
- Added test for 'Gauge does not display NaN when data not available'.

* Closes #5538
- Refined test.

* Closes #5538
- Refined 'NaN' test.
- Added test for 'Gauge enforces composition policy';

* Closes #5538
- Fix linting issues.

* Closes #5538
- Suggested changes from PR review.

* Closes #5538
- Suggested changes from PR review.

* Update e2e/tests/functional/plugins/gauge/gauge.e2e.spec.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* chore: lint:fix

---------

Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-11-16 10:40:48 -08:00
David Tsay
a914e4f1f7
Only show marquee for selected item (#7180)
* only show marquee for selected item

* Revert "only show marquee for selected item"

This reverts commit d17af210c2.

* revert change made in #6767

* create framework for displayLayout visual test

* WIP create display layout for test

* only show marquee for selected

* fix selection of object in nested layout

* fix grid and code cleanup

* add child layouts side by side

* code cleanup

* externalize setup for reuse in multiple tests

* write marquee and grid tests

* fix object in layout locator

* fix nested layout selector

* add aria label to layouts

* fix layout locator

* add jsdoc for test setup function

* make test more efficient

* cleanup and linting

* update locator

* update locators

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-11-16 10:31:35 -08:00
Jesse Mazzella
cdd772aa87
fix(#7234): 'Remove Container' button not working in Flexible Layout toolbar (#7240)
* refactor: rename prop for clarity

- `orientation` -> `dragOrientation`

* fix(#7234): fix event name for flexible layout toolbar action

* test(e2e): add tests for flexible layout toolbar actions

* test: add `@localStorage` tags
2023-11-16 09:21:23 -08:00
Michael Rogers
7f8262b882
Changed global time to use time context current value for ITC (#7191)
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-11-13 15:42:54 -06:00
Scott Bell
deacd91078
Defer rendering for inactive tabs in open mct tabbed view (#7149)
* simple prototype

* add a few examples

* revert to original

* only check first element

* only print when we're firing

* need to return status

* ignore polling logic if not visible

* convert to es6 classes

* add private variables

* remove debug code

* revert on this branch webgl changes

* fix draw loader import

* do not use v-model for search component

* remove flakey unit tests and add e2e tests for same behavior

* remove fdescribe

* add test word

* add simple functional test for tabs

* add performance test for tabs

* make tab selection more explict

* better describe expects

* lint

* switch back to fixed time

* fix perf test for webpacked version

* lint

* relax condition

* relax condition

* resolve PR comments

* address PR review comments

* typo on role vs locator
2023-11-13 18:27:50 +00:00
Scott Bell
51eb2a4f59
Add static limit values to LAD tables (#7193)
* limits shown

* use more verbose way for uniqueness

* when adding items, check for what columns we need

* make header logic much simpler

* add test coverage

* fix test and lint

* Update e2e/tests/functional/plugins/lad/lad.e2e.spec.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* Update e2e/tests/functional/plugins/lad/lad.e2e.spec.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* change to getByTitle

* lint and change to getByLabel

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-11-08 17:56:59 +00:00
Jesse Mazzella
02f1013770
fix: DisplayLayout and FlexibleLayout toolbar actions only apply to selected layout (#7184)
* refactor: convert to ES6 function

* fix: include `keyString` in event name

- This negates the need for complicated logic in determining which objectView the action was intended for

* fix: handle the case of currentView being null

* fix: add keyString to flexibleLayout toolbar events

* fix: properly unregister listeners

* fix: remove unused imports

* fix: revert parameter reorder

* refactor: replace usage of `arguments` with `...args`

* fix: add a11y to display layout + toolbar

* test: add first cut of layout toolbar suite

* test: cleanup a bit and add Image test

* test: add stubs

* fix: remove unused variable

* refactor(DisplayLayoutToolbar): convert to ES6 class

* test: generate localStorage data for display layout tests

* fix: clarify "Add" button label

* test: cleanup and don't parameterize tests

* test: fix path for recycled_local_storage.json

* fix: path to local storage file

* docs: add documentation for
utilizing localStorage in e2e

* fix: path to recycled_local_storage.json

* docs: add note hyperlink
2023-11-02 20:42:37 +00:00
Shefali Joshi
ae22920576
Refine display options and add Independent Time Conductor option for Time List view (#7161)
* Apply sort settings immediately - even when in edit mode.

* Adds test for sort order

* Enable independent time conductor for time list view

* Remove time frame duration options.

* Remove immediate sorting in edit mode.

* Closes #7113
- Color of current events changed to bring more in-line with color conventions.
- Changed Time List rgba colors to solids.
- Removed bolding on current events text.

* Fix tests to include new changes

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
2023-11-01 15:47:43 +00:00
Michael Rogers
a0fd1f0171
Removed errant brace in ObjectAPI Error (#7192)
Removed errant brace
2023-10-31 07:28:20 -07:00
Jamie V
d94fe8806b
[Plots] Gracefully handle Float32Array breaking values (#7138)
* WIP

* guaranteeing float32breaking values for swgs when option is set

* cleaning up and clarity

* more clarity

* removing randomization of float breaking number, as it is not necessary

* logging the values that could not be plotted for awareness

* remving auto-added imports

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-10-24 23:07:43 +00:00
Jamie V
7bf983210c
[Filters] Fix view based filters when string input is enabled (#7050)
* de-reactifying some objects for clarity, handling strings for filters, some vue 3 formatting

* removing debug, fixing string value persistence

* remove unnecessary change

* removing vue utils from non vue files

* nipping proxy objects in the bud

* linting

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-10-24 15:33:08 -07:00
Khalid Adil
8f92cd4206
[Tooltips] Finish tests for gauges, telemetry tables, recently viewed items, and time strips (#7145)
Finish tests for gauge, telemetry tables, recently viewed items, and time strips

Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
2023-10-24 22:06:40 +00:00
Scott Bell
13311b9fc8
Prevent infinite loop when updating a table row in place (#7154)
* bump index on update row in place

* add test

* Removing problematic test

* spelling
2023-10-23 09:22:13 -07:00
Jesse Mazzella
43338f3980
chore: remove vue/compat and complete Vue 3 migration (#7133)
* chore: remove custom `compatConfig` settings

* chore: remove `vue-compat` and adjust webpack config

* chore: explicitly define Vue feature flags

* fix: `_data` property moved to `_.data`

* fix(e2e): revert to original test procedures

* refactor: replace final instances of `$set`

* refactor: remove `Vue` imports from tests

* refactor: `Vue.ref()` -> `ref()`

* refactor: actually push the changes...

* test: replace unit test with e2e test

* test: remove test as it's already covered by e2e

* fix(test): use `$ref`s instead of `$children`

* test(fix): more `$refs`

* fix(test): more `$refs`

* fix(test): use `$refs` in InspectorStyles tests

* fix(SearchComponent): use `$attrs` correctly

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-10-19 09:08:39 -07:00
Jesse Mazzella
9849e0398e
fix(#7143): add eslint-plugin-no-sanitize and fix errors (#7144) 2023-10-16 09:26:12 -07:00
David Tsay
76889cf60d
Rename all configuration inspector tabs to Config (#7140) 2023-10-12 13:48:13 -07:00
Scott Bell
26d3bd1e69
When dropping an unsupported file onto a notebook entry, tell the user it isnt supported (#7115)
* handle unknown files and deal with copy/paste

* add some nice errors if couch pukes

* added how to adjust couchdb limits

* throw error on anntotation change

* keep blockquotes

* add test for blockquotes

* allow multi-file drop of images too

* add test for big files

* spell check

* check for null

* need to ignore console errors

* reorder tests so we can ignore console errors

* when creating new entry, ready it for editing

* fix tests and empty embeds

* fix tests

* found similar issue from notebooks in plots
2023-10-12 07:34:32 +02:00
David Tsay
a16a1d35b6
do not store state in singleton action (#7121)
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2023-10-10 15:49:45 -07:00
David 'Epper' Marshall
97b2ebc0bb
Fix remaining vue-compat warnings (#6966)
* PascalCase files

* emit warnings

* minor updates

* merge conflict resolve pt 1

* part 2

* update to eventbus

* eventbus spelling

* fix: import

* fix: eventBus injection

* fix: import

* fix(test): provide eventBus in overlay plot tests

* refactor: EventBus as composable

* chore: lint:fix

* chore: require vue event hyphenation

* fix: revert event renames

* refactor: use PascalCase name

* fix: ensure `$attrs` are properly bound

* fix: emit `click` event from SearchComponent

* chore: remove rules already included in `vue/vue3-recommended` ruleset

* fix: remove `Vue` import

* chore: remove unused files

* fix: fix lint scripts and make them cross-platform

* refactor: rename `DataImagery.vue` -> `ImageryInspectorView.vue`

* refactor: rename `NumericData.vue` -> `NumericDataInspectorView.vue`

* refactor: rename components

* refactor: rename `GeneralIndicators.vue` -> `StatusIndicators.vue`

* refactor: rename components

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-10-10 13:29:01 -07:00
Khalid Adil
6b32c63039
[Staleness] Fix issue with object view staleness styles not being reset on clock change (#7122)
Add logic to un/re-subscribe when clock changes to object view
2023-10-06 15:26:05 -07:00
Scott Bell
084784a409
Handle negative height & width in image annotations (#7116)
* add fix

* remove debug code

* add test for unholy rectangles

* make test a bit more forgiving

* address pr review
2023-10-06 19:08:42 +02:00
Khalid Adil
734a8dd592
[Staleness] Fix staleness on clock change (#7088)
* Update staleness mixin
* Fix listeners and add guard
* Add check to make sure staleness only shows for correct clock
* Add guard for time api
* Cleanup the setting of isStale in ObjectView
* Cleanup use of combinedKey on LadTableSet
2023-10-04 13:39:20 -07:00
Shefali Joshi
ce59c0f50a
Check realtime mode in remote clock interceptor (#6985)
* Revert Date.now() purge change
Check that the request is using realtime before using the remote-clock start and end timestamps for telemetry requests
* docs: clarify comment

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-10-03 20:41:02 +00:00
David Tsay
d53d8d562e
Eagerly lose WebGL context on DrawWebGL.destroy() (#7080)
* test default for preserveDrawingBuffer
* fix: delete WebGL resources on destroy
* fix: eagerly lose WebGL contexts on destroy
- Recommended by Mozilla's [WebGL best practices]-(https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#lose_contexts_eagerly).

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-10-03 19:33:51 +00:00
Shefali Joshi
ede93d881c
Ensure CouchDB changes for plans trigger updates in the view (#7099)
Listen to ALL changes for a plan since couchdb feed updates does not trigger a property only event. It triggers a catchall '*' event.

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-10-02 23:26:13 +00:00
Scott Bell
6947c912a7
Add markdown to notebook entries (#7084)
* try marked out

* fix url validation

* now rendering blockquotes properly

* add abbrv, link titles, and strikethrough

* fix tests and lint

* Closes #6060
- CSS resets and styling for markdown-related HTML markup in Notebook entries.
- Better styling and cursor affordances for Notebook entry selection and editing interaction flow.

* add line breaks option

* Closes #6060
- Tab

* Closes #6060
- Conversion of contenteditable-div to textarea started.
- Stubbed in textarea with styles.

* have it markdown with a textarea and adjust size automatically

* Closes #6060
- Padding added back to text `div` area.

* Closes #6060
- Styles added to support Shift Log and hover behavior for entries on locked pages.
- Removed `--major` styling from Shift Log Commit Entries button
to reduce confusion with entry commit button.
- CSS code cleanups.

* two step focus/edit. also scroll into view for editing

* add markdown, strip all tags, and truncate

* lint

* remove unneeded code

* fix notebook entry, selected page may also be null

* fix existing notebook tests

* lint

* fix whitelist

* readd whitelist

* lint

* fix link tests

* fix tests

* fix tagging test

* add some markdown test

* get rid of pause

* add another sanitization step

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-10-02 22:28:02 +00:00
David Tsay
2243381d52
Protect against prototype pollution in import action (#7094) 2023-10-02 14:50:53 -07:00
Scott Bell
ab0e2d2c96
Hide image controls when tagging, and hide compass HUD by default (#7028)
* make compass HUD configurable and hide image controls when tagging

* lint fixes

* address PR comments

* change prop to inject

---------

Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
2023-09-28 03:58:24 +00:00
Scott Bell
ce2305455a
Add script to delete annotations (#7069)
* add script

* add package.json and script to delete annotations

* amend help

* fix issues

* added explicit runs

* add design document and index creation to script

* update tests to wait for url to change

* i think we can remove this deprecated function now
2023-09-25 10:15:00 -07:00
Jesse Mazzella
ff2c8b35b0
🙅🚮␡ Removeopenmct.components🚮🙅 (#7075)
🙅🚮␡`openmct.components`␡🚮🙅

Co-authored-by: Andrew Henry <akhenry@gmail.com>
2023-09-21 14:05:35 -07:00
Scott Bell
482f1f68dd
Have annotations work with domain objects that have dots (#7065)
* migrating to new structure - wip

* notebooks work, now to plots and images

* resolve conflicts

* fix search

* add to readme

* spelling

* fix unit test

* add search by view for big search speedup

* spelling

* fix out of order search

* improve reliability of plot tagging tests
2023-09-21 13:50:08 -07:00
Shefali Joshi
b8949db767
Memory leak fixes for several views (#7057)
* Change the mount utility to use Vue's createApp and defineComponent methods

* Fix display layout memory leaks caused by `getSelectionContext`

* fix some display layout leaks due to use of slots

* Fix imagery memory leak (removed span tag). NOTE: CompassRose svg leaks memory - must test on firefox to see if this is a Chrome leak.

* Fix ActionsAPI action collection and applicable actions leak.

* Fix flexible layout memory leaks - remove listeners on unmount. NOTE: One type of overlay plot (Rover Yaw) is still leaking.

* pass in the el on mount

* e2e test config and spec changes

* Remove mounting of limit lines. Use components directly

* test: remove `.only()`

* Fix display layout memory leaks

* Enable passing tests

* e2e README and appActions should be what master has.

* lint: add word to cspell list

* lint: fixes

* lint:fix

* fix: revert `el` change

* fix: remove empty span

* fix: creating shapes in displayLayout

* fix: avoid `splice` as it loses reactivity

* test: reduce timeout time

* quick fixes

* add prod mode and convert the test config to select the correct mode

* Fix webpack prod config

* Add launch flag for exposing window.gc

* never worked

* explicit naming

* rename

* We don't need to destroy view providers

* test: increase timeout time

* test: unskip all mem tests

* fix(vue-loader): disable static hoisting

* chore: run `test:perf:memory`

* Don't destroy view providers

* Move context menu once listener to beforeUnmount instead.

* Disconnect all resize observers on unmount

* Delete Test vue component

* Use beforeUnmount and remove splice(0) in favor of [] for emptying arrays

* re-structure

* fix: unregister listener in pane.vue

* test: tweak timeouts

* chore: lint:fix

* test: unskip perf tests

* fix: unregister events properly

* fix: unregister listener

* fix: unregister listener

* fix: unregister listener

* fix: use `unmounted()`

* fix: unregister listeners

* fix: unregister listener properly

* chore: lint:fix

* test: fix imagery layer toggle test

* test: increase timeout

* Don't use anonymous functions for listeners

* Destroy objects and event listeners properly

* Delete config stores that are created by components

* Use the right unmount hook. Destroy mounted view on unmount.

* Use unmounted, not beforeUnmounted

* Lint fixes

* Fix time strip memory leak

* Undo unneeded change for memory leaks.

* chore: combine common webpack configs

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-09-20 10:34:05 -07:00
Scott Bell
541a022f36
Embedding images in notebook entries (#7048)
* initial drag drop, wip

* images work as snapshots, but need to disable navigate to actions

* embed image name

* works now with images, need to be refactor so can duplicate code for entries too

* works dropping on entries too

* handle remote images too

* add e2e test

* spelling

* address most PR comments
2023-09-18 10:56:49 -07:00
David Tsay
c7b5ecbd68
Allow Data Visualization in inspector based on current selection (#7052)
* visualize data in inspector per selection

---------

Co-authored-by: Khalid Adil <khalidadil29@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-09-15 12:30:58 -07:00
David 'Epper' Marshall
6776cc308f
PascalCase files (#6955)
* PascalCase files

* git mv for file name change

* renamed files

* merge changes from master

* fix: template name

* sort imports

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-09-14 09:55:44 -07:00
John Hill
2a1064cbab
[CI] Stabilize visual tests, remove appAction, and update pane buttons (#7033)
* Add a VISUAL_URL constant and remove all vestiges of hide inspector and tree

* hide timer and add concurrency

* turn off concurrency

* factor out old appAction

* Add expand button to panes

* remove old slow annotations

* fix fault

* update domcontentloaded

* missed refactor

* driveby: setTimeBounds private

* add comments to the percyCSS

* suggest MISSION_TIME

* more notes

* regen

* clean up test

* driveby: clean up order

* restructure

* add new suite now that i'ts hidden

* use mission time everywhere possible

* driveby

* rerun generatedata

* comments

* lintfix
2023-09-11 23:33:46 +00:00
Scott Bell
8e917b2679
Remove large series models from reactive data in plots (#6961)
* remove series object from highlights

* remove series models from legend reactive data

* drawing all annotations at once is way faster

* fix multi annotations

* lots of reactive things depending on config

* make annotation lookup faster

* lint

* readd perf test

* address PR comments

* fix highlight typo

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
2023-09-06 09:32:36 -07:00
Jesse Mazzella
0be106f29e
Fix and re-enable disabled unit test suites (#6990)
* fix: register event listeners etc in `created()` hook

* fix: initialize `stalenessSubscription` before composition load and in `created()` hook

* refactor(test): make `openmct` const

* refactor: update overlayPlot spec to Vue 3 and fix tests

* refactor: fix eslint errors

* refactor: move initialization steps to `created()` hook

* test: re-enable and fix stackedPlot test suite

* fix: `hideTree=true` hides the tree again

* fix: add back in check on mount

* test: fix Layout tests

* fix: BarGraph test

* fix: plot inspector tests

* fix: reenable grand search tests

* fix: inspectorStyles test suite

* fix: re-enable most timeline tests

* fix: no need to hideTree in appactions

* fix: re-enable more tests

* test: re-enable more tests

* test: re-enable most plot tests

* chore: `lint:fix`

* test: re-enable timelist suite

* fix(#7016): timers count down or up to a target date

* test: add regression tests to cover disabled unit tests

* refactor: lint:fix

* refactor: no need for momentjs here

* fix: timerAction missed refactor

* fix: ensure timestamp is always UTC string

* test: use role selectors

* docs: add instructions for clock override in e2e

* docs: update

* Update readme

* lint

* spelling fixes

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-09-05 08:53:03 +00:00
Jesse Mazzella
9f7b3b9225
fix(#7022): remove ProgressBar artifacts from Notifications (#7024)
* fix: check for null or undefined

* refactor: `lint:fix`

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-09-04 12:51:32 +00:00
Even Stensberg
c27ad469f6
feat(eslint): sort import rule (#6939)
* feat(eslint): sort import rule

* chore(deps): pin dep

* refactor: sort imports

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-08-31 13:40:00 -07:00
David 'Epper' Marshall
b87459dfd7
ProgressBar null not undefined (#6953)
* ProgressBar null not undefined

* notification banner null

* update progress dialog

* docs: update type

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-08-29 23:49:31 +00:00
Jesse Mazzella
ca06a6a047
docs: update staticRootPlugin README (#7014) 2023-08-29 23:09:28 +02:00
Even Stensberg
95e3ab25a4
fix(dialog): empty description (#6986)
* fix(dialog): empty description

* tests(e2e): adds roleview test

* tests(e2e): test in beforeEach

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-08-28 15:54:49 -07:00
Shefali Joshi
a8678aa739
Imagery layer checkbox should match layer visiblity (#7003)
Set layer visibility to false if layer visibility cannot be persisted
2023-08-28 10:32:37 -07:00
Jamie V
244e3b7938
[Aborts] Abort Telemetry Collections requests on Navigation, Add abort functionality to getLimits (#6872)
* debug

* abort any pending requests on router "change:path" event, this should catch cases where the UI is bogged down and doesnt destroy the tc first

* english

* cant always be on

* adding abort to limits requests

* finally-ing off the promise

* need to just return the object not the property

* sticking with the try/catch structure we use elsewhere

* removing abort on nav, as views should be calling destroy

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
2023-08-24 21:17:58 +00:00
John Hill
42b13c4dfb
Fix couchdb setup and add a note on how to remove the container (#6915)
* discrete steps

* update script to remove couchdb

* address comments and add shellcheck linting

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-08-22 11:11:07 -07:00
Shefali Joshi
6db390a71a
Add strategy latest and timeContext to auto flow tabular and gauge views (#6960) 2023-08-21 14:09:39 -07:00
David 'Epper' Marshall
a495e86231
fix(#6516): Progress Bar does not show progress percentage (#6952)
MCT 6516

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-08-18 22:54:58 +00:00
Shefali Joshi
bada228b8f
Ensure that dynamically created vue components are destroyed. (#6948) 2023-08-17 23:24:02 +00:00
Khalid Adil
3f80b53ea6
[Tooltips] Fixes for dictionary objects and self-referential objects (#6916)
* Fix getTelemetryPath to handle cases where parent is the same as the child, handle yamcs aggregate telemetry, and fix how identifiers are passed in

* Cleanup getTelemetryPath

* Switch to filter instead of forEach

* Get path item names

* Remove tooltips on scroll of tree

* Remove handing for scroll

* Allow break-words

* Cleanup
2023-08-17 16:18:25 +00:00
Scott Bell
99a3e3fc32
Recent objects do not update when object names are changed (#6927)
* fix tree name issue

* add name to key, and name observers to recent objects

* no need to change key

* make more of app reactive to name changes

* fix browse bar and document title

* listen in properties for name changes

* add tests for renaming

* yeah spelling linter

* add semantic tags to forms and fixup tests

* change purpose

* actually delete the listener

* ensuring deletion

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-08-16 21:38:09 +00:00
Jesse Mazzella
f21685e216
fix(e2e): Stabilize ITC tests (#6933)
* fix(ITC): initialize ITC in `created()` hook

* fix(e2e): stabilize ITC tests

* docs: add JSDocs

* refactor: lint:fix

* test(e2e): add comment and assertion

* refactor: lint:fix
2023-08-16 19:02:09 +00:00
Jesse Mazzella
6c92e31036
fix(#6942): Toggling FlexibleLayout toolbar options reflects immediately in the view (#6943)
* fix: restore reactivity of config settings

- move initialization steps to `created()` hook

- remove unnecessary `:key` binds

- fix comments

* refactor: clean up

* refactor: clean up

* refactor: lint:fix

* test(e2e): add regression test and cleanup suite

* refactor: consistency is key!

* test(fix): fix unit tests, further cleanup
2023-08-16 17:52:23 +00:00
Shefali Joshi
87feb0db34
Condition sets now provide the timeContext they're using when sending requests (#6929)
* Send in the timeContext for requests

* Fix failing test

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-08-15 17:32:30 +00:00
Shefali Joshi
c53073b339
Fix remote clock subscription (#6919)
* If there are no listeners for this clock then don't bother subscribing after getting the domain object details

* Comment explaining the fix
2023-08-14 21:51:52 +00:00
Jesse Mazzella
57743e5918
fix: use loadDelay generator setting in subscriptions as well (#6918)
* refactor: use `getBounds()` instead of `bounds()`

* fix: use `loadDelay` in generator subscription

* refactor: fix up e2e test

* fix: remove `.only()`

* refactor: lint

* Start to fix up conditionSet test with comments

* test: edit conditionSet to add delay value

* test: tests the case where telemetry is available

* fix: remove `.only()`

* test: add comments, clarify assertion

* refactor: lint:fix

* test: fix conditionSet default condition name test

* test: add assertions to stabilize tags tests

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-08-14 19:04:01 +00:00
Jesse Mazzella
f3b819a786
chore: add vue3 to eslint, fix errors, and modify lint script (#6910) 2023-08-14 17:03:19 +00:00
John Hill
50694f600c
Light refactor of visual tests (#5585) 2023-08-11 17:18:08 -07:00
Jesse Mazzella
10f3e13e4d
chore: modify cspell config and fix all typos (#6908) 2023-08-10 16:20:16 +00:00
Scott Bell
9be9c5e28e
Check for null in DuplicateAction (#6904)
check for null before checking before hasOwnProperty
2023-08-09 11:38:17 -07:00
Shefali Joshi
6a9ff91d93
Dismiss the independent time conductor popup on unmount (#6859)
* Don't set conductor popup to null unless the view is being destroyed

* Replace beforeDestroy with beforeUnmount

* Propagate plot tick widths to timeline view

* Check if conductor popup exists before trying to remove it from the dom

* Fix imagery e2e test

* Revert accidental commit

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-08-07 23:19:13 +00:00
Charles Hacskaylo
accfbc96ab
Fix Plan View duplicate scrollbars (#6865)
* Closes #6864
- CSS fixes to remove problematic duplicate overflow handling.

* fix(e2e): stabilize autoscale test

* fix(e2e): mark overlay plot tagging test as slow

* fix(e2e): stabilize ITC e2e test

* fix(e2e): don't use hard wait

* fix: remove .only 😳

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-08-07 22:48:29 +00:00
Scott Bell
ee6ca11558
Only load annotations in fixed time mode or frozen (#6866)
* fix annotations load to not happen on start

* remove range checking per annotated point

* back to local variable

* reduce tagging size to improve reliability of test

* remove .only

* remove .only

* reduce hz rate for functional test and keep high frequency test in performance

* remove console.debugs

* this test runs pretty fast now

* fix network request tests to match new behavior
2023-08-03 09:40:52 -07:00
Andrew Henry
676bb81eab
Synchronize timers between multiple users (#6885)
* created a throttle util and using it in timer plugin to throttle refreshing the timer domain object

* Simplify timer logic

* Clarify code a little

* refactor: lint:fix

* Fix linting issue

---------

Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-08-02 16:30:51 -07:00
Shefali Joshi
c6305697c0
Set the raw series limits so that we can get the raw series limits (#6877)
* Set the raw series limits so that we can get the raw series limits

* fix: `toRaw()` the other gets/sets/deletes

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-08-02 09:50:03 -07:00
Jesse Mazzella
0421936874
fix: suppress deprecation warnings to once per unique args (#6875) 2023-08-02 09:11:41 -07:00
Jesse Mazzella
95e686038d
fix: toggling markers, alarm markers, marker style + update Vue.extend() usage to Vue 3 (#6868)
* fix: update to `defineComponent` from `Vue.extend()`
* fix: unwrap Proxy arg before WeakMap.get()
* refactor: `defineComponent` not needed here
2023-08-01 14:07:59 -07:00
Shefali Joshi
f705bf9a61
Wait for bounds change to reset telemetry collection data (#6857)
* Reset and re-request telemetry only after receiving bounds following a mode change

* Don't check for tick - just in case the mode is set without bounds

* Use the imagery view timeContext to get related telemetry.

---------

Co-authored-by: Khalid Adil <khalidadil29@gmail.com>
2023-07-31 18:15:08 +00:00
Shefali Joshi
50559ac502
Don't allow editing line more when not editing display layout (#6858) 2023-07-31 10:16:52 -07:00
Jesse Mazzella
f0ef93dd3f
fix: remove tree-item-destroyed event (#6856)
* fix: remove `tree-item-destroyed` event

- Composition listeners should only be removed if the item has been deleted or its parent has been collapsed. Both are handled by `mct-tree` already, so doing this additionally when tree-items unmount is redundant.

- In addition to that, any time the `visibleTreeItems` array changes, all tree-items will unmount, so this just doesn't work as intended-- it will unregister all composition listeners whenever the tree changes!

* test: stabilize imagery test

- Use keyboard gestures to navigate

* fix: lint:fix
2023-07-31 11:57:11 -05:00
Jesse Mazzella
194eb43607
fix(#6854): [LADTableSet] prevent compositions from becoming reactive (#6855)
* fix: prevent compositions from becoming reactive
2023-07-28 12:35:11 -07:00
Shefali Joshi
3c2b032526
Plan rendering inside a timestrip (#6852)
* Use the width and height of the container of the plan to set the activity widths and now markers

* Use the right parent to determine height and width

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-07-28 10:24:48 -07:00
Shefali Joshi
d4e51cbaf1
Use the current timestamp from the global clock (#6851)
* Use the current timestamp from the global clock. Use mode changes to set if the view is fixed time or real time

* Reload the page after adding a plan and then change the url params.
2023-07-28 09:37:11 -07:00
Jesse Mazzella
16e1ac2529
Fixes for e2e tests following the Vue 3 compat upgrade (#6837)
* clock, timeConductor and appActions fixes

* Ensure realtime uses upstream context when available
Eliminate ambiguity when looking for time conductor locator

* Fix log plot e2e tests

* Fix displayLayout e2e tests

* Specify global time conductor to fix issues with duplicate selectors with independent time contexts

* a11y: ARIA for conductor and independent time conductor

* a11y: fix label collisions, specify 'Menu' in label

* Add watch mode

* fix(e2e): update appActions and tests to use a11y locators for ITC

* Don't remove the itc popup from the DOM. Just show/hide it once it's added the first time.

* test(e2e): disable one imagery test due to known bug

* Add fixme to tagging tests, issue described in 6822

* Fix locator for time conductor popups

* Improve how time bounds are set in independent time conductor.
Fix tests for flexible layout and timestrip

* Fix some tests for itc for display layouts

* Fix Inspector tabs remounting on change

* fix autoscale test and snapshot

* Fix telemetry table test

* Fix timestrip test

* e2e: move test info annotations to within test

* 6826: Fixes padStart error due to using it on a number rather than a string

* fix(e2e): update snapshots

* fix(e2e): fix restricted notebook locator

* fix(restrictedNotebook): fix issue causing sections not to update on lock

* fix(restrictedNotebook): fix issue causing snapshots to not be able to be deleted from a locked page

- Using `this.$delete(arr, index)` does not update the `length` property on the underlying target object, so it can lead to bizarre issues where your array is of length 4 but it has 3 objects in it.

* fix: replace all instances of `$delete` with `Array.splice()` or `delete`

* fix(e2e): fix grand search test

* fix(#3117): can remove item from displayLayout via tree context menu while viewing another item

* fix: remove typo 

* Wait for background image to load

* fix(#6832): timelist events can tick down

* fix: ensure that menuitems have the raw objects so emits work

* fix: assign new arrays instead of editing state in-place

* refactor(timelist): use `getClock()` instead of `clock()`

* Revert "refactor(timelist): use `getClock()` instead of `clock()`"

This reverts commit d888553112.

* refactor(timelist): use new timeAPI

* Stop ticking when the independent time context is disabled (#6833)

* Turn off the clock ticket for independent time conductor when it is disabled

* Fix linting issues

---------

Co-authored-by: Khalid Adil <khalidadil29@gmail.com>

* test: update couchdb notebook test

* fix: codeQL warnings

* fix(tree-item): infinite spinner issue

- Using `indexOf()` with an object was failing due to some items in the tree being Proxy-wrapped and others not. So instead, use `findIndex()` with a predicate that compares the navigationPaths of both objects

* [Timer] Remove "refresh" call, it is not needed (#6841)

* removing an unneccessary refresh that waas causing many get requests
* lets just pretend this never happened

* fix(mct-tree): maintain reactivity of all tree items

* Hide change role button in the indicator in cases where there is only… (#6840)

Hide change role button in the indicator in cases where there is only a single role available for the current user

---------

Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: Khalid Adil <khalidadil29@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
2023-07-28 02:06:41 +00:00
Jesse Mazzella
4885c816dc
Migrate to Vue 3 Migration Build (#6767)
* Replacing all instances of the new Vue() component creation pattern
* In Vue 3, components cannot be created on the fly and mounted off-DOM. The suggested fix from Vue is to use createApp, but in the context of Open MCT this means dozens of Vue apps being created and destroyed at any given moment. Instead, we have used a community hack for creating individual components.
* beforeDestroy() -> beforeUnmount()
* destroyed() -> unmounted()
* The addition of deep: true option on Array listeners is now required to detect Array changes
* Open MCT is now mounted on a child div instead of directly on document.body


---------

Co-authored-by: Scott Bell <scott@traclabs.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-07-19 11:22:23 -07:00
Jamie V
42b545917c
[Time] Conductors and API Enhancements (#6768)
* Fixed #4975 - Compact Time Conductor styling
* Fixed #5773 - Ubiquitous global clock
* Mode functionality added to TimeAPI
* TimeAPI modified to always have a ticking clock
* Mode dropdown added to independent and regular time conductors
* Overall conductor appearance modifications and enhancements
* TimeAPI methods deprecated with warnings
* Significant updates to markup, styling and behavior of main Time Conductor and independent version.


---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Scott Bell <scott@traclabs.com>
2023-07-18 17:32:05 -07:00
Shefali Joshi
5b1298f221
Adds limits subscription to the Telemetry API (#6735)
* Add subscription for limits for domain objects
---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2023-07-14 17:09:05 -07:00
Andrew Henry
662d14354c
Suppress role selection if no roles available (#6802) 2023-07-14 16:22:25 -07:00
Shefali Joshi
e386036dbf
Enhance telemetry tables to allow in place updates for data (#6694)
* cherry-pick(#6602) : [ExportAsJson] Multiple Aliases in Export and Co… (#6658)

cherry-pick(#6602) : [ExportAsJson] Multiple Aliases in Export and Conditional Styles Fixes (#6602)

Fixes issues that prevent import and export from being completed successfully. Specifically:

* if multiple aliases are detected, the first is created as a new object and and added to it's parent's composition, any subsequent aliases of the same object will not be recreated, but the originally created one will be added to the current parent's composition, creating an alias.

* Also, there are cases were conditionSetIdentifiers are stored in an object keyed by an item id in the configuration.objectstyles object, this fix will handle these as well.

* Replaces an errant `return` statement with a `continue` statement to prevent early exit from a recursive function.

---------

Co-authored-by: Andrew Henry <akhenry@gmail.com>

* chore: bump version to `2.2.3` (#6685)

* Add configuration detection to update table rows in place

* Fix typo for datum access

* First add new rows to the table and then update rows in place

* Each row much be checked for in place updates and inserted as needed

* Fix typo. Remove unused code.

* Update datum only. And don't allow undefined values for columns

* Fix typo

* Rename function for clarity

* Use telemetry metadata to indicate datum property to use for in place updates

* Fix typo for method call

* Fix typo for return value

* fullDatum is the datum BEFORE normalizing.

---------

Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
2023-07-14 14:51:23 -07:00
Michael Rogers
6e79e5e2b0
[Timelist] Fixed Time use Now as start time - 5772 (#6497)
* Selectively filter activities only for realtime

* Remove unnecessary logic

* Adjust hideAll and showAll flags for non-realtime mode

* Filter out past events for fixed time

* Set the timestamp on bounds change

* Cleanup

* Removed duplicated listing since handled by different method

* Inverted variable

* removed setting showAll flag

* Remove unusued showAll value

* Removed noCurrent state and isCurrent logic check based on noCurrent

* Set formatted start / end to utc mode to synchronize with current time counductor value

* Add missed file

* Lint fixes

* Formatter improvements to use the Time API and lint fix

* Updated test to use Time API formatter instead of moment directly

* Linting fix to pluginSpec

* Prettier one line

---------

Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
2023-07-14 15:19:33 -05:00
Michael Rogers
32529ff6b2
Role selection for operator status roles (#6706)
* Add additional test roles to example user

* Add session storage and role to user indicator

* Update example user provider

* Added selection dialog to overlays and implemented for operator status

* Display role in user indicator

* Updates to broadcast channel lifecycle

* Update comment

* Comment width

* UserAPI role updates and UserIndicator improvement

* Moved prompt to UserIndicator

* Reconnect channel on error and UserIndicator updates

* Updates to status api canPRovideStatusForRole

* Cleanup

* Store status roles in an array instead of a singular value

* Added success notification and cleanup

* Lint

* Removed unused role param from status api call

* Remove default status role from example user plugin

* Removed status.getStatusRoleForCurrentUser

* Cleanup

* Cleanup

* Moved roleChannel to private field

* Separated input value from active role value

* More flight like status role names and parameter names

* Update statusRole parameter name

* Update default selection for roles if input is not chosen

* Update OperatorStatusIndicator install to hide if an observer

* console.log

* Return null instead of undefined

* Remove unneccesary filter on allRoles

* refactor: format with prettier

* Undid merge error

* Merge conflict extra line

* Copyright statement

* RoleChannelProvider to RoleChannel

* Throw error on no provider

* Change RoleChannel to ActiveRoleSynchronizer and update method calls to match

* iconClass to alert

* Add role selection step to beforeEach

* example-role to flight

* Dismiss overlay from exampleUser plugin which affected menu api positioning

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-07-14 19:10:58 +00:00
Jamie V
92329b3d8e
Tree item abort (#6757)
* adding abortSignal back to composition load
* suppress AbortError console.errors from couch, delay requests for test to trigger abort
---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
2023-07-14 17:49:10 +00:00
Khalid Adil
cde8fbbb0d
[Tooltips] Add tooltips on hover (#6756)
* Add tooltip api, extend object api to add telemetry composition lookups, and add tooltips to gauges/notebook embeds/plot legends/object frames/object names/time strips/recent objects/search results/object tree

* Add tooltips to telemetry/lad tables

* Styling normalization, sanding and polishing.

* Add tooltips for Conditional widgets and Tab Views

* Add tests

* Switch to using enum-ish consts for tooltip locations

* Trim LAD table row name to account for spacing required by linting rules

---------

Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
2023-07-13 21:37:59 -07:00
Shefali Joshi
795d7a7ec7
Fix couchdbsearchfolder and allow clocky reports (#6770)
* Fix CouchDBSearchFolder plugin to have unique identifiers.
Allow ttt-reports to be viewed as web pages

* Remove ttt-report type from WebPage view provider. This is being moved to the viper-openmct repo instead

* Adds check for classList

* Add WebPage to the components list

* Remove uuid and use the folder name as the identifier instead

* Remove focused test

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
2023-07-13 19:50:52 +00:00
Michael Rogers
5031010a00
Add role attribution to notebook entries and export (#6793)
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
2023-07-13 19:09:00 +00:00
Andrew Henry
ac22bebe76
Batch Couch DB create calls (#6779)
* Implement persistence batching for Couch DB

* Add tests for persistence batching

---------

Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
2023-07-12 04:36:00 +00:00
Shefali Joshi
d08ea62932
Toggle between showing aggregate stacked plot legend or per-plot legend (#6758)
* New option to show/hide stacked plot aggregate legend - defaulted to not show.
Use the Plot component in the StackedPlotItem component for simplicity and show/hide sub-legends as needed.

* Fix position and expanded classes when children are showing their legends

* Fix broken tests and ensure gridlines and cursorguides work.

* Adds e2e test for new legend configuration for stacked plot

* Address review comments - Remove commented out code, optimize property lookup, fix bug with staleness

* Remove the isStale icon in the legend when a plot is inside a stacked plot.

---------

Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
2023-07-11 23:16:46 +00:00
Scott Bell
d8ac209a96
Fix race condition in image annotations loading and drawing them on the canvas (#6751)
fix race condition between annotation loading and drawing the annotations
2023-06-21 20:20:35 +02:00
Scott Bell
5a7174bf2a
Annotations for imagery prototype (#6624) 2023-06-20 17:12:45 +00:00
David Tsay
bd5cb8139c
Fix controls scope to only the current image (#6710)
* de-dupe method

* there can be only one... input per label

* there can be only one... id but we need none

* there can be only one... input

* create test and add multiple images to display

* WIP test written but not passing

* fix test

* Update e2e/tests/functional/plugins/imagery/exampleImagery.e2e.spec.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* Update e2e/tests/functional/plugins/imagery/exampleImagery.e2e.spec.js

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>

* remove await from synchronous code

* linting

---------

Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
2023-06-16 22:14:38 +00:00
Shefali Joshi
022dffd419
Timelist bug fixes (#6661)
* Ensure timelist scrolling happens correctly for clock as well as fixed time

* If an activity has already started, show the duration as time to/since the end of the activity

* Addresses review comments: Reverse +/- indicators, removes milliseconds from times.

* Fix linting issues

* Add e2e test for timelist display

* Scroll to 'now' if available
2023-06-16 19:45:59 +00:00
Scott Bell
fb5bbde154
Batch annotation requests (#6719)
* batching, but query is messed up

* batching requests

* remove debug statement

* add test

* revert couchdb change
2023-06-15 17:08:34 -07:00
Jesse Mazzella
9a01cee5fa
feat: Annotation API changes to support Geospatial (Map) annotations (#6703)
* feat: `getAnnotations` can take an `abortSignal`

* feat: add `MAP` annotationType

* fix: handle `MAP` annotations in search results

* fix: have `loadAnnotationForTargetObject` take an `abortSignal`

* fix(#5646): abort pending annotations requests on nav away from notebooks or plots

* fix: handle AbortErrors gracefully

* fix: remove redundant `MAP` annotation type

* docs: add comment

* fix: navigate before selection for geospatial results

* feat: comparators for annotation target equality

- Adds `addTargetComparator()` to the Annotation API, allowing plugins to define additional comparators for certain annotation types.
- Update usage of `_.isEqual()` for targets to use the `areAnnotationTargetsEqual()` method, which uses any additional comparators before falling back to a deep equality check.
- Handle aborted `getAnnotations()` calls gracefully in the AnnotationInspectorView

* test: add unit tests for target comparators

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-06-14 19:33:26 +00:00
Scott Bell
3cc93c0656
Add time context for telemetry collections (#6543)
* add time context for telemetry collections

* move time context to options

* clean up jsdoc

* clean up jsdoc

* Update src/api/telemetry/TelemetryAPI.js

* clean up comments

* use time context bounds if defined for start and end

* refactor: format with prettier
2023-06-09 17:21:44 +00:00
Scott Bell
a9158a90d5
Support filtering by severity for events tables (#6672)
* hide tab if not editing and fix issue where configuration is null

* show filters tab if editing

* works with dropdown

* add a none filter to remove 'filters applied' styling'

* pass appropriate comparator

* openmct side is ready

* clear filter still not working

* fix clearing of procedures

* add filters

* add some basic documentation

* add some basic documentation

* add some basic documentation

* fix grammar issues and convert away from amd pattern

* convert to permanent links

* refactor: format with prettier

* add aria labels for selects
2023-06-01 14:26:14 -07:00
Jesse Mazzella
fea68381a7
fix: unlisten to annotation event beforeDestroy (#6690)
* fix: unlisten to annotation event beforeDestroy

* refactor: `npm run lint:fix`

---------

Co-authored-by: Scott Bell <scott@traclabs.com>
2023-05-24 09:29:19 +00:00
Jesse Mazzella
caa7bc6fae
chore: add prettier (2/3): apply formatting, re-enable lint ci step (#6682)
* style: apply prettier formatting

* fix: re-enable lint ci check
2023-05-18 21:54:46 +00:00
Jesse Mazzella
172e0b23fd
chore: add prettier (1/3): add packages, configurations, fix lint issues (#6382)
* fix: remove redundant eslint rules

* chore: bump `prettier` to v2.8.7

* docs: vue files to use html comments for licenses

- Prettier's Vue parser freaks out if it sees a *.js style comment in a *.vue file.

* docs: more licenses for vue files

* fix: don't ignore *.vue files

* fix: use defaults for tabWidth and printWidth

* simplify .prettierignore

* enforce a printWidth of 100

* fix: use `eslint-plugin-prettier`, remove conflicting rules

* test: fix gauge tests (for real)

* test: fix notebook test selectors

* test: fix restrictedNotebook test selectors

* test: remove useless assignment

* lint: __dirname as global

* lint: revert eslint config + whitespace changes, commit new config

* style: remove unnecessary string concat of literals

* test: fix missed gauge test

* fix: use new eslint rules

* feat: add blank `.git-blame-ignore-revs` file

* docs: update to mention Prettier and format.

* Revert "test: fix gauge tests (for real)"

This reverts commit 6afad450389edc2f16ff0d00c9524621a7ba53bc.

* Revert "test: fix notebook test selectors"

This reverts commit 17fe1cbbff02e9298f041b5ea0fea5494fe54d94.

* Revert "test: fix restrictedNotebook test selectors"

This reverts commit 97e0ede826b7dd61c5443845443d806a56f3f305.

* Revert "test: fix missed gauge test"

This reverts commit e2398fc38ca94beff2066cc253173412ad47f8b9.

* test: fix gauge tests (no formatting)

* test: update notebook e2e selectors (no formatting)

* test: update restrictedNotebook e2e selectors (no formatting)

* fix: temporarily disable lint check
2023-05-18 21:29:20 +00:00
Rukmini Bose (Ruki)
5df7971438
[Plots] Fix wrapping of Y Axis when height is small (#6264)
* New branch to fix y-axis icons

* test: fix locator

---------

Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
2023-05-17 18:32:05 +00:00
Charles Hacskaylo
225fa22c72
Fix Locator in Move and Link dialogs (#6663)
Closes #6654
- Corrected form builder configurations.
2023-05-16 09:50:42 -07:00