forked from Sledge/rails3_fullcalendar
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
integrating the calendar widget with a real events model. Amazing how…
… trivial this was.
- Loading branch information
Showing
20 changed files
with
428 additions
and
286 deletions.
There are no files selected for viewing
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
.bundle | ||
db/*.sqlite3 | ||
db/schema.rb | ||
log/*.log | ||
tmp/ |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
class EventsController < ApplicationController | ||
# GET /events | ||
# GET /events.xml | ||
def index | ||
@events = Event.scoped | ||
@events = @events.after(params['start']) if (params['start']) | ||
@events = @events.before(params['end']) if (params['end']) | ||
|
||
respond_to do |format| | ||
format.html # index.html.erb | ||
format.xml { render :xml => @events } | ||
format.json { render :json => @events } | ||
end | ||
end | ||
|
||
# GET /events/1 | ||
# GET /events/1.xml | ||
def show | ||
@event = Event.find(params[:id]) | ||
|
||
respond_to do |format| | ||
format.html # show.html.erb | ||
format.xml { render :xml => @event } | ||
end | ||
end | ||
|
||
# GET /events/new | ||
# GET /events/new.xml | ||
def new | ||
@event = Event.new | ||
|
||
respond_to do |format| | ||
format.html # new.html.erb | ||
format.xml { render :xml => @event } | ||
end | ||
end | ||
|
||
# GET /events/1/edit | ||
def edit | ||
@event = Event.find(params[:id]) | ||
end | ||
|
||
# POST /events | ||
# POST /events.xml | ||
def create | ||
@event = Event.new(params[:event]) | ||
|
||
respond_to do |format| | ||
if @event.save | ||
format.html { redirect_to(@event, :notice => 'Event was successfully created.') } | ||
format.xml { render :xml => @event, :status => :created, :location => @event } | ||
else | ||
format.html { render :action => "new" } | ||
format.xml { render :xml => @event.errors, :status => :unprocessable_entity } | ||
end | ||
end | ||
end | ||
|
||
# PUT /events/1 | ||
# PUT /events/1.xml | ||
def update | ||
@event = Event.find(params[:id]) | ||
|
||
respond_to do |format| | ||
if @event.update_attributes(params[:event]) | ||
format.html { redirect_to(@event, :notice => 'Event was successfully updated.') } | ||
format.xml { head :ok } | ||
else | ||
format.html { render :action => "edit" } | ||
format.xml { render :xml => @event.errors, :status => :unprocessable_entity } | ||
end | ||
end | ||
end | ||
|
||
# DELETE /events/1 | ||
# DELETE /events/1.xml | ||
def destroy | ||
@event = Event.find(params[:id]) | ||
@event.destroy | ||
|
||
respond_to do |format| | ||
format.html { redirect_to(events_url) } | ||
format.xml { head :ok } | ||
end | ||
end | ||
end |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
module EventsHelper | ||
end |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
class Event < ActiveRecord::Base | ||
|
||
scope :in_range, lambda {|start_time, end_time| {:conditions => ["starts_at > ? and ends_at < ?", start_time, end_time] }} | ||
|
||
scope :before, lambda {|end_time| {:conditions => ["ends_at < ?", Event.format_date(end_time)] }} | ||
scope :after, lambda {|start_time| {:conditions => ["starts_at > ?", Event.format_date(start_time)] }} | ||
|
||
# need to override the json view to return what full_calendar is expecting. | ||
# http://arshaw.com/fullcalendar/docs/event_data/Event_Object/ | ||
def as_json(options = {}) | ||
{ | ||
:id => self.id, | ||
:title => self.title, | ||
:description => self.description || "", | ||
:start => "#{self.starts_at.iso8601}", | ||
:end => "#{self.ends_at.iso8601}", | ||
:allDay => self.all_day, | ||
:recurring => false, | ||
:url => Rails.application.routes.url_helpers.event_path(id) | ||
} | ||
|
||
end | ||
|
||
|
||
def self.format_date(date_time) | ||
Time.at(date_time.to_i).to_formatted_s(:db) | ||
end | ||
|
||
end |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,4 @@ | ||
<%= link_to "new event", new_event_path %> | ||
|
||
<div id='calendar'></div> | ||
|
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
<%= form_for(@event) do |f| %> | ||
<% if @event.errors.any? %> | ||
<div id="error_explanation"> | ||
<h2><%= pluralize(@event.errors.count, "error") %> prohibited this event from being saved:</h2> | ||
|
||
<ul> | ||
<% @event.errors.full_messages.each do |msg| %> | ||
<li><%= msg %></li> | ||
<% end %> | ||
</ul> | ||
</div> | ||
<% end %> | ||
|
||
<div class="field"> | ||
<%= f.label :title %><br /> | ||
<%= f.text_field :title %> | ||
</div> | ||
<div class="field"> | ||
<%= f.label :starts_at %><br /> | ||
<%= f.datetime_select :starts_at %> | ||
</div> | ||
<div class="field"> | ||
<%= f.label :ends_at %><br /> | ||
<%= f.datetime_select :ends_at %> | ||
</div> | ||
<div class="field"> | ||
<%= f.label :all_day %><br /> | ||
<%= f.check_box :all_day %> | ||
</div> | ||
<div class="field"> | ||
<%= f.label :description %><br /> | ||
<%= f.text_area :description %> | ||
</div> | ||
<div class="actions"> | ||
<%= f.submit %> | ||
</div> | ||
<% end %> |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<h1>Editing event</h1> | ||
|
||
<%= render 'form' %> | ||
<%= link_to 'Show', @event %> | | ||
<%= link_to 'Back', events_path %> |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<h1>Listing events</h1> | ||
|
||
<table> | ||
<tr> | ||
<th>Title</th> | ||
<th>Starts at</th> | ||
<th>Ends at</th> | ||
<th>All day</th> | ||
<th>Description</th> | ||
<th></th> | ||
<th></th> | ||
<th></th> | ||
</tr> | ||
|
||
<% @events.each do |event| %> | ||
<tr> | ||
<td><%= event.title %></td> | ||
<td><%= event.starts_at %></td> | ||
<td><%= event.ends_at %></td> | ||
<td><%= event.all_day %></td> | ||
<td><%= event.description %></td> | ||
<td><%= link_to 'Show', event %></td> | ||
<td><%= link_to 'Edit', edit_event_path(event) %></td> | ||
<td><%= link_to 'Destroy', event, :confirm => 'Are you sure?', :method => :delete %></td> | ||
</tr> | ||
<% end %> | ||
</table> | ||
|
||
<br /> | ||
<%= link_to 'view calendar', calendar_index_path %> | ||
<br/> | ||
<%= link_to 'New Event', new_event_path %> |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<h1>New event</h1> | ||
|
||
<%= render 'form' %> | ||
<%= link_to 'Back', events_path %> |
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<p id="notice"><%= notice %></p> | ||
|
||
<p> | ||
<b>Title:</b> | ||
<%= @event.title %> | ||
</p> | ||
|
||
<p> | ||
<b>Starts at:</b> | ||
<%= @event.starts_at %> | ||
</p> | ||
|
||
<p> | ||
<b>Ends at:</b> | ||
<%= @event.ends_at %> | ||
</p> | ||
|
||
<p> | ||
<b>All day:</b> | ||
<%= @event.all_day %> | ||
</p> | ||
|
||
<p> | ||
<b>Description:</b> | ||
<%= @event.description %> | ||
</p> | ||
|
||
|
||
<%= link_to 'Edit', edit_event_path(@event) %> | | ||
<%= link_to 'Back', events_path %> |
This file contains 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 characters
This file contains 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 characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
class CreateEvents < ActiveRecord::Migration | ||
def self.up | ||
create_table :events do |t| | ||
t.string :title | ||
t.datetime :starts_at | ||
t.datetime :ends_at | ||
t.boolean :all_day | ||
t.text :description | ||
|
||
t.timestamps | ||
end | ||
end | ||
|
||
def self.down | ||
drop_table :events | ||
end | ||
end |
Oops, something went wrong.