mirror of
https://github.com/nasa/openmct.git
synced 2024-12-21 06:03:08 +00:00
0635e7c38e
Timeline uses a custom date-time control on creation; use a distinct key for this to avoid a naming collision with platform's datetime. Addresses abnormal behavior identified in nasa/openmctweb#208
386 lines
14 KiB
JSON
386 lines
14 KiB
JSON
{
|
|
"name": "Timelines",
|
|
"description": "Resources, templates, CSS, and code for Timelines.",
|
|
"resources": "res",
|
|
"extensions": {
|
|
"constants": [
|
|
{
|
|
"key": "TIMELINE_MINIMUM_DURATION",
|
|
"description": "The minimum duration to display in a timeline view (one hour.)",
|
|
"value": 3600000
|
|
},
|
|
{
|
|
"key": "TIMELINE_MAXIMUM_OFFSCREEN",
|
|
"description": "Maximum amount, in pixels, of a Gantt bar which may go off screen.",
|
|
"value": 1000
|
|
},
|
|
{
|
|
"key": "TIMELINE_ZOOM_CONFIGURATION",
|
|
"description": "Describes major tick sizes in milliseconds, and width in pixels.",
|
|
"value": {
|
|
"levels": [
|
|
1000,
|
|
2000,
|
|
5000,
|
|
|
|
10000,
|
|
20000,
|
|
30000,
|
|
60000,
|
|
|
|
120000,
|
|
300000,
|
|
600000,
|
|
|
|
1200000,
|
|
1800000,
|
|
3600000,
|
|
7200000,
|
|
|
|
14400000,
|
|
28800000,
|
|
43200000,
|
|
86400000
|
|
],
|
|
"width": 200
|
|
}
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"key": "timeline",
|
|
"name": "Timeline",
|
|
"glyph": "S",
|
|
"description": "A container for arranging Timelines and Activities in time.",
|
|
"features": [ "creation" ],
|
|
"contains": [ "timeline", "activity" ],
|
|
"properties": [
|
|
{
|
|
"name": "Start date/time",
|
|
"control": "timeline-datetime",
|
|
"required": true,
|
|
"property": [ "start" ],
|
|
"options": [ "SET" ]
|
|
},
|
|
{
|
|
"name": "Battery capacity (Watt-hours)",
|
|
"control": "textfield",
|
|
"required": false,
|
|
"conversion": "number",
|
|
"property": [ "capacity" ],
|
|
"pattern": "^-?\\d+(\\.\\d*)?$"
|
|
}
|
|
],
|
|
"model": { "composition": [] }
|
|
},
|
|
{
|
|
"key": "activity",
|
|
"name": "Activity",
|
|
"glyph": "a",
|
|
"features": [ "creation" ],
|
|
"contains": [ "activity" ],
|
|
"description": "An action that takes place in time. You can define a start time and duration. Activities can be nested within other Activities, or within Timelines.",
|
|
"properties": [
|
|
{
|
|
"name": "Start date/time",
|
|
"control": "timeline-datetime",
|
|
"required": true,
|
|
"property": [ "start" ],
|
|
"options": [ "SET" ]
|
|
},
|
|
{
|
|
"name": "Duration",
|
|
"control": "duration",
|
|
"required": true,
|
|
"property": [ "duration" ]
|
|
}
|
|
],
|
|
"model": { "composition": [], "relationships": { "modes": [] } }
|
|
},
|
|
{
|
|
"key": "mode",
|
|
"name": "Activity Mode",
|
|
"glyph": "A",
|
|
"features": [ "creation" ],
|
|
"description": "Define resource utilizations over time, then apply to an Activity.",
|
|
"model": { "resources": { "comms": 0, "power": 0 } },
|
|
"properties": [
|
|
{
|
|
"name": "Comms (Kbps)",
|
|
"control": "textfield",
|
|
"conversion": "number",
|
|
"pattern": "^-?\\d+(\\.\\d*)?$",
|
|
"property": [ "resources", "comms" ]
|
|
},
|
|
{
|
|
"name": "Power (watts)",
|
|
"control": "textfield",
|
|
"conversion": "number",
|
|
"pattern": "^-?\\d+(\\.\\d*)?$",
|
|
"property": [ "resources", "power" ]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"views": [
|
|
{
|
|
"key": "values",
|
|
"name": "Values",
|
|
"glyph": "A",
|
|
"templateUrl": "templates/values.html",
|
|
"type": "mode",
|
|
"uses": [ "cost" ],
|
|
"editable": false
|
|
},
|
|
{
|
|
"key": "timeline",
|
|
"name": "Timeline",
|
|
"glyph": "S",
|
|
"type": "timeline",
|
|
"description": "A timeline view of Timelines and Activities.",
|
|
"templateUrl": "templates/timeline.html",
|
|
"toolbar": {
|
|
"sections": [
|
|
{
|
|
"items": [
|
|
{
|
|
"method": "add",
|
|
"glyph": "+",
|
|
"control": "menu-button",
|
|
"text": "Add",
|
|
"options": [
|
|
{
|
|
"name": "Timeline",
|
|
"glyph": "S",
|
|
"key": "timeline"
|
|
},
|
|
{
|
|
"name": "Activity",
|
|
"glyph": "a",
|
|
"key": "activity"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"items": [
|
|
{
|
|
"glyph": "\u00E9",
|
|
"description": "Graph resource utilization",
|
|
"control": "button",
|
|
"method": "toggleGraph"
|
|
},
|
|
{
|
|
"glyph": "A",
|
|
"control": "dialog-button",
|
|
"description": "Apply Activity Modes...",
|
|
"title": "Apply Activity Modes",
|
|
"dialog": {
|
|
"control": "selector",
|
|
"name": "Modes",
|
|
"type": "mode"
|
|
},
|
|
"property": "modes"
|
|
},
|
|
{
|
|
"glyph": "\u00E8",
|
|
"description": "Edit Activity Link",
|
|
"title": "Activity Link",
|
|
"control": "dialog-button",
|
|
"dialog": {
|
|
"control": "textfield",
|
|
"name": "Link",
|
|
"pattern": "^(ftp|https?)\\:\\/\\/\\w+(\\.\\w+)*(\\:\\d+)?(\\/\\S*)*$"
|
|
},
|
|
"property": "link"
|
|
},
|
|
{
|
|
"glyph": "\u0047",
|
|
"description": "Edit Properties...",
|
|
"control": "button",
|
|
"method": "properties"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"items": [
|
|
{
|
|
"method": "remove",
|
|
"description": "Remove item",
|
|
"control": "button",
|
|
"glyph": "Z"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"stylesheets": [
|
|
{
|
|
"stylesheetUrl": "css/timeline.css"
|
|
},
|
|
{
|
|
"stylesheetUrl": "css/timeline-espresso.css",
|
|
"theme": "espresso"
|
|
},
|
|
{
|
|
"stylesheetUrl": "css/timeline-snow.css",
|
|
"theme": "snow"
|
|
}
|
|
],
|
|
"representations": [
|
|
{
|
|
"key": "gantt",
|
|
"templateUrl": "templates/activity-gantt.html",
|
|
"uses": [ "timespan", "type" ]
|
|
}
|
|
],
|
|
"templates": [
|
|
{
|
|
"key": "timeline-tabular-swimlane-cols-tree",
|
|
"priority": "mandatory",
|
|
"templateUrl": "templates/tabular-swimlane-cols-tree.html"
|
|
},
|
|
{
|
|
"key": "timeline-tabular-swimlane-cols-data",
|
|
"priority": "mandatory",
|
|
"templateUrl": "templates/tabular-swimlane-cols-data.html"
|
|
},
|
|
{
|
|
"key": "timeline-resource-graphs",
|
|
"priority": "mandatory",
|
|
"templateUrl": "templates/resource-graphs.html"
|
|
},
|
|
{
|
|
"key": "timeline-resource-graph-labels",
|
|
"priority": "mandatory",
|
|
"templateUrl": "templates/resource-graph-labels.html"
|
|
},
|
|
{
|
|
"key": "timeline-legend-item",
|
|
"priority": "mandatory",
|
|
"templateUrl": "templates/legend-item.html"
|
|
},
|
|
{
|
|
"key": "timeline-ticks",
|
|
"priority": "mandatory",
|
|
"templateUrl": "templates/ticks.html"
|
|
}
|
|
],
|
|
"controls": [
|
|
{
|
|
"key": "timeline-datetime",
|
|
"templateUrl": "templates/controls/datetime.html"
|
|
},
|
|
{
|
|
"key": "duration",
|
|
"templateUrl": "templates/controls/datetime.html"
|
|
}
|
|
],
|
|
"controllers": [
|
|
{
|
|
"key": "TimelineController",
|
|
"implementation": "controllers/TimelineController.js",
|
|
"depends": [ "$scope", "$q", "objectLoader", "TIMELINE_MINIMUM_DURATION" ]
|
|
},
|
|
{
|
|
"key": "TimelineGraphController",
|
|
"implementation": "controllers/TimelineGraphController.js",
|
|
"depends": [ "$scope", "resources[]" ]
|
|
},
|
|
{
|
|
"key": "TimelineDateTimeController",
|
|
"implementation": "controllers/TimelineDateTimeController.js",
|
|
"depends": [ "$scope" ]
|
|
},
|
|
{
|
|
"key": "TimelineZoomController",
|
|
"implementation": "controllers/TimelineZoomController.js",
|
|
"depends": [ "$scope", "TIMELINE_ZOOM_CONFIGURATION" ]
|
|
},
|
|
{
|
|
"key": "TimelineTickController",
|
|
"implementation": "controllers/TimelineTickController.js"
|
|
},
|
|
{
|
|
"key": "TimelineTableController",
|
|
"implementation": "controllers/TimelineTableController.js"
|
|
},
|
|
{
|
|
"key": "TimelineGanttController",
|
|
"implementation": "controllers/TimelineGanttController.js",
|
|
"depends": [ "TIMELINE_MAXIMUM_OFFSCREEN" ]
|
|
},
|
|
{
|
|
"key": "ActivityModeValuesController",
|
|
"implementation": "controllers/ActivityModeValuesController.js",
|
|
"depends": [ "resources[]" ]
|
|
}
|
|
],
|
|
"capabilities": [
|
|
{
|
|
"key": "timespan",
|
|
"implementation": "capabilities/ActivityTimespanCapability.js",
|
|
"depends": [ "$q" ]
|
|
},
|
|
{
|
|
"key": "timespan",
|
|
"implementation": "capabilities/TimelineTimespanCapability.js",
|
|
"depends": [ "$q" ]
|
|
},
|
|
{
|
|
"key": "utilization",
|
|
"implementation": "capabilities/UtilizationCapability.js",
|
|
"depends": [ "$q" ]
|
|
},
|
|
{
|
|
"key": "graph",
|
|
"implementation": "capabilities/GraphCapability.js",
|
|
"depends": [ "$q" ]
|
|
},
|
|
{
|
|
"key": "cost",
|
|
"implementation": "capabilities/CostCapability.js"
|
|
}
|
|
],
|
|
"directives": [
|
|
{
|
|
"key": "mctSwimlaneDrop",
|
|
"implementation": "directives/MCTSwimlaneDrop.js",
|
|
"depends": [ "dndService" ]
|
|
},
|
|
{
|
|
"key": "mctSwimlaneDrag",
|
|
"implementation": "directives/MCTSwimlaneDrag.js",
|
|
"depends": [ "dndService" ]
|
|
}
|
|
],
|
|
"services": [
|
|
{
|
|
"key": "objectLoader",
|
|
"implementation": "services/ObjectLoader.js",
|
|
"depends": [ "$q" ]
|
|
}
|
|
],
|
|
"resources": [
|
|
{
|
|
"key": "power",
|
|
"name": "Power",
|
|
"units": "watts"
|
|
},
|
|
{
|
|
"key": "comms",
|
|
"name": "Comms",
|
|
"units": "Kbps"
|
|
},
|
|
{
|
|
"key": "battery",
|
|
"name": "Battery State-of-Charge",
|
|
"units": "%"
|
|
}
|
|
]
|
|
}
|
|
}
|