commit5aad2e6863
Author: charlesh88 <charlesh88@gmail.com> Date: Thu Aug 30 14:34:44 2018 -0700 Code trimming / cleanup - pane tweaks; commit139e5ab184
Author: charlesh88 <charlesh88@gmail.com> Date: Thu Aug 30 13:50:26 2018 -0700 Code trimming / cleanup - pane tweaks; commite3bb387139
Author: charlesh88 <charlesh88@gmail.com> Date: Thu Aug 30 13:38:35 2018 -0700 Code trimming / cleanup - pane, Layout; commit6edaea0889
Author: charlesh88 <charlesh88@gmail.com> Date: Thu Aug 30 12:57:21 2018 -0700 Collapse button new design and styling WIP - Also begin code cleanups; commitbd8fab3726
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 29 18:04:47 2018 -0700 Vertical pane resizing fixed - Vertical pane styling with significant fixes; commitcf89e8a86f
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 29 16:52:53 2018 -0700 Vertical pane resizing fixed - Vertical pane styling with significant fixes; commitb3ad4c4c14
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 29 15:58:12 2018 -0700 Vertical pane resizing fixed! Kind of... - pane__contents at 100% height is causing problems, fix this. - Normalized scss var names $splitterBtn*; - Added --reacts to pane to allow setting of proper flex attribs; commit49cead8cc6
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 28 19:07:23 2018 -0700 WIP fixing vertical pane drag problem, still broken - Converting from flex-basis back to width / height; - Make inspector-adapter target proper holder; - Added --resizing class to allow user-select: none while dragging; - Added mixins for browser prefixing; commitc6ff381cf0
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 28 14:56:50 2018 -0700 New design for pane collapse buttons - Pane padding normalized; commit7cfbfe3d96
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 28 10:27:05 2018 -0700 CSS sanding, panes and Inspector - Pane padding; - Inspector min-width; commit7d7eeff462
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 28 10:01:02 2018 -0700 Pane transitions - Fixed pane transitions; commitcf160c27e9
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 28 09:09:49 2018 -0700 Splitter styling WIP - Hover styling commit022126ca21
Author: charlesh88 <charlesh88@gmail.com> Date: Mon Aug 27 21:18:14 2018 -0700 Tree styling WIP - Mobile styling; - Increased hit area for desktop and mobile on tree item; - Added button mixin; - Fixed scrolling for tree in tree pane; commit3f1e649526
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 24 14:47:22 2018 -0700 Drag collapse WIP commitf9b764bb64
Author: charlesh88 <charlesh88@gmail.com> Date: Thu Aug 23 16:02:02 2018 -0700 Significant changes to splitter handle and button approach - WIP!; - WIP on drag to collapse; commita1d9c11e82
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 22 17:55:21 2018 -0700 Pane refactor styles WIP - WIP converting from width/height to flex-basis; commitb65cca277e
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 22 17:54:34 2018 -0700 Pane refactor styles WIP - WIP converting from width/height to flex-basis; commit3e71204529
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 22 17:51:07 2018 -0700 Pane refactor styles WIP - Pane transitions; - TODO: convert from width/height to flex-basis; commitb070cc27f4
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 22 10:21:14 2018 -0700 Mobile styles WIP - Mobile layout mostly done; - Pane transitions; commit2ee7a77a86
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 21 15:56:12 2018 -0700 Refinements to view control in tree - Changed state eval to use 'enabled', removed v-if; commit3a2439cd16
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 21 15:53:34 2018 -0700 Mobile styles, VERY WIP WARNING: DON'T PULL!! - Mobile in progress; commit4e0dcb68bf
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 21 11:45:22 2018 -0700 Markup / scss refactor mobile styles WIP - Layout, panes mobile styling WIP commit02afd44dd1
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 21 11:44:05 2018 -0700 Markup / scss refactor styles WIP - Moved glyph constants into _constants to avoid multiple loads of glyph classes; commit703abe36c9
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Mon Aug 20 13:20:58 2018 -0700 tree loads composition Expose legacy types in new API tree navigation commit80a185440b
Merge:93196379a
8378dfa61
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 18:00:04 2018 -0700 Merge branch 'core-vue-bootstrap' of https://github.com/nasa/openmct into core-vue-bootstrap commit93196379aa
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 17:59:43 2018 -0700 Pane padding WIP - Adding resize handle direction to l-pane element; commitbea135a221
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 17:48:20 2018 -0700 Inspector styling - Moved legacy CSS as needed into MctInspector component; commit8378dfa613
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Fri Aug 17 17:31:12 2018 -0700 Recursive tree items commite4420c17c6
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 17:02:20 2018 -0700 Sanding and shimming on legacy CSS - Jury-rigging to temporarily display some views: imagery, tables - Code style normalization in _global.scss; commit5aa2be9761
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 16:22:54 2018 -0700 Bring in legacy CSS - Legacy styles from old _global.scss moved into section of new _global file; - Most UI elements are working - TODO: fix Inspector grid commit8d4734ef5b
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 15:17:22 2018 -0700 Remove commented CSS commite641aa6949
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 14:37:13 2018 -0700 Main container and scroll-bar styling commitc3262de1b7
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 14:14:01 2018 -0700 Add status bar commit8addfb886e
Merge:e6be02fb8
4203dbf8e
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 13:52:11 2018 -0700 Merge branch 'core-vue-bootstrap' of https://github.com/nasa/openmct into core-vue-bootstrap commite6be02fb8d
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 13:51:53 2018 -0700 Splitter refinements / mixin fix - Splitter with resize grippy; - Fixed @background-image mixins; commit4203dbf8e1
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Fri Aug 17 13:46:38 2018 -0700 Replace angular route with custom router commit5a07f0d2b5
Merge:e6b22cbcb
63f22c3f2
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 09:39:45 2018 -0700 Merge branch 'core-vue-bootstrap' of https://github.com/nasa/openmct into core-vue-bootstrap commite6b22cbcbe
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 17 09:39:33 2018 -0700 Markup / scss refactor WIP - Significant reorg of splitter CSS to reduce specificity; - Splitter enhancements for collapsed state; commit63f22c3f21
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Fri Aug 17 09:32:29 2018 -0700 remove extraneous files commit17cf0cf1e6
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Thu Aug 16 12:43:10 2018 -0700 Render main and inspector using angular commit233c17e75b
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 18:05:44 2018 -0700 Markup / scss refactor WIP - Scroll on tree; - Class renaming pane > l-pane; - Refinements to collapsed state, WIP commit1eaa568e04
Merge:82dd8e22e
3957fd619
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 17:28:45 2018 -0700 Markup / scss refactor WIP - Merge latest from Pete commit82dd8e22e7
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 17:26:45 2018 -0700 Markup / scss refactor WIP - Inspector styling - very WIP! commit3957fd619a
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 15 16:47:48 2018 -0700 Tidy pane js commit91eefbfa7b
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 15 16:44:02 2018 -0700 Pane cleanup commit5deff887fc
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 16:25:35 2018 -0700 Markup / scss refactor WIP - Added disabled property to viewControl; - Margin for elements in main panes; - Main search input styled for --major; commit6708c79754
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 14:34:54 2018 -0700 Markup / scss refactor WIP - Fix modifiers to correctly use '--'; - Fix icon element in search input to disallow shrinking; commit7c83db11ad
Merge:e24852bb8
43f978e18
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 13:58:43 2018 -0700 Merge branch 'core-vue-bootstrap' of https://github.com/nasa/openmct into core-vue-bootstrap commite24852bb83
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 13:57:27 2018 -0700 Markup / scss refactor WIP - Tree item styling commit43f978e185
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 15 13:52:34 2018 -0700 Use multipane instead of splitter commitf67f03af47
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 15 12:43:32 2018 -0700 new multipane commitf6b90caaff
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 10:41:46 2018 -0700 Markup / scss refactor WIP - Added view-control component commit4c5baf183a
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 15 10:38:26 2018 -0700 Markup / scss refactor WIP - Added sass-base.scss to make it easier for SFC's to include needed SASS vars, mixins, etc. with a single import; - Cleaned up indention in Layout.vue; commitb2d12f95ee
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 14 23:24:45 2018 -0700 Markup / scss refactor WIP - Fix transition of magnify glass icon commit4449994ca4
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 14 17:31:47 2018 -0700 Markup / scss refactor WIP - Added code comments commit84fde4bd34
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 14 17:29:50 2018 -0700 Markup / scss refactor WIP - Search input dynamic behavior commit9424f9f49e
Author: charlesh88 <charlesh88@gmail.com> Date: Tue Aug 14 11:28:25 2018 -0700 Markup / scss refactor WIP - Search input styling and dynamics WIP; commitdfc02cdf25
Author: charlesh88 <charlesh88@gmail.com> Date: Mon Aug 13 15:34:29 2018 -0700 Markup / scss refactor WIP - Add input-related styling; - Cleanup scss in various files; - Move search into own component; - Refine padding approach in pane-tree; commit94a3e9e798
Author: charlesh88 <charlesh88@gmail.com> Date: Mon Aug 13 14:36:41 2018 -0700 Markup / scss refactor WIP - Add collapse buttons to splitter; commitd35aed2d62
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 10 18:45:37 2018 -0700 Markup / scss refactor WIP - Add some initial theme files; pull back from theme "override" approach; - Splitters refined; - Style cleanups; commit32cdecebce
Author: charlesh88 <charlesh88@gmail.com> Date: Fri Aug 10 14:53:16 2018 -0700 Markup / scss refactor WIP - Markup and components corrected; - Stubbed in snow theme file; commitf811318d18
Author: charlesh88 <charlesh88@gmail.com> Date: Thu Aug 9 16:02:22 2018 -0700 Markup / scss refactor WIP - Add normalize.min to styles-new; - Factor components to be more standalone, very WIP; commit4d9b7fe3e4
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 8 18:06:11 2018 -0700 Markup / scss refactor WIP - Add timestamp to webpack build commitdd93653306
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 8 18:03:00 2018 -0700 Markup / scss refactor WIP - Use MctTree component with passed properties; - MctTree markup and CSS ported from codepen; commit84430d34b1
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 8 17:39:26 2018 -0700 Markup / scss refactor WIP - Add new splitter component with passed properties; commit50be483421
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 8 16:04:41 2018 -0700 Markup / scss refactor WIP - Mixins file added; - Markup and -shell CSS from codepen brought over; commitfe2667285e
Merge:c7bd7d97d
5219f5394
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 8 15:15:21 2018 -0700 Merge branch 'core-vue-bootstrap' of https://github.com/nasa/openmct into core-vue-bootstrap commit5219f5394e
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 8 15:13:28 2018 -0700 Add alias for styles directory commitc7bd7d97dc
Merge:0a7c16031
ab18bb348
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 8 13:55:44 2018 -0700 Merge branch 'core-vue-bootstrap' of https://github.com/nasa/openmct into core-vue-bootstrap commitab18bb3484
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 8 13:48:27 2018 -0700 Revert "temporarily use file loader for live-reload via plugin" This reverts commit2f54f404c2
. commit9c0d5f7dbf
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 8 13:48:17 2018 -0700 Enable HMR in dev server commit0a7c160315
Author: charlesh88 <charlesh88@gmail.com> Date: Wed Aug 8 11:26:03 2018 -0700 Markup / scss refactor WIP - Symbol fonts and glyphs files; - Constants, global, etc. in progress; commit0fa09e31a6
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 8 10:30:11 2018 -0700 WIP new styles commit2f54f404c2
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Wed Aug 8 10:29:23 2018 -0700 temporarily use file loader for live-reload via plugin commit279e0bf29d
Author: Pete Richards <peter.l.richards@nasa.gov> Date: Tue Aug 7 14:59:04 2018 -0700 Beginning of new layout code. Really basic 5 component setup.
Open MCT 
Open MCT (Open Mission Control Technologies) is a next-generation mission control framework for visualization of data on desktop and mobile devices. It is developed at NASA's Ames Research Center, and is being used by NASA for data analysis of spacecraft missions, as well as planning and operation of experimental rover systems. As a generalizable and open source framework, Open MCT could be used as the basis for building applications for planning, operation, and analysis of any systems producing telemetry data.
Please visit our Official Site and Getting Started Guide
See Open MCT in Action
Try Open MCT now with our live demo.
New API
A simpler, easier-to-use API has been added to Open MCT. Changes in this API include a move away from a declarative system of JSON configuration files towards an imperative system based on function calls. Developers will be able to extend and build on Open MCT by making direct function calls to a public API. Open MCT is also being refactored to minimize the dependencies that using Open MCT imposes on developers, such as the current requirement to use AngularJS.
This new API has not yet been heavily used and is likely to contain defects. You can help by trying it out, and reporting any issues you encounter using our GitHub issue tracker. Such issues may include bugs, suggestions, missing documentation, or even just requests for help if you're having trouble.
We want Open MCT to be as easy to use, install, run, and develop for as possible, and your feedback will help us get there!
Building and Running Open MCT Locally
Building and running Open MCT in your local dev environment is very easy. Be sure you have Git and Node.js installed, then follow the directions below. Need additional information? Check out the Getting Started page on our website. (These instructions assume you are installing as a non-root user; developers have reported issues running these steps with root privileges.)
- Clone the source code
git clone https://github.com/nasa/openmct.git
- Install development dependencies
npm install
- Run a local development server
npm start
Open MCT is now running, and can be accessed by pointing a web browser at http://localhost:8080/
Documentation
Documentation is available on the Open MCT website. The documentation can also be built locally.
Examples
The clearest examples for developing Open MCT plugins are in the tutorials provided in our documentation.
For a practical example of a telemetry adapter, see David Hudson's Kerbal Space Program plugin, which allows Kerbal Space Program players to build and use displays for their own missions in Open MCT.
Additional examples are available in the examples
hierarchy of this
repository; however, be aware that these examples are
not fully-documented, so
the tutorials will likely serve as a better starting point.
Building the Open MCT Documentation Locally
Open MCT's documentation is generated by an npm-based build. It has additional dependencies that may not be available on every platform and thus is not covered in the standard npm install. Ensure your system has libcairo installed and then run the following commands:
npm install
npm install canvas nomnoml
npm run docs
Documentation will be generated in target/docs
.
Deploying Open MCT
Open MCT is built using npm
To build Open MCT for deployment:
npm run prepare
This will compile and minify JavaScript sources, as well as copy over assets.
The contents of the dist
folder will contain a runnable Open MCT
instance (e.g. by starting an HTTP server in that directory), including:
openmct.js
- Open MCT source code.openmct.css
- Basic styles to load to prevent a FOUC.index.html
, an example to run Open MCT in the basic configuration.
Tests
Tests are written for Jasmine 3 and run by Karma. To run:
npm test
The test suite is configured to load any scripts ending with Spec.js
found
in the src
hierarchy. Full configuration details are found in
karma.conf.js
. By convention, unit test scripts should be located
alongside the units that they test; for example, src/foo/Bar.js
would be
tested by src/foo/BarSpec.js
. (For legacy reasons, some existing tests may
be located in separate test
folders near the units they test, but the
naming convention is otherwise the same.)
Test Reporting
When npm test
is run, test results will be written as HTML to
target/tests
. Code coverage information is written to target/coverage
.
Glossary
Certain terms are used throughout Open MCT with consistent meanings or conventions. Any deviations from the below are issues and should be addressed (either by updating this glossary or changing code to reflect correct usage.) Other developer documentation, particularly in-line documentation, may presume an understanding of these terms.
- bundle: A bundle is a removable, reusable grouping of software elements.
The application is composed of bundles. Plug-ins are bundles. For more
information, refer to framework documentation (under
platform/framework
.) - capability: An object which exposes dynamic behavior or non-persistent state associated with a domain object.
- composition: In the context of a domain object, this refers to the set of other domain objects that compose or are contained by that object. A domain object's composition is the set of domain objects that should appear immediately beneath it in a tree hierarchy. A domain object's composition is described in its model as an array of id's; its composition capability provides a means to retrieve the actual domain object instances associated with these identifiers asynchronously.
- description: When used as an object property, this refers to the human-readable description of a thing; usually a single sentence or short paragraph. (Most often used in the context of extensions, domain object models, or other similar application-specific objects.)
- domain object: A meaningful object to the user; a distinct thing in the work support by Open MCT. Anything that appears in the left-hand tree is a domain object.
- extension: An extension is a unit of functionality exposed to the
platform in a declarative fashion by a bundle. For more
information, refer to framework documentation (under
platform/framework
.) - id: A string which uniquely identifies a domain object.
- key: When used as an object property, this refers to the machine-readable identifier for a specific thing in a set of things. (Most often used in the context of extensions or other similar application-specific object sets.)
- model: The persistent state associated with a domain object. A domain object's model is a JavaScript object which can be converted to JSON without losing information (that is, it contains no methods.)
- name: When used as an object property, this refers to the human-readable name for a thing. (Most often used in the context of extensions, domain object models, or other similar application-specific objects.)
- navigation: Refers to the current state of the application with respect to the user's expressed interest in a specific domain object; e.g. when a user clicks on a domain object in the tree, they are navigating to it, and it is thereafter considered the navigated object (until the user makes another such choice.)
- space: A name used to identify a persistence store. Interactions with
persistence will generally involve a
space
parameter in some form, to distinguish multiple persistence stores from one another (for cases where there are multiple valid persistence locations available.)