openmct/platform/features/timeline
Pete Richards 0d53898af9 Build refactor to webpack (#2139)
* Move to webpack build
* Use webpack for building openmct.  Move SCSS to one folder and load
all core css up front.  Remove bower, begin removing gulp in favor
of npm run.
* Uses eslint instead of jshint and jscs.  Merge style checking rules
into .eshintrc.js, carrying over core parts of crockford style and
our adaptations.  Current code base fails to pass the linter, want
to separate linter changes from fixes to linting rules.
* Support for Vue SFC with example
* Remove outdated examples
* Use HTML loader for html (supports relative imports of resources e.g.
images) and raw-loader for when javascript must be loaded as text.
2018-08-07 14:47:50 -07:00
..
res/templates deprecated timeline (#2119) 2018-07-20 15:45:30 -07:00
bundle.js Build refactor to webpack (#2139) 2018-08-07 14:47:50 -07:00
README.md [Timeline] Remove namespacing from README 2015-10-23 13:45:54 -07:00

This bundle provides the Timeline domain object type, as well as other associated domain object types and relevant views.

Implementation notes

Model Properties

The properties below record properties relevant to using and understanding timelines based on their JSON representation. Additional common properties, such as modified or persisted timestamps, may also be present.

Timeline Model

A timeline's model looks like:

{
    "type": "timeline",
    "start": {
        "timestamp": <number> (milliseconds since epoch),
        "epoch": <string> (currently, always "SET")
    },
    "capacity": <number> (optional; battery capacity in watt-hours)
    "composition": <string[]> (array of identifiers for contained objects)
}

The identifiers in a timeline's composition field should refer to other Timeline objects, or to Activity objects.

Activity Model

An activity's model looks like:

{
    "type": "activity",
    "start": {
        "timestamp": <number> (milliseconds since epoch),
        "epoch": <string> (currently, always "SET")
    },
    "duration": {
        "timestamp": <number> (duration of this activity, in milliseconds)
        "epoch": "SET" (this is ignored)
    },
    "relationships": {
        "modes": <string[]> (array of applicable Activity Mode ids)
    },
    "link": <string> (optional; URL linking to associated external resource)
    "composition": <string[]> (array of identifiers for contained objects)
}

The identifiers in a timeline's composition field should only refer to other Activity objects.

Activity Mode Model

An activity mode's model looks like:

{
    "type": "mode",
    "resources": {
        "comms": <number> (communications utilization, in Kbps)
        "power": <number> (power utilization, in watts)
    }
}