Commit 20f8437

mo khan <mo@mokhan.ca>
2016-06-25 15:55:40
add backbone view to remove set view.
1 parent 9317278
Changed files (3)
app
assets
models
views
app/assets/javascripts/views/new_workout_view.js.coffee
@@ -0,0 +1,13 @@
+class Stronglifters.NewWorkoutView extends Backbone.View
+  initialize: (options) ->
+    @$el.find('fieldset[name]').each (index, fieldset) ->
+      view = new Stronglifters.NewSetView
+        el: $(fieldset)
+
+class Stronglifters.NewSetView extends Backbone.View
+  events:
+    'click .skip': 'removeSet'
+
+  removeSet: (event) ->
+    event.preventDefault()
+    @remove()
app/models/exercise.rb
@@ -2,4 +2,8 @@ class Exercise < ActiveRecord::Base
   def short_name
     name.gsub(/[^A-Z]/, "")
   end
+
+  def slug
+    name.parameterize
+  end
 end
app/views/workouts/new.html.erb
@@ -13,30 +13,39 @@
         <%= f.number_field :body_weight %>
       </fieldset>
       <% @workout.exercise_sets.group_by(&:exercise).each do |exercise, exercise_sets| %>
-          <fieldset>
-            <legend><%= exercise.name %></legend>
-            <% exercise_sets.each.with_index(1) do |set, index| %>
-              <%= f.fields_for :exercise_sets, set do |s| %>
-                <fieldset>
-                  <legend>Set <%= index %></legend>
-                  <div class="row">
-                    <div class="small-6 columns">
-                      <%= s.label :target_repetitions %>
-                      <%= s.number_field :target_repetitions %>
-                    </div>
+        <fieldset>
+          <legend><%= exercise.name %></legend>
+          <% exercise_sets.each.with_index(1) do |set, index| %>
+            <%= f.fields_for :exercise_sets, set do |s| %>
+              <fieldset name="<%= exercise.slug %>-<%= index %>">
+                <legend>Set</legend>
+                <div class="row">
+                  <div class="small-6 columns">
+                    <%= s.label :target_repetitions %>
+                    <%= s.number_field :target_repetitions %>
+                  </div>
 
-                    <div class="small-6 columns">
-                      <%= s.label :target_weight %>
-                      <%= s.number_field :target_weight %>
-                    </div>
+                  <div class="small-6 columns">
+                    <%= s.label :target_weight %>
+                    <%= s.number_field :target_weight %>
                   </div>
-                  <%= s.hidden_field :exercise_id %>
-                </fieldset>
-              <% end %>
+                </div>
+                <p class="text-right"><a class="skip" href="#">skip</a></p>
+                <%= s.hidden_field :exercise_id %>
+              </fieldset>
             <% end %>
-          </fieldset>
+          <% end %>
+        </fieldset>
       <% end %>
       <%= f.submit "Start", class: "button round right" %>
     <% end %>
   </div>
 </div>
+
+<script type="text/javascript" charset="utf-8">
+var ready = function() {
+  window.currentView = new Stronglifters.NewWorkoutView({ el: $('#new_workout') });
+};
+$(document).ready(ready);
+$(document).on('page:load', ready);
+</script>