Commit d422a74

mo khan <mo@mokhan.ca>
2016-07-20 01:51:45
light up plank timer.
1 parent 1c1cd21
Changed files (2)
app
assets
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?
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()