summaryrefslogtreecommitdiff
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2016-06-25 22:49:29 -0600
committermo khan <mo@mokhan.ca>2016-06-25 22:49:29 -0600
commitc65636d24a5d3932fcd57bc9df7673032927a024 (patch)
tree88bb9b0ae4f24a56e99fecb42945e59023ddce53 /app/assets/javascripts
parent933c297811cc7f818f1e7b1c692ca915aaec4cc6 (diff)
move logic to model and sync with view.
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/models/set.js.coffee12
-rw-r--r--app/assets/javascripts/views/workout_view.js.coffee26
2 files changed, 26 insertions, 12 deletions
diff --git a/app/assets/javascripts/models/set.js.coffee b/app/assets/javascripts/models/set.js.coffee
index 4b18035..0c87dd4 100644
--- a/app/assets/javascripts/models/set.js.coffee
+++ b/app/assets/javascripts/models/set.js.coffee
@@ -1,2 +1,14 @@
class Stronglifters.Set extends Backbone.Model
urlRoot: '/sets'
+ started: ->
+ completed = @get("actual_repetitions")
+ completed != null && completed != 0
+
+ complete: ->
+ @set("actual_repetitions", @get("target_repetitions"))
+
+ decrement: ->
+ @set("actual_repetitions", @get("actual_repetitions") - 1)
+
+ successful: ->
+ @get("target_repetitions") == @get("actual_repetitions")
diff --git a/app/assets/javascripts/views/workout_view.js.coffee b/app/assets/javascripts/views/workout_view.js.coffee
index 18b8731..56c64a4 100644
--- a/app/assets/javascripts/views/workout_view.js.coffee
+++ b/app/assets/javascripts/views/workout_view.js.coffee
@@ -4,21 +4,27 @@ class Stronglifters.WorkoutView extends Ractive
template: RactiveTemplates["templates/workout_view"]
oninit: ->
- @on 'updateProgress', (event) -> @updateProgress(event)
+ @on 'updateProgress', (event) ->
+ model = new Stronglifters.Set(@get(event.keypath))
+ @updateProgress(model)
+ x = {}
+ _.each _.keys(model.changed), (key) ->
+ x["#{event.keypath}.#{key}"] = model.changed[key]
+ @set(x)
+
@observe 'workout.exercises.*.sets.*', (newValue, oldValue, keypath) ->
@refreshStatus(newValue, oldValue, keypath)
@set('message', "Let's do this!")
@clock = new Stronglifters.Timer(@)
- updateProgress: (event) ->
- completed = @get("#{event.keypath}.actual_repetitions")
- if completed == null || completed == 0
- @set("#{event.keypath}.actual_repetitions", @get("#{event.keypath}.target_repetitions"))
+ updateProgress: (model) ->
+ if !model.started()
+ model.complete()
else
- @subtract("#{event.keypath}.actual_repetitions")
- @saveSet(@get(event.keypath))
+ model.decrement()
+ model.save()
- if @successful(event.keypath)
+ if model.successful()
@set('message', "If it was easy break for 1:30, otherwise rest for 3:00.")
@set('alertStatus', 'radius')
else
@@ -26,10 +32,6 @@ class Stronglifters.WorkoutView extends Ractive
@set('message', "Take a 5:00 break.")
@clock.start()
- saveSet: (set) ->
- model = new Stronglifters.Set(set)
- model.save
-
successful: (keypath) ->
@get("#{keypath}.target_repetitions") == @get("#{keypath}.actual_repetitions")