summaryrefslogtreecommitdiff
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2016-07-19 19:51:45 -0600
committermo khan <mo@mokhan.ca>2016-07-19 19:51:45 -0600
commitd422a74f1a45f9d36bfcb8e53c9c3ca6d52a94ef (patch)
treefe957417ac92dc345295ad3f018252c836caacb7 /app/assets/javascripts
parent1c1cd2160b4da348359180f471d02c8f86380ca7 (diff)
light up plank timer.
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/models/timer.js.coffee3
-rw-r--r--app/assets/javascripts/views/workout_view.js.coffee15
2 files changed, 14 insertions, 4 deletions
diff --git a/app/assets/javascripts/models/timer.js.coffee b/app/assets/javascripts/models/timer.js.coffee
index 160d5e8..12127f1 100644
--- a/app/assets/javascripts/models/timer.js.coffee
+++ b/app/assets/javascripts/models/timer.js.coffee
@@ -15,14 +15,13 @@ class Stronglifters.Timer
refreshTimer: =>
@databag.add('timer', @interval)
@databag.set(@key, moment.utc(@databag.get('timer')).format(@format))
- if @databag.get('timer') > @maxMilliseconds
+ if @databag.get('timer') >= @maxMilliseconds
@stop()
stop: =>
if @running()
clearTimeout @intervalId
@intervalId = null
- @databag.set(@key, null)
running: ->
@intervalId?
diff --git a/app/assets/javascripts/views/workout_view.js.coffee b/app/assets/javascripts/views/workout_view.js.coffee
index 03dcbf0..80b98aa 100644
--- a/app/assets/javascripts/views/workout_view.js.coffee
+++ b/app/assets/javascripts/views/workout_view.js.coffee
@@ -5,6 +5,7 @@ class Stronglifters.WorkoutView extends Ractive
oninit: ->
@clock = new Stronglifters.Timer(@)
+ @timers = { }
@on 'updateProgress', (event) ->
@withModel event.keypath, (model) =>
@updateProgress(model)
@@ -23,6 +24,9 @@ class Stronglifters.WorkoutView extends Ractive
@set(_.reduce(_.keys(model.changed), prefix, {}))
updateProgress: (model) ->
+ @set('clock', null)
+ @clock.stop()
+
if model.timed()
@startTimerFor(model)
return
@@ -41,6 +45,7 @@ class Stronglifters.WorkoutView extends Ractive
@displayMessage message, 'success'
else
@displayMessage "Take a 5:00 break.", 'alert'
+
@clock.start()
refreshStatus: (model, keypath) ->
@@ -61,5 +66,11 @@ class Stronglifters.WorkoutView extends Ractive
@set 'alertStatus', status
startTimerFor: (model) ->
- @setTimer ?= new Stronglifters.Timer(@, "#{model.get('keypath')}.actual_duration", 60000)
- @setTimer.start()
+ keypath = model.get('keypath')
+ timer = @timers[keypath]
+ if timer?
+ timer.stop()
+ else
+ timer = new Stronglifters.Timer(@, "#{keypath}.actual_duration", 60000)
+ @timers[keypath] = timer
+ timer.start()