Commit 281f834

mo khan <mo@mokhan.ca>
2016-06-26 02:55:42
display the rest clock.
1 parent 04ae5f4
app/assets/javascripts/templates/workout_view.ractive
@@ -1,12 +1,33 @@
+{{#if clock}}
+  <div data-alert="" class="alert-box {{alertStatus}}">
+    <p> {{message}} </p>
+    <p> Rest Clock: {{clock}} </p>
+  </div>
+{{/if}}
+
 <ul class="accordion" data-accordion>
   {{#each workout.exercises}}
   <li class="accordion-navigation">
     <a href="#panel-{{id}}">{{name}}</a>
     <div id="panel-{{id}}" class="content">
       {{#each sets}}
-        <button on-click="updateProgress" class="button expand {{status}}">
-          {{actual_repetitions}} x {{target_repetitions}} @ {{target_weight}} lbs
-        </button>
+      <div class="row">
+        <div class="columns small-3">
+          <button on-click="updateProgress" class="button round {{status}}">
+            {{actual_repetitions}}
+          </button>
+        </div>
+        <div class="columns small-5">
+          <p class="text-center">
+            {{target_repetitions}} x {{target_weight}} lbs
+          </p>
+        </div>
+        <div class="columns small-4">
+          <p class="text-center">
+            110 lb/side
+          </p>
+        </div>
+      </div>
       {{/each}}
     </div>
   </li>
app/assets/javascripts/views/workout_view.js.coffee
@@ -5,8 +5,10 @@ class Stronglifters.WorkoutView extends Ractive
     @on 'updateProgress', (event) -> @updateProgress(event)
     @observe 'workout.exercises.*.sets.*', (newValue, oldValue, keypath) ->
       @refreshStatus(newValue, oldValue, keypath)
+    @set('message', "Let's do this!")
 
   updateProgress: (event) ->
+    @stopTimer()
     completed = @get("#{event.keypath}.actual_repetitions")
     if completed == null || completed == 0
       @set("#{event.keypath}.actual_repetitions", @get("#{event.keypath}.target_repetitions"))
@@ -14,6 +16,25 @@ class Stronglifters.WorkoutView extends Ractive
       @subtract("#{event.keypath}.actual_repetitions")
     @saveSet(@get(event.keypath))
 
+    if @successful(event.keypath)
+      @set('message', "If it was easy break for 1:30, otherwise rest for 3:00.")
+      @set('alertStatus', 'radius')
+    else
+      @set('alertStatus', 'alert')
+      @set('message', "Take a 5:00 break.")
+    @startTimer()
+
+  startTimer: ->
+    @set('timer', 0)
+    @intervalId = setInterval @refreshTimer, 1000
+
+  refreshTimer: =>
+    @add('timer', 1000)
+    @set('clock', moment.utc(@get('timer')).format('mm:ss'))
+
+  stopTimer: =>
+    clearTimeout @intervalId
+
   saveSet: (set) ->
     @patch "/sets/#{set.id}",
       set:
@@ -31,12 +52,15 @@ class Stronglifters.WorkoutView extends Ractive
       error: (xhr, status, error) ->
         console.log(error)
 
+  successful: (keypath) ->
+    @get("#{keypath}.target_repetitions") == @get("#{keypath}.actual_repetitions")
+
   refreshStatus: (newValue, oldValue, keypath) ->
     if @get("#{keypath}.actual_repetitions") == null
       @set("#{keypath}.status", "secondary")
       return
 
-    if @get("#{keypath}.target_repetitions") == @get("#{keypath}.actual_repetitions")
+    if @successful(keypath)
       @set("#{keypath}.status", "success")
     else
       @set("#{keypath}.status", "alert")
app/assets/javascripts/application.js
@@ -12,6 +12,7 @@
 //
 //= require clipboard
 //= require lodash
+//= require moment
 //= require jquery
 //= require jquery.turbolinks
 //= require jquery_ujs
Gemfile
@@ -74,6 +74,7 @@ source "https://rails-assets.org" do
   gem "rails-assets-backbone"
   gem "rails-assets-clipboard"
   gem "rails-assets-lodash"
+  gem "rails-assets-moment"
   gem "rails-assets-ractive"
   gem "rails-assets-ractive-backbone"
 end
Gemfile.lock
@@ -280,6 +280,7 @@ GEM
       rails-assets-underscore (>= 1.8.3)
     rails-assets-clipboard (1.5.10)
     rails-assets-lodash (4.13.1)
+    rails-assets-moment (2.13.0)
     rails-assets-ractive (0.7.3)
     rails-assets-ractive-backbone (0.3.0)
     rails-assets-underscore (1.8.3)
@@ -485,6 +486,7 @@ DEPENDENCIES
   rails-assets-backbone!
   rails-assets-clipboard!
   rails-assets-lodash!
+  rails-assets-moment!
   rails-assets-ractive!
   rails-assets-ractive-backbone!
   rails-erd!