* 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>
* 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>
* 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>
* 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>
* 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>
* 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
* fix: setStatus when add/replace a plan in composition
* test: add regression test
* chore: lint:fix
* test: add visual tests for plan and gantt chart drafts
* test: add appActions, stabilize overlayPlot test
- Adds `waitForPlotsToRender`, a function that waits for all active `.plot` elements on the page to load and draw their series data
- Adds `getCanvasPixels`, a function that takes a canvas selector and retrieves an array of canvas pixel data.
- Modifies `getCanvasPixels` to use `page.evaluateHandle()` so that the canvas handle lifetime exists throughout the test (this was causing flakiness before)
* test: refactor and stabilize `plotRendering` tests
* test: remove redundant test suite
* test: stabilize plot legend color swatch test
* docs: mention `waitForPlotsToLoad()` in e2e docs
* refactor: have getCanvasPixels return actual rgba values
* docs: fix typo
* test: use appAction and fix reload wait condition
* docs: add additional context for `waitForPlotsToRender()`
* refactor: one-liner
* docs: tidy up docs
* test(visual): add theme to notification banner test name
* test: rename file
* test: switch to small example plan
* test: snapshot object-view only
* test: fix selectors
* refactor: chain locators together
* add e2e test
* fix: remove slow function
* test: After deactivating the button, new objects must be inserted and the button becomes active again
* test: ensure clear recent objects button is active or inactive
* add an event to notify when an object is inserted in the recents list
* add an event to notify when an object is inserted in the recents list
* fix: adjusting function name and add validation for triggering the event
* fix: add event to disable button only when user click ok to clear list of recents
* test: fix failing e2e + better assertions
---------
Co-authored-by: Jesse Mazzella <jessemazzella@gmail.com>
* Refactor string to stream
* add to restricted notebooks and allow for blank users
* forgot to add notebook
* use better types and fix test
* move streamToString
* add export group
* catch blank pages
* add simple prototype
* tags and metadata now exported
* add form for options
* revert notebook
* add simple e2e test
* add test stubs
* death to debug
* Closes#6321
- Set `user-select: none` on LAD Table td elements.
- Added hover effect to LAD Table rows as affordance of the Action
menu's availability.
* Add test to ensure rows cannot be selected but do show context menus
---------
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* fix(#6455): fix infinite loop
- When the Create modal is opened, it defaults the object selected in the tree to the parent of the currently selected object. However, if this object is static, it can sometimes have a weird navigationPath and an edge case where we try to infinitely walk up the path to find the parent.
- This adds a fail-safe to verify that the navigationPath by this point contains `/browse/mine` (thus is within a creatable path). If not, it sets the default selected tree item to the "My Items" folder
---------
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* free plot on search selection and remove rectangles when resuming
* add test
* remove rectanges
* update test
* more reliable way to load annotations
* use event to wait for axes and update tests
* restore test
* cancel selection in plots if clicking outside plot
* Revert "cancel selection in plots if clicking outside plot"
This reverts commit 82ea50152b.
* Listen to the navigation triggered selection of the target object before selecting the annotations for the object
* remove commented out code
* check if we've already navigated to the object
---------
Co-authored-by: Khalid Adil <khalidadil29@gmail.com>
Co-authored-by: Shefali <simplyrender@gmail.com>
* Only use default if we've evaluated as default
* Add e2e test for conditional sets
---------
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* refactor: convert Type API to ES6 module
- Another AMD module bites the dust 🧹
* feat: add initial configurable plan type
- Name change TBD
* feat: add `clipActivityNames` property
- refactor: initialize data to `null`
* refactor: general code cleanup
* feat(WIP): name clipping via clipPath elements
* feat: compose a Gantt Chart using a Plan
- Allows Plans to be dragged into Gantt Charts (name tentative) to create a configurable Activity View
- Clip/Unclip activity names by editing domainObject property
* feat: replace Plan if another is dragged in
- SImilar to Gauges or Scatter Plots, launch a confirmation dialog to replace the existing Plan with another, if another Plan is dragged into the chart.
* test: fix tests, add basic tests for gantt
* tes(e2e): fix plan test
* docs: add TODO
* refactor: clean up more string literals
* style: remove `rx`, increase min width
- round widths to nearest integer
* refactor: extract timeline creation logic
- extracts the logic for creating the timeline into its own component, `ActivityTimeline.vue`. This will save us a lot of re-renders, as we were manually creating elements / clearing them on each tick
* style: fix text y-pos and don't round
* fix: make activities clickable again
* docs: add copyright docs
* feat: swimlane visibility
- configure plan view from inspector
fix: update plans when file changes
- fix gantt chart display in time strips
- code cleanup
* fix: gantt chart embed in time strip
* remove viewBox for now
* fix: make `clipPath` ids more unique
* refactor: more code cleanup
* refactor: more code cleanup
* test: fix existing Plan unit tests
* refactor: rename variables
* fix: respond to code review comments
- Move config manipulation to PlanViewConfiguration.js/.vue
- Variable renames, code refactoring
* fix: unique, reproducible clipPathIds
* fix: only mutate swimlaneVisibility once on init
* fix: really make clipPathId unique this time
* refactor: use default config
* Closes#6113
- Refined CSS class naming and application.
- Set cursor to pointer for Activity elements.
- Added <title> node to Activity elements.
- Styling for selected Activities.
- Better Inspector tab name.
* fix: make Plan creatability configurable and false by default
* test: fix existing tests and add a couple new ones
* Closes#6113
- Now uses SVG <symbol> instead of rect within Activity element.
- Passes in `rowHeight` as a prop from Plan.vue.
- SWIMLANE_PADDING const added and used to create margin at top and bottom
edges of swimlanes.
- Refined styling for selected activities.
- New `$colorGanttSelectedBorder` theme constant.
- Smoke tested in Espresso and Snow themes.
* fix: default swimlaneWidth to clientWidth
* test: fix test
* feat: display selected activity name as header
* fix: remove redundant listener
* refactor: move `examplePlans.js` into `test-data/`
* docs: remove copyright header
* refactor: move `helper.js` into `helper/`
* refactor: `helper.js` -> `planningUtils.js`
* fix: update pathing
* test: add tests for gantt/plan
- add visual tests for gantt / plan
- add test for clicking a single activity and verifying its contents in the inspector
---------
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
* fix: inspector view tab priority
- fixes issue where inspector view priorities were not being passed to the view registry
* chore: run lint:fix
- eslint sez no danglin' commas! EVER!
* fix: update more viewProviders
---------
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* fix(#6391): refresh composition on treeItem open
- On treeItem open, gets the latest composition from persistence
- Composition was being refreshed, but only within the same instance (mutables)
* test: regression tests for localStorage and couch
---------
Co-authored-by: Scott Bell <scott@traclabs.com>
* Changed tooltip text to be Shift+Alt drag to pan
* Updated e2e test to match alt text change
* Updated panHotKey to match changed alt text
---------
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* allow lad tables rows to be selected
* rows now clickable and previewable
* trying to add type column
* aggregate and telemetry
* if aggregate, use blank for value and timestamps
* remove extraneous path lookup
* cleanup css
* add tests
* allow hiding of type column
* adjust tests to include type column
* adding lad table configuration, specifically column visibility
* making sure units column checkbox is updated when lad tables are removed from lad table sets
* fixes based on PR feedback, copyright, consts, code, oh my!
* added a test for column hiding
* remove .only
* add a notification for inspector view that must be editing, move selection logic to vue component as it was not being triggered after navigating away in the inspector tabs
* Closes#6354 Notebook Enter key adds new lines
- Removed enter key handlers from Vue component.
- Added "Save" button.
* entry must be selected before editing
* focus on newly created entry
* Closes#6354 Notebook Enter key adds new lines
- Removed enter key handlers from Vue component.
- Added "Save" button.
* do not allow edit unless entry is selected
* remove css for disabled cass
---------
Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
* framework for all inspector views being provided
* move elements view to plugin
* move location view into plugin
* move styles view into plugin
* move properties view into plugin
* install inspector views in index.html
* rename filters inspector view provider for tab
* finish elements view as plugin
* finish location view as plugin
* finish properties view as plugin
* finish styles view as plugin
* point main styles to new plugins
* finish inspector tab and views components
* fix paths for styles views
* fix path issues
* rename fault management inspector view
fix unit test
* fix paths for unit tests
* rename bar graph inspector view
fix unit test
* rename plots inspector view
fix unit test
* inspector views installed in mct.js
* sort inspector views by priority
* make name required for inspector tabs
* priority changes
* only show filters tab if filters exist
* object renamed to domainObject
* remove dead code
* select first tab if selected tab becomes hidden
* bandaid fix to get e2e working
* also apply bandaid to this test
* [a11y] Basic ARIA tab role for Inspector panels
* test(e2e): better selectors for scatterPlot test
* test(e2e): fix search test selector
* pass key and glyph to views
* use key for tabs identification
* high + 1 priority for object specific views
* Closes#6118
- Significant layout and behavior refinements to Inspector tabs.
- New theme constants for tabs.
- Tabs in Tab Views updated to use theme constants.
* Closes#6118
- Refinement to look of Inspector tabs.
- Shortened names in many *InspectorViewProvider.js files.
- WIP adding glyph capability, display not yet wired up.
* Closes#6118
- Tightened H2 spacing in Inspector.
* move annotations into plugin
* register annotations view provider
* move tags inside annotations
* fix paths
* move element item group into plugin
* move PlotElementsPool view into plugin
* plots has a different element view
* fix paths for plot elements pool
* fix: `role=` instead of `aria-role=` 🤦♂️
* test(e2e): fix tab locators
* move location views into properties tab view
* include location.scss
* move location into properties tab
* fix html for location within properties view
* retain selected tab on new selection
* refresh view of same tab with new selection
* add browse mode inspector view for alphanumerics
* fix prop passing
* removed vestigial code
* fix inspector tab selection
* remove timeouts and unnessecary awaits
* test: assert checkbox status before checking
* add selectInspectorTab to general app actions
* use selectInspectorTabs from appActions
* need to pass page to playwright function
* select the correct tab
* fix plan unit test
* fix plots tests by clicking on correct tab
---------
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Scott Bell <scott@traclabs.com>
* fix: Transaction-ify the CreateAction
* test: add regression test and update tree locators
* test: make object search test less flaky
* test: revert locator
* freeze if annotation is selected
* add test
* add stacked plot test
* actually test ticket issue
* wait for canvas to stabalize
* wait for canvas to stabalize
* address PR comments
* fix: ensure Vue can react to stacked plot item reorders
- Use Vue.$set instead of assignment so Vue can pick up StackedPlot composition reorders immediately
* test(e2e): add test for stacked plot item reorder
* docs: specify plot item order in comments
* fix: correct page.goto() url