2016-01-15 01:08:19 +00:00
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2020-09-14 18:17:31 +00:00
* Open MCT , Copyright ( c ) 2014 - 2020 , United States Government
2016-01-15 01:08:19 +00:00
* as represented by the Administrator of the National Aeronautics and Space
* Administration . All rights reserved .
*
2016-07-12 23:21:58 +00:00
* Open MCT is licensed under the Apache License , Version 2.0 ( the
2016-01-15 01:08:19 +00:00
* "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 .
*
2016-07-12 23:21:58 +00:00
* Open MCT includes source code licensed under additional open source
2016-01-15 01:08:19 +00:00
* 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 .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
define ( [
2017-05-29 00:21:52 +00:00
"moment-timezone" ,
2016-01-15 01:08:19 +00:00
"./src/indicators/ClockIndicator" ,
2017-10-21 01:05:35 +00:00
"./src/indicators/FollowIndicator" ,
2016-01-15 01:08:19 +00:00
"./src/services/TickerService" ,
2017-10-21 01:05:35 +00:00
"./src/services/TimerService" ,
2016-01-15 01:08:19 +00:00
"./src/controllers/ClockController" ,
"./src/controllers/TimerController" ,
"./src/controllers/RefreshingController" ,
2017-10-21 01:05:35 +00:00
"./src/actions/FollowTimerAction" ,
2016-01-15 01:08:19 +00:00
"./src/actions/StartTimerAction" ,
"./src/actions/RestartTimerAction" ,
2017-01-14 22:42:44 +00:00
"./src/actions/StopTimerAction" ,
2017-01-14 22:43:20 +00:00
"./src/actions/PauseTimerAction" ,
2018-08-07 21:47:50 +00:00
"./res/templates/clock.html" ,
2019-11-28 00:04:52 +00:00
"./res/templates/timer.html"
2016-01-15 01:08:19 +00:00
] , function (
2017-05-29 00:21:52 +00:00
MomentTimezone ,
2016-01-15 01:08:19 +00:00
ClockIndicator ,
2017-10-21 01:05:35 +00:00
FollowIndicator ,
2016-01-15 01:08:19 +00:00
TickerService ,
2017-10-21 01:05:35 +00:00
TimerService ,
2016-01-15 01:08:19 +00:00
ClockController ,
TimerController ,
RefreshingController ,
2017-10-21 01:05:35 +00:00
FollowTimerAction ,
2016-01-15 01:08:19 +00:00
StartTimerAction ,
RestartTimerAction ,
2017-01-14 22:42:44 +00:00
StopTimerAction ,
2017-01-14 22:43:20 +00:00
PauseTimerAction ,
2016-02-26 21:07:50 +00:00
clockTemplate ,
2019-11-28 00:04:52 +00:00
timerTemplate
2016-01-15 01:08:19 +00:00
) {
2019-11-28 00:04:52 +00:00
return {
2020-07-31 19:11:03 +00:00
name : "platform/features/clock" ,
2019-11-28 00:04:52 +00:00
definition : {
"name" : "Clocks/Timers" ,
"descriptions" : "Domain objects for displaying current & relative times." ,
"configuration" : {
"paths" : {
"moment-duration-format" : "moment-duration-format"
2016-01-15 01:08:19 +00:00
} ,
2019-11-28 00:04:52 +00:00
"shim" : {
"moment-duration-format" : {
"deps" : [
"moment"
]
}
2016-01-15 01:08:19 +00:00
}
2019-11-28 00:04:52 +00:00
} ,
"extensions" : {
"constants" : [
{
"key" : "CLOCK_INDICATOR_FORMAT" ,
"value" : "YYYY/MM/DD HH:mm:ss"
}
] ,
"indicators" : [
{
"implementation" : ClockIndicator ,
"depends" : [
"tickerService" ,
"CLOCK_INDICATOR_FORMAT"
2017-05-29 00:21:52 +00:00
] ,
2019-11-28 00:04:52 +00:00
"priority" : "preferred"
2016-01-15 01:08:19 +00:00
}
2019-11-28 00:04:52 +00:00
] ,
"services" : [
{
"key" : "tickerService" ,
"implementation" : TickerService ,
"depends" : [
"$timeout" ,
"now"
]
} ,
{
"key" : "timerService" ,
"implementation" : TimerService ,
"depends" : [ "openmct" ]
}
] ,
"controllers" : [
{
"key" : "ClockController" ,
"implementation" : ClockController ,
"depends" : [
"$scope" ,
"tickerService"
]
} ,
{
"key" : "TimerController" ,
"implementation" : TimerController ,
"depends" : [
"$scope" ,
"$window" ,
"now"
]
} ,
{
"key" : "RefreshingController" ,
"implementation" : RefreshingController ,
"depends" : [
"$scope" ,
"tickerService"
]
}
] ,
"views" : [
{
"key" : "clock" ,
"type" : "clock" ,
"editable" : false ,
"template" : clockTemplate
} ,
{
"key" : "timer" ,
"type" : "timer" ,
"editable" : false ,
"template" : timerTemplate
}
] ,
"actions" : [
{
"key" : "timer.follow" ,
"implementation" : FollowTimerAction ,
"depends" : [ "timerService" ] ,
"category" : "contextual" ,
"name" : "Follow Timer" ,
"cssClass" : "icon-clock" ,
"priority" : "optional"
} ,
{
"key" : "timer.start" ,
"implementation" : StartTimerAction ,
"depends" : [
"now"
] ,
"category" : "contextual" ,
"name" : "Start" ,
"cssClass" : "icon-play" ,
"priority" : "preferred"
} ,
{
"key" : "timer.pause" ,
"implementation" : PauseTimerAction ,
"depends" : [
"now"
] ,
"category" : "contextual" ,
"name" : "Pause" ,
"cssClass" : "icon-pause" ,
"priority" : "preferred"
} ,
{
"key" : "timer.restart" ,
"implementation" : RestartTimerAction ,
"depends" : [
"now"
] ,
"category" : "contextual" ,
"name" : "Restart at 0" ,
"cssClass" : "icon-refresh" ,
"priority" : "preferred"
} ,
{
"key" : "timer.stop" ,
"implementation" : StopTimerAction ,
"depends" : [
"now"
] ,
"category" : "contextual" ,
"name" : "Stop" ,
"cssClass" : "icon-box" ,
"priority" : "preferred"
}
] ,
"types" : [
{
"key" : "clock" ,
"name" : "Clock" ,
"cssClass" : "icon-clock" ,
"description" : "A UTC-based clock that supports a variety of display formats. Clocks can be added to Display Layouts." ,
"priority" : 101 ,
"features" : [
"creation"
] ,
"properties" : [
{
"key" : "clockFormat" ,
"name" : "Display Format" ,
"control" : "composite" ,
"items" : [
{
"control" : "select" ,
"options" : [
{
"value" : "YYYY/MM/DD hh:mm:ss" ,
"name" : "YYYY/MM/DD hh:mm:ss"
} ,
{
"value" : "YYYY/DDD hh:mm:ss" ,
"name" : "YYYY/DDD hh:mm:ss"
} ,
{
"value" : "hh:mm:ss" ,
"name" : "hh:mm:ss"
}
] ,
"cssClass" : "l-inline"
} ,
{
"control" : "select" ,
"options" : [
{
"value" : "clock12" ,
"name" : "12hr"
} ,
{
"value" : "clock24" ,
"name" : "24hr"
}
] ,
"cssClass" : "l-inline"
}
]
} ,
{
"key" : "timezone" ,
"name" : "Timezone" ,
"control" : "autocomplete" ,
"options" : MomentTimezone . tz . names ( )
}
] ,
"model" : {
"clockFormat" : [
"YYYY/MM/DD hh:mm:ss" ,
"clock12"
] ,
"timezone" : "UTC"
}
} ,
{
"key" : "timer" ,
"name" : "Timer" ,
"cssClass" : "icon-timer" ,
"description" : "A timer that counts up or down to a datetime. Timers can be started, stopped and reset whenever needed, and support a variety of display formats. Each Timer displays the same value to all users. Timers can be added to Display Layouts." ,
"priority" : 100 ,
"features" : [
"creation"
] ,
"properties" : [
{
"key" : "timestamp" ,
"control" : "datetime" ,
"name" : "Target"
} ,
{
"key" : "timerFormat" ,
"control" : "select" ,
"name" : "Display Format" ,
"options" : [
{
"value" : "long" ,
"name" : "DDD hh:mm:ss"
} ,
{
"value" : "short" ,
"name" : "hh:mm:ss"
}
]
}
] ,
"model" : {
"timerFormat" : "DDD hh:mm:ss"
2016-01-15 01:08:19 +00:00
}
}
2019-11-28 00:04:52 +00:00
] ,
"runs" : [ {
"implementation" : FollowIndicator ,
"depends" : [ "openmct" , "timerService" ]
} ] ,
"licenses" : [
{
"name" : "moment-duration-format" ,
"version" : "1.3.0" ,
"author" : "John Madhavan-Reese" ,
"description" : "Duration parsing/formatting" ,
"website" : "https://github.com/jsmreese/moment-duration-format" ,
"copyright" : "Copyright 2014 John Madhavan-Reese" ,
"license" : "license-mit" ,
"link" : "https://github.com/jsmreese/moment-duration-format/blob/master/LICENSE"
}
]
}
2016-01-15 01:08:19 +00:00
}
2019-11-28 00:04:52 +00:00
} ;
2016-01-15 01:08:19 +00:00
} ) ;