-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
46 lines (34 loc) · 1.56 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
====== ======== ========
WEEKLY VERTICAL CALENDAR
====== ======== ========
This is another way for displaying weekly calendar, but this time it is vertical.
Installation:
=============
ruby script/plugin install git@github.com:kayinrage/weekly_vertical_calendar.git
You will need an Event model if you want to display events on this calendar
Event should have folowing fields:
start_at (datetime)
end_at (datetime)
Usage:
======
in the controller:
@date = Time.parse("#{params[:start_date]} || Time.now.utc")
@date = @date - (@date.wday==0 ? 6 : @date.wday-1).days
@start_date = Date.new(@date.year, @date.month, @date.day)
@end_date = @start_date + 7
@events = Event.find(:all, :conditions => ['(start_at between ? and ?) or (end_at between ? and ?) or (start_at < ? and end_at > ?)',
@start_date, @end_date, @start_date, @end_date, @start_date, @end_date])
in the view:
<%= stylesheet_link_tag 'weekly_vertical_calendar' %>
<% weekly_vertical_calendar_links(:date => @date) %>
<% weekly_vertical_calendar(@events, :date => @date) do |w| %>
<% w.week do |event| %>
<% if event.start_at.strftime('%j') == event.end_at.strftime('%j') %>
<%= event.start_at.strftime('%H:%M') %> -<%= event.end_at.strftime('%H:%M') %>
<% else %>
<%= event.start_at.strftime('%H:%M %d.%m') %> - <%= event.end_at.strftime('%H:%M %d.%m') %>
<% end %>
<%= link_to truncate(event.name), nil %>
<% end -%>
<% end -%>
Copyright (c) 2010 Irenuesz Skrobis, released under the MIT license