31 lines
924 B
CoffeeScript
31 lines
924 B
CoffeeScript
timeTrackerTimerInterval = null
|
|
|
|
startTimeTrackerTimer = ->
|
|
startTimestamp = moment $('.time-tracker-control [name*=start]').val(), moment.ISO_8601
|
|
duration = moment.duration moment() - startTimestamp
|
|
|
|
numberToString = (number)->
|
|
result = (Math.floor Math.abs number).toString()
|
|
result = '0' + result if Math.abs(number) < 10
|
|
result
|
|
|
|
displayTime = ->
|
|
durationString = [
|
|
duration.asHours(),
|
|
duration.asMinutes() % 60,
|
|
duration.asSeconds() % 60
|
|
].map(numberToString).join(':')
|
|
$('.time-tracker-control .input.js-running-time').html("#{if duration < 0 then '-' else ''} #{durationString}")
|
|
|
|
displayTime()
|
|
clearInterval timeTrackerTimerInterval if timeTrackerTimerInterval?
|
|
timeTrackerTimerInterval = setInterval ->
|
|
duration = moment.duration moment() - startTimestamp
|
|
displayTime()
|
|
, 1000
|
|
|
|
@hourglass ?= {}
|
|
@hourglass.Timer = {
|
|
start: startTimeTrackerTimer
|
|
}
|