* making a revert on failed save more clear
* only notify conflicts for non sync items in object api, spruce up notebook with better transaction tracking and observing and unobserving during transactions, structuredClone backup in monkeypatch
* WIP
* WIP debuggin
* fresh start
* dont observe in transaction objects, small changes to notebook vue to indicate saving/prevent spamming, added forceRemote flag to objects.get
* updating readability of code as well as fix issue of stuck transaction for same value entry edits
* once entry is created, click out to blur
* quick revert
;
* click outside of entry to blur and commit
* switched to enter... as suggested :)
* removing unused variable
* initializing transaction to null as we are using that now for no transaction
* fix: ensure EventSource is closed so it recovers
- Make sure to close the CouchDB EventSource as well, so that it can recover in the case where two tabs or windows are on Open MCT and one refreshes. The check on line 81 was preventing recovery since the EventSource was not closed properly.
* enhance, enhance, enhance readability
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* fix: use ephemeral timeContext for thumbnail metadata requests
* fix(TEMP): use `eval-source-map`
- **!!! REVERT THIS CHANGE BEFORE MERGE !!!**
* fix: only mutate if object supports mutation
* fix: pass identifier instead of whole domainObject
* fix: add start and end bounds to request
* Revert "fix(TEMP): use `eval-source-map`"
This reverts commit 7972d8c33a.
* docs: add comments
* fix: refresh object after conflict error
* fix: recover from error thrown during create
- Ensure that the "Saving" modal dialog is closed
- Notify user of the error, and also print to console to catch in e2e
* fix: default selector tree item to 'mine' folder
- If create fails due to a conflict or otherwise, and the user immediately tries to "Create" again, default the selector tree's selected item to the "mine" folder (which we know exists).
* fix: don't listen to composition if Selector Tree
* refactor: remove dead code
* fix: use MutableDomainObjects in the tree
- Only use mutables and observers if NOT a SelectorTree
- Properly clean up observers and mutables when a parent item is removed from the tree
* test: verify conflicts don't break object creation
* test: verify dialog closes and object is created
* refactor(e2e): update test
- Error notification on 'My Items' folder missing was removed, so don't check for it
* test: increase timeout
* refactor(e2e): use Promise.any()
* refactor(e2e): use Promise instead of polling
* test: add 2p annotation
* test: use `waitForRequest` instead of promise
- tidy up test, add comments describing our pattern
* docs(e2e): add best practices for network tests
* refactor(e2e): avoid using Promise.any
* fix: de-reactify observer and mutable maps
* fix: destroy by path on treeItem close
* fix: don't refresh for synchronized objects
* docs: fix a typo 🔥
* fix: remove existing mutable before adding
* fix: fail fast if these aren't functions
- Remove check for typeof 'function' to not hide any potential coding errors
* fix: walk up navigationPath if item not found
* chore: fix lint errors
* fix: parse conflicted object name correctly
* fix: re-throw conflict error
* fix: Cancel edit mode on conflict
* addRows Refractor
Co-authored-by: Jesse Mazzella <ozyx@users.noreply.github.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
Co-authored-by: John Hill <john.c.hill@nasa.gov>
* Setup a scroll handler to avoid using scrollIntoView when in a layout
* Implement a separate scroll to action when in layouts
* Simplified scroll reset event and logic
* Adjust test to capture new scroll handler
* Remove done invocation after converting to async fn
* Prevent default for arrow keys to avoid scrolling layoyut
* await scrollToFocused
* Logical or to nullish coalescing
* Removed set in favor of using isNavigatedObject api
* Apply animation style after image history has length
* Lint fixes
Co-authored-by: Scott Bell <scott@traclabs.com>
* Change approach to filter positive and negative infinity values when updating stats
* Change filter when there are no plot stats and a positive/negative infinity value occurs
* Add check for negative infinity
* Name the unplottable values array and move it to the constructor
* Add option to render infinity values
* Add e2e test to render plot with infinity values
* Add accessibility labels to help locate items in tests
Refactor tests
* refactor(e2e): stabilize plotRendering test
Co-authored-by: Shefali <simplyrender@gmail.com>
Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
* Expose overlay plot so that it can be imported by an external plugin
* If the current object has an independentContext, ignore any upstream independentContext
* Accept any custom url param in open in new tab action
* Bump version to `2.1.3` (#5973)
* Preserve Gauge configuration changes on create/edit (#5986)
* fix(#5985): deep merge on create/edit properties
- Perform a deep merge of old and new properties on Create/Edit properties actions
* refactor(e2e): improve selector in appActions
* test(e2e): add tests for gauges
- test creating a non-default gauge (checks only for console errors)
- test updating a gauge (checks only for console errors)
* fix(e2e): use pluginFixtures for gauge tests
* fix(e2e): prevent fail if testNotes is undefined
* Make the tree key unique (#5989)
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* Use composition API in RemoveAction
* refactor: ScatterPlotView to use composition API
* fix: initialize transaction to null and reset
* fix: remove seriesKey and correct found condition
* refactor: Gauge to use composition API
* refactor: DisplayLayout to use composition API
* test: RemoveAction starts and ends transactions
* test: add ScatterPlot add/remove telemetry test
* test: fix e2e test and add annotation
* test: remove unnecessary awaits
* test: make some displayLayout tests stable
* test{displayLayout}: navigate to objects via url
* test(gauge): add test for add/remove telemetry
* fix(#3117): init layoutItems within transaction
* refactor: add clearSelection() method
* test: remove unstable tag
* fix(#3117): init frames and use transactions
- fixes#3117 for flexible layouts by syncing frames and composition
- also uses transactions now to avoid race condition
* test(flexibleLayout): removing items via context menu
- add test for removing items via context menu while focusing the layout
- add test for removing items via context menu while not focusing the layout
* fix(e2e): use pluginFixtures
* refactor(e2e): improve selectors
* refactor: use async/await for saving transactions
* docs(e2e): fix comments
* test: use soft expects
Co-authored-by: Jamie V <jamie.j.vigliotta@nasa.gov>
* feat: sort interceptors by priority
* fix(#5914): high priority for MyItemsInterceptor
* fix: create myItems if object is falsy
* test(e2e): update snapshots
Co-authored-by: Scott Bell <scott@traclabs.com>
* [e2e][couchdb] Add test for mct5616
- Add test to verify that modifying object properties generates a single persistence operation with CouchDB
* [e2e] Poll for 1 sec to allow time for request
* [e2e] ignore expected console error
* add comments
* add `aria-label`s to form select fields
* add `aria-label` for clock format select
* [e2e] Improve selector
* make property name less ambiguous
* refactor(e2e): use default object name