* Implements ObjectAPI changes to refresh objects when an update is received from the database.
* Populates a virtual folder of plans from CouchDB
* Fixes bug with supportsMutation API call parameters
* default noneditable folder plugin, change styleguide folders to uneditable folder types, browse bar object name no longer input box if not createable
* moved plugin to mct.js instead of index.html
Co-authored-by: Deep Tailor <deep.j.tailor@nasa.gov>
Changes how object mutation works behind the scenes in order to keep objects in sync automatically when their model changes.
* The way that objects are mutated and observed has not changed, openmct.objects.mutate and openmct.objects.observe should still be used in the same way that they were before.
* Behind the scenes, domain objects that are mutable are wrapped in a new MutableDomainObject that exposes mutator and observer functions that allow objects to be mutated in such a way that all instances can be kept in sync.
* It is now possible to retrieve MutableDomainObjects from the API, instead of regular domain objects. These are automatically updated when mutation occurs on any instance of the object, replacing the need for "*" listeners. Note that the view API now provides objects in this form by default. Therefore, you do not need to do anything differently in views, the domain objects will just magically keep themselves up to date.
* If for some reason you need to retrieve an object manually via openmct.objects.get (you should ask why you need to do this) and you want it to magically keep itself in sync, there is a new API function named openmct.objects.getMutable(identifier). Note that if you do this you will be responsible for the object's lifecycle. It relies on listeners which must be destroyed when the object is no longer needed, otherwise memory leaks will occur. You can destroy a MutableDomainObject and its (internal) listeners by calling openmct.objects.destroyMutable(mutableDomainObject). Any listeners created by calls to openmct.objects.observe need to be cleaned up separately.
* If the composition of a MutableDomainObject is retrieved using the Composition API, all children will be returned as MutableDomainObjects automatically. Their lifecycle will be managed automatically, and is tied to the lifecycle of the parent.
Any MutableDomainObject provided by the Open MCT framework itself (eg. provided to view providers by the View API, or from the composition API) will have its lifecycle managed by Open MCT, you don't need to worry destroying it.
* WIP: added new move action plugin, added to default plugins in mct.js
* WIP: removed old move action and references, added new root action, working, needs tess
* added tests for move action
* removing focused tests
* WIP
* using composition collection now, optimized some calls
* removed test for removed function
* minor spec change, format only
* updated for new action registration and 3 dot
* removing comments
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
* WIP: refactoring legacy dulicate action
* WIP: debugging duplicate duplicates...
* WIP: fixed duplicate duplicates issue
* added unit tests
* removing old legacy copyaction and renaming duplicate action
* removing fdescribe
* trying to see if a done callback fixes testing issues
* fixed tests
* testing autoflow tests on server
* tweaked autoflow tests to stop failing
* minor updates for new 3 dot menu
Co-authored-by: Deep Tailor <deep.j.tailor@nasa.gov>
* Updated library versions
* Use Karma alternative spec loading
* Fixed memory leak in URLTimeSettingsSynchronizer
* Introduce mock DataTransfer object to fix issue with firefox headless
* make resetApplicationState return a promise
* Remove BeforeAll
* Do not throw an error if root returns no children
* Adding missing parameters to ES tests
* Fixed TransactionService bug
* bump test coverage up to 64%
* no-implicit-coercion and no-unneeded-ternary
* End every line with a semicolon
* Spacing and formatting
* Enabled semi-spacing
* Applies npm run lint:fix to code after master merge
* Fix merge issues
* Switched operator-linebreak to 'before'
Co-authored-by: Joshi <simplyrender@gmail.com>
* Added new test to telemetry tables to check that telemetry data is correctly rendered in rows
* Added test tools for mocking builtins
* Changed order that promises are resolved to address race condition
* Remove duplicate installation of UTC Time System
* Added additional test telemetry
* Start Open MCT headless
* Added headless mode start option. Fixes#3064
* Added new non-angular URL handler
* Removed legacy Angular TimeSettingsURLHandler
* Added function to testTools to reset application state
* Use resetApplicationState function from telemetry table spec
* Added new TimeSettingsURLHandler to plugins
* Added missing semicolons
* #2826 Refactored code into separate class
* Handling of hash-relative URLs
* Refactoring URL sync code
* Refactored to external class
* Moved utils to new 'utils' directory. Refactored location util functions from class to exported functions
* Added test specs for openmctLocation
* Added new function to destroy instances of Open MCT between test runs
* Ensure test specs are cleaning up after themselves
* Added test spec for new URLTimeSettingsSynchronizer
* Removed use of shell script as it doesn't work in windows
* Pushed test coverage to 100%
* Added missing copyright statement
* Removed debugging output
* Fixed linting error
* Upgrade node version
* Clear cache
* Re-enabled tests
Co-authored-by: Melanie Lean <melanielean@Melanies-MacBook-Pro.local>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
Co-authored-by: Deep Tailor <deep.j.tailor@nasa.gov>
[Notifications] Need a clear all notifications option #3006
* create new notifications indicator in vue, and sunset old one
* add notifications list overlay
* working notifications
* add support for progress notifications
* update percentage on mounted
* Markup cleanups in new Vue Notifications files
- Removed unneeded markup and class wrappers;
- Removed unneeded inline styling;
* remove example notifications
* fix lint errors
* make reviewer requested changes, remove old not needed files, add test
* update testTools to testUtils
Co-authored-by: charlesh88 <charlesh88@gmail.com>
* Upgrades lodash
* Replaces some usage of lodash with native functions.
* Adds linting to catch cases where native functions could be used instead of lodash functions
* Renamed testTools to testUtils
Co-authored-by: Joshi <simplyrender@gmail.com>
Co-authored-by: David Tsay <david.e.tsay@nasa.gov>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: Andrew Henry <akhenry@gmail.com>
* Separate Vue component styles out from SFCs.
* Added 'MCT.prototype.getAssetPath' and using 'openmct.setAssetPath' to get relative path for assets.
* Re-implements `openmct.plugins.Snow()`, and `openmct.plugins.Espresso()` (as well as a new theme `openmct.plugins.Maelstron()`)
* Initial commit of telemetry table spec
* Fix errors found by running Open MCT app headless
* Do not double install import-export plugin
* Changes to allow Open MCT to be initialized more than once without binding to window.document
* Remove table spec accidentally added
* Misc UI 10
- Add .c-input--sm CSS class for VISTA auto-clear input;
* Misc UI 10
- WIP!
- Add new glyohs: suitcase and clear data;
- Change icon-database to icon-suitcase;
- Need to unit test!
* Misc UI 10
- Refinements to shell__head Indicators layout;
- Refinements to collapse-buttons;
- Better color for Snow theme caution;
* Misc UI 10
- Better Open MCT logo for Snow theme;
- Renamed logo-app.svg to logo-openmct.svg;
- Removed unused image files;
* Misc UI 10
- Remove title attr from Angular indicator, interferes with hover
element;
* Misc UI 10
- Fix favicons, updated art;
- Removed favicon.ico;
* Misc UI 10
- Rebuild of Icomoon JSON file, which appeared to have gotten
damaged, probably due to merging;
- Font files updated, added .svg font back to repo;
- Font metrics modified to now use 20% baseline height;
* Misc UI 10
- Fix class in plot for control-bar element;
- Fix CSS in ObjectFrame.vue;
* Misc UI 10
- Rename folder styles-new to styles;
* Misc UI 10
- Remove unused src/fonts folder;
* Misc UI 10
- Symbols font now using baseline of 20%;
* first proto of global clear, working on tables
* global clear works on plots
* styling
* Status bar migration to top of layout, WIP
- Refine and remove legacy styles for Indicators;
- Significant cleanup in Indicator markup;
- Remove unnecessary wrapper component StatusBar.vue;
- Move collapse-button styles to a more general location in _controls
.scss;
- New hasMenu mixin to allow easier application of disclosure control
styling;
* Status bar migration to top of layout, WIP
- Refine styles and markup for Indicators;
- Better separation of styles for clickable and non-clickable
Indicators;
* Status bar migration to top of layout, WIP
- Added tracking style to indicator-template;
- Moved click action to button in label of globalClearIndicator;
- Removed unnecessary markup in Indicators.vue;
- Commented out __head collapse button for now in Layout.vue;
* Status Bar Migration WIP
- Significant progress styling Indicators and their hover bubbles;
- Pull back from clickable Indicators to hover approach;
- Better theme-based constants for Indicator menu-related colors;
* Status Bar Migration WIP
- Significant refactor of label element naming in multiple indicator
markup files;
- Refactor label-related CSS;
- Better class naming: no-collapse > no-minify;
- Refactor example *-launch files to use buttons instead of <a> tags;
- Significant progress on expanding shell head and button styling;
* Status Bar Migration WIP
- Cleanups, sanding on Indicator CSS;
- Added local storage retention for head expanded state;
- Adjust dark theme colors for $colorWarningHi for better legibility;
- Other minor tweaks and fixes;
* Status Bar Migration WIP
- Suppress background in Indicators;
- Restore Snow as default theme;
* add a local clear action, rename plugin
* objectViews extends eventemitter, table view provider provides an onClearData function that is called from ObjectView when clear event is emitted. TODO - support plots
* add support for plots via legacy view provider
* add test for clearDataAction
* remove focus from test file
* install the following plugins by default:
Import Export
Folder View
Tabs View
Flexible Layout
LAD Table
Go To Original Action
* update test to include plugin level tests
* remove focus from unit test
* Optionally provide list of object types to show as views rather than alpha numerics to display layouts
* Only make table view available for objects that have telemetry to show
* Added legacy about dialog launcher
* Added build information and licenses dialog
* Made discussed changes to About API. Is now Branding API and a little more user friendly
* Added fullscreen overlay option
* About dialog and licenses overlay screens migrated
- Migrated CSS and refined styling;
- Unit tested in Open only - not able to test other 'brands';
* Preview instead of navigate when in edit mode.
* Prevent preview of navigated object
* Removed trailing comma
* Observe navigation from tree items instead of mct-tree
* Cleanup of redundant code
* .is-selected -> .is-navigated-object
* Support category arrays for legacy actions
* Fixed object path listener. Removed old context menus
* Removed old fullscreen action and Screenfull dependency
* Restore confirmation dialog on remove
* Restored tests
* Remove unused legacy policies
* WIP re-implementation of Preview action
* WIP for Charles to take a look at flex issues
* Disable legacy preview action
* Style and markup fixes for new Preview
- LegacyViewProvider modded to wrap legacy elements in .u-contents div;
- Added selector that automatically defines display: contents on
`no-class` divs injected into __object-view;
- Unit tested with legacy and new components (telem tables, plot view,
Notebook, etc.)
* Tweak z-indexes, fix open in new tab action, add 'done' button
* Removed legacy action
* reuse contextMenuDropDown component
* Adding jsdoc to Context Menu Registry
* Remove attachTo function - make context menu gesture a mixin. Update object path when objects change.
* Added context menu from arrow button. Some minor refactoring
* Clarify variable naming
* Moved Context Menu component
* Reorder function definitions
* Addressed code review comments
* temporarily disable remove dialog which is broken
* temporarily remove broken context action policy
* let openmct generate legacy objects
* ensure composition loads in specified order
* redo nav and add context menu support to tree
* componentize grid and list view, add context menus
* modify overlay service to accept bottomBarButtons option, working annotate on snapshot view
* working blocking message
* move blocking message to overlay service
* return dismiss function on show
* added jsdocs for overlayService
* added progress bar, with setter and getter functions
* make reviewer requested changes
* re-overhaul of overlayAPI
* Integrate work in dialog-service-vue-style
- Markup in DialogComponent and OverlayComponent now up to date;
- Colors, constants;
- Notebook entry now passes correct buttons config;
- New bg data URIs added;
- u-icon-bg-* classes added to global.scss;
* Added deprecation comments to .vue files
* Removed styles from deprecated file
* Temp restore of CSS so that dialog doesn't break.
* remove old OverlayService
* Fixed to overlay CSS
- Fixed large, small, fit sizes;
- Added margin to overlay buttons;
- Code cleanup;
* Remove unused constants
* Tweak styles for __close-button
* Code cleanup
* small cleanup
* wip progressDialog
* Progress bar fixed and Vue-ized
- Markup, styles;
- Constants moved from theme files into _constants.scss;
* added jsdocs to new Overlay API
* remove unused example function
* use progressBar.vue in NotificationBanner.vue, wire up the maximize method with progressDialog and Dialog from OverlayAPI
* Styling in progress for status message banners
* openmct members are camelCase
* Remove unimplemented/unused apis
* working overlayService
* wire to snapshot, and add onDestroy Callback
* increment overlayId
* New branch from topic-core-refactor to use as central point for common
CSS work
- Manually migrated changes from vue-toolbar, expect conflicts there and
in vue-layout;
* Manually update constants-snow from vue-toolbar branch
* Update markup to use latest button classnames
- c-menu-button > c-button--menu;
- c-icon-button > c-click-icon;
* Various from vue-conductor-style
- Mods to input styling;
- Input[] styles moved to _controls;
- New/revised constants vals;
* Resolve bizarre merge conflict when applying stash
* Code cleanup
* remove duplicate div
* Alias and type-icon fixes
- More robust approach to alias indicators;
- Added alias indication to tree-item.vue;
- TODO: wire up alias indication tree-item.vue;
* Accessibility mods, convert elements to <button>
- Better reset styles for htmlInputReset mixin to allow use of <button>
without browser default styling;
- Create button;
- BrowseBar action buttons;
- c-click-icons;
- Removed Preview button from BrowseBar.vue;
* Overlay styling WIP
- Base markup pretty solid;
- Stubbed in temp values for overlayTypeCssClass in overlayService.js;
- TODO: styling for contents area;
* add options object, scope variables to show function, add destroy callback to active Overlay Object (for easier retrieval
* Saving work
* Fix conflict
* Position the panels by setting the style
* Put the div back with height set to 100% in ObjectView.
Add markup for drag handles.
* Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now.
* Display Layout and frames major improvements
- Moved Toolbar out of Layout.vue and into DisplayLayout.vue;
- Styles for object view, Layout, Frame, etc.
- Major refactor of markup for frame;
- Added abs() mixin;
- Styles for is-editing done;
- Styles for
- TODO: styles for selectable, moveable, etc.
* Implement drill in gesture.
* Hide the background grid when a frame is drilled in
* Edit styling and toolbar WIP
- c-search styles moved mostly into mixin;
- New .c-labeled-input class;
- Browser overrides for number-type input spinners in webkit;
* Toolbar WIP
- Custom wrapped number input added;
- Toolbar buttons WIP;
* New toolbar buttons WIP
* Define a computed property for the css class object.
* Frame edit handles markup and styling
* Toolbar, editing and selection style refinements
- Moved toolbar back into Layout.vue;
- Hard-coded 'is-editing' onto __pane-main for now,
removed from DisplayLayout.vue;
- Styles for frame in LayoutFrame.vue:
-- editing default (dotted border)
-- editing .s-selected
-- .s-drilled-in (renamed .is-drilled-in)
* Refactoring button classes
- Lots of stuff broken right now;
- TODO: lots of renaming (c-menu-button, c-icon-button, etc.);
- Removed import of _controls in search.vue;
* Fixes for selection on nested selected elements
* Fix conflict
* Significant refactoring of button and click-icon classes
- Markup and CSS updated;
- Toolbar in good shape, prior to merge of vue-layout;
* Fix issues with relative font-sizing
* Add color palette markup and CSS
- Also added Layers menu example;
* Font, font-size glyphs and size menu, and more
- Added art for font glyph and renamed from .icon-T;
- Added new glyph for font-size;
- Fixed font-sizing in controls;
- Added font-size menu;
- Re-org'd toolbar items;
* Styling tweak for c-labeled-input
- Code cleanup as well;
* Fixes for toolbar toggleMenus and labeledNumberInput
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Add custom checkbox control.
- Also, code cleanup.
* Add toggleButton component
- Code and examples
* Custom checkbox code cleanups, sanding
* - Persist new position/dimensions on the domain object when frames are moved/resized.
- Bypass the selection of the layout when dragging a frame is finished to keep the frame selected.
- Set the grid size to layoutGrid from domain object or use default if it's not specified.
* Fix conflict
* Implement resize and move for frames.
Added stub for drag 'n drop.
* Remove old layout view, was triggering View Switcher
and massive confusion when viewing Layouts
- TODO: add view provider for new Layout
* Enable drag and drop
* Changed example toggle-button
- Now uses show/hide frame as toggle-button example;
* Added pseudocode for handling drag/drop composition change
* Add copyright notice
* Layout frame and contained components styling
- Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links`
which disables their pointer-events when editing;
- Hyperlink buttons, Summary Widgets now expand to fill their
containers in a Layout;
- Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets
somewhat
modded to use new classing, applied in legacy scss files;
* Fix icon sizing error in BrowseBar
* Edit and selecting styling for Layouts
- WIP!
* Edit and selecting styling for Layout frames
- Color vars more standardized;
- Hover and *-selected styles;
* Getting vue-toolbar reverted back to latest
- Merging this branch with vue-layout may cause conflicts;
* - Implement drag ’n drop.
- Set hasFrame to a default value if it’s not set on the configuration.
- Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component.
* Revert emitting 'update:object' event to the parent.
* New branch from topic-core-refactor to use as central point for common
CSS work
- Manually migrated changes from vue-toolbar, expect conflicts there and
in vue-layout;
* Manually update constants-snow from vue-toolbar branch
* Update markup to use latest button classnames
- c-menu-button > c-button--menu;
- c-icon-button > c-click-icon;
* Various from vue-conductor-style
- Mods to input styling;
- Input[] styles moved to _controls;
- New/revised constants vals;
* Resolve bizarre merge conflict when applying stash
* Code cleanup
* Alias and type-icon fixes
- More robust approach to alias indicators;
- Added alias indication to tree-item.vue;
- TODO: wire up alias indication tree-item.vue;
* Accessibility mods, convert elements to <button>
- Better reset styles for htmlInputReset mixin to allow use of <button>
without browser default styling;
- Create button;
- BrowseBar action buttons;
- c-click-icons;
- Removed Preview button from BrowseBar.vue;
* Fix styles that were affected during resolving conflicts
* Moved draggable into __label element rather than whole <li>
* Change the priority to 100 to get the view working properly
* Code cleanup
* Remove angular layout
* Display the object name in the frame header
* Tweaks to __header in LayoutFrame
- Name now does not overflow frame edge;
- Layout strategy now in parity with similar elements in main view;
* Remove test()
* Add a type for display layout to make it appear in the Create menu.
* Change the key type to 'layout'
* Clean up code and hide toolbar
* Enable toolbar, and revert changes in webpack config
* Remove commented code
* revert to the original code
* Adding edit mode API and buttons
* Select navigated object by default. Enable table configuration in edit mode.
* Fixed issue with Table configuration
* Removed debugging code
* Added basic documentation to Editor API
* use selectable, table is selection[0], inspector cleans up
Update browse to set selection using openmct.selection.selectable
on navation so that selection contexts can be determined correctly.
Update table configuration to reference the first item in selection
instead of the last item in selection when displaying.
Update inspector code to remove display node from document on destroy.
* properly remove capturing handler
* inspector views respond to editing
InspectorViews respond to editing instead of openmct rerendering
the inspector on edit.
* Refactoring conductor to use Vue
* Conditionally render Time Conductor
* Created ConductorOptions SFC
* Copyright notice examples
* Added time system selector component
* Use capture for event bubbling with popups
* Added Conductor Axis. Simplified Axis formatting and removed scale formatting from formatters. Added date picker.
* Sync axis on zoom
* Fixed sync between conductor and axis
* Changed 'InspectorComponent' to 'ConductorComponent' in Layout. Fixed race condition with panning and RequestAnimationFrame
* Renamed properties in conductor to clarify their role. Fixed some bugs
* Removed old conductor
* Fix layout issue with legacy Conductor markup
* Added missing copyright notice
* Separate browse object from conductor
* Main layout convert to flex; padding and overflow at leaf node
* Inspector converted to BEM - WIP
- Properties pool upper level styles converted;
- Grid mixins moved out of Inspector and into _mixins;
* Refinements to misc elements
- user-select: none on tree;
- :before and :after reset globally to use box-sizing: border-box;
- li reset globally;
* Styling for buttons and menus; add Create button
- WIP
* Context and Create menus
- WIP
* Add glyph backgrounds as data URIs
- For Create menu, items grid;
- Objects only;
* Create menu refinements
- Min/max height handling;
- Code cleanup;
* Main layout head styling; various sanding
- head layout refined;
- c-icon-button, c-button-set added;
- background glyph mixin refined;
- Antialiasing refined to increase icon sharpness;
* Fix SVG data URLs: encode # chars as %23
* Move to webpack build
* Use webpack for building openmct. Move SCSS to one folder and load
all core css up front. Remove bower, begin removing gulp in favor
of npm run.
* Uses eslint instead of jshint and jscs. Merge style checking rules
into .eshintrc.js, carrying over core parts of crockford style and
our adaptations. Current code base fails to pass the linter, want
to separate linter changes from fixes to linting rules.
* Support for Vue SFC with example
* Remove outdated examples
* Use HTML loader for html (supports relative imports of resources e.g.
images) and raw-loader for when javascript must be loaded as text.
* [API] Added Indicators API
* [Indicators] Converted Follow Indicator to new Indicators API
* [Indicators] Converted URL Indicator to new Indicators API
* [Indicators] Changes to some legacy indicators for compatibility with new Indicators API
* [Indicators] Addressed code review items from https://github.com/nasa/openmct/pull/1837
* Updated tests for URL Indicator
* Adding Indicator API spec
* Address linting issues
* Switched to direct DOM manipulation rather than template compilation to avoid an unnecessary extra holder element
* Updated documentation to reflect changes to API
* Indicators api styling (#2076)
Updated styling for Indicators
* Update API TOC
* Fix color of items w-mct-example areas of Style Guide
Fixes#1837
* Status class refactoring and cleanups
Fixes#1837
- Significant cleanups and name refactoring to allow more
concise selector definitions, with changes in js, html and scss files;
- Updates in Style Guide > Status page, with some content
reorganization and clarification;
* Corrected out of date API
* de-zeptoed Indicator API test spec
* Remove promise from URLIndicator
* Separated legacy indicators support
* Updated Indicator specs to Jasmine 3
* Fixed checkstyle and lint issues
* Moved legacy indicators support to adapter folder
* Various fixes for Indicators
Fixes#1837
- Added SASS constants for Indicator colors;
- Removed commented code;
- Removed unused indicator classes from _messages.scss
- Fixed missing s-status-on class;
* Significant revisions to Style Guide Indicators content
Fixes#1837
- Better documentation including recommendations;
- Better and more concrete examples;
* Style Guide example tweaks
Fixes#1837
* Refinement to Style Guide Status and Limits content
Fixes#1837
- More detail and clarification on Status and Limits;
* Cleanup code
Fixes#1837
- Remove commented styles;
- Line return refinements;
* [API] Implement a toolbar registry and a plugin to allow providing a toolbar for a selected object.
* Modify the mct-toolbar directive to get the toolbar structure from a provider based on selection.
* Implements the layout toolbar in the layout bundle