Commit 546e12e

mo khan <mo@mokhan.ca>
2017-02-27 02:44:45
add calendar view.
1 parent 294e8e6
app/assets/javascripts/application.js
@@ -20,6 +20,7 @@
 //= require ractive-backbone
 //= require Chart.bundle
 //= require chartkick
+//= require fullcalendar
 //= require_self
 //= require_tree .
 //= require turbolinks
app/assets/stylesheets/application.scss
@@ -12,6 +12,7 @@
  *
  *= require font-awesome
  *= require bulma
+ *= require fullcalendar
  *= require_self
  */
 
app/controllers/workouts_controller.rb
@@ -8,6 +8,10 @@ class WorkoutsController < ApplicationController
     @workouts = recent_workouts(@exercise)
   end
 
+  def calendar
+    @workouts = current_user.workouts.recent.includes(:routine)
+  end
+
   def new
     @routine = find_routine(params[:routine_id])
     @all_routines = current_program.routines - [@routine]
app/views/workouts/calendar.html.erb
@@ -0,0 +1,15 @@
+<div class="container">
+  <div class="columns">
+    <div class="column is-12">
+      <div id="calendar"></div>
+    </div>
+  </div>
+</div>
+
+<% content_for :javascript do %>
+  $(function(){
+    $('#calendar').fullCalendar({
+      events: <%= raw @workouts.map { |x| { title: x.routine.name, start: x.occurred_at.strftime("%Y-%m-%d") } }.to_json %>
+    });
+  });
+<% end %>
app/views/workouts/index.html.erb
@@ -57,6 +57,7 @@
 
   <div class="columns">
     <div class="column is-12">
+      <p class="has-text-right"><%= link_to t(".calendar"), calendar_workouts_path %></p>
       <table class="table is-bordered is-striped is-narrow">
         <thead>
           <tr>
config/locales/en.yml
@@ -109,6 +109,9 @@ en:
       blurb_html: This is your custom email address for sending CSV exports from the <a href="http://stronglifts.com/apps/">StrongLifts 5x5 mobile application</a>.
       copy: Copy
       warning: To ensure your workouts are imported correctly we suggest that you update your timezone.
+  workouts:
+    index:
+      calendar: View Calendar
   views:
     pagination:
       first: "&laquo; First"
config/routes.rb
@@ -3,7 +3,11 @@ Rails.application.routes.draw do
   resources :sessions, only: [:new, :create, :destroy]
   resources :registrations, only: [:new, :create]
   resources :sets, only: [:update]
-  resources :workouts, only: [:index, :new, :create, :edit]
+  resources :workouts, only: [:index, :new, :create, :edit] do
+    collection do
+      get :calendar
+    end
+  end
   resources :programs, only: [:show] do
     collection do
       get :texas_method
Gemfile
@@ -77,6 +77,7 @@ end
 source "https://rails-assets.org" do
   gem "rails-assets-backbone"
   gem "rails-assets-clipboard"
+  gem "rails-assets-fullcalendar"
   gem "rails-assets-lodash"
   gem "rails-assets-modernizr"
   gem "rails-assets-moment"
Gemfile.lock
@@ -273,6 +273,10 @@ GEM
     rails-assets-backbone (1.3.3)
       rails-assets-underscore (>= 1.8.3)
     rails-assets-clipboard (1.5.12)
+    rails-assets-fullcalendar (3.2.0)
+      rails-assets-jquery (>= 2, < 4)
+      rails-assets-moment (>= 2.9.0, < 3)
+    rails-assets-jquery (3.1.1)
     rails-assets-lodash (4.13.1)
     rails-assets-modernizr (3.3.1)
     rails-assets-moment (2.14.1)
@@ -480,6 +484,7 @@ DEPENDENCIES
   rails (~> 5.0.0)!
   rails-assets-backbone!
   rails-assets-clipboard!
+  rails-assets-fullcalendar!
   rails-assets-lodash!
   rails-assets-modernizr!
   rails-assets-moment!
@@ -513,4 +518,4 @@ DEPENDENCIES
   yelp!
 
 BUNDLED WITH
-   1.14.4
+   1.14.5