2016-01-15 01:08:19 +00:00
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Open MCT Web , Copyright ( c ) 2014 - 2015 , United States Government
* as represented by the Administrator of the National Aeronautics and Space
* Administration . All rights reserved .
*
* Open MCT Web is licensed under the Apache License , Version 2.0 ( the
* "License" ) ; you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
* http : //www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS , WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied . See the
* License for the specific language governing permissions and limitations
* under the License .
*
* Open MCT Web includes source code licensed under additional open source
* licenses . See the Open Source Licenses file ( LICENSES . md ) included with
* this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*global define*/
define ( [
2016-02-09 01:42:26 +00:00
"./src/actions/ExportTimelineAsCSVAction" ,
2016-01-15 01:08:19 +00:00
"./src/controllers/TimelineController" ,
"./src/controllers/TimelineGraphController" ,
"./src/controllers/TimelineDateTimeController" ,
"./src/controllers/TimelineZoomController" ,
"./src/controllers/TimelineTickController" ,
"./src/controllers/TimelineTableController" ,
"./src/controllers/TimelineGanttController" ,
"./src/controllers/ActivityModeValuesController" ,
"./src/capabilities/ActivityTimespanCapability" ,
"./src/capabilities/TimelineTimespanCapability" ,
"./src/capabilities/UtilizationCapability" ,
"./src/capabilities/GraphCapability" ,
"./src/capabilities/CostCapability" ,
"./src/directives/MCTSwimlaneDrop" ,
"./src/directives/MCTSwimlaneDrag" ,
"./src/services/ObjectLoader" ,
2016-02-26 21:07:50 +00:00
"text!./res/templates/values.html" ,
"text!./res/templates/timeline.html" ,
"text!./res/templates/activity-gantt.html" ,
"text!./res/templates/tabular-swimlane-cols-tree.html" ,
"text!./res/templates/tabular-swimlane-cols-data.html" ,
"text!./res/templates/resource-graphs.html" ,
"text!./res/templates/resource-graph-labels.html" ,
"text!./res/templates/legend-item.html" ,
"text!./res/templates/ticks.html" ,
"text!./res/templates/controls/datetime.html" ,
2016-01-15 01:08:19 +00:00
'legacyRegistry'
] , function (
2016-02-09 01:42:26 +00:00
ExportTimelineAsCSVAction ,
2016-01-15 01:08:19 +00:00
TimelineController ,
TimelineGraphController ,
TimelineDateTimeController ,
TimelineZoomController ,
TimelineTickController ,
TimelineTableController ,
TimelineGanttController ,
ActivityModeValuesController ,
ActivityTimespanCapability ,
TimelineTimespanCapability ,
UtilizationCapability ,
GraphCapability ,
CostCapability ,
MCTSwimlaneDrop ,
MCTSwimlaneDrag ,
ObjectLoader ,
2016-02-26 21:07:50 +00:00
valuesTemplate ,
timelineTemplate ,
activityGanttTemplate ,
tabularSwimlaneColsTreeTemplate ,
tabularSwimlaneColsDataTemplate ,
resourceGraphsTemplate ,
resourceGraphLabelsTemplate ,
legendItemTemplate ,
ticksTemplate ,
datetimeTemplate ,
2016-01-15 01:08:19 +00:00
legacyRegistry
) {
"use strict" ;
legacyRegistry . register ( "platform/features/timeline" , {
"name" : "Timelines" ,
"description" : "Resources, templates, CSS, and code for Timelines." ,
"resources" : "res" ,
"extensions" : {
2016-02-09 01:42:26 +00:00
"actions" : [
{
"key" : "timeline.export" ,
"name" : "Export Timeline as CSV" ,
"category" : "contextual" ,
"implementation" : ExportTimelineAsCSVAction ,
2016-03-08 00:09:23 +00:00
"depends" : [ "exportService" , "notificationService" ]
2016-02-09 01:42:26 +00:00
}
] ,
2016-01-15 01:08:19 +00:00
"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" ,
2016-02-26 21:07:50 +00:00
"template" : valuesTemplate ,
2016-01-15 01:08:19 +00:00
"type" : "mode" ,
"uses" : [
"cost"
] ,
"editable" : false
} ,
{
"key" : "timeline" ,
"name" : "Timeline" ,
"glyph" : "S" ,
"type" : "timeline" ,
"description" : "A timeline view of Timelines and Activities." ,
2016-02-26 21:07:50 +00:00
"template" : timelineTemplate ,
2016-01-15 01:08:19 +00:00
"editable" : true ,
"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" : "é" ,
"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" ,
2016-03-21 18:13:43 +00:00
"type" : "mode" ,
"layout" : "controls-under"
2016-01-15 01:08:19 +00:00
} ,
"property" : "modes"
} ,
{
"glyph" : "è" ,
"description" : "Edit Activity Link" ,
"title" : "Activity Link" ,
"control" : "dialog-button" ,
"dialog" : {
"control" : "textfield" ,
"name" : "Link" ,
2016-03-21 17:08:59 +00:00
"pattern" : "^(ftp|https?)\\:\\/\\/\\w+(\\.\\w+)*(\\:\\d+)?(\\/\\S*)*$" ,
"cssclass" : "l-input-lg"
2016-01-15 01:08:19 +00:00
} ,
"property" : "link"
} ,
{
"glyph" : "G" ,
"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" ,
2016-02-26 21:07:50 +00:00
"template" : activityGanttTemplate ,
2016-01-15 01:08:19 +00:00
"uses" : [
"timespan" ,
"type"
]
}
] ,
"templates" : [
{
"key" : "timeline-tabular-swimlane-cols-tree" ,
"priority" : "mandatory" ,
2016-02-26 21:07:50 +00:00
"template" : tabularSwimlaneColsTreeTemplate
2016-01-15 01:08:19 +00:00
} ,
{
"key" : "timeline-tabular-swimlane-cols-data" ,
"priority" : "mandatory" ,
2016-02-26 21:07:50 +00:00
"template" : tabularSwimlaneColsDataTemplate
2016-01-15 01:08:19 +00:00
} ,
{
"key" : "timeline-resource-graphs" ,
"priority" : "mandatory" ,
2016-02-26 21:07:50 +00:00
"template" : resourceGraphsTemplate
2016-01-15 01:08:19 +00:00
} ,
{
"key" : "timeline-resource-graph-labels" ,
"priority" : "mandatory" ,
2016-02-26 21:07:50 +00:00
"template" : resourceGraphLabelsTemplate
2016-01-15 01:08:19 +00:00
} ,
{
"key" : "timeline-legend-item" ,
"priority" : "mandatory" ,
2016-02-26 21:07:50 +00:00
"template" : legendItemTemplate
2016-01-15 01:08:19 +00:00
} ,
{
"key" : "timeline-ticks" ,
"priority" : "mandatory" ,
2016-02-26 21:07:50 +00:00
"template" : ticksTemplate
2016-01-15 01:08:19 +00:00
}
] ,
"controls" : [
{
"key" : "timeline-datetime" ,
2016-02-26 21:07:50 +00:00
"template" : datetimeTemplate
2016-01-15 01:08:19 +00:00
} ,
{
"key" : "duration" ,
2016-02-26 21:07:50 +00:00
"template" : datetimeTemplate
2016-01-15 01:08:19 +00:00
}
] ,
"controllers" : [
{
"key" : "TimelineController" ,
"implementation" : TimelineController ,
"depends" : [
"$scope" ,
"$q" ,
"objectLoader" ,
"TIMELINE_MINIMUM_DURATION"
]
} ,
{
"key" : "TimelineGraphController" ,
"implementation" : TimelineGraphController ,
"depends" : [
"$scope" ,
"resources[]"
]
} ,
{
"key" : "TimelineDateTimeController" ,
"implementation" : TimelineDateTimeController ,
"depends" : [
"$scope"
]
} ,
{
"key" : "TimelineZoomController" ,
"implementation" : TimelineZoomController ,
"depends" : [
"$scope" ,
"TIMELINE_ZOOM_CONFIGURATION"
]
} ,
{
"key" : "TimelineTickController" ,
"implementation" : TimelineTickController
} ,
{
"key" : "TimelineTableController" ,
"implementation" : TimelineTableController
} ,
{
"key" : "TimelineGanttController" ,
"implementation" : TimelineGanttController ,
"depends" : [
"TIMELINE_MAXIMUM_OFFSCREEN"
]
} ,
{
"key" : "ActivityModeValuesController" ,
"implementation" : ActivityModeValuesController ,
"depends" : [
"resources[]"
]
}
] ,
"capabilities" : [
{
"key" : "timespan" ,
"implementation" : ActivityTimespanCapability ,
"depends" : [
"$q"
]
} ,
{
"key" : "timespan" ,
"implementation" : TimelineTimespanCapability ,
"depends" : [
"$q"
]
} ,
{
"key" : "utilization" ,
"implementation" : UtilizationCapability ,
"depends" : [
"$q"
]
} ,
{
"key" : "graph" ,
"implementation" : GraphCapability ,
"depends" : [
"$q"
]
} ,
{
"key" : "cost" ,
"implementation" : CostCapability
}
] ,
"directives" : [
{
"key" : "mctSwimlaneDrop" ,
"implementation" : MCTSwimlaneDrop ,
"depends" : [
"dndService"
]
} ,
{
"key" : "mctSwimlaneDrag" ,
"implementation" : MCTSwimlaneDrag ,
"depends" : [
"dndService"
]
}
] ,
"services" : [
{
"key" : "objectLoader" ,
"implementation" : ObjectLoader ,
"depends" : [
"$q"
]
}
] ,
"resources" : [
{
"key" : "power" ,
"name" : "Power" ,
"units" : "watts"
} ,
{
"key" : "comms" ,
"name" : "Comms" ,
"units" : "Kbps"
} ,
{
"key" : "battery" ,
"name" : "Battery State-of-Charge" ,
"units" : "%"
}
]
}
} ) ;
} ) ;