refinerycms-events 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ class Admin::EventsController < Admin::BaseController
2
+ helper :calendars
3
+ crudify :event, :title_attribute => :title, :sortable => false, :order => 'start_at DESC'
4
+
5
+ end
@@ -0,0 +1,26 @@
1
+ class EventsController < ApplicationController
2
+
3
+ before_filter :find_page
4
+ helper :calendars
5
+
6
+ def index
7
+ @date = Date.parse(params[:date]) rescue Date.today
8
+ @calendar = Calendar.new(@date)
9
+ present(@page)
10
+ end
11
+
12
+ def show
13
+ @event = Event.find(params[:id])
14
+
15
+ # you can use meta fields from your model instead (e.g. browser_title)
16
+ # by swapping @page for @event in the line below:
17
+ present(@event)
18
+ end
19
+
20
+ protected
21
+
22
+ def find_page
23
+ @page = Page.find_by_link_url("/events")
24
+ end
25
+
26
+ end
@@ -0,0 +1,59 @@
1
+ module CalendarsHelper
2
+ def datetime(d)
3
+ I18n.localize(d, :format => "%B %d, %Y %l:%M %p")
4
+ end
5
+
6
+ def date(d)
7
+ I18n.localize(d, :format => "%B %d, %Y")
8
+ end
9
+
10
+ def time(d)
11
+ I18n.localize(d, :format => "%l:%M%p")
12
+ end
13
+
14
+ def month_link(date)
15
+ link_to(I18n.localize(date, :format => "%B"), {:date => date})
16
+ end
17
+
18
+ # custom options for this calendar
19
+ def event_calendar_opts(calendar)
20
+ {
21
+ :year => @calendar.year,
22
+ :month => @calendar.month,
23
+ :event_strips => @calendar.event_strips,
24
+ :month_name_text => I18n.localize(@calendar.date, :format => "%B %Y"),
25
+ :previous_month_text => month_link(@calendar.date.last_month),
26
+ :next_month_text => month_link(@calendar.date.next_month),
27
+ :use_all_day => true
28
+ }
29
+ end
30
+
31
+ def timed_title(event)
32
+ "#{time(event.start_at)} #{h(event.title)}"
33
+ end
34
+
35
+ def event_title(event)
36
+ if event.all_day?
37
+ h(event.title)
38
+ else
39
+ timed_title(event)
40
+ end
41
+ end
42
+
43
+ def event_calendar(calendar)
44
+ # args is an argument hash containing :event, :day, and :options
45
+ calendar event_calendar_opts(calendar) do |args|
46
+ event = args[:event]
47
+ title = event.all_day?? h(event.title) : timed_title(event)
48
+ link_to(title, event_path(event))
49
+ end
50
+ end
51
+
52
+ def event_list
53
+ grouped_events = Event.
54
+ all(:limit => 10, :order => 'start_at ASC',
55
+ :conditions => [ 'start_at >= ?', Time.now ]).
56
+ group_by { |e| e.start_at.to_date }
57
+ render :partial => '/events/event_list', :object => grouped_events
58
+ end
59
+ end
@@ -0,0 +1,16 @@
1
+ class Calendar
2
+ def initialize(date)
3
+ @date = date
4
+ end
5
+
6
+ def events
7
+ event_strips.flatten.compact
8
+ end
9
+
10
+ def event_strips
11
+ Event.event_strips_for_month(@date)
12
+ end
13
+
14
+ attr_reader :date
15
+ delegate :month, :year, :to => :date
16
+ end
@@ -0,0 +1,28 @@
1
+ require 'semanticgap_date_time_form'
2
+
3
+ class Event < ActiveRecord::Base
4
+ has_event_calendar
5
+ datetime_fields_for :start_at
6
+ datetime_fields_for :end_at
7
+
8
+ acts_as_indexed :fields => [:title, :description, :location],
9
+ :index_file => [Rails.root.to_s, "tmp", "index"]
10
+
11
+ validates_presence_of :title
12
+ validates_uniqueness_of :title
13
+
14
+ validates_format_of :color, :with => /(black|white|gr[ae]y|red|yellow|green|cyan|blue|magenta|\#[A-Fa-f0-9]{3,6})/, :allow_blank => true
15
+
16
+ def dated_title
17
+ "#{I18n.localize(start_at.to_date)}: #{title}"
18
+ end
19
+
20
+ def timed_title
21
+ "#{I18n.localize(start_at, "")}: #{title}"
22
+ end
23
+
24
+ def color
25
+ c = attributes['color']
26
+ c.blank?? 'black' : c
27
+ end
28
+ end
@@ -0,0 +1,17 @@
1
+ <li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(event) -%>">
2
+ <span class='title'>
3
+ <%= date(event.start_at) %>: <%=h event.title %>
4
+ <span class="preview">&nbsp;</span>
5
+
6
+ <span class='actions'>
7
+ <%= link_to refinery_icon_tag("application_go.png"), event_url(event),
8
+ :title => 'View this event<br/><em>Opens in a new window</em>',
9
+ :target => "_blank" %>
10
+ <%= link_to refinery_icon_tag("application_edit.png"), edit_admin_event_path(event),
11
+ :title => 'Edit this event' %>
12
+ <%= link_to refinery_icon_tag("delete.png"), admin_event_path(event),
13
+ :class => "cancel confirm-delete",
14
+ :title => 'Remove this event forever' %>
15
+ </span>
16
+ </span>
17
+ </li>
@@ -0,0 +1,41 @@
1
+ <% content_for :head, stylesheet_link_tag('semanticgap_date_time_form') %>
2
+ <%= error_messages_for :event -%>
3
+ <% form_for [:admin, @event] do |f| -%>
4
+
5
+ <div class='field'>
6
+ <%= f.label :title -%>
7
+ <%= f.text_field :title, :class => 'larger' -%>
8
+ </div>
9
+
10
+ <div class='field'>
11
+ <%= f.label :description -%>
12
+ <%= f.text_area :description, :rows => 20, :cols => 140, :class => 'wymeditor' -%>
13
+ </div>
14
+
15
+ <div class='field'>
16
+ <%= f.label :location -%>
17
+ <%= f.text_field :location -%>
18
+ </div>
19
+
20
+ <div class='field'>
21
+ <%= f.label :all_day -%>
22
+ <%= f.check_box :all_day -%>
23
+ </div>
24
+
25
+ <div class='field'>
26
+ <%= f.label :start_at -%>
27
+ <%= f.datetime_form :start_at -%>
28
+ </div>
29
+
30
+ <div class='field'>
31
+ <%= f.label :end_at -%>
32
+ <%= f.datetime_form :end_at -%>
33
+ </div>
34
+
35
+ <div class='field'>
36
+ <%= f.label :color -%>
37
+ <%= f.text_field :color -%>
38
+ </div>
39
+
40
+ <%= render :partial => "/shared/admin/form_actions", :locals => {:f => f, :continue_editing => false} %>
41
+ <% end -%>
@@ -0,0 +1,2 @@
1
+ <%= render :partial => 'event', :collection => @events %>
2
+ <%= render :partial => "/shared/admin/sortable_list", :locals => {:continue_reordering => (defined?(continue_reordering) ? continue_reordering : true)} %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,36 @@
1
+ <div id='actions'>
2
+ <ul>
3
+ <li>
4
+ <%= render :partial => "/shared/admin/search", :locals => {:url => admin_events_url} %>
5
+ </li>
6
+ <li>
7
+ <%= link_to "Create New Event", new_admin_event_url, :class => "add_icon" %>
8
+ </li>
9
+ </ul>
10
+ </div>
11
+ <div id='records'>
12
+ <% if searching? %>
13
+ <h2>Search Results for "<%= params[:search] %>"</h2>
14
+ <% if @events.any? %>
15
+ <%= render :partial => "event", :collection => @events %>
16
+ <% else %>
17
+ <p>Sorry, no results found.</p>
18
+ <% end %>
19
+ <% else %>
20
+ <% if @events.any? %>
21
+ <%= will_paginate @events, :previous_label => '&laquo;', :next_label => '&raquo;' %>
22
+ <ul id='sortable_list'>
23
+ <%= render :partial => "sortable_list" %>
24
+ </ul>
25
+ <%= will_paginate @events, :previous_label => '&laquo;', :next_label => '&raquo;' %>
26
+ <% else %>
27
+ <p>
28
+ <strong>
29
+ There are no events yet.
30
+ Click "Create New Event" to add your first event.
31
+ </strong>
32
+ </p>
33
+ <% end %>
34
+ <% end %>
35
+ </div>
36
+ <%= render :partial => "/shared/admin/make_sortable", :locals => {:tree => false } if !searching? and Event.count > 1 %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,20 @@
1
+ <dl class="event-list">
2
+ <% event_list.each do |d, events| -%>
3
+ <dt><%= date(d) %></dt>
4
+ <dd>
5
+ <ul>
6
+ <% events.each do |e| -%>
7
+ <li class="event">
8
+ <%= link_to(event_title(e), event_path(e)) %>
9
+ <% unless e.location.blank? -%>
10
+ @ <%= h(e.location) %>
11
+ <% end -%>
12
+ </li>
13
+ <% end -%>
14
+ </ul>
15
+ <% end -%>
16
+ </dd>
17
+ <dt>
18
+ <%= link_to 'View the calendar', events_path %>
19
+ </dt>
20
+ </dl>
@@ -0,0 +1,10 @@
1
+ <!-- Probably move the stylesheet to you layout. Also make sure you include the javascript. -->
2
+ <%= stylesheet_link_tag "event_calendar" %>
3
+ <%= javascript_include_tag "event_calendar" %>
4
+
5
+ <div class="page">
6
+ <%= render :partial => "/shared/content_page" %>
7
+ </div>
8
+ <div class="calendar">
9
+ <%= event_calendar(@calendar) %>
10
+ </div>
@@ -0,0 +1,30 @@
1
+ <% content_for :body_content_title do %>
2
+ <%= @event.title %>
3
+ <% end %>
4
+
5
+ <% content_for :body_content_left do %>
6
+ <div>
7
+ <%= @event.description %>
8
+ </div>
9
+
10
+ <div>
11
+ <h3>Where</h3>
12
+ <%= @event.location %>
13
+ </div>
14
+
15
+ <div>
16
+ <h3>When</h3>
17
+ <% if @event.all_day? -%>
18
+ <% if @event.days == 0 -%>
19
+ <%= date(@event.start_at) %>
20
+ <% else -%>
21
+ <%= date(@event.start_at) %> &mdash; <%= date(@event.end_at) %>
22
+ <% end -%>
23
+ <% else -%>
24
+ <%= datetime(@event.start_at) %> &mdash; <%= datetime(@event.end_at) %>
25
+ <% end -%>
26
+ </div>
27
+
28
+ <% end %>
29
+
30
+ <%= render :partial => "/shared/content_page" %>
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+ require 'fileutils'
4
+
5
+ events_root = Pathname.new(File.expand_path(File.dirname(__FILE__) << "/.."))
6
+
7
+ rails_root = if defined?(Rails.root)
8
+ Rails.root
9
+ elsif defined?(RAILS_ROOT)
10
+ Pathname.new(RAILS_ROOT)
11
+ else
12
+ Pathname.new(ARGV.first)
13
+ end
14
+
15
+ if rails_root.exist?
16
+ [%w(db migrate), %w(public stylesheets), %w(public javascripts)].each do |dir|
17
+ rails_root.join(dir.join(File::SEPARATOR)).mkpath
18
+ end
19
+
20
+ copies = [
21
+ {:from => %w(db migrate), :to => %w(db migrate), :filename => "20100430163757_create_events.rb"},
22
+ {:from => %w(db migrate),:to => %w(db migrate), :filename => "20100501234548_add_color_to_events.rb"},
23
+ {:from => %w(db migrate),:to => %w(db migrate), :filename => "20100502004451_add_all_day_to_events.rb"},
24
+ {:from => %w(public javascripts),:to => %w(public javascripts), :filename => "event_calendar.js"},
25
+ {:from => %w(public stylesheets),:to => %w(public stylesheets), :filename => "event_calendar.css"},
26
+ ]
27
+ copies.each do |copy|
28
+ copy_from = events_root.join(copy[:from].join(File::SEPARATOR), copy[:filename])
29
+ copy_to = rails_root.join(copy[:to].join(File::SEPARATOR), copy[:filename])
30
+ unless copy_to.exist?
31
+ FileUtils::copy_file copy_from.to_s, copy_to.to_s
32
+ else
33
+ puts "'#{File.join copy[:to], copy[:filename]}' already existed in your application so your existing file was not overwritten."
34
+ end
35
+ end
36
+
37
+ puts "---------"
38
+ puts "Copied all refinerycms-events files."
39
+ puts "Now, run rake db:migrate"
40
+ else
41
+ puts "Please specify the path of the project that you want to use the events with, i.e. refinerycms-events-install /path/to/project"
42
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.resources :events
3
+
4
+ map.namespace(:admin) do |admin|
5
+ admin.resources :events
6
+ end
7
+ end
@@ -0,0 +1,46 @@
1
+ class CreateEvents < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :events do |t|
5
+ t.string :title
6
+ t.text :description
7
+ t.string :location
8
+ t.datetime :start_at
9
+ t.datetime :end_at
10
+ t.integer :position
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :events, :id
16
+
17
+ User.find(:all).each do |user|
18
+ user.plugins.create(:title => "Events", :position => (user.plugins.maximum(:position) || -1) +1)
19
+ end
20
+
21
+ page = Page.create(
22
+ :title => "Events",
23
+ :link_url => "/events",
24
+ :deletable => false,
25
+ :position => ((Page.maximum(:position, :conditions => "parent_id IS NULL") || -1)+1),
26
+ :menu_match => "^/events(\/|\/.+?|)$"
27
+ )
28
+ RefinerySetting.find_or_set(:default_page_parts, ["Body", "Side Body"]).each do |default_page_part|
29
+ page.parts.create(:title => default_page_part, :body => nil)
30
+ end
31
+ end
32
+
33
+ def self.down
34
+ UserPlugin.destroy_all({:title => "Events"})
35
+
36
+ Page.find_all_by_link_url("/events").each do |page|
37
+ page.link_url, page.menu_match = nil
38
+ page.deletable = true
39
+ page.destroy
40
+ end
41
+ Page.destroy_all({:link_url => "/events"})
42
+
43
+ drop_table :events
44
+ end
45
+
46
+ end
@@ -0,0 +1,9 @@
1
+ class AddColorToEvents < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :events, :color, :string, :length => 16, :default => 'black'
4
+ end
5
+
6
+ def self.down
7
+ remove_column :events, :color
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddAllDayToEvents < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :events, :all_day, :boolean, :default => nil
4
+ end
5
+
6
+ def self.down
7
+ remove_column :events, :all_day
8
+ end
9
+ end
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Smart event highlighting
3
+ * Handles for when events span rows, or don't have a background color
4
+ */
5
+ Event.observe(window, "load", function() {
6
+ var highlight_color = "#2EAC6A";
7
+
8
+ // highlight events that have a background color
9
+ $$(".ec-event-bg").each(function(ele) {
10
+ ele.observe("mouseover", function(evt) {
11
+ event_id = ele.readAttribute("data-event-id");
12
+ $$(".ec-event-"+event_id).each(function(el) {
13
+ el.setStyle({ backgroundColor: highlight_color });
14
+ });
15
+ });
16
+ ele.observe("mouseout", function(evt) {
17
+ event_color = ele.readAttribute("data-color");
18
+ event_id = ele.readAttribute("data-event-id");
19
+ $$(".ec-event-"+event_id).each(function(el) {
20
+ el.setStyle({ backgroundColor: event_color });
21
+ });
22
+ });
23
+ });
24
+
25
+ // highlight events that don't have a background color
26
+ $$(".ec-event-no-bg").each(function(ele) {
27
+ ele.observe("mouseover", function(evt) {
28
+ ele.setStyle({ color: "white" });
29
+ ele.select("a").each(function(link) {
30
+ link.setStyle({ color: "white" });
31
+ });
32
+ ele.select(".ec-bullet").each(function(bullet) {
33
+ bullet.setStyle({ backgroundColor: "white" });
34
+ });
35
+ ele.setStyle({ backgroundColor: highlight_color });
36
+ });
37
+ ele.observe("mouseout", function(evt) {
38
+ event_color = ele.readAttribute("data-color");
39
+ ele.setStyle({ color: event_color });
40
+ ele.select("a").each(function(link) {
41
+ link.setStyle({ color: event_color });
42
+ });
43
+ ele.select(".ec-bullet").each(function(bullet) {
44
+ bullet.setStyle({ backgroundColor: event_color });
45
+ });
46
+ ele.setStyle({ backgroundColor: "transparent" });
47
+ });
48
+ });
49
+ });
@@ -0,0 +1,233 @@
1
+ /*
2
+ Event Calendar stylesheet
3
+
4
+ Colors:
5
+ #d5d5d5 - border (gray)
6
+ #303030 - day names bg (gray)
7
+ #444 - number (gray)
8
+ #ecede2 - day header bg (light tan)
9
+ ##d7d7ba - today header bg (tan)
10
+ #ffffdd - today bg light (yellow)
11
+ #777 - other month number (gray)
12
+ #efefef - other month day header (gray)
13
+ #2eac6a - hover (green)
14
+ */
15
+
16
+ /* Outer most container */
17
+ .ec-calendar {
18
+ font-family: verdana, arial, helvetica, sans-serif;
19
+ font-size: 11px;
20
+ line-height: 14px;
21
+ margin: 0;
22
+ padding: 0;
23
+ border-bottom: 1px solid #d5d5d5;
24
+ }
25
+
26
+ /* Month name header & links */
27
+ .ec-calendar-header {
28
+ padding: 5px 0;
29
+ width: 100%;
30
+ table-layout: fixed;
31
+ }
32
+
33
+ .ec-month-name {
34
+ font-size: 16px;
35
+ font-weight: bold;
36
+ }
37
+
38
+ .ec-month-nav {
39
+
40
+ }
41
+
42
+ /* Containers */
43
+ .ec-body {
44
+ position: relative;
45
+ border-right: 1px solid #303030;
46
+ white-space: nowrap;
47
+ }
48
+
49
+ /* Day names */
50
+ .ec-day-names {
51
+ position: absolute;
52
+ top: 0;
53
+ left: 0;
54
+ width: 100%;
55
+ table-layout: fixed;
56
+ padding: 2px 0;
57
+ background: #303030;
58
+ color: white;
59
+ }
60
+
61
+ .ec-day-name {
62
+ font-weight: normal;
63
+ }
64
+
65
+ /* Rows container and Row */
66
+ .ec-rows {
67
+ position: absolute;
68
+ left: 0;
69
+ bottom: 0;
70
+ width: 100%;
71
+ background: white;
72
+ overflow: hidden;
73
+ border-right: 1px solid #d5d5d5;
74
+ }
75
+
76
+ .ec-row {
77
+ position: absolute;
78
+ left: 0;
79
+ width: 100%;
80
+ overflow: hidden;
81
+ }
82
+
83
+ /* Background */
84
+ .ec-row-bg {
85
+ position: absolute;
86
+ top: 0;
87
+ left: 0;
88
+ height: 100%;
89
+ width: 100%;
90
+ table-layout: fixed;
91
+ }
92
+
93
+ .ec-day-bg {
94
+ border-left: 1px solid #d5d5d5;
95
+ }
96
+
97
+ .ec-today-bg {
98
+ background-color: #ffffdd;
99
+ }
100
+
101
+ .ec-row-table {
102
+ position: relative;
103
+ width: 100%;
104
+ table-layout: fixed;
105
+ }
106
+
107
+ /* Day header */
108
+ .ec-day-header {
109
+ color: #444;
110
+ text-align: right;
111
+ padding: 0 5px;
112
+ line-height: 16px;
113
+ border-top: 1px solid #d5d5d5;
114
+ border-left: 1px solid #d5d5d5;
115
+ border-bottom: 1px dotted #bbbbbb;
116
+ background-color: #ecede2;
117
+ overflow: hidden;
118
+ }
119
+
120
+ a.ec-day-link {
121
+ color: #444;
122
+ }
123
+
124
+ .ec-today-header {
125
+ background-color: #d7d7ba;
126
+ }
127
+
128
+ .ec-weekend-day-header {
129
+
130
+ }
131
+
132
+ .ec-other-month-header {
133
+ background-color: #efefef;
134
+ color: #777;
135
+ }
136
+
137
+
138
+ /* Event cell and container */
139
+ .ec-event-cell {
140
+ cursor: pointer;
141
+ vertical-align: top;
142
+ padding-right: 1px;
143
+ padding-left: 2px;
144
+ }
145
+
146
+ .ec-event-cell a {
147
+ text-decoration: none;
148
+ display: block;
149
+ width: 100%;
150
+ height: 100%;
151
+ }
152
+
153
+ .ec-no-event-cell {
154
+ cursor: default;
155
+ }
156
+
157
+ .ec-event {
158
+ color: white;
159
+ padding-right: 1px;
160
+ padding-left: 11px;
161
+ -webkit-border-radius: 3px;
162
+ -khtml-border-radius: 3px;
163
+ -moz-border-radius: 3px;
164
+ overflow: hidden;
165
+ white-space: nowrap;
166
+ }
167
+
168
+ .ec-event :hover {
169
+ /* doesn't look as good as js highlighting */
170
+ /* background-color: #2eac6a; */
171
+ }
172
+
173
+ .ec-event-bg a {
174
+ color: white;
175
+ }
176
+
177
+ /* used to distinguish non-all_day events */
178
+ .ec-event-no-bg {
179
+ position: relative;
180
+ /* padding-left: 5px; */
181
+ }
182
+
183
+ .ec-event-no-bg a {
184
+ /* isn't implemented in all browsers */
185
+ color: inherit;
186
+ }
187
+
188
+ .ec-event-time {
189
+ font-size: 85%;
190
+ font-weight: bold;
191
+ padding-right: 3px;
192
+ }
193
+
194
+
195
+ /* Left and right arrows */
196
+ /* Doesn't work in IE6, use bg images instead */
197
+ .ec-left-arrow, .ec-right-arrow {
198
+ position: relative;
199
+ top: 3px;
200
+ width: 0;
201
+ height: 0;
202
+ font-size: 0;
203
+ line-height: 0;
204
+ margin-bottom: -8px;
205
+ border-top: 4px solid transparent;
206
+ border-bottom: 4px solid transparent;
207
+ }
208
+
209
+ .ec-left-arrow {
210
+ margin-left: -7px;
211
+ margin-right: auto;
212
+ border-right: 4px solid white;
213
+ }
214
+
215
+ .ec-right-arrow {
216
+ margin-left: auto;
217
+ margin-right: 3px;
218
+ border-left: 4px solid white;
219
+ }
220
+
221
+ /* remove this to not have a bullet */
222
+ /* don't look as good in ie */
223
+ .ec-bullet {
224
+ position: absolute;
225
+ top: 7px;
226
+ width: 4px;
227
+ height: 4px;
228
+ margin-left: -7px;
229
+ margin-right: auto;
230
+ -webkit-border-radius: 2px;
231
+ -khtml-border-radius: 2px;
232
+ -moz-border-radius: 2px;
233
+ }
data/rails/init.rb ADDED
@@ -0,0 +1,10 @@
1
+ Refinery::Plugin.register do |plugin|
2
+ plugin.title = "Events"
3
+ plugin.description = "Manage Events"
4
+ plugin.version = 1.0
5
+ plugin.activity = {
6
+ :class => ::Event,
7
+ :url_prefix => "edit",
8
+ :title => 'title'
9
+ }
10
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refinerycms-events
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - SemanticGap
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-05-07 00:00:00 -04:00
13
+ default_executable: refinerycms-events-install
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nayutaya-active-form
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: elevation_event_calendar
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: A really straightforward open source Ruby on Rails events plugin designed for integration with RefineryCMS.
36
+ email: info@semanticgap.com
37
+ executables:
38
+ - refinerycms-events-install
39
+ extensions: []
40
+
41
+ extra_rdoc_files: []
42
+
43
+ files:
44
+ - db/migrate/20100430163757_create_events.rb
45
+ - db/migrate/20100501234548_add_color_to_events.rb
46
+ - db/migrate/20100502004451_add_all_day_to_events.rb
47
+ - app/models/calendar.rb
48
+ - app/models/event.rb
49
+ - app/controllers/events_controller.rb
50
+ - app/controllers/admin/events_controller.rb
51
+ - app/helpers/calendars_helper.rb
52
+ - app/views/events/index.html.erb
53
+ - app/views/events/show.html.erb
54
+ - app/views/events/_event_list.html.erb
55
+ - app/views/admin/events/_event.html.erb
56
+ - app/views/admin/events/_form.html.erb
57
+ - app/views/admin/events/_sortable_list.html.erb
58
+ - app/views/admin/events/edit.html.erb
59
+ - app/views/admin/events/index.html.erb
60
+ - app/views/admin/events/new.html.erb
61
+ - config/routes.rb
62
+ - public/stylesheets/event_calendar.css
63
+ - public/javascripts/event_calendar.js
64
+ - rails/init.rb
65
+ - bin/refinerycms-events-install
66
+ has_rdoc: true
67
+ homepage: http://github.com/semanticgap/refinerycms-events
68
+ licenses: []
69
+
70
+ post_install_message:
71
+ rdoc_options: []
72
+
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ version:
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: "0"
86
+ version:
87
+ requirements: []
88
+
89
+ rubyforge_project:
90
+ rubygems_version: 1.3.5
91
+ signing_key:
92
+ specification_version: 3
93
+ summary: Ruby on Rails events plugin for RefineryCMS.
94
+ test_files: []
95
+