* [Frontend] Viewport metatag updated
Fixes#2008
- Added shrink-to-fit=no;
* [Frontend] Fix to Time Conductor for Safari
Fixes#2008
- CSS mod for gradient blockers in TC
* [Frontend] Remove data visualization element in TC
Fixes#2008
- Note: this element holds the TOI indicator!
* [Frontend] Hide TC ticks when on mobile
Fixes#2008
- Added class `mobile-hide` to <conductor-axis>
* [Frontend] Significant mobile fixes for panes and viewport
Fixes#2008Fixes#1770Fixes#1928
- Left and right panes now positioning properly in mobile;
- Fixed body overflow problem for #2008 "viewport" issue;
* fixes multiple issues related to 2008
context menu firing too often - fixed by setting a isDragging flag
Add and Remove respective classes on mobile orientation change by using mathMedia
Close tree pane when navigating in mobile portrait only
* [Frontend] Various
Fixes#2008
- Always show Timeline zoom controls;
- Prevent inline editing of object names in the main view when in
mobile;
* Add touch functionality to mct-drag
it allows users to use the splitter in mobile
and include appropriate tests
* remove couchdb and reinstall localStorage
* [Frontend] Mods to imagery CSS
Fixes#2008
- Reduced size of image thumbnails;
- Changed min-heights of image and thumbnail
holders for .mobile.phone
* [Frontend] Add Advanced CSS property to Display Layouts
- WIP!
- Add property to bundle;
- Add CSS for column, row and fit-all classes;
* [Frontend] Grid holder and class prefixing
- WIP!
- Edit grid-holder set to position: absolute
- Added "fl-" prefix to fluid layout class names;
* [Frontend] More CSS tweaks
- WIP!
* [Frontend] Added .drag-vertical
- For use in Elements pool;
- Applied in elements.html;
* fix: check if stats is present before reseting zoom (#2029)
* [Timer] Fix regression in timer visual indication and add tests
* [TimeConductor] Fixes Issue #925 (#2020)
* [TimeConductor] Fixes Issue #925`
- Pressing enter in date field will update bounds properly in Safari
* [Copyright] Update copyright year across platform code references
Fixes#2034.
* fixes issue #1999 - Use Object name as default export filename (#2001)
* fixes issue #1999
add dynamic name(object name) to exportAsCSV filename
* make requested changes
* [Frontend] Add Advanced CSS property to Display Layouts
- WIP!
- Add property to bundle;
- Add CSS for column, row and fit-all classes;
* [Frontend] Grid holder and class prefixing
- WIP!
- Edit grid-holder set to position: absolute
- Added "fl-" prefix to fluid layout class names;
* [Frontend] More CSS tweaks
- WIP!
* [Frontend] Added .drag-vertical
- For use in Elements pool;
- Applied in elements.html;
* [Frontend] More CSS tweaks
- WIP!
- Added .fl-phone-best-fit
* working drag and switch, need to mutate
* fix conflict
* add ability to rearrange composition using drag gestures
* add maxHeight and maxWidth to layout frames
* [Frontend] Added fl-mobile-best-fit
* [Frontend] Allow editor to set mins dimensions for fluid layout
- Cleanups in CSS;
- Mod to LayoutController.js to use minWidth and minHeight;
* [Frontend] Styles for reordering in Elements pool
- Changed class "dragging" to "reordering";
- Visual styling WIP;
- TODO: style "reorder-actor" when implemented;
* add reorder-actor class to draggable item in elements pool when selected and remove class when dropped
* stacked plots reload on composition change
* [Frontend] Tweaks to Elements pool reordering styles
- "reorder-actor" added/removed from parent tree item;
- Refined styling for drag in process in list;
* [Frontend] Added new 12px list view glyph
- Font files and CSS updates;
* [Frontend] Added new 12px grippy glyph
- Font files and CSS updates for Elements pool sorting styling;
* fix failing test
* make reviewer requested changes
* remove create dialog from mobile
Users must draw a marquee box with diagonal size of atleast 7.5
pixels. This prevents clicks from being translated to zooms on
the plot. Because startMarquee triggers a plot history update.
endMarquee must remove the plot history update when preventing
marqueeZoom. This has a side effect of causing a requery for
data, but is a simple enough solution for now.
Fixes#2002.
* State generator realtime uses strings
Change the state generator's realtime data to return string values
instead of number values. This exercises an edge case where
enumerations could be a string instead of a number. Exposes #2018.
* [Telemetry] handle string enumeration value
Don't treat all strings as properly formatted enumeration values.
Instead, check any input value against known enumerations and if
one matches, return it. Otherwise, return input.
Fixes#2018
* Summary Widgets produce telemetry
Adds a summary widget telemetry provider and metadata provider to
the summary widget plugin. Supports subscribing to realtime
summary widget evaluations without needing the summary widget UI.
Fixes https://github.com/nasa/openmct/issues/1893
* Use metadata to determine telemetry types
Update summary widgets to use metadata to determine telemetry types.
fixes https://github.com/nasa/openmct/issues/1801
fixes https://github.com/nasa/openmct/issues/1883
* shared evaluators, more telemetry values
Share summary widget evaluators to reduce number of times a object
needs to be loaded when dealing with multiple queries.
Fixes https://github.com/nasa/openmct/issues/1893
* Separate view for editing
fixes https://github.com/nasa/openmct/issues/1827
* Update summary widget tests
* Workaround incorrect telemetry capability application
In the case where an object support telemetry but does not support
the specific type of telemetry request i.e. a summary widget has
request for lad but not for historical, an error will be thrown.
* use makeKeyString
use makeKeyString when storing configuration of objects in summary
widgets. Otherwise, namespace information would not be properly
tracked. Fixes https://github.com/nasa/openmct/issues/1949
* [Tests] coverage for EvaluatorPool
Add tests for EvaluatorPool and fix a bug where the same evaluator
was returned for different objects.
* Add copyright headers
* Update metadata provider registration
* attach title to a element
* Only evaluate realtime when all data available
* Prevent update after destroy
* Don't error when no telemetry exists
* Don't mutate on view destroy
Improper removal of listeners was triggering a mutation on view
destroy, which happens after the initial persist call to server
that occurs when saving. This mutation occurs after the edit
transaction has been closed, which would result in an immediate
persist call. This can cause a race condition when the first
persist call has not completed, which causes a 409 conflict and
a persistence error.
Fix#1827
* Spec for telemetryProvider
* update on time system change
Summary Widgets now resubscribe and requery for data when time
system changes, in order to ensure they're showing the correct
data to the user.
* link to telemetry request details
* rename variables, update jsdoc
Addresses comments in https://github.com/nasa/openmct/pull/1943
When webgl contexts are lost, fallback to 2d rendering context.
Because it's not possible for a canvas to generate a different
context after one has already been created, the canvas elements
must be recreated from scratch, and event handlers must also be
updated.
This resolves https://github.com/nasa/openmct/issues/1976
Plot waits for element to have width before loading. Otherwise,
it may make a minmax request with an invalid size parameter.
Fixes https://github.com/nasa/openmct/issues/1974
* [Testing] Create unit tests for Tests API
* [Documentation] Fix spelling in TypeRegistry.js
* update TypeRegistrySpec to conform to code review
use .get() on typeRegistryInstance
Fixes#1514
* [API] Support dynamic telemetry metadata
Add support for dynamic telemetry metadata via custom telemetry
metadata providers.
The metadata provider API should be considered unstable in it's
current invocation.
* Perform deprecation checking at runtime
* SWG uses telemetry metadata provider
* Don't throw with no matched metadata provider
* Update API docs
* Add license header
* Combine metadata providers with general telemetry providers
* Replace `TelemetryAPI.canProvideTelemetry` with
`TelemetryAPI.isTelemetryObject`.
* CanProvideTelemetry is deprecated
* Change SWG inputs to numberfield
* [Plugin] Add static root plugin
Add StaticRootPlugin, which allows a file exported with the ImportExport
plugin to be mounted as a static root in Open MCT. Allows deployers
to configure standard displays for deployments by exporting displays they
have already created.
* Include all src files
Merge of new plot
* Introduces new Plot object and view
* Removes Old Plot
* Add LAD support and state type to generators
* Removes Telemetry Panel Type
* Telemetry API Updates
* UTCFormat.parse: passthrough numbers
* TelemetryAPI: default request arguments
* TelemetryAPI: fix enum formatting
* Markup and styling to support new plots
All views are expected to implement dynamic composition handling
by listening for the "add" and "remove" events and then calling
"collection.load()" when they are ready to handle these events.
However, it does not make sense that every composition provider will
be dynamic, so implementing support for dynamic composition should
not be a requirement. This commit removes that requirement.
Fixes#1914
Updates to sub object selection, first cut of selection APIs.
* [API] Add inspector view registry to register inspector view providers and show a view in the inspector.
[API] Modify the selection API to register the click event and handle the event. The API will add a class to the selected object and the immediate parent of the selected object.
[Directive] Implemenet mct-selectable directive for making an element selectable.
[Layout] Update the layout controller to use the Selection API. Also, add double click gesture to allow drilling into a selected object.
Populate the Elements pool with contained elements of the selected object. Update toolbar and inspector to listen for the changes in selection.
* [Frontend] Mods to markup and CSS for sub-object selection
* MCTSelectable allows selection in initialization, use to select on navigation
[Frontend] Show grid in first nested layout, hide from deeper nesting. Only show grids when applicable to relative selection.
* Fix checkstyle and lint errors
* Bring back the change that made mct-init-select work
* [Inspector] Make sure the right content is displayed based on whether a view provider exists or not.
* Only show table options when editing
* Make reviewers' requested changes
* Fix broken tests
* [Frontend] Cleanups and tweaks
Fixes#1811
- Cleanups between frame, editor and selecting.scss;
- Hover and selected borders visually pumped up a bit;
- Solid borders on hover and selecting when browsing;
- Dashed borders for layouts when editing;
- Fixed cursor to only show move capability when
element is selected;
* [Frontend] Tweaks to frame.no-frame layout
Fixes#1811
- Margin set to 0;
- Overflow set to hidden;
* [Frontend] Fixed position items border width fixed
Fixes#1811
- Set to 1px;
* Add tests for inspector controller and fix broken tests. Clean up code.
* [Fixed Position] Stop event propagation on click handlers in fixed position to avoid the event reaching the selection click handlers which caused issues with toolbar and selection."
* Fix tests
* Add tests
* Add test
* Remove element from document
Rewrite Autoflow tabular using Vue and all new telemetry APIs. Also adds LAD support to autoflow tabular.
* [Autoflow] Add Vue dependency
...to begin refactor away from Angular, #1810
* [Autoflow] Add Vue to require config
...to support usage in refactoring Autoflow Tabular view.
* [Autoflow] Sketch in new plugin registration
* [Autoflow] Bring over template, without Angular
* [Autoflow] Add license headers
* [Autoflow] Add VueView
...to simplify addition of Vue-based views.
* [Autoflow] Add Vue bindings to template
* [Autoflow] Sketch in AutoflowTabularView
* [Autoflow] Include title for row names
* [Autoflow] Begin adding controller
* [Autoflow] Sketch in controller functionality
* [Autoflow] Support object filtering
* [Autoflow] Unlisten from controller on destroy
* [Autoflow] Track rows on an interval
* [Autoflow] Support column width changes
* [Autoflow] Expose new plugin through openmct.plugins
* [Autoflow] Fix run-time errors instantiating view
* [Autoflow] Fix row generation error
* [Autoflow] Fix row formatting
* [Autoflow] Utilize width
* [Autoflow] Update autoflow view when filter changes
* [Autoflow] Enable autoflow for telemetry panels
...in developer environment.
* [Autoflow] Bind data-value for rows
* [Autoflow] Include limit evaluations
* [Autoflow] Rename property rows to rowCount
* [Autoflow] Retain rows during update
* [Autoflow] Add bindings to clear autoflow filter
* [Autoflow] Show updated timestamp
* [Autoflow] Remove obsolete plugin
* [Autoflow] Load vue for tests
* [Autoflow] Begin adding spec for autoflow tabular plugin
* [Autoflow] Test plugin registration
* [Autoflow] Begin spec for AutoflowTabularView
* [Autoflow] Obey contract from VueView.show
...by populating a container, instead of replacing it.
* [Autoflow] Begin testing behavior
* [Autoflow] Get initial row heights
* [Autoflow] Verify unsubscription on destroy
* [Autoflow] Test column width button
* [Autoflow] Simplify controller activation/destruction
* [Autoflow] Verify data display
* [Autoflow] Test limit display
* [Autoflow] Fully initialize controller
* [Autoflow] Add missing semicolon
* [Autoflow] Separate out constants
...to access them from tests
* [Autoflow] Use constants from spec
* [Autoflow] Test autoflow behavior
* [Autoflow] Refactor test case
...to support tests for composition changes
* [Autoflow] Add test cases for composition change
* [Autoflow] Handle composition changes
* [Autoflow] Sketch in row controller
https://github.com/nasa/openmct/pull/1816/files#r153015544
* [Autoflow] Integrate row controller
https://github.com/nasa/openmct/pull/1816#pullrequestreview-79305103
* [Autoflow] Add tests for historical request
* [Autoflow] Request historical telemetry
* [Autoflow] Remove unused active flag
* [Autoflow] Clarify row destruction
...to avoid problems with binding destroy
* [Autoflow] Fix mistake in test
* [Autoflow] Simplify waiting for view updates in test
* [Autoflow] Move filtering, autoflow to view
* [Autoflow] Remove unused caching
* [Autoflow] Remove obsolete method reference
* [Autoflow] Fix lint errors
Add missing semicolon, remove unused vars
* [Autoflow] Refactor test to simplify emitting events
* [Autoflow] Emit add events during load for testing
...to simulate the actual behavior of this method.
* [Autoflow] Provide composition in mock
...to allow constructor-time usage of dependency from controller
* [Autoflow] Avoid intermittent errors
...by checking to see if tabularArea is available before
accessing its clientHeight; depending on the timing of
setInterval versus Vue's mount event, it may not be!
* [Autoflow] Use add/remove composition events from controller
...exclusively, instead of attempting to load again and triggering
an infiniute loop each time.
* [Autoflow] Test that composition does not reload
* [Autoflow] Expect identifiers for remove events
* [Autoflow] Simplify row-matching test
* [Autoflow] Combine down to a single integration test
* [Autoflow] Remove possible test race condition
* [Autoflow] Add JSDoc
* [Autoflow] Remove excess test case
...which is no longer needed after combining behavioral tests for
view into a single spec.
* [Autoflow] Remove unused destroy call
https://github.com/nasa/openmct/pull/1816/files#r154787335
* [Autoflow] Use requestAnimationFrame in tests
...to avoid brittle change detection.
https://github.com/nasa/openmct/pull/1816/files#r154785549
* [Autoflow] Use MCT instance for spies
...such that test case becomes sensitive to API changes in MCT.
* [ViewAPI] Update view API with more support
Update view provider to allow metadata definitions and to play
nicely with old style views.
Spec out some updates to ViewProviders and ViewRegistry to
support further use of views.
* [Summary Widgets] Add summary widgets
Add a summary widget domain object type
Implement basic interface and style configuration for rules
* [Summary Widgets] Implementation for Rules
Add rule configuration inputs, populated with domain objects, metadata,
and appropriate operations for a given type
* [Inputs] Add implementation for icon palette
Issue #1644
Wire up icon palette inputs to widget, and make icon class a persistable
property of a rule
* [Summary Widgets] Implementation for conditions
Support configuring and persisting multiple conditions per rule
Issue #1644
* [Summary Widgets] Generate Rule Descriptions
Dynamically update the rule description based on the current state
of the rules' conditions
* [Summary Widgets] 'Any/All Telemetry' in conditions
Add UI and implemenetion for evaluating any telemetry or all telemetry
in an individual condition. Add related unit tests.
* [Summary Widgets] Rule Reorders
Implement drag and drop rule reorders using the native HTML5 API
* [Summary Widget] Test Data
Issue #1644
Add user-configurable mock data to test rules. Modify evaluator to
gracefully handle uninitialzed test data points.
* [Summary Widgets] Edit Mode
Enable edit mode for summary widgets, and make configuration interface
visible only when the user has entered edit mode
Fix collision between widget palettes and other interfaces where
palettes would permanently hide other menus
* [Summary Widgets] UI for scripted conditions
* [Sumamry Widgets] Destroy
Implement destroy
* [Summary Widgets] Cleanup
Remove unnecessary persist calls in Rule.js.
Remove generateDescription from refreshConditions and add it after refreshConditions to initCondition and deleteCondition
Throw error when unsupported callback is passed in condition.js, return summary widget instance in plugin.js instead of wrapping in new object for view
Add request properties to telemetry request for providers that support it
Remove check for editing when persisting, in SummaryWidget.js
Adds URLIndicator to the build, testable adding
`openmct.install(new openmct.plugins.URLIndicatorPlugin({
url: 'http://localhost:8080/',
icon: 'check',
interval: 15000,
label: 'Localhost'
}))`
to the openmct file. Also added Documentation about the plugin.
Update Object API such that get supports calls with either a keystring or an
identifier.
As save and delete are not implemented and have different calling signatures,
implement them as separate methods so they can be documented separately.
Clear regions when a view is destroyed. This causes a view's
destroy method to be correctly invoked, allowing views to do
cleanup. Used by NSS heatmap view for sprint Alice,
https://github.com/nasa/openmct/projects/1
* [Build] Preserve comments instead of adding header
...to avoid disrupting sourcemaps. Fixes#1707
[Build] Remove extraneous horizontal rule from header
[Build] Remove obsolete header-handling
...as this is handled by the replace task after fix for #1707
[Build] Move version headers into start.frag
...so that UMD boilerplate does not wrap it.
[Build] Handle version info entirely in start.frag
[Build] Replace build variables in start.frag explicitly
[Build] Inject build info dynamically
[Build] Test MCT.specifyBuildInfo
[Build] Mark BUILD_CONSTANTS as global for jshint
[Build] Give names to version line items
[Build] Fix specifyBuildInfo test case
* [Build] Update fix to sourcemaps for code review feedback
https://github.com/nasa/openmct/pull/1708
[Build] Move build info registration to plugin
https://github.com/nasa/openmct/pull/1708#discussion_r138999027
[Build] Use build info plugin
...instead of specifyBuildInfo
[Build] Revert changes to MCT, per code review
Added context actions for importing and exporting JSON representations of domain objects. Added FileInputService for triggering file picker and retrieving uploaded data. Also added a File Input form control for integration with MCTForms.
When loading the application and no time system is set,
the url handler should not cause multiple errors to be
logged.
This adds a test for the case but does not specify the
expected behavior in detail, other than "it should not
crash."
Fixes bugs as reported here.
The telemetry API detects when a subscription has already been made for a
given domain object and does not subscribe for that object a second time.
Removes a concern from those developing telemetry providers.
Also ensures that telemetry providers ALWAYS get request options, even if
no request options were provided.
Adds basic tests for the Telemetry API to validate this behavior.
Fixes https://github.com/nasa/openmct/issues/1594