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
Comments
  • [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
  • Replace app.js with webpack-dev-server

    Replace app.js with webpack-dev-server

    Closes #5031 and #4922 and #5476

    Describe your changes:

    • Uses webpack-dev-server instead of our custom app.js express application.
    • Cleans up our use of NODE_ENV variables
    • Updates our testing configurations to avoid using HMR when collecting code coverage
    • Removes the need for cross_env
    • Removes our Memory size override for Node when running the unit tests as node 14 has increased the default to our previously specified size

    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?
    • [ ] 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

    • [x] 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)
    pr:e2e pr:platform pr:e2e:couchdb 
    opened by scottbell 28
  • 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
  • UI updates to Y axis

    UI updates to Y axis

    Closes #5792

    Describe your changes:

    Known Issues: Adding/Removing series to different Y axis buckets requires navigating away and back to the overlay plot.

    Changes:

    • Move the Y axis name to the bottom of the y-axis area
    • Move the gear icon below the name of the y-axis
    • Add a visibility toggle to the y-axis
    • Add color swatches to indicate which series are part of the y axis (no hover interaction is done for MVP)

    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?
    • [ ] 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?
    • [ ] Reviewer has tested changes by following the provided instructions?
    • [ ] Changes appear not to be breaking changes?
    • [ ] Appropriate automated tests included?
    • [ ] Code style and in-line documentation are appropriate?
    • [ ] 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 shefalijoshi 2
  • Gauges misuse the forms API

    Gauges misuse the forms API

    Summary

    The Forms API was designed to allow developers to extend the built-in form capabilities of Open MCT with custom controls that can be integrated within standard Open MCT object properties forms.

    Gauges misuse the custom form component API to shoehorn an entire custom form into the object properties dialog. This presents many problems including re-implementing form handling that Open MCT already does, and prevents reuse custom form components

    Expected vs Current Behavior

    Gauges should use the forms API to register any custom form components, but rely on the built-in Open MCT form framework for handling form rendering and validation. If there are shortcomings in the built-in framework, then it should be improved to handle these specific cases so that future plugin developers can benefit from it.

    Impact Check List

    • [ ] Data loss or misrepresented data?
    • [ ] Regression? Did this used to work or has it always been broken?
    • [ ] Is there a workaround available?
    • [ ] Does this impact a critical component?
    • [X] Is this just a visual bug with no functional impact?
    • [ ] Does this block the execution of e2e tests?
    • [ ] Does this have an impact on Performance?
    type:bug 
    opened by akhenry 0
  • Allow sharing of plot view with x-axis differing from time system

    Allow sharing of plot view with x-axis differing from time system

    Is your feature request related to a problem? Please describe. Open MCT allows toggling the x-axis so that the data for that range is plotted against the selected x-axis domain as opposed to the domain (time system) specified in the time conductor.

    It would be useful to share this view with others by sharing the url.

    Describe the solution you'd like After toggling the x-axis, share the current url so that navigating to that url will show the plot in the toggled x-axis state.

    1. set params on toggle (would have to specify which plot to toggle)
    2. read in params (in plot view?)
    3. plot view (need to request data, then plot the correct view)

    Additional context If data is plotted in Earth Received Time, it may be useful to view the data plotted in Spacecraft Event Time. And then, it would be useful to share this exact view with colleagues.

    Workaround Navigate to view. Toggle x-axis manually.

    type:enhancement 
    opened by davetsay 0
  • feat(MultiYAxis): allow drag/drop of series directly into YAxis buckets

    feat(MultiYAxis): allow drag/drop of series directly into YAxis buckets

    Closes #6096

    Describe your changes:

    Enable dragging of series elements directly into YAxis buckets within the PlotElementsPool

    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?
    • [ ] Tests included and/or updated with changes?
    • [x] Command line build passes?
    • [x] 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?
    • [ ] Reviewer has tested changes by following the provided instructions?
    • [ ] Changes appear not to be breaking changes?
    • [ ] Appropriate automated tests included?
    • [ ] Code style and in-line documentation are appropriate?
    • [ ] 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 ozyx 0
  • Operator Status Indicator v1.1 improvements

    Operator Status Indicator v1.1 improvements

    Description

    This design extends the design of the Admin's Indicator panel to include a table of responses, so that a layout or telemetry view doesn't need to be used to see detailed per-position responses. This view will not be limited to any Time Conductor settings. This design also introduces the idea of a "Clear Poll Question" button, which clears any active poll questions as well as status responses in regard to that question.

    Tasks

    • [ ] Status Response Table @scottbell looking into this Each response includes the following information: We need to define in what way the table will be sorted. Currently, we are leaning towards sorting alphabetically by Operator Positions' name. Position of the Operator Current status Age of response (Time since the status was last updated). OP Status popup is resizable.
    • [ ] Clear Poll Question Button @michaelrogers looking into this Clear button that clears any active poll questions and status responses in regard to that question. If cleared, the table of status responses will become empty. This ability to clear a poll question and disable any statuses would be useful because otherwise, a poll question will always be active, even if OPS are not.
    • [ ] [Table] Implement loading spinner animation on row until fully loaded while waiting for data from YAMCS when first starting up

    Notes

    • Sorting not needed for 1.1 version of the table, but possibly for v2.0 based on user feedback.
    type:enhancement 
    opened by michaelrogers 1
  • Dragging a series from the tree directly to the 2nd y axis throws errors

    Dragging a series from the tree directly to the 2nd y axis throws errors

    Summary

    Dragging a series into a multiple-y-axis supporting overlay plot's 2nd y axis group does not work.

    Expected vs Current Behavior

    Expected: The series should be added to the top of the 2nd y axis bucket Actual: Error is observed as follows:

    [Vue warn]: Error in v-on handler: "TypeError: this.elementsCache[keyString] is undefined"
    
    found in
    
    ---> <ElementItemGroup> at src/ui/inspector/ElementItemGroup.vue
           <PlotElementsPool> at src/ui/inspector/PlotElementsPool.vue
             <Pane> at src/ui/layout/pane.vue
               <Multipane> at src/ui/layout/multipane.vue
                 <Inspector> at src/ui/inspector/Inspector.vue
                   <Pane> at src/ui/layout/pane.vue
                     <Multipane> at src/ui/layout/multipane.vue
                       <Layout> at src/ui/layout/Layout.vue
                         <Root> [vue.js:634](webpack://openmct/node_modules/vue/dist/vue.js?7193)
    TypeError: this.elementsCache[keyString] is undefined
        updateCacheAndMutate PlotElementsPool.vue:269
        moveTo PlotElementsPool.vue:257
        group PlotElementsPool.vue:35
        VueJS 4
        emitDrop ElementItemGroup.vue:91
        VueJS 39
        applySearch PlotElementsPool.vue:230
        applySearch PlotElementsPool.vue:229
        addElement PlotElementsPool.vue:217
        emit CompositionCollection.js:342
        #emit CompositionCollection.js:338
        add CompositionCollection.js:227
        load CompositionCollection.js:243
        load CompositionCollection.js:243
        showSelection PlotElementsPool.vue:152
        mounted PlotElementsPool.vue:118
        VueJS 19
        mounted BrowseBar.vue:248
        emit index.js:137
        edit Editor.js:44
        edit BrowseBar.vue:290
        click BrowseBar.vue:133
        VueJS
    

    Steps to Reproduce

    1. Create a Sine Wave Generators and a State Generator
    2. Create an overlay plot that supports multiple y axes
    3. Drag one sine wave generator to the plot and save it
    4. Edit the Overlay plot so that the elements pool is visible
    5. Drag the State Generator directly on top of the 2nd y axis bucket/group
    6. Observe the error above.

    Environment

    • Open MCT Version: Feature branch - multiple y axes
    • Deployment Type: Local
    • OS: All
    • Browser: All

    Impact Check List

    • [ ] Data loss or misrepresented data?
    • [ ] Regression? Did this used to work or has it always been broken?
    • [x] Is there a workaround available?
    • [x] Does this impact a critical component?
    • [ ] Is this just a visual bug with no functional impact?
    • [ ] Does this block the execution of e2e tests?
    • [ ] Does this have an impact on Performance?

    Additional Information

    type:bug severity:blocker needs:e2e 
    opened by shefalijoshi 2
Releases(v2.1.5)
  • v2.1.5(Jan 3, 2023)

    Bug Fixes [CLA on File] docs: fixed punctuation & grammar in summary section #6037 Plots should handle Infinity gracefully #5657 Imagery is auto-scrolling Display Layout on update #5867 Locator search results show deleted objects #6030 [CouchDB] Creating an object hangs forever after receiving a conflict error #5982 Remote clock throws an error if time system is set before remote clock object resolved #6062 Tree sporadically doesn't update from composition changes #5975 Tree Disappeared in Location Tab When Creating New Object #5819 Related telemetry for imagery not received in realtime mode #6074 Time list views should support following remote clock, not just wall clock #5629 Conflict resolution is not working in multi-user notebooks #5921 [Imagery] Mutation error on navigation #5984

    Maintenance [Tables] Clean up filter code logic #5063

    Source code(tar.gz)
    Source code(zip)
  • v2.1.4(Dec 19, 2022)

    Improvements Show me where I am zoomed within an image #5851 [MMGIS] Modify Independent time contexts, open in new tab action, and expose overlay plots to support MMGIS pivoting #5953

    Bug Fixes Remove Follow Time Action and Indicator #3664 Go To Original should not be allowed from elements pool in edit mode #5847 Time input selection in flexible layout causes plot requery #5874

    Maintenance [e2e] Update tests to be compatible with viper #5513 README still references live demo #6005

    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Nov 28, 2022)

    Improvements
    [Display Layouts] Should use composition API for adding and removing children, not mutation #3482

    Bug Fixes [DisplayLayout] Object removal from object tree doesn't consistently remove object from Display Layout in main window #3117 [Gauge] On create, changing Value ranges and limits will override any form changes above #5356 Display Layout toolbar should be consistent #5480 'Now' line in the time strip doesn't span vertically #5628 Notebook should not check edit state, should instead check if transaction is active #5747 User edits can be lost if failures occur during save #5848 [Import/Export] Example Display Layouts are broken on Import or Export #5857 Refactor code to use composition API #5860 Starting OpenMCT fresh causes persistent error message #5914 Uncaught TypeError: Cannot read properties of undefined (reading 'offsetWidth') #5959 Tree sporadically stops populating #5976 [Gauge] Editing any single config property causes all other config properties to become undefined #5985

    Maintenance and Tests [e2e][couchDB] Verify that domainObject property changes are committed only once #5912 [flake] The Object API The save function when a provider is available the persisted timestamp for new objects is >= modified timestamp #5922

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2(Nov 1, 2022)

    Enhancements Add user author attribution to objects #5656 Plans should show version if available #5782 [objectApi] Add "created" timestamp to newly created domainObjects #5801 [Restricted Notebook] Sync changes for restricted notebook types from couchDB #5818

    Bug Fixes [CouchDB] Status indicator erroneously shows 'connected' in some scenarios #5406 'Save' on Edit Properties mutates objects multiple times for a single property change #5616 Condition Widget text alignment is broken #5799 [Webpack] Changes to *.scss files no longer being hot-reloaded in development mode #5832 Create action does not respect namespace #5890 Objects are being persisted with a modified timestamp > persisted timestamp #5919

    Maintenance Document one Open MCT API using TypeScript #5778 [Build] Remove last traces of lighthouse ci #5706 Remove noisy and unnecessary types #5882 [NPM] Add e2e files to npm package #5928

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Oct 12, 2022)

    Improvement Synchronization for new tags on notebook entries #5734

    Bug fixes [Notebook] Dropped item embeds not displaying properly #4967 [Sine Wave Generator] Clicking on the plot causes duplicate plot points to appear #5395 Grid icons are wrong #5303 [Toolbar] Error occurs under some circumstances after editing display layouts and flexible layouts "units" displayed instead of "unit" in the plot top legend and legend form #5540 Race condition can cause notebook entry tag updates to be lost #5558 Misc UI problems #5640 [Notebook] Many network calls generated when a single entry is added #5641 In time conductor history, show them on hover if only milliseconds have changed #4386 An error while saving can leave Open MCT in an unrecoverable state #5802 Search is case-sensitive when searching for YAMCS telemetry #5822 Deleting a notebook entry without tags throws an error and the modal does not close #5823 [Plots] Plot series not updated when removing a series #5824 [Elements Pool] Aliased items are not shown to be aliased #5833 [Tabs View] Making requests when switching tabs while eager load is true #4206 [Plots] Should not make requests every time a user clicks on the plot #3033 Example Imagery dropped into LAD Table throws errors #2945

    Maintenance Proposal: Require reviewer to smoke test before merge #5770 Replace app.js with webpack-dev-server #5031 [ci] Move off app.js refactor #4922

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Sep 30, 2022)

    Enhancement Use fetch API "priority" option to optimize UI blocking requests #5718

    Bug fix Flexible Layouts don't allow text selection, but must #5389 [Notebook] Various visual issues with Notebook navigation #5413 Remote changes to notebooks not being reflected in real-time Independent time conductor not working with plans inside time strip #5627 Unhandled TypeError while using Grand Search #5639 [Notebook] Delete Page PopUp Does Not Go Away #5679 Unhandled TypeError when creating an object within a Flexible Layout #5682 [Flexible Layout][Import/Export] Embedded tab view lost when exporting flexible layout #5715

    Maintenance [Flake] The URLTimeSettingsSynchronizer when the clock is set via the time API, it is reflected in the URL #5224 [Build] Remove maelstromTheme #5562

    Source code(tar.gz)
    Source code(zip)
  • v2.0.8(Sep 1, 2022)

    Improvements Search should indicate in-progress and no results states #5572 Search should indicate if the result is from a removed object #5407 Install gauge plugin by default #5450 [Imagery Layers] Allow adding layers for imagery #5324 [Fault Management] Create example Fault Telemetry Provider for Ease of Use and Testing #5302 UI Components should be exposed #5288 [Forms] improvements #5245

    Bug Fixes [Grand Search] Duplicate search results when using CouchDB #5690 Clicking image thumb in Time Strip doesn't display selected image #5632 Time Conductor History does not work in real-time mode #5626 [Condition Sets] Cannot add Condition to Condition Set #5625 Disallow move and link to child object #5620 Infinite loop in some search cases #5615 On new CouchDB install, "My Items" isn't being created #5606 Plans show incorrect start and end time in time list view #5605 [Object Tree] Handle targeting an orphaned object #5603 Menus in Snow theme have no border #5556 The in-memory search indexer is observing mutation of the composition property #5549 Correlation Telemetry Object throws errors and does not emit any correlated values #5539 Multiple problems in Time List view #5534 Cannot switch hyperlink type to button when using Couch DB #5533 Object rename is unreliable #5489 Open MCT is swallowing some persistence errors #5488 Condition Sets in Telemetry Views do not show any telemetry #5485 Fault Management is throwing console errors #5481 Search results sometimes show the wrong contextual path, or no path at all #5469 Various UI problems #5467 Adding a Telemetry Point to a display layout throws an error and shows no data #5460 Bar Graph does not update when time conductor value changes #5456 Unable to create a bar graph with endpoints with enum metadata #5442 Shared Items disappeared #5441 Map tool is no longer loading under static root #5440 Clicking on a search entry does not navigate to entry in tree #5439 If no poll question has been set, operator status indicator shows "--" #5424 Old stacked plot objects broken with console error #5420 Potential for memory leaks with Telemetry Collections #5419 Domain Object Properties are not applied at time of being set #5398 Using New Search while editing yields unexpected results #5391 [Operator Status] RangeError: Invalid time value #5385 [Static Root Plugin] Plugin fails to load if key value in the tree is null #5380 Fault Management visual issues #5365 Stacked Plots having configuration saved on load #5363 Tags not persisting locally #5361 [Condition Widget] Creating a Condition Widget causes console errors #5349 Cannot drag imagery brightness/contrast sliders when embedded in flexible layout #5326 Gauges don't pay attention to the "Display units" property setting #5325 Gauge is not displayed correctly on Firefox #5323 VIPER build info missing #5322 [Fault Management] Icon not showing in fault list due to case issue with class #5299 Imagery View does not discard old images when they fall out of bounds #5291 [Example Imagery]: Historical images don't populate for certain image load delay values #5265 Plan objects are large - look into making loading efficient #5249 Remote clock shows empty plots #5221 Plots are sometimes not showing (or too eagerly hiding) spinners #5219 Time strip views should only allow time-based plots, imagery and plans #5160 Unset Gauge limits are being handled as 0 #5139 [LAD Tables][Display Layout] LAD Table in Display Layout Composition Issues #5033 Sometimes cannot remove folders #4915 Navigating from condition widget back to display layout can cause background to become styled with Localstorage #4912 Plots in a Tabs View don't re-query when Time Conductor toggled to Local Clock #4777 unable to remove object from composition #4661 [Bar Graph Plugin] Accepts types that it should not #4400 Three dot action menu in the main pane doesn't refresh on object state change #4313 Handle missing objects gracefully in Open MCT #4258 [Imagery] Images cannot be saved #3756 Couch DB Search folder should not show orphan plans #3707 Legacy stacked plot interceptor should be renamed for clarity #5463

    Maintenance and Tests Add test for imagery filter reset #5319 Add a regression test for image thumbnails #5106 [Fault Management] Add unit and e2e tests #5613 [Unit Tests] Get test:watch working again #5306 [Build Process] Intermittent error when using execSync to get git rev and branch info #5501 No source maps in development mode #5497 Remove performance marks for build 6 #5464 Tests aren't using source maps #5566 [Save Form] ExampleImagery Save Form 'OK' button is made available before Form validation has completed flake #5184 Possible memory leak in idle app #1401 [e2e] Update Console error fixture to be more informative#5273 [e2e] Update e2e lint rules to match best practices #5263 [e2e] Add code coverage support for our e2e tests #4995 [Unit tests] Update unit tests to match new describe() and it() syntax checks #5405 [e2e] Add firefox and chrome beta to the full suite #5366 [Codecov] Migrate off of bash uploader pattern #5331 [e2e] Get the full e2e suite working before codefreeze #5329 [Build] Undo Build 6 CircleCI Nightly changes post release #5437 [Unit Tests] Remove firefox support now that deterministic installs and coverage is provided by playwright #5436 Update main readme to move the legacy information #5528 PRCop only checks for lower-case x checkboxes #5526 Fix code scanning alert - Incomplete string escaping or encoding #5508 [Build] Add visual testing suite to circle CI checks #5478

    Source code(tar.gz)
    Source code(zip)
  • v2.0.5(Jul 13, 2022)

    Improvements UI Components should be exposed #5288 Support plotting of spectra as either a bar chart (histogram) or lines #5264 Operator Status Indicators #5193 Improved image pause handling #5149 Image pan and zoom lock persistence #5068 Implement minimal "fault management" capability #5052 Notebook types for shift logging #5035 Telemetry metadata missing timesystem key should warn instead of error #4999 Fix Notebook entry layout #4954 Remove NonEditableFolder plugin #4899 OpenMCT should tell you it cannot connect to its persistence store #4888 Simple functional prototype of notebook entry tagging #4820 Timelist view for activities within a plan #4765 Remove all non-legacy usage of Zepto #4698 Support for underlays for plots using Plotly #4510 Notebook Types #4449 move image export and cursor/grid toggle actions to action menu #4359 [User Request] Show units when available #3197 [plot] support scatter plot (x/y plotting of 2 measurements) #1995 Stacked plots should allow sub object selection #1609 Install gauge plugin by default #5450

    Maintenance and Testing [Performance] Add Open Source Performance tests #5259 Fix lint warnings and configure build to fail on lint warning #5231 [e2e] Enable lint enforcement on e2e suite #5124 Do not install Bar Chart plugin by default #5088 [e2e] Add console error detection to all of our e2e tests #5000 [CI] Flake in the download of the latest Chrome download flake #4977 [Display Layout] Fix non functioning render test #5310 New forms code needs tests #4539 Add test for imagery filter reset #5319 [e2e] Update Console error fixture to be more informative #5273 [e2e] Add code coverage support for our e2e tests #4995 [Build] webpack coverage configuration is throwing lots of errors #4984 [Build] Remove Zepto dependency #4665

    Bug Fixes [Fault Management] Icon not showing in fault list due to case issue with class #5299 Issues when viewing imagery #5274 [Gauge Plugin] Limits and Composition Issues #5155 Unset Gauge limits are being handled as 0 #5139 Local clock mode should remember previously used offsets instead of always using default offsets #5135 Telemetry tables should unpause on time bounds change #5113 Unsupported API in notebook - screen.orientation #4875 Edit Properties and cancel throws console error #4864 Object.hasOwn unsupported #4863 Image alt-drag to pan not working in Ubuntu, but should #4848 Image sizing has visual bugs #4806 Plots in a Tabs View don't re-query when Time Conductor toggled to Local Clock #4777 Clocks and Timers don't apply and persist Style settings properly bug:visual needs:e2e needs:test instructions #3930 [Imagery] Images cannot be saved #3756 [Imagery] Should listen to Clear Data like plots and telemetry tables #3175 Condition Sets in Telemetry Views do not show any telemetry #5485 Various UI problems #5467 Remove performance marks for build 6 #5464 Adding a Telemetry Point to a display layout throws an error and shows no data #5460 [Needs Info][Imagery] Unexpected behavior when using a narrow time window in local-clock mode with slow imagery #5459 Bar Graph does not update when time conductor value changes #5456 Unable to create a bar graph with endpoints with enum metadata #5442 Shared Items disappeared #5441 Map tool is no longer loading under static root #5440 Clicking on a search entry does not navigate to entry in tree #5439 If no poll question has been set, operator status indicator shows "--" #5424 Old stacked plot objects broken with console error #5420 Potential for memory leaks with Telemetry Collections #5419 Using New Search while editing yields unexpected results #5391 [Operator Status] RangeError: Invalid time value #5385 [Static Root Plugin] Plugin fails to load if key value in the tree is null #5380 Fault Management visual issues #5365 Stacked Plots having configuration saved on load #5363 Tags not persisting locally #5361 [Condition Widget] Creating a Condition Widget causes console errors #5349 Cannot drag imagery brightness/contrast sliders when embedded in flexible layout #5326 Gauges don't pay attention to the "Display units" property setting #5325 Gauge is not displayed correctly on Firefox #5323 VIPER build info missing #5322 Imagery View does not discard old images when they fall out of bounds #5291 Plan objects are large - look into making loading efficient #5249 Remote clock shows empty plots #5221 Plots are sometimes not showing (or too eagerly hiding) spinners #5219 [Save Form] ExampleImagery Save Form 'OK' button is made available before Form validation has completed #5184 Time strip views should only allow time-based plots, imagery and plans #5160 [LAD Tables][Display Layout] LAD Table in Display Layout Composition Issues #5033 Navigating from condition widget back to display layout can cause background to become styled with Localstorage #4912 [Bar Graph Plugin] Accepts types that it should not #4400 Three dot action menu in the main pane doesn't refresh on object state change #4313 Handle missing objects gracefully in Open MCT #4258 Possible memory leak in idle app #1401

    Source code(tar.gz)
    Source code(zip)
  • 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)
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 298 Nov 14, 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 Jul 14, 2022
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 Sep 10, 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 84 Dec 8, 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 14 Sep 19, 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 22 Oct 3, 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 47 Sep 27, 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 34 Dec 21, 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 57 Dec 30, 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 57 Dec 30, 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
re:Web enables classic web applications to run on AWS Lambda.

re:Web re:Web enables classic web applications to run on AWS Lambda. re:Web interfaces with the Lambda Runtime API. It translates API Gateway requests

null 106 Jan 1, 2023
Chainrand contract + web frontend + web backend

Chainrand-web This repo contains the implementation of Chainrand. https://chainrand.io Smart Contract Contains functionality to tie a Chainlink VRF to

Chainrand 1 Dec 8, 2021
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 65.5k Jan 3, 2023
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 421 Dec 15, 2022