{ "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": "%" } ] } }