Created
March 6, 2011 12:27
-
-
Save infinityrobot/857249 to your computer and use it in GitHub Desktop.
Revisions
-
infinityrobot renamed this gist
Mar 6, 2011 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
infinityrobot created this gist
Mar 6, 2011 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,77 @@ class TimetablesController < ApplicationController # FILTERS before_filter :authenticate_user!, :except => [:show, :about] # SHOW def show if user_signed_in? && current_user.timetable @timetable_items = current_user.timetable elsif user_signed_in? && !current_user.timetable || !user_signed_in? redirect_to about_timetable_path # Redirect user to the about timetable page if they are either not logged in or do not have a timetable. end end # ABOUT - Redirected to the about page if they user doesn't have a timetable or they aren't logged in. def about end # NEW def new if current_user.timetable redirect_to timetable_path, :notice => "You already have a timetable!" else @timetable = Timetable.new timetable_item = @timetable.timetable_items.build # Build the first Timetable Item so it is displayed timetable_item.timetable_events.build # Build the first Timetable Event so it is displayed end end def create update_timetable_event_params(params[:timetable]) # Hacky method to get simple_time_select to work @timetable = Timetable.new(params[:timetable]) @timetable.user = current_user if @timetable.save redirect_to timetable_path, :notice => "Timetable created successfully!" else render :action => 'new' end end # EDIT def edit if @timetable = current_user.timetable @timetable else redirect_to new_timetable_path end end def update @timetable = current_user.timetable update_timetable_event_params(params[:timetable]) # Hacky method to get simple_time_select to work if @timetable.update_attributes(params[:timetable]) redirect_to timetable_path, :notice => "Your timetable has successfully been updated! :)" else render :action => 'edit' end end private def update_timetable_event_params(timetable_params) @item_params = timetable_params["timetable_items_attributes"] @item_params.keys.each do |item_key| unless @item_params[item_key]["timetable_events_attributes"].blank? @item_params[item_key]["timetable_events_attributes"].keys.each do |event_key| @event_params = @item_params[item_key]["timetable_events_attributes"][event_key] @event_params["start_time"] = @event_params["start_time(5i)"] @event_params.delete("start_time(5i)") end end end end end