A web based mission control framework.

Overview

Open MCT license

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. Demo

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.)

  1. Clone the source code

git clone https://github.com/nasa/openmct.git

  1. Install development dependencies

npm install

  1. 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/

Open MCT v1.0.0

This represents a major overhaul of Open MCT with significant changes under the hood. We aim to maintain backward compatibility but if you do find compatibility issues, please let us know by filing an issue in this repository. If you are having major issues with v1.0.0 please check-out the v0.14.0 tag until we can resolve them for you.

If you are migrating an application built with Open MCT as a dependency to v1.0.0 from an earlier version, please refer to our migration guide.

Documentation

Documentation is available on the Open MCT website.

Examples

The clearest examples for developing Open MCT plugins are in the tutorials provided in our documentation.

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! Feedback can be provided via GitHub issues, or by emailing us at [email protected].

Building Applications With Open MCT

Open MCT is built using npm and webpack.

See our documentation for a guide on building Applications with Open MCT.

Plugins

Open MCT can be extended via plugins that make calls to the Open MCT API. A plugin is a group of software components (including source code and resources such as images and HTML templates) that is intended to be added or removed as a single unit.

As well as providing an extension mechanism, most of the core Open MCT codebase is also written as plugins.

For information on writing plugins, please see our API documentation.

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 dist/reports/tests/. Code coverage information is written to dist/reports/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.

  • plugin: A plugin is a removable, reusable grouping of software elements. The application is composed of plugins.
  • 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.
  • identifier: A tuple consisting of a namespace and a key, which together uniquely identifies a domain object.
  • 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.)
  • namespace: A name used to identify a persistence store. A running open MCT application could potentially use multiple persistence stores, with the
Issues
  • [Time Conductor] Reimplemented time conductor with new API and UI

    [Time Conductor] Reimplemented time conductor with new API and UI

    This is an initial PR to start feedback. There are still a number of outstanding issues, but given the time constraints I'd like to start the code review ASAP.

    Description of changes

    1. Introduces the time conductor public API into master for the first time
    2. Defines new UI for the realtime/historical time conductor
    3. Uses D3 for rendering the ticks. Introduces a new MctAxis directive to support this.
    4. Introduces time systems, supported for now through a new legacy API extension point "TimeSystem", and supporting classes (eg. TickSource). Implements a default UTCTimeSystem, and a default LocalClock.
    5. Central to the implementation is the TimeConductorController. Created some supporting classes around TimeConductorController such as TimeConductorMode. Possibly overkill here. Tried different variations with fewer class definitions, but this kept the code the cleanest even if it does result in a relatively large number of classes.

    Note that after a discussion with @charlesh88 it was decided that it is better from a user perspective to select mode first, which will filter the available time systems. Time systems are filtered for real-time and LAD modes based on whether they define any appropriate tick sources.

    Also note that although present in the UI, the zoom controller is non functional. It will be implemented if time permits, otherwise will be hidden via CSS.

    Would suggest starting from the TimeConductorController and working outward from there.

    To do:

    • [x] 1. Add support for formats to the D3 ticks. Currently uses the default D3 formatting, which imposes 12 hour time, and won't work for sols.
    • [x] 2. Bring across telemetry decorator from old time conductor
    • [x] 3. Need styles for snow for the time conductor v2 https://github.com/nasa/openmct/pull/1089#issuecomment-236656967
    • [x] 4. UTC time system should be a separate bundle from the conductor-v2, so that it can be disabled in other deployments https://github.com/nasa/openmct/pull/1089#issuecomment-236658245
    • [x] 5. When switching to time systems that have a different format, the date time inputs do not update to use the correct format https://github.com/nasa/openmct/pull/1089#issuecomment-236674799
    • [x] 6. Disable the zoom slider https://github.com/nasa/openmct/pull/1089#issuecomment-236732799 @charlesh88
    • [x] 7. Selecting a mode doesn't filter time systems https://github.com/nasa/openmct/pull/1089#issuecomment-236732799
    • [x] 8. ~~Time systems without defaults totally break the time conductor~~ (deferred to #1091) https://github.com/nasa/openmct/pull/1089#issuecomment-236732878
    • [x] 9. Tick generation fails when time system values are not dates
    • [x] 10. ~~Ticks overlap when scale formatting is not available~~ (deferred to #1091) https://github.com/nasa/openmct/pull/1089#issuecomment-236732799
    • [x] 11. Time conductor should be visible in edit mode and retain state on navigation https://github.com/nasa/openmct/pull/1089#issuecomment-237057156 and https://github.com/nasa/openmct/pull/1089#issuecomment-237057366.
    • [x] 12. Specify delta format (needed for SCLK support)
    • [x] 13. Unlisten to tick source on Time System change
    • [x] 14. When a timesystem supports both LAD and Realtime, selecting realtime attaches a listener to the LAD clock instead of the realtime clock.
    • [x] 15. Need to be able to set defaults per mode. a short hack would be to add mode: "fixed" or mode: "follow" to the Default and then pick the defaults that apply to the current mode.
    • [x] 16. After navigating, unable to select time system .
    • [x] 17. Changing mode sets time system to default even if previous time system was a valid choice.
    • [x] 18. Better documentation (missing typedefs etc.)
    • [x] 19. Lint and build errors
    • [x] 20. Tests
    • [x] 21. Squash commits
    opened by akhenry 54
  • [Edit Mode] Visual indication of object being edited

    [Edit Mode] Visual indication of object being edited

    From https://github.com/nasa/openmctweb/issues/161#issuecomment-155162928 no 2.

    While in edit mode, flag the currently selected item (as well as all linked instances of the object currently being edited) in the tree with a "pending update" visual status. This requires some UI design.

    Comments

    As simple as a CSS class, styling could be updated and iterated on. "dirty object" isn't a user concern, but "currently being edited" is; we shouldn't spend too much time on this for v1. @larkin

    I'd broaden this to include any objects that have unsaved changes from Edit mode, including their links (not just the selected object.) This happens often in a timeline, but can happen in a Layout too (you can Edit Properties on a panel in a layout) @VWoeltjen

    type:enhancement 
    opened by akhenry 40
  • URL-based Status Indicator Plugin

    URL-based Status Indicator Plugin

    After talking with a few customers it would be great to have a simple plugin for registering URL-based status indicators, i.e. those that poll a URL and show "connected/disconnected" or similar based on the availability of the URL.

    Basic functionality might be

    var googleIndicator = new openmct.plugins.IndicatorPlugin({ 
        url: 'https://google.com', 
        icon: 'database',
        label: 'Google',
        interval: 15000
    });
    openmct.install(googleIndicator);
    

    And then you'd get an indicator icon that would go red/green based on whether or not it is connected to the server.

    help_wanted source:user request 
    opened by larkin 33
  • [BUILD] Adds URLIndicator

    [BUILD] Adds URLIndicator

    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.

    opened by evenstensberg 31
  • Export a plot as a PDF, JPG or PNG

    Export a plot as a PDF, JPG or PNG

    Assigned to @simistern

    Multiple user requests; related to https://github.jpl.nasa.gov/MissionControl/vista/issues/203

    Allow a view to export itself as a PDF, JPG or PNG. Mainly intended for use with plot views, but my be applicable to other view types.

    • Should be able to be invoked from the object's view as a context action.
    • JPG and PNG would be a fixed resolution TBD, but probably something decently hi-res like 1920 x 1440.
    • PDF export should set the aspect ratio of the view to 4:3 and export using vector drawing and characters.
    • It may be better to allow invocation of the browser's Print function, especially for PDF output, as that allows the browser to do a lot of the heavy lifting and results in the usage of more vector elements that are resolution independent.

    If someone is interested in helping with this, we need to discuss details before any work is started. Thanks!

    help_wanted source:community 
    opened by charlesh88 31
  • [Plots] #638 New plot display options

    [Plots] #638 New plot display options

    Early PR for visibility and comments.

    Ch-ch-ch-ch-changes ★

    1. Have defined a new attribute of Types called "regions". Regions are sections of the browse and edit screens for an object that, while fixed in location, have content that is completely customizable on a per-type basis. Regions are represented in code by a new Region class. Within Regions are RegionParts. A Region can have any number of RegionParts defined. The layout of both Regions and RegionParts are defined by representations. Whether a region part is visible within a region can depend on object state, and is determined by a policy of category region.
    2. Defined a new TypeRegionDecorator that defines standard regions for objects to avoid having to add region sections to all type definitions. Only have to explicitly define regions if a type has special requirements, such as the new plot display options.
    3. Defined a new EditableRegionPolicy which provides a convenience method for determining whether a region part should be visible in edit/browse mode based on a modes attribute in RegionPart definition.
    4. Modified the browse and edit screens to define an Inspector region. Currently this is the only region defined, however I will also defined 'object view' and 'elements' regions. Within the object inspector is the standard properties and location sections.
    5. Added a very basic mct-form definition to the plot options region part. mct-form needs some modification to support plot options - see below

    Next Steps

    General

    • Define a new type for plots. Currently the plot options region part is defined for panels because there is no plot object type
    • Integrate with @larkin's plot changes. In particular, how to communicate changes in plot view options to the plot itself. My thinking is that because plot view options will be persisted as configuration on the options, the plot can just listen to mutation events on the object and reload the config. We need to coordinate on this though.
    • The RegionController is a little clunky at the moment. At the very least it needs a more performant approach to filtering region parts.
    • Define regions for object view and elements
    • Incorporate regions into NEM refactoring as it allows for separation of markup for browse and edit mode versions of a screen.

    Modifications needed in mct-form

    • Support re-ordering of labels and controls (currently labels are always to the left of controls, this is incompatible with the screen mockups)
    • Support the addition of a glyph / icon in between control and label. @charlesh88 - where are these images going to come from?
    • Style changes necessary to make forms look nice in the inspector sidebar. @charlesh88 Are you working on markup / style changes for this at the moment? If not I could use some help with this.
    • Currently overflow is messy in the sidebar with the elements section and doesn't work. @charlesh88 might need some help with this also.
    opened by akhenry 30
  • Fix Example imagery 5158

    Fix Example imagery 5158

    Closes

    Describe your changes:

    All Submissions:

    • [x] Have you followed the guidelines in our Contributing document?
    • [x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
    • [ ] Is this change backwards compatible? For example, developers won't need to change how they are calling the API or how they've extended core plugins such as Tables or Plots.

    Author Checklist

    • [x] Changes address original issue?
    • [ ] Unit tests included and/or updated with changes?
    • [x] Command line build passes?
    • [x] Has this been smoke tested?
    • [x] Testing instructions included in associated issue OR is this a dependency/testcase change?

    Reviewer Checklist

    • [ ] Changes appear to address issue?
    • [x] Changes appear not to be breaking changes?
    • [x] Appropriate unit tests included?
    • [x] Code style and in-line documentation are appropriate?
    • [x] Commit messages meet standards?
    • [ ] Has associated issue been labelled unverified? (only applicable if this PR closes the issue)
    • [ ] Has associated issue been labelled bug? (only applicable if this PR is for a bug fix)
    source:community pr:daveit 
    opened by afahey87 29
  • Indicators api

    Indicators api

    In-progress PR for the Indicators API. For a simple indicator (90% of cases) it works like so:

    //var myIndicator = openmct.indicators.create(1000); // With optional priority 
    var myIndicator = openmct.indicators.create();
    myIndicator.text("Hello World!");
    myIndicator.iconClass("icon-info");
    

    In this scenario, Open MCT mostly manages how the indicator looks (though css classes can be applied with the appropriate function calls), and is completely responsible for updating the UI when the setter functions are called. The behavior of the indicator is left to external code under the control of the developer, with the setter functions used to update its onscreen appearance. See the updated Follow Indicator and URL Status Indicator for examples of its use.

    For a completely custom indicator you can pass a function into the call to openmct.indicators.create(function). The only requirement for the function you provide is that it must return a DOM node for insertion alongside the other indicators. In this mode, no indicator object is returned, and the caller is entirely responsible for the look, behavior, and ongoing updating of the indicator. eg.

    //openmct.indicators.create(1000, function () { // With optional priority
    openmct.indicators.create(function () {
        var domNode = document.createElement('div');
        domNode.innerText = new Date().toString();
        setInterval(function () {
            domNode.innerText = new Date().toString();
        }, 1000);
        return domNode;
    });
    

    Looking for comments on the approach taken here.

    To do

    • [x] Allow definition of priorities for indicators
    • [x] Wrap nodes returned by custom display functions. (Currently indicators MUST have certain classes attached otherwise they won't display properly).
    • [x] API Documentation
    • [x] Code cleanup
    • [x] Tidy up commits
    • [ ] ~~Convert default indicator to Vue component? (Currently using vanilla JS).~~ Deferring for now. Not really sure it makes sense to do this anyway, it would end up being more code than the current implementation I suspect.
    • [x] Unit tests
    • [x] JSHint / JSCS
    opened by akhenry 27
  • [CLOCK] Allow clock to set timezone with autocomplete dropdown option.

    [CLOCK] Allow clock to set timezone with autocomplete dropdown option.

    Addresses #1273

    • Added autocomplete control. To use it just need to pass options as either an array of strings or an object with name and value.
    • User will be able to set timezone via autocomplete control. Default timezone is UTC.

    Author Checklist

    1. Changes address original issue? Y
    2. Unit tests included and/or updated with changes? Y
    3. Command line build passes? Y
    4. Changes have been smoke-tested? Y
    opened by dhrubomoy 27
  • [locator widget] unclear what is happening when folders are not valid selections

    [locator widget] unclear what is happening when folders are not valid selections

    When a user is using the locator widget (e.g. move, copy, link, etc), and they select a location that is invalid, the locator refreshes with no contents selected.

    With scratchpad enabled, you can reproduce like so:

    1. Create a folder inside of the "scratchpad" folder.
    2. Create an object inside of the "my items" folder.
    3. right click on the object you created in "my items" and select "move".
    4. in the locator widget, expand the scratchpad folder.
    5. Select the folder you created in the "scratchpad" folder as the destination.

    Behavior: the locator tree collapses, the folder you attempted to select is no longer visible. There is no message indicating why it doesn't work.

    Here's a short gif showing current behavior: clicking-is-weird

    Throwing this in le guin for triage, we can move it to a later sprint after looking at it.

    @charlesh88 think we'd need some design about how to show users that their selection is invalid. Or should we grey out invalid choices? Need some messaging to users about why this can't be done.

    type:bug bug:regression 
    opened by larkin 25
  • excessive JS/DOM element allocations causing app wide performance degredation

    excessive JS/DOM element allocations causing app wide performance degredation

    I've been digging into "performance degradation while editing" and been able to lock down the issue as unrelated to editing. However, it is possible the issue is exacerbated by changes made to mct-representation to support new edit mode.

    Notes from my research:

    If you have two large parent tree nodes (say, 100 elements per), and you expand them both (to load composition) and then close them, you'll drastically spike the tree watch count (in testing, I can easily get the tree to 8k watches). This significantly slows down digests.

    Once you've done this, every time you navigate to one of the parent nodes (can just navigate back and forth), the ng-repeat re-builds all of the nodes contained in the node. This creates a ton of DOM elements and seems to trigger excessive refreshes of mct-representation.

    Here's a resource timeline that I captured with a low (~800) watch count, while toggling between two folders:

    switching between channel nodes that have not been expanded

    You can see significant allocations, but the GC is running and freeing up space.

    It seems that when there is significant processing to be done (e.g. when you've got 8k watches), the GC doesn't run frequently and chrome starts eating up memory. At some point, performance goes through the floor and the app is basically unusable.

    Case in point: With about 8k active watches, Here's a resource timeline where I started selecting one node, selected another node, and then selected the original node. Each node had ~100 children. The nodes themselves did not have a main view, which leads me to believe that this is due to tree resource allocation (though that's not certain). You can see that node count and js heap size both increase per interaction.

    screen shot 2016-03-09 at 6 15 25 pm

    At the same time, GCs don't run even though significant allocations have occured. It seems that chrome is happy to consume large amounts of memory (I can get my JS heap to ~3gb easily). I'd expect the V8 GC to be pretty aggressive but it's not even running. Manually triggering a GC does free up most of the resources.

    Another way to reproduce this: in an environment with a lot of searchable objects, search for "a", and then "a " (a followed by a space). The same results will be shown, and you can keep typing spaces and each space will recreate the search results and thrash a bunch of elements.

    A few things could be fixed:

    • we should use "track by" domainObjectId (or index) in ng-repeats to reduce re-allocation of dom objects.
    • we should reduce watch count in the tree to give the GC more time to run (i think?) and generally improve performance.
    • we should prevent MCTRepresentation from calling refresh three times for every time it is linked. (two $watch initializations call it, and then it's called at the end of the link function).
    • we should simplify the tree markup (reduce the number of DOM elements per node).

    @VWoeltjen I've assigned to you because I wanted to get your input. We could merge the mct-refresh and mct-observe changes which would significantly reduce watch counts and would reduce the scale of the issue, and is probably a faster solution than waiting to replace the tree with a non-angular tool. But have to look at all of these problems together, too.

    Bottom line, our js memory usage is absurdly high. I'm amazed how huge the heap gets in a short period of time.

    type:bug severity:critical 
    opened by larkin 25
  • Fix for Fault Management Visual Bugs

    Fix for Fault Management Visual Bugs

    Closes #5365

    Describe your changes:

    All Submissions:

    • [ ] Have you followed the guidelines in our Contributing document?
    • [ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
    • [ ] Is this change backwards compatible? For example, developers won't need to change how they are calling the API or how they've extended core plugins such as Tables or Plots.

    Author Checklist

    • [x] Changes address original issue?
    • [ ] Unit tests included and/or updated with changes?
    • [x] Command line build passes?
    • [ ] Has this been smoke tested?
    • [ ] Testing instructions included in associated issue OR is this a dependency/testcase change?

    Reviewer Checklist

    • [ ] Changes appear to address issue?
    • [ ] Changes appear not to be breaking changes?
    • [ ] Appropriate unit tests included?
    • [ ] Code style and in-line documentation are appropriate?
    • [ ] Commit messages meet standards?
    • [ ] Has associated issue been labelled unverified? (only applicable if this PR closes the issue)
    • [ ] Has associated issue been labelled bug? (only applicable if this PR is for a bug fix)
    opened by rukmini-bose 0
  • [e2e] Update definition of

    [e2e] Update definition of "slow" test, add '@slow' annotation and fix fixtures.js to allow testTime

    Summary

    We have some tests which verify funcionality that can take greater than 30s to trigger. Let's update the test suite to support these tests by:

    1. Ensure that our definition of slow matches the framework's in the project config
    2. Update slow tests which meet this definition with the @slow annotation
    3. Update fixtures.js to allow us to extend the test.slow() annotation. This is currently not working.
    type:maintenance 
    opened by unlikelyzero 0
  • fix sourcemaps in testing

    fix sourcemaps in testing

    #5211

    Describe your changes:

    All Submissions:

    • [x] Have you followed the guidelines in our Contributing document?
    • [x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
    • [x] Is this change backwards compatible? For example, developers won't need to change how they are calling the API or how they've extended core plugins such as Tables or Plots.

    Author Checklist

    • [x] Changes address original issue?
    • [ ] Unit tests included and/or updated with changes?
    • [x] Command line build passes?
    • [x] Has this been smoke tested?
    • [x] Testing instructions included in associated issue OR is this a dependency/testcase change?

    Reviewer Checklist

    • [ ] Changes appear to address issue?
    • [ ] Changes appear not to be breaking changes?
    • [ ] Appropriate unit tests included?
    • [ ] Code style and in-line documentation are appropriate?
    • [ ] Commit messages meet standards?
    • [ ] Has associated issue been labelled unverified? (only applicable if this PR closes the issue)
    • [ ] Has associated issue been labelled bug? (only applicable if this PR is for a bug fix)
    opened by scottbell 1
  • Unamed Example Imagery in Tabs View

    Unamed Example Imagery in Tabs View

    Closes

    Describe your changes:

    All Submissions:

    • [ ] Have you followed the guidelines in our Contributing document?
    • [ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
    • [ ] Is this change backwards compatible? For example, developers won't need to change how they are calling the API or how they've extended core plugins such as Tables or Plots.

    Author Checklist

    • [ ] Changes address original issue?
    • [ ] Unit tests included and/or updated with changes?
    • [ ] Command line build passes?
    • [ ] Has this been smoke tested?
    • [ ] Testing instructions included in associated issue OR is this a dependency/testcase change?

    Reviewer Checklist

    • [ ] Changes appear to address issue?
    • [ ] Changes appear not to be breaking changes?
    • [ ] Appropriate unit tests included?
    • [ ] Code style and in-line documentation are appropriate?
    • [ ] Commit messages meet standards?
    • [ ] Has associated issue been labelled unverified? (only applicable if this PR closes the issue)
    • [ ] Has associated issue been labelled bug? (only applicable if this PR is for a bug fix)
    opened by afahey87 1
  • Fix legend color to be in sync with plot color on change

    Fix legend color to be in sync with plot color on change

    Closes #5233

    Describe your changes:

    Duplicate of pull request #5338 but branched off of release/2.0.5 instead of master.

    Contains a few other changes from last pull request:

    • Noticed the swatch was fixed for overlays, but not for stacked plots. I fixed that by checking type of the domainObject and adjusting the path to the observer.
    • Add e2e to test the swatch color change

    All Submissions:

    • [x] Have you followed the guidelines in our Contributing document?
    • [x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
    • [x] Is this change backwards compatible? For example, developers won't need to change how they are calling the API or how they've extended core plugins such as Tables or Plots.

    Author Checklist

    • [x] Changes address original issue?
    • [ ] Unit tests included and/or updated with changes?
    • [x] Command line build passes?
    • [x] Has this been smoke tested?
    • [x] Testing instructions included in associated issue OR is this a dependency/testcase change?

    Reviewer Checklist

    • [ ] Changes appear to address issue?
    • [ ] Changes appear not to be breaking changes?
    • [ ] Appropriate unit tests included?
    • [ ] Code style and in-line documentation are appropriate?
    • [ ] Commit messages meet standards?
    • [ ] Has associated issue been labelled unverified? (only applicable if this PR closes the issue)
    • [ ] Has associated issue been labelled bug? (only applicable if this PR is for a bug fix)
    opened by alizenguyen 1
Releases(v2.0.4)
  • v2.0.4(Jun 13, 2022)

  • v2.0.3(May 3, 2022)

    Improvements In Memory Search performance and namespacing issues bug:regression #4946 Align image freshness indicators with VERVE #4885 Make image thumbnails available from display layouts #4884 Add Gauge plugin #4896 Optimize "View Large" action for imagery #4850 [Performance] Investigate and implement userTiming API metrics to a "problematic page" #4401 Multiple telemetries destroy table performance #5102

    Bug fixes Image thumbnails should be right-aligned #4847 Changing object name from edit properties does not get re-indexed for search #4948 The View menu option on domain object in the tree and layout view does not do what is expected #5043 [Imagery View] View large has a delay for image sizing #5053 [Plot] y-axis label missing for multiple endpoints even if they share the same range #5057 [Plot] Unit column is not populating in plot legend #5058 Flexible layouts do not save changes when switched into "rows" mode #5084 [Telemetry Collection] Telemetry table excluding start and end bound values #5095 After a Domain Object is modified, composition changes are not being saved #5097 LAD table not quite as LAD as telemetry table #5111 [Alphanumerics] Alphanumeric Telemetry Views in Display Layouts Bounds Issue #5130 Condition Widgets trigger hundreds of persistence calls. #5137

    Maintenance/Tests Add e2e tests to verify that basic CRUD operations are working #4700 [Build] Add support for node18 #4964 Vue makes telemetry collections reactive in Telemetry Tables #5037 [e2e] Snapshot bugs in exportAsJSON
    [Testing] performance marks for telemetry tables #5108 tests flake #5060

    Source code(tar.gz)
    Source code(zip)
  • v2.0.2(Apr 19, 2022)

    Improvements
    [Image Telemetry] Support pan-zoom #34 Optimize "View Large" action for imagery #4850 Image thumbnails should be right-aligned #4847 Align image freshness indicators with VERVE #4885 Raw-loader needs to be replaced with asset modules in webpack 5 #4997 [Build] Move off of all unnecessary loaders for webpack 5 #5007

    Bug Fixes [Stacked Plot] Conditional styles on an object does not show inside a stacked plot #3038 Form validation error messages are not being displayed properly #4697 Unsaved changes to notebook entries can sometimes be lost #4744 Sometimes difficult to add new entries to notebooks in layouts #4748 Domain object properties validation not working always #4849 [clock] timezone dropdown once expanded does not collapse #4878 Event Generator does not show data in fixed time mode #4879 [Plots] "Grab" cursor should be shown when panning #4911

    Maintenance Bump git-rev-sync and add coverage #4962 [Build] Remove Support for Node12 after EOL #4872 [build] Update eslint and eslint-vue packages and enforce new rules #4659 [build] Invert npmignore file to reduce complexity #4641 [Dependencies] Lock dependency version numbers #3178 add type annotations #4793 [Docs] Make browser support explicit #4802 [e2e] e2e PR Triggers are currently broken #4942

    Source code(tar.gz)
    Source code(zip)
  • v2.0.1(Mar 23, 2022)

    Improvements Revisit plan views to accomodate changes to VIPER plan JSON #4882 Add user name attribution to Notebook entries #4599 Fix all code that is using creatability as a proxy for persistability #4323

    Bug Fixes Plans folder gives false sense of editability #3741 Static root plugin not loading after namespace/key changes in OpenMCT #4684 Scrubbing and zooming the time conductor should update the start and end inputs in real time #4352 Changing display layout grid size throws console error #4901 Plot x-axis getting cut off in display layout #4902 Time Conductor input fields do not work at all in real-time mode #4914 [Link Action] Unable to link root level objects #4951

    Maintenance [Build] Add support for node:16 #3966 [Build] Remove API Doc Generation #4808 [CI] Inline linting warnings are extremely noisy on pr:platform workflow #4909

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Feb 18, 2022)

    Breaking Remove or replace all remaining code that depends upon Angular 1.x #4525

    Bug Fixes [Display Layout] Grid half visible on inspector collapse #4467 Adding an item with the same name doesn't update tree view #4571 Fix code scanning alert - Client-side URL redirect #4757 Timestrip View doesn't display Plans properly #4810

    Maintenance and Tests Re-implement the event generator as a new-style #4552 Make node support explicit #3952 [e2e] Add MMOC Monitor Resolution to functional, visual, and performance testing #4694 [Build] Webpack Compilation Error is shown in some scenarios #4778 [CI] Remove dependabot whitelist #4794 [Build] npm run clean script references absolute path instead of relative for node_modules #4800 [Build] Enforce node version at build-time #4845

    Source code(tar.gz)
    Source code(zip)
  • v1.8.4(Jan 31, 2022)

    Improvements [Root Objects] Need a way to specify order (use priorities API) #4638 Add independent time conductor to plots #4503 locator menus should all be alphabetically sorted #4466 Implement User API #4407 [UTCTimeFormat] Convert to ES6 Plugin refactor #4390 fix plot color scheme (especially in espresso) #4360 Reimplement in-memory search indexer refactor #4041 Use Server-Sent Events in the Couch DB adapter #3881 Re-implement Create and EditProperties actions and dialogs in new API #3787 [Condition Widgets] Should show text output of condition set #3634

    Bug Fixes Flexible layouts are not tracking changes in sub objects #4773 Snapshot tray is sometimes obscured by long notebooks #4746 Notebooks synchronization issues #4737 Independent time setting persists across domain objects #4722 Move action issue fix #4663 Error building Open MCT on some systems bug:regression #4652 [Display Layout] grid disable toggle does not hide grid in display layout #4543 Copyright updates for Open MCT template (and other files) #3979 [Self updating plans] When plan name is updated, the title of the plan on the browser tab will stay as the original name #3739

    Maintenance and Tests Add requisites to installation instructions #4730 [Build] Support IDE Intellisense #4690 [CI] Enable more e2e tests as a part of our CI Checks #4674 [CI] Actually build on a specified nvm version instead of lts/fermium #4654 [CI] Modify the dependabot config to pick up packages which contain the dependency name instead of startwith #4642 [Doc] Update Readme to include badge from npm registry #4618 fix .spec.js file not being executed. #4606 [CI] Implement Cache busting in our CircleCI Config #4575 [CI] Determine why codecov.io is reporting ~50% coverage instead of ~70% #4563 Many ExportAsJSONAction spec tests are X'd out. #4558 Update copyright to 2022 - automate this? #4532 [Build] Upgrade Webpack version to 5 #3899

    Source code(tar.gz)
    Source code(zip)
  • v1.8.3(Jan 17, 2022)

    Improvement WorkerService is no longer needed Needs: Test Procedure #4482 Implement Telemetry Request Abort #4361 [My Items] Customizable folder name on install #4626 Remove usage of the IdentifierService from any non-legacy code #4590 Make legacy support optional #4615 [Code cleanup] Remove legacy about dialog #4038

    Maintenance Replace legacy format service #4530 Remove Angular code from Summary Widgets and make them non-creatable #4588 Re-implement LocalStorage in ES6 and without Angular #4589 [CI] Update Circle CI branch protection rules for 1.8.3 to match the overall circleci check #4596 Do not install legacySupport plugin by default in index.html #4613 Should use relative paths for npm build purposes #4682

    Bugs Unable to create links for objects #4695 Editing a Display Layout and saving throws some errors #4681 [Condition Set] When creating a new condition set, the resulting domain object does not result in 'Edit mode' #4600 Imagery click on left/right arrow not working #3779 [Notebook] Creating Notebook entries randomly throws errors with a Couch backend #2918 Snapshot notice link not navigating as expected #4194 Imagery in timestrip view shows the wrong image in large view #4327 Notebook Snapshotting to the default Notebook isn't working #4469 [Snapshots] Blank PNG/JPG image generated for snapshots #4526 [Imagery] Adjusting the bounds will sometimes cause the focusedImage to shift which image is selected #4555 Unable to add LAD tables to LAD table sets #4579

    Source code(tar.gz)
    Source code(zip)
  • v1.8.2(Dec 27, 2021)

    Improvements Remove time context switching from views #4226

    Bug Fixes "Export as JSON" yielding corrupted data #4577 Unable to create new Condition set #4542 [Import from Json] Imported options need to have the File Selector clicked twice to Import #4561 Domain object properties Notes don't appear in Inspector, but should #4430

    Tests and Maintenance Replace all remaining usage of the legacy dialogService under /src/ #4551 [CI] Ignore tests in codecov reporting #4549 Remove mct-template component #4536 [Release] Remove tests from npm scripts #4511Alphabetical sorting should ignore case #4483 "My Items" interceptor test failing #4476 Investigate flakey Couch DB test #4462 Object API changes for Transactions needs test specs #4460 New Transactions API needs test specs severity:blocker Target:1.8.2 type:maintenance #4369

    Source code(tar.gz)
    Source code(zip)
  • v1.8.1(Dec 12, 2021)

    Improvements indicators display order should be configurable #4170 Configurable example imagery #4026 [LAD] [Alphanumeric] Update views to use Request Animation Frame (RAF) #4339 The Object API should propagate out fresh model to any observers when .get() is called #4305

    Refactor New "My Items" plugin needed #4088 Implement transactions in Object API and retire legacy transactions #4089 [Timer] Re-implement Timer object in Vue.js #4131

    Bug Fixes

    [Infrastructure] method name sortDescending should be renamed to sortAscending #4481 imported objects are not persisting #4470 Install timer plugin for VIPER #4465 New objects sporadically overlap in treeview #4464 [Tabs] Clicking on a tab will reload the view unnecessarily performance #4435 Notebook Objects cannot be created with CouchDB enabled #4422 [Bar Graph Plugin] Accepts types that it should not #4400 Moving an object in a Display Layout and clicking off causes it to snap back to previous position #4385 Creating a new Condition Set goes into Browse mode #4378 Changing the Time Conductor bounds while the Imagery View is paused displays a broken image #4328 New objects not getting added to parent object - couchdb #4293 [Display Layout] Grid disappearing when scrolling down (in Edit Mode) #4207 LAD Table does not show string telemetry items #3323

    Maintenance Fix typo in security policy and duplicate security issue entries in template #4448 Add Issue template for Security Issues and type:maintenance #4424 [CI] Add Dependabot to our infrastructure, test, and tooling dependencies #4399

    Source code(tar.gz)
    Source code(zip)
  • 1.7.8(Oct 26, 2021)

    Improvements TelemetryCollections now yield historical data progressively as pages return.(Rather than blocking until everything comes back) #4200 Support Bar Graphs in Open MCT #4177 Re-implement Clock object and indicator in Vue.js refactor #4042 Support independent time control of Time Views #3927 Re-implement DeviceClassifier in vanilla JS #3788 [Time Views] Basic prototype Time View that supports composition with imagery #2977 [Performance] Table performance issue when inserting new rows #4284 [Performance] [Plots] Plot performance degradation in vue from angular performance #4084 #4282 [Performance] Memory leak in Import/Export Plugin #4060

    Bug fixes [Time Conductor] Pan/Zoom causes duplicate bounds events #4294 User inputs need to be sanitized #4265 Condition widgets are causing persistence conflicts with Couch DB #4254 Import as JSON dialog select file button not working properly #4241 JSON import causing 409 errors regression #4240 Table data export does not export all available rows #4234 Conditional Styling not being applied when editing a Condition Widget #4196 Changing time bounds results in duplicate telemetry requests #4167 Persistence errors in Condition Sets when editing Condition Widgets #4146 Flexible Layouts display Condition Sets as their editing/browsing interface #4141 Plots should not request on vertical resize performance #4139 Only zoom and pan should pause plot, not click #4138 Y-axes for stacked plots do not line up #4129 #3955 Persistence errors for multiple users making new Snapshot entries in same Notebook #4122 Notebook console error when Open MCT starts up #4119 Snapshot clicked while in edit mode should open in preview mode #4115 Clear data for objects clears data for all objects #4065 [Painterro] Painterro text input not being removed after annotating Snapshot #4019 Display Layout snapshot issue #4013 [Snapshots] Deleting Notebook Snapshots doesn't clear out mct Local Storage #4000 [Timestrip] Zoom and pan are incorrectly disabled for Plot object views contained within a Timestrip #3974 Pausing Imagery telemetry in Fixed Time mode shows alert styling, but shouldn't #3898 [Overlay Plot] Should not accept Imagery on Drop #3599 Error in console on exiting new condition set #3223 [Notebook] Example Imagery doesn't capture images #2942

    Testing [Telemetry Table] Progress Bar Tests #4248

    Source code(tar.gz)
    Source code(zip)
  • v1.7.7(Sep 10, 2021)

    Improvements Small Refactor on ActionCollection code #4143 [Typo Fixes] Various typo fixes #4130 [Telemetry Collections] Add new Telemetry API endpoint for aggregated time-bound telemetry #3639 [Telemetry Collections] Abort signal key name incorrect #4118 Tables should use telemetry formatter for determining bounded telemetry sort order #4008 [Imagery] Remove roll and pitch as required keys for orientation #3745 [Notebook] Create Snapshot directly from any frame in a layout #3300

    Bug Fixes Notebook doesn't display interface after creation #4144 Overlay Plots cannot be styled - in display layouts #4140 Resize handler causes plot to make duplicate request #4121 [Plots] plot performance degradation in vue from angular #4084 Notebook Snapshot menu is only updating section and page names for the editor's view #3982 MMGIS plugin grabs cursor when dragging pane edges duplicate #3953 Tree Classic height calculation needs to handle Snapshot container expansion and collapse #3929 [Display Layout] Right click on item acts as sticky move #3343 [Annotation] Should not output to console on cancel #3185

    Testing and CI [Linting] Fix Lint Errors (will be required for merge) #4081

    Source code(tar.gz)
    Source code(zip)
  • 1.7.6(Aug 11, 2021)

    Improvements [Clock] Implement new "Remote Clock" #3983 [Plugins] Re-implement Hyperlink plugin with Vue #4056 [Couch Object Provider] The Couch DB adapter should use a Shared Worker for the _changes feed #3880 [Imagery] Click on image to get a large view #3582 [Plots] Add option to change x plot Axis while maintaining time conductor query #2380

    Bug Fixes [Plots] legend does not update y-axis values when y-axis is changed #4079 [Couch Object Provider] Uncaught TypeError: this.stopObservingObjectChanges is not a function, Uncaught TypeError: Cannot read property 'filter' of undefined regression #4074 [Telemetry Table] changing visibility of columns only happens on re-navigation #4005 Drag into Iframe doesn't see mouseup event #3986 URL Params to hide tree and inspector help wanted #3758

    Testing and CI Add initial automated Lighthouse testing to CI #3939 Update circle and karma to support chrome:latest testing #3860

    Deprecated [Legacy] Timeline bundle should be removed #4028

    Source code(tar.gz)
    Source code(zip)
  • 1.7.5(Jul 23, 2021)

    Improvements Add mock test data for showing compass on example imagery #4006 Use escape key to dismiss dialog real time conductor dialog options #3977 Support Inspection of Activities from Plans and Time Views #3832 [Notebooks] Don't save images on the object #3755

    Bug Fixes [Time Conductor] zoom/pan in realtime plot removed on time conductor input click #4017 [Notebook Snapshots] Snapshots of Imagery views have a number of issues #3963 Persistence errors when using Conditional Styling #3954 [Edit Mode] should not allow navigation while in edit mode #3891 [Imagery] Cant scroll historical images when not paused Overlay plots do not fetch historical data on zoom or pan #3992 Navigating sporadically throws Couch errors #3964 actionCollection update event looping when open View Large in Display layout #3959 Refreshing always results Local Clock mode #3921 Fix UI "typos" #3909

    Source code(tar.gz)
    Source code(zip)
  • v1.7.4(Jun 28, 2021)

    Improvements [Plots] Show plot limit lines for telemetry #3914 #3884 [Tabbed Layouts] Reimplement New Tab action in vanilla JS #3834 [Notebooks] Multi-user notebooks - v1 #3784 [Notebook] Copy label and value from alphanumeric in Layout directly to a Notebook entry #3299 [Time Conductor] Improved Time Conductor inputs #3311

    Bug Fixes Navigating sporadically throws Couch errors #3964 [Styles] no js-style-receiver class in object view results in console error #3949 Tree doesn't update after renaming during Duplicate action #3944 Plan View/Timestrip not responding to Time Conductor bounds changes #3943 Move action dialog is correct for one object type #3940 Disallow panning and zooming plots in time strip view #3847

    Testing Fix dangling promises in unit tests #3828

    Documentation [README] Add link to discussions show and tell in README.md #3932

    Source code(tar.gz)
    Source code(zip)
  • v1.7.3(Jun 7, 2021)

    Improvements [Navigation Tree] Revert/Refactor - falls back to previous navigation tree implementation due to user feedback #3841 [Plots] Support pause / play #3782 "Ok" is not OK - Fixes the OK text to appear correctly in the application #3849 Browser back button in Open MCT #3588 [Plot] Synchronize time conductor to plot zoom/pan state. #1261

    Bug Fixes [Navigation Tree] Closed folders still listening to composition #3918 [Imagery] Compass element in images set to visible by default #3896 [Imagery] Compass rose does not resize with images #3742 Timers not updating for multiple users as expected #3608 [Plots] View large from display layouts should trigger a re-request of telemetry Improvement #3555 [Imagery] Imagery brightness and contrast are affecting the wrong DOM element #3467 LAD views should respond to conductor bounds changes #2929 LAD Table Set allowed to be created in/moved into LAD Table #2892

    Documentation [API Documentation] Small typo line 426 #3885

    Deprecated features Remove "follow timer" action and indicator #3824

    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Apr 5, 2021)

    Improvements "Import as JSON" dialog is not intuitive #3763 [Notebook] Improve Search and [TextHighlight] Ability to highlight text #3760 Updates copyright year to 2021 #3699 [Menu API] All our drop down menus should use the new menu api #3620 Add lookahead padding to the plan time axis #3419

    Bug Fixes [Notebook] Search excluding sections/pages with no initial entries #3777 [Imagery] Click on image to get a large view #3583

    Tests Tests for flexible layouts and tabs views #3768

    Source code(tar.gz)
    Source code(zip)
  • 1.6.2(Mar 17, 2021)

  • v1.6.2-rc1(Mar 10, 2021)

    Breaking Change The openmct.objectViews.get API now requires the contextual object path of the object being viewed in order to find views for a given object. Example: openmct.objectViews.get(object, objectPath)

    Improvements/New Features [Elements Pool] Needs context-clicked class like tree-item and better rearranging drag and drop interface Improvement #3695 Introduce self-synchronizing objects #3705 Basic time strip view for plots and plans #3692 [Tabs View] Improve Lazy Load logic #3672 [Imagery Plugin] Add Related Telemetry functionality and Image Freshness Indicators #3665 [Imagery View] Add Compass Rose and Compass HUD #3658 [Notebook] Press Enter to save notebook entries #3579 [User testing feedback] Tree navigation "up" arrow could be clearer #3575 [Plots] Allow Plot views to toggle axis grid lines visibility R4.6 #3294

    Bug Fixes Object names should not be editable for non user-editable objects #2634 [Notebook] Remove 'Saved to Notebook Snapshots' notification #2859 [Condition Sets] Should not evaluate newer data that falls out of the time conductor bounds #3528 [Object Tree] non creatable objects should not have remove context action #3560 [Layouts] Layouts only saving in browser cache #3571 [Maintenance] objectEventEmitter.js is not used maintenance #3625 [Tree] Forget where the user was navigated to in the tree #3648 [Tree Item] Clicking on tree item when in edit mode is broken #3667 [Tabs View] Deleting a tab via the "x" button removes the wrong tab #3673 [Flexible Layouts] Does not add objects that are saved directly in the layout #3679 Remove all * Listeners used by views #3688 Refactor plots to use Vue #3691 Plans are not listed in results if the plans are large #3700 [Imagery Plugin] Don't story telemetry, create an object to hold needed information #3702 Compass rose sun jumps when loading new images #3706 Searching in the tree renders openmct unusable #3709 CouchDB plans don't update if they are large #3711 [Imagery Freshness] Need to have position freshness based on position, not orientation #3714 Vue-based plots should not be available in view-switcher #3722 [Abort Search] Still makes requests after abort #3727 Plans should accept either file input OR JSON object #3730 [Imagery Freshness] Imagery freshness indicators flicker sometimes #3731 Unable to switch views or edit objects #3732 Unable to create objects #3735

    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Feb 3, 2021)

    Improvements/New Features [Tree] Should fill the full width of Tree Item #3627

    Bug Fixes [Notebook] Notebook entry cursor is on right side of input for blank entries #3491 [Tree] Click on tree item while in edit mode does not show object in large view/preview #3644

    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Jan 13, 2021)

    Improvements/New Features

    • Navigation Tree now visually shows users what item they have context clicked Improvement
    • An indication of max. updates per second was added

    Bug Fixes

    • [Tree] Navigating while load in progress breaks tree
    • Tree is sporadically recursively duplicating items in its hierarchy bug critical
    • Object Icon missing from 'view-large' and 'Preview'
    • Need a whitespace/padding between icon and title text
    • [Notebook] Problem copying unitless telemetry values to notebook
    • [Notebook] Font style and control placement and menu allows clipping.
    • [Notebook] Cannot add any additional notebook entries after initial entry
    • [Notebook] Link to snapshot should not be a fully qualified url
    • [Notebook] Do not persist domain objects on notebooks or snapshots
    • [Conditionals] When composition is still loading the condition message shows undefined Improvement
    • [Conditionals] Should not update domainObject style on destroy
    • [Conditionals] Removing telemetry for a matching condition causes output to stick Target:R4.5

    Testing

    • Unit tests added for local time system
    • Fixed Error in Plan.vue when running unit tests
    • Fix failing notebook tests from three-dot-menu-proto
    • Fixed Error while running npm test locally
    • Added tests for Imagery Plugin
    Source code(tar.gz)
    Source code(zip)
  • v1.4.1(Dec 11, 2020)

    Improvements/Changes: New (3-dot) drop-down Menu in the main view makes navigating actions and view controls easier. Fonts can now be updated in the style inspector Duplicate and move actions are now disabled for non creatable objects Tests written for UTC time system Notebook refactored - functionality maintained Duplicate action refactored - functionality maintained

    Bug Fixes: After updating OpenMCT, the default page is "Missing: mct:mine" My Items plugin can not load correctly [Export Snapshots] With periods in the file name will cause system to think the file type is anything after the period [Display layouts] Drawing objects cannot be selected in Display Layouts [Timeline view] Timeline Plan view does not group activities correctly [Timeline view] Timeline plan view should display new activities immediately Views are broken in Safari - now works [Plots] Switching from Enum to Non Enum, does not refresh the Y Axis [Conductor] Remove 24 hour default limit in time conductor [Persistence] Couch DB provider is not working Object API is returning undefined for missing objects "Move" context action leaves Linked object in original location

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Nov 9, 2020)

    Improvements: Debounce requests to objectApi.get() Add Timeline plugin to hulk deployment Allow user to select and apply font size and family as a style option [Display Layout] User should be able to set outer dimensions [Display Layout] User should be able to toggle grid lines [Tree] Simplified tree implementation

    Bug fixes: [Notebook] Annotation tools are partially obscured [Search] Objects in search tree do not have same functionality as objects in navigation tree [Notebook] Creating new entries now works [Fixed Position] Provide default position for telemetry points [Telemetry Tables] Should display total number of rows and marked rows Flexible Layouts don't allow usage of Imagery brightness and contrast controls [Display Layout]Telemetry Graphs on display layout are not visible [Navigation Tree] Duplicate ancestors showing in the tree [Tables] Object names should appear in tables Example Imagery styles not applied as expected Web Page objects cannot be created

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Oct 5, 2020)

    Documentation: Updated the Versioning process

    New Features / Improvements: [Open MCT] Change default "The Root Object" Root name to "Open MCT"

    Bug Fixes: [Actions] "Create New Folder" Action no longer throws an error when using CouchDB as persistence storage [Persistence] Error persisting new objects if object from non-persistable namespace selected in tree [Time Conductor] Zoom changes bounds as expected. This was not working correctly before. [Navigation Tree] UI fixes, Tree in modal context now scrolls correctly

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Sep 3, 2020)

    Breaking Changes: Open MCT linting only works with nodejs 10 or greater.

    New Features and Improvements: [Layout] Tree refactor Improvement refactor [Persistence] The Couch DB persistence provider is now implemented as an Object Provider rather than the legacy angular persistence provider and now also allows saving objects. [RemoveAction] Test satement coverage to 50% [Conditionals] Evaluation of conditions now stops when the first condition evaluates to true. This is for performance improvement of condition sets.

    Bug Fixes: [Conditionals] Description displays incorrect condition on condition re-order is fixed [Conditionals] Message string is incorrect is fixed for enums [Conditionals] Condition Set using "any | all telemetry" summarizes State badly is fixed

    Source code(tar.gz)
    Source code(zip)
  • v1.2.4(Aug 18, 2020)

    Bug fixes:

    • "Error Requesting Telemetry" in display layouts
    • [Preview] Preview window should not have any context menu actions
    • [Imagery] Timestamp parsing of realtime data should support metadata 'source' attribute
    • [Display Layout] Lines impossible to move when vertical or horizontal
    • Dragging into locked View puts the editor in 'edit' mode
    • [Telemetry] Subscriptions are not being cleaned up properly
    • Layout problem with is-missing__label element
    • [Tabs View] Unable to remove tab from tabs view interface
    • [Snapshots] Are holding on to outdated domainObjects when clicking on preview

    New features and improvements:

    • Update TelemetryTable config to allow disable multiselect
    • [Clear Data] Needs to allow optionally installing the indicator
    • [Missing Items] should have the status: is-missing value
    • [API] Implement the "save" method on the Object API
    • Display Layout test satement coverage 20% or more

    Minification of Vue library for production

    Source code(tar.gz)
    Source code(zip)
  • 0.14.0(Dec 11, 2019)

Owner
NASA
Read about NASA's Open Data initiative here: https://www.nasa.gov/open/ & Members Find Instructions here: http://nasa.github.io/
NASA
Golanger Web Framework is a lightweight framework for writing web applications in Go.

/* Copyright 2013 Golanger.com. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except

golanger 299 Mar 3, 2022
The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework.

jin About The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework. If thi

null 8 Dec 27, 2021
A simple blog framework built with GO. Uses HTML files and a JSON dict to give you more control over your content.

Go-Blog A simple template based blog framework. Instructions Built for GO version: 1 See the Documentation or Getting Started pages in the wiki. Notes

Matt West 45 Feb 18, 2022
⚡ Rux is an simple and fast web framework. support middleware, compatible http.Handler interface. 简单且快速的 Go web 框架,支持中间件,兼容 http.Handler 接口

Rux Simple and fast web framework for build golang HTTP applications. NOTICE: v1.3.x is not fully compatible with v1.2.x version Fast route match, sup

Gookit 77 Apr 16, 2022
henrylee2cn 1.6k Jun 26, 2022
Roche is a Code Generator and Web Framework, makes web development super concise with Go, CleanArch

It is still under development, so please do not use it. We plan to release v.1.0.0 in the summer. roche is a web framework optimized for microservice

Riita 15 May 21, 2022
A powerful go web framework for highly scalable and resource efficient web application

webfr A powerful go web framework for highly scalable and resource efficient web application Installation: go get -u github.com/krishpranav/webfr Exa

Krisna Pranav 13 Nov 28, 2021
A powerful go web framework for highly scalable and resource efficient web application

A powerful go web framework for highly scalable and resource efficient web application

null 21 May 25, 2022
A web app built using Go Buffalo web framework

Welcome to Buffalo Thank you for choosing Buffalo for your web development needs. Database Setup It looks like you chose to set up your application us

Mike Okoth 0 Feb 7, 2022
Goa is a web framework based on middleware, like koa.js.

Goa Goa is under construction, if you are familiar with koa or go and interested in this project, please join us. What is goa? goa = go + koa Just lik

null 46 May 17, 2022
Lightweight web framework based on net/http.

Goweb Light weight web framework based on net/http. Includes routing middleware logging easy CORS (experimental) Goweb aims to rely only on the standa

Travis Harmon 32 May 9, 2022
Swagger + Gin = SwaGin, a web framework based on Gin and Swagger

Swagger + Gin = SwaGin Introduction SwaGin is a web framework based on Gin and Swagger, which wraps Gin and provides built-in swagger api docs and req

long2ice 47 Jun 11, 2022
Swagger + Gin = SwaGin, a web framework based on Gin and Swagger

Swagger + Gin = SwaGin Introduction SwaGin is a web framework based on Gin and Swagger, which wraps Gin and provides built-in swagger api docs and req

long2ice 49 Jun 24, 2022
based on go lang build WEB development framework for go lang beginners .

based on go lang build WEB development framework for go lang beginners .

zhenfan.yu 1 Oct 31, 2021
Go-igni: monolith-based web-framework in Go Inspired by classical PHP Frameworks like CodeIgnier & Laravel

go-igni Web Framework in Go About This is research project about developing monolith-based web-framework in Go Inspired by classical PHP Frameworks li

Denis 1 Feb 25, 2022
laravel for golang,goal,fullstack framework,api framework

laravel for golang,goal,fullstack framework,api framework

桥边红药 17 Feb 24, 2022
Gin is a HTTP web framework written in Go (Golang).

Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

Gin-Gonic 60.5k Jun 25, 2022
An ideally refined web framework for Go.

Air An ideally refined web framework for Go. High-performance? Fastest? Almost all web frameworks are using these words to tell people that they are t

Aofei Sheng 414 Jun 15, 2022
An opinionated productive web framework that helps scaling business easier.

appy An opinionated productive web framework that helps scaling business easier, i.e. focus on monolith first, only move to microservices with GRPC la

appist 120 Jun 2, 2022