diff options
| author | mo khan <mo@mokhan.ca> | 2017-02-26 19:44:45 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2017-02-26 19:44:45 -0700 |
| commit | 546e12eb2e0336998511cdbc1cc01cc8bacb3de9 (patch) | |
| tree | f6d0c62df7f75fb53fd52aa34dc93ef5db6faae8 | |
| parent | 294e8e669d4dea4751284534f66d02a78a244cd6 (diff) | |
add calendar view.
| -rw-r--r-- | Gemfile | 1 | ||||
| -rw-r--r-- | Gemfile.lock | 7 | ||||
| -rw-r--r-- | app/assets/javascripts/application.js | 1 | ||||
| -rw-r--r-- | app/assets/stylesheets/application.scss | 1 | ||||
| -rw-r--r-- | app/controllers/workouts_controller.rb | 4 | ||||
| -rw-r--r-- | app/views/workouts/calendar.html.erb | 15 | ||||
| -rw-r--r-- | app/views/workouts/index.html.erb | 1 | ||||
| -rw-r--r-- | config/locales/en.yml | 3 | ||||
| -rw-r--r-- | config/routes.rb | 6 |
9 files changed, 37 insertions, 2 deletions
@@ -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" diff --git a/Gemfile.lock b/Gemfile.lock index ec774de..cec5705 100644 --- a/Gemfile.lock +++ b/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 diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 2f9085f..df124f6 100644 --- a/app/assets/javascripts/application.js +++ b/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 diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index af59f91..da39563 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -12,6 +12,7 @@ * *= require font-awesome *= require bulma + *= require fullcalendar *= require_self */ diff --git a/app/controllers/workouts_controller.rb b/app/controllers/workouts_controller.rb index 28d9dcf..f17f098 100644 --- a/app/controllers/workouts_controller.rb +++ b/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] diff --git a/app/views/workouts/calendar.html.erb b/app/views/workouts/calendar.html.erb new file mode 100644 index 0000000..f9c83a7 --- /dev/null +++ b/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 %> diff --git a/app/views/workouts/index.html.erb b/app/views/workouts/index.html.erb index b514523..b8c3fff 100644 --- a/app/views/workouts/index.html.erb +++ b/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> diff --git a/config/locales/en.yml b/config/locales/en.yml index 83af3d0..b7cc3b0 100644 --- a/config/locales/en.yml +++ b/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: "« First" diff --git a/config/routes.rb b/config/routes.rb index 51cd89a..ebe2d0f 100644 --- a/config/routes.rb +++ b/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 |
