diff options
| author | mo khan <mo@mokhan.ca> | 2016-07-19 19:51:45 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2016-07-19 19:51:45 -0600 |
| commit | d422a74f1a45f9d36bfcb8e53c9c3ca6d52a94ef (patch) | |
| tree | fe957417ac92dc345295ad3f018252c836caacb7 /app/assets/javascripts | |
| parent | 1c1cd2160b4da348359180f471d02c8f86380ca7 (diff) | |
light up plank timer.
Diffstat (limited to 'app/assets/javascripts')
| -rw-r--r-- | app/assets/javascripts/models/timer.js.coffee | 3 | ||||
| -rw-r--r-- | app/assets/javascripts/views/workout_view.js.coffee | 15 |
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() |
