event_calendar_engine 0.1.11 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +39 -35
 - data/VERSION +1 -1
 - data/app/controllers/event_revisions_controller.rb +1 -1
 - data/app/controllers/events_controller.rb +21 -36
 - data/app/controllers/links_controller.rb +62 -0
 - data/app/helpers/event_calendar/application_helper.rb +73 -4
 - data/app/models/event.rb +21 -43
 - data/app/models/event_instance_methods.rb +40 -9
 - data/app/models/link.rb +19 -0
 - data/app/views/event_revisions/_list_group.html.erb +1 -1
 - data/app/views/events/_details.html.erb +2 -1
 - data/app/views/events/_event.html.erb +2 -0
 - data/app/views/events/_event_details.html.erb +22 -17
 - data/app/views/events/_form.html.erb +47 -3
 - data/app/views/events/_list_group.html.erb +1 -1
 - data/app/views/events/_one_day_list_event.html.erb +1 -1
 - data/app/views/events/edit.html.erb +1 -1
 - data/app/views/links/_form.html.erb +18 -0
 - data/app/views/links/_link.html.erb +6 -0
 - data/app/views/links/_links.html.erb +6 -0
 - data/app/views/links/create.js.rjs +14 -0
 - data/app/views/links/edit.html.erb +3 -0
 - data/app/views/links/new.html.erb +3 -0
 - data/app/views/links/show.html.erb +3 -0
 - data/app/views/links/update.js.rjs +15 -0
 - data/config/routes.rb +1 -56
 - data/db/migrate/20110204223256_add_presenters_facilitators_to_events.rb +11 -0
 - data/db/migrate/20110206000427_create_event_calendar_links.rb +23 -0
 - data/db/schema.rb +18 -1
 - data/public/javascripts/event_calendar/event_calendar.js +7 -0
 - data/public/javascripts/event_calendar/event_calendar_behaviors.js +92 -23
 - data/public/stylesheets/event_calendar/blueprint/screen.css +1 -0
 - data/spec/controllers/events_controller_spec.rb +4 -2
 - data/spec/controllers/links_controller_spec.rb +140 -0
 - data/spec/fixtures/event_calendar_events.yml +12 -2
 - data/spec/fixtures/event_calendar_events_links.yml +3 -0
 - data/spec/fixtures/event_calendar_links.yml +4 -0
 - data/spec/helpers/event_calendar/application_helper_spec.rb +4 -4
 - data/spec/models/event_instance_methods_spec.rb +58 -0
 - data/spec/models/event_revision_spec.rb +11 -10
 - data/spec/models/event_spec.rb +31 -65
 - data/spec/models/link_spec.rb +31 -0
 - data/spec/spec_helpers/helpers.rb +15 -0
 - metadata +29 -6
 - data/app/views/events/_times.html.erb +0 -5
 
| 
         @@ -2,25 +2,25 @@ module EventInstanceMethods 
     | 
|
| 
       2 
2 
     | 
    
         
             
              attr_accessor :start_time, :end_time, :start_date, :end_date
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
              def start_time
         
     | 
| 
       5 
     | 
    
         
            -
                @start_time ||= start_on 
     | 
| 
      
 5 
     | 
    
         
            +
                @start_time ||= start_on
         
     | 
| 
       6 
6 
     | 
    
         
             
              end
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
              def end_time
         
     | 
| 
       9 
     | 
    
         
            -
                @end_time ||= end_on 
     | 
| 
      
 9 
     | 
    
         
            +
                @end_time ||= end_on
         
     | 
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def start_date
         
     | 
| 
       13 
     | 
    
         
            -
                @start_date ||= start_on.present? ? start_on. 
     | 
| 
      
 13 
     | 
    
         
            +
                @start_date ||= start_on.present? ? start_on.to_date : start_on
         
     | 
| 
       14 
14 
     | 
    
         
             
              end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
              def end_date
         
     | 
| 
       17 
     | 
    
         
            -
                @end_date ||= end_on.present? ? end_on. 
     | 
| 
      
 17 
     | 
    
         
            +
                @end_date ||= end_on.present? ? end_on.to_date : end_on
         
     | 
| 
       18 
18 
     | 
    
         
             
              end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
              def start_year
         
     | 
| 
       21 
21 
     | 
    
         
             
                start_on.present? ? start_on.in_time_zone(timezone).year : start_on
         
     | 
| 
       22 
22 
     | 
    
         
             
              end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 23 
     | 
    
         
            +
              
         
     | 
| 
       24 
24 
     | 
    
         
             
              def start_month
         
     | 
| 
       25 
25 
     | 
    
         
             
                start_on.present? ? start_on.in_time_zone(timezone).strftime("%B") : start_on
         
     | 
| 
       26 
26 
     | 
    
         
             
              end
         
     | 
| 
         @@ -29,21 +29,52 @@ module EventInstanceMethods 
     | 
|
| 
       29 
29 
     | 
    
         
             
                start_on.present? ? start_on.in_time_zone(timezone).day : start_on
         
     | 
| 
       30 
30 
     | 
    
         
             
              end
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
      
 32 
     | 
    
         
            +
              def start_hour
         
     | 
| 
      
 33 
     | 
    
         
            +
                start_on.present? ? start_on.hour : start_on
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
              
         
     | 
| 
      
 36 
     | 
    
         
            +
              def start_min
         
     | 
| 
      
 37 
     | 
    
         
            +
                start_on.present? ? start_on.min : start_on
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
              
         
     | 
| 
       32 
40 
     | 
    
         
             
              def end_year
         
     | 
| 
       33 
     | 
    
         
            -
                end_on.present? ? end_on. 
     | 
| 
      
 41 
     | 
    
         
            +
                end_on.present? ? end_on.year : end_on
         
     | 
| 
       34 
42 
     | 
    
         
             
              end
         
     | 
| 
       35 
43 
     | 
    
         | 
| 
       36 
44 
     | 
    
         
             
              def end_month
         
     | 
| 
       37 
45 
     | 
    
         
             
                end_on.present? ? end_on.in_time_zone(timezone).strftime("%B") : end_on
         
     | 
| 
       38 
46 
     | 
    
         
             
              end
         
     | 
| 
       39 
47 
     | 
    
         | 
| 
      
 48 
     | 
    
         
            +
              def end_hour
         
     | 
| 
      
 49 
     | 
    
         
            +
                end_on.present? ? end_on.hour : end_on
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
              
         
     | 
| 
      
 52 
     | 
    
         
            +
              def end_min
         
     | 
| 
      
 53 
     | 
    
         
            +
                end_on.present? ? end_on.min : end_on
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
              
         
     | 
| 
       40 
56 
     | 
    
         
             
              def end_day
         
     | 
| 
       41 
57 
     | 
    
         
             
                end_on.present? ? end_on.in_time_zone(timezone).day : end_on
         
     | 
| 
       42 
58 
     | 
    
         
             
              end
         
     | 
| 
       43 
59 
     | 
    
         | 
| 
       44 
60 
     | 
    
         
             
              def one_day?
         
     | 
| 
       45 
     | 
    
         
            -
                 
     | 
| 
       46 
     | 
    
         
            -
                 
     | 
| 
       47 
     | 
    
         
            -
                 
     | 
| 
      
 61 
     | 
    
         
            +
                return true if start_on.blank? || end_on.blank?
         
     | 
| 
      
 62 
     | 
    
         
            +
                start_on.day == end_on.day &&
         
     | 
| 
      
 63 
     | 
    
         
            +
                start_on.month== end_on.month &&
         
     | 
| 
      
 64 
     | 
    
         
            +
                start_on.year == end_on.year
         
     | 
| 
      
 65 
     | 
    
         
            +
              end
         
     | 
| 
      
 66 
     | 
    
         
            +
              
         
     | 
| 
      
 67 
     | 
    
         
            +
              def date
         
     | 
| 
      
 68 
     | 
    
         
            +
                one_day? ? one_day_date : multi_day_date
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
              
         
     | 
| 
      
 71 
     | 
    
         
            +
              def one_day_date
         
     | 
| 
      
 72 
     | 
    
         
            +
                start_on.in_time_zone(timezone).strftime('%A, %B %d %Y')
         
     | 
| 
      
 73 
     | 
    
         
            +
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
              
         
     | 
| 
      
 75 
     | 
    
         
            +
              def multi_day_date
         
     | 
| 
      
 76 
     | 
    
         
            +
                return one_day_date if end_on.blank?
         
     | 
| 
      
 77 
     | 
    
         
            +
                "#{start_on.in_time_zone(timezone).strftime('%A, %B %d')} - "+
         
     | 
| 
      
 78 
     | 
    
         
            +
                "#{end_on.in_time_zone(timezone).strftime('%A, %B %d %Y')}"
         
     | 
| 
       48 
79 
     | 
    
         
             
              end
         
     | 
| 
       49 
80 
     | 
    
         
             
            end
         
     | 
    
        data/app/models/link.rb
    ADDED
    
    | 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Link < ActiveRecord::Base
         
     | 
| 
      
 2 
     | 
    
         
            +
              set_table_name 'event_calendar_links'
         
     | 
| 
      
 3 
     | 
    
         
            +
              
         
     | 
| 
      
 4 
     | 
    
         
            +
              has_and_belongs_to_many :events, :join_table => 'event_calendar_events_links'
         
     | 
| 
      
 5 
     | 
    
         
            +
              
         
     | 
| 
      
 6 
     | 
    
         
            +
              before_validation :detect_or_prepend_default_protocol
         
     | 
| 
      
 7 
     | 
    
         
            +
              
         
     | 
| 
      
 8 
     | 
    
         
            +
              validates_presence_of :name, :url
         
     | 
| 
      
 9 
     | 
    
         
            +
              
         
     | 
| 
      
 10 
     | 
    
         
            +
              private
         
     | 
| 
      
 11 
     | 
    
         
            +
                def detect_or_prepend_default_protocol
         
     | 
| 
      
 12 
     | 
    
         
            +
                  self.url = 'http://'+url if scheme.blank? and url.present?
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              protected
         
     | 
| 
      
 15 
     | 
    
         
            +
              public
         
     | 
| 
      
 16 
     | 
    
         
            +
                def scheme
         
     | 
| 
      
 17 
     | 
    
         
            +
                  url.present? ? URI.parse(url).scheme : ''
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <%- unless details.one_day? %>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <%= render :partial => 'events/multi_day_list_event', :object => details %>
         
     | 
| 
       2 
3 
     | 
    
         
             
            <%= textilize(details.location) %>
         
     | 
| 
       3 
4 
     | 
    
         
             
            <%= textilize(details.description) %>
         
     | 
| 
       4 
5 
     | 
    
         
             
            <%- else -%>
         
     | 
| 
         @@ -8,6 +9,6 @@ 
     | 
|
| 
       8 
9 
     | 
    
         
             
            </div>
         
     | 
| 
       9 
10 
     | 
    
         | 
| 
       10 
11 
     | 
    
         
             
            <div class="span-6 last">
         
     | 
| 
       11 
     | 
    
         
            -
              <%=  
     | 
| 
      
 12 
     | 
    
         
            +
              <%= event_times(details) %>
         
     | 
| 
       12 
13 
     | 
    
         
             
            </div>
         
     | 
| 
       13 
14 
     | 
    
         
             
            <%- end -%>
         
     | 
| 
         @@ -1,27 +1,32 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            <p>
         
     | 
| 
       2 
     | 
    
         
            -
              <strong> 
     | 
| 
       3 
     | 
    
         
            -
               
     | 
| 
      
 1 
     | 
    
         
            +
            <p class="zoom">
         
     | 
| 
      
 2 
     | 
    
         
            +
              <strong>Date:</strong> <%= event_details.date %>
         
     | 
| 
      
 3 
     | 
    
         
            +
              <%- if event_details.one_day? -%>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <br />
         
     | 
| 
      
 5 
     | 
    
         
            +
              <strong>Time:</strong> <%= event_times(event_details) %>
         
     | 
| 
      
 6 
     | 
    
         
            +
              <%- end -%>
         
     | 
| 
       4 
7 
     | 
    
         
             
            </p>
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              < 
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
               
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
            <% unless event_details.presenters.blank? %>
         
     | 
| 
      
 9 
     | 
    
         
            +
            <p class="zoom">
         
     | 
| 
      
 10 
     | 
    
         
            +
              <strong>Presenters</strong><br>
         
     | 
| 
      
 11 
     | 
    
         
            +
              <%= textilize_without_paragraph event_details.presenters %>
         
     | 
| 
      
 12 
     | 
    
         
            +
            </p>
         
     | 
| 
      
 13 
     | 
    
         
            +
            <% end %>
         
     | 
| 
      
 14 
     | 
    
         
            +
            <% unless event_details.facilitators.blank? %>
         
     | 
| 
      
 15 
     | 
    
         
            +
            <p class="zoom">
         
     | 
| 
      
 16 
     | 
    
         
            +
              <strong>Facilitators</strong><br>
         
     | 
| 
      
 17 
     | 
    
         
            +
              <%= textilize_without_paragraph event_details.facilitators %>
         
     | 
| 
      
 18 
     | 
    
         
            +
            </p>
         
     | 
| 
      
 19 
     | 
    
         
            +
            <% end %>
         
     | 
| 
       15 
20 
     | 
    
         
             
            <% unless event_details.location.blank? %>
         
     | 
| 
       16 
     | 
    
         
            -
            <p>
         
     | 
| 
       17 
     | 
    
         
            -
              <strong>Location</strong><br 
     | 
| 
      
 21 
     | 
    
         
            +
            <p class="zoom">
         
     | 
| 
      
 22 
     | 
    
         
            +
              <strong>Location</strong><br>
         
     | 
| 
       18 
23 
     | 
    
         
             
              <%= textilize_without_paragraph event_details.location %>
         
     | 
| 
       19 
24 
     | 
    
         
             
            </p>
         
     | 
| 
       20 
25 
     | 
    
         
             
            <% end %>
         
     | 
| 
       21 
26 
     | 
    
         | 
| 
       22 
27 
     | 
    
         
             
            <% unless event_details.description.blank? %>
         
     | 
| 
       23 
     | 
    
         
            -
            <p>
         
     | 
| 
       24 
     | 
    
         
            -
              <strong>Description/Other Details</strong><br 
     | 
| 
      
 28 
     | 
    
         
            +
            <p class="zoom">
         
     | 
| 
      
 29 
     | 
    
         
            +
              <strong>Description/Other Details</strong><br>
         
     | 
| 
       25 
30 
     | 
    
         
             
              <%= textilize_without_paragraph event_details.description %>
         
     | 
| 
       26 
31 
     | 
    
         
             
            </p>
         
     | 
| 
       27 
32 
     | 
    
         
             
            <% end %>
         
     | 
| 
         @@ -4,14 +4,58 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
              <%= form.inputs do %>
         
     | 
| 
       5 
5 
     | 
    
         
             
                <%= form.input :name, :hint => "the name of the event" %>
         
     | 
| 
       6 
6 
     | 
    
         
             
                <%= form.input :event_type, :hint => "conference, meeting, training, etc" %>
         
     | 
| 
       7 
     | 
    
         
            -
                 
     | 
| 
      
 7 
     | 
    
         
            +
                <li id="event_start_time_input" class="time optional">
         
     | 
| 
      
 8 
     | 
    
         
            +
                  <input id="event_start_time_1i" type="hidden" value="<%= Date.current.year %>" name="event[start_time(1i)]">
         
     | 
| 
      
 9 
     | 
    
         
            +
                  <fieldset>
         
     | 
| 
      
 10 
     | 
    
         
            +
                    <legend class="label">
         
     | 
| 
      
 11 
     | 
    
         
            +
                      <label for="event_start_time_1i">Start time</label>
         
     | 
| 
      
 12 
     | 
    
         
            +
                    </legend>
         
     | 
| 
      
 13 
     | 
    
         
            +
                    <ol>
         
     | 
| 
      
 14 
     | 
    
         
            +
                      <li>
         
     | 
| 
      
 15 
     | 
    
         
            +
                        <label for="event_start_time_4i">Hour</label>
         
     | 
| 
      
 16 
     | 
    
         
            +
                        <select id="event_start_time_4i" name="event[start_time(4i)]">
         
     | 
| 
      
 17 
     | 
    
         
            +
                          <%= options_for_select(hour_options, @event.start_hour) %>
         
     | 
| 
      
 18 
     | 
    
         
            +
                        </select>
         
     | 
| 
      
 19 
     | 
    
         
            +
                      </li>
         
     | 
| 
      
 20 
     | 
    
         
            +
                      <li>
         
     | 
| 
      
 21 
     | 
    
         
            +
                        <label for="event_end_time_5i">Minute</label>
         
     | 
| 
      
 22 
     | 
    
         
            +
                        <select id="event_end_time_5i" name="event[start_time(5i)]">
         
     | 
| 
      
 23 
     | 
    
         
            +
                          <%= options_for_select(minute_options, @event.start_min) %>
         
     | 
| 
      
 24 
     | 
    
         
            +
                        </select>
         
     | 
| 
      
 25 
     | 
    
         
            +
                      </li>
         
     | 
| 
      
 26 
     | 
    
         
            +
                    </ol>
         
     | 
| 
      
 27 
     | 
    
         
            +
                  </fieldset>
         
     | 
| 
      
 28 
     | 
    
         
            +
                </li>
         
     | 
| 
       8 
29 
     | 
    
         
             
                <%= form.input :start_date, :required => false, :as => :string,
         
     | 
| 
       9 
30 
     | 
    
         
             
                      :input_html => { :value => @event.start_date.to_s } %>
         
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
      
 31 
     | 
    
         
            +
                <li id="event_end_time_input" class="time optional">
         
     | 
| 
      
 32 
     | 
    
         
            +
                  <input id="event_end_time_1i" type="hidden" value="<%= Date.current.year %>" name="event[end_time(1i)]">
         
     | 
| 
      
 33 
     | 
    
         
            +
                  <fieldset>
         
     | 
| 
      
 34 
     | 
    
         
            +
                    <legend class="label">
         
     | 
| 
      
 35 
     | 
    
         
            +
                      <label for="event_end_time_1i">End time</label>
         
     | 
| 
      
 36 
     | 
    
         
            +
                    </legend>
         
     | 
| 
      
 37 
     | 
    
         
            +
                    <ol>
         
     | 
| 
      
 38 
     | 
    
         
            +
                      <li>
         
     | 
| 
      
 39 
     | 
    
         
            +
                        <label for="event_end_time_4i">Hour</label>
         
     | 
| 
      
 40 
     | 
    
         
            +
                        <select id="event_end_time_4i" name="event[end_time(4i)]">
         
     | 
| 
      
 41 
     | 
    
         
            +
                          <%= options_for_select(hour_options, @event.end_hour) %>
         
     | 
| 
      
 42 
     | 
    
         
            +
                        </select>
         
     | 
| 
      
 43 
     | 
    
         
            +
                      </li>
         
     | 
| 
      
 44 
     | 
    
         
            +
                      <li>
         
     | 
| 
      
 45 
     | 
    
         
            +
                        <label for="event_end_time_5i">Minute</label>
         
     | 
| 
      
 46 
     | 
    
         
            +
                        <select id="event_end_time_5i" name="event[end_time(5i)]">
         
     | 
| 
      
 47 
     | 
    
         
            +
                          <%= options_for_select(minute_options, @event.end_min) %>
         
     | 
| 
      
 48 
     | 
    
         
            +
                        </select>
         
     | 
| 
      
 49 
     | 
    
         
            +
                      </li>
         
     | 
| 
      
 50 
     | 
    
         
            +
                    </ol>
         
     | 
| 
      
 51 
     | 
    
         
            +
                  </fieldset>
         
     | 
| 
      
 52 
     | 
    
         
            +
                </li>
         
     | 
| 
       11 
53 
     | 
    
         
             
                <%= form.input :end_date, :required => false, :as => :string,
         
     | 
| 
       12 
54 
     | 
    
         
             
                      :input_html => { :value => @event.end_date.to_s } %>
         
     | 
| 
       13 
55 
     | 
    
         
             
                <%= form.input :timezone, :as => :time_zone, :priority_zones => /^(Eastern|Central|Mountain|Pacific) Time/ %>
         
     | 
| 
       14 
     | 
    
         
            -
                <%= form.input : 
     | 
| 
      
 56 
     | 
    
         
            +
                <%= form.input :facilitators, :hint => 'eg Sally Resonant, DSM WRRC' %>
         
     | 
| 
      
 57 
     | 
    
         
            +
                <%= form.input :presenters, :hint => 'eg Jane Doe, DSM WRRC' %>
         
     | 
| 
      
 58 
     | 
    
         
            +
                <%= form.input :location, :required => false, :hint => 'eg Portland, Oregon USA or http://some.webinar.org', :label => 'Location' %>
         
     | 
| 
       15 
59 
     | 
    
         
             
                <%= form.input :description, :required => false, :label => 'Description' %>
         
     | 
| 
       16 
60 
     | 
    
         
             
                <% unless @event.new_record? %>
         
     | 
| 
       17 
61 
     | 
    
         
             
                  <%= form.input :notes, :required => false, :label => 'Notes' %>
         
     | 
| 
         @@ -6,7 +6,7 @@ 
     | 
|
| 
       6 
6 
     | 
    
         
             
                  <li><span class="collapsible closed"><%= month %></span>
         
     | 
| 
       7 
7 
     | 
    
         
             
                    <ul>
         
     | 
| 
       8 
8 
     | 
    
         
             
                      <% months_events.each do |event| %>
         
     | 
| 
       9 
     | 
    
         
            -
                      <li>
         
     | 
| 
      
 9 
     | 
    
         
            +
                      <li class="zoom">
         
     | 
| 
       10 
10 
     | 
    
         
             
                        <p class="collapsible closed"><%= link_to event.name, event_path(event) %> (<%= event.start_on.strftime("%a") %> <%= event.start_day.ordinalize %>)</p>
         
     | 
| 
       11 
11 
     | 
    
         
             
                        <%- if event.one_day? -%>
         
     | 
| 
       12 
12 
     | 
    
         
             
                        <%= render :partial => 'events/one_day_list_event', :object => event %>
         
     | 
| 
         @@ -1,2 +1,2 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <p><%= one_day_list_event.start_on.strftime("%A") %> <%= one_day_list_event.start_day.ordinalize %></p>
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 2 
     | 
    
         
            +
            <p><%= event_times(one_day_list_event) %></p>
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <%- 
         
     | 
| 
      
 2 
     | 
    
         
            +
            if @link.new_record?
         
     | 
| 
      
 3 
     | 
    
         
            +
              submission_path = event_links_path(@event)
         
     | 
| 
      
 4 
     | 
    
         
            +
              method = 'post'
         
     | 
| 
      
 5 
     | 
    
         
            +
            else
         
     | 
| 
      
 6 
     | 
    
         
            +
              submission_path = event_link_path(@event, @link)
         
     | 
| 
      
 7 
     | 
    
         
            +
              method = 'put'
         
     | 
| 
      
 8 
     | 
    
         
            +
            end
         
     | 
| 
      
 9 
     | 
    
         
            +
            -%>
         
     | 
| 
      
 10 
     | 
    
         
            +
            <%= semantic_form_for(@link, :html => {:class => 'dynamic', :id => 'link_dynamic_form'}, :url => submission_path, :method => 'put') do |form| %>
         
     | 
| 
      
 11 
     | 
    
         
            +
              <%= form.inputs do %>
         
     | 
| 
      
 12 
     | 
    
         
            +
                <input type="hidden" name="_method" value="<%= method %>">
         
     | 
| 
      
 13 
     | 
    
         
            +
                <%= form.input :name, :hint => "Your External Resource" %>
         
     | 
| 
      
 14 
     | 
    
         
            +
                <%= form.input :url, :label => 'URL', :hint => "some.domain.tld or http://some.dom..." %>
         
     | 
| 
      
 15 
     | 
    
         
            +
                <%= form.input :description, :hint => 'Statistics, Analysis and News regarding the sudden and unexpected rise in the population of water molecules.' %>
         
     | 
| 
      
 16 
     | 
    
         
            +
                <%= form.submit %> <input type="reset" class="cancel" value="Cancel">
         
     | 
| 
      
 17 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 18 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,6 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <%= content_tag_for :p, link, :class => 'zoom' do %>
         
     | 
| 
      
 2 
     | 
    
         
            +
              <%= link_to link.name, link.url, :class => 'link_name' %> <em class="link_url"><%= link.url %></em>
         
     | 
| 
      
 3 
     | 
    
         
            +
              <%= link_to_edit_link(@event, link, {}, {:class => 'edit fake_button magic'}) %>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <%= link_to_delete_link(@event, link, {}, {:class => 'fake_button magic'}) %><br>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <span class="link_description"><%= link.description %></span>
         
     | 
| 
      
 6 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            if @link.valid?
         
     | 
| 
      
 2 
     | 
    
         
            +
              page << %Q{
         
     | 
| 
      
 3 
     | 
    
         
            +
                $('div.links > p.new').before('#{escape_javascript(render(@link))}');
         
     | 
| 
      
 4 
     | 
    
         
            +
                $('#link_dynamic_form').remove();
         
     | 
| 
      
 5 
     | 
    
         
            +
                $('#link_#{@link.id}').find('.magic').hide();
         
     | 
| 
      
 6 
     | 
    
         
            +
              }
         
     | 
| 
      
 7 
     | 
    
         
            +
            else
         
     | 
| 
      
 8 
     | 
    
         
            +
              page << %Q{
         
     | 
| 
      
 9 
     | 
    
         
            +
                $('#link_dynamic_form').replaceWith('#{escape_javascript(render({
         
     | 
| 
      
 10 
     | 
    
         
            +
                  :partial => 'links/form'
         
     | 
| 
      
 11 
     | 
    
         
            +
                }))}');
         
     | 
| 
      
 12 
     | 
    
         
            +
                $('#link_dynamic_form').attach(Remote.Form);
         
     | 
| 
      
 13 
     | 
    
         
            +
              }
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            if @link.valid?
         
     | 
| 
      
 2 
     | 
    
         
            +
              page << %Q{
         
     | 
| 
      
 3 
     | 
    
         
            +
                // $('#link_dynamic_form').insertAfter('div.links > p.new');
         
     | 
| 
      
 4 
     | 
    
         
            +
                $('#link_dynamic_form').remove();
         
     | 
| 
      
 5 
     | 
    
         
            +
                $('#link_#{@link.id}').replaceWith('#{escape_javascript(render(@link))}');
         
     | 
| 
      
 6 
     | 
    
         
            +
                $('#link_#{@link.id}').find('.magic').hide();
         
     | 
| 
      
 7 
     | 
    
         
            +
              }
         
     | 
| 
      
 8 
     | 
    
         
            +
            else
         
     | 
| 
      
 9 
     | 
    
         
            +
              page << %Q{
         
     | 
| 
      
 10 
     | 
    
         
            +
                $('#link_dynamic_form').replaceWith('#{escape_javascript(render({
         
     | 
| 
      
 11 
     | 
    
         
            +
                  :partial => 'links/form'
         
     | 
| 
      
 12 
     | 
    
         
            +
                }))}');
         
     | 
| 
      
 13 
     | 
    
         
            +
                $('#link_dynamic_form').attach(Remote.Form);
         
     | 
| 
      
 14 
     | 
    
         
            +
              }
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
    
        data/config/routes.rb
    CHANGED
    
    | 
         @@ -2,66 +2,11 @@ Rails.application.routes.draw do 
     | 
|
| 
       2 
2 
     | 
    
         
             
              root :to => "events#index"
         
     | 
| 
       3 
3 
     | 
    
         
             
              resources :events do
         
     | 
| 
       4 
4 
     | 
    
         
             
                resources :attendees
         
     | 
| 
      
 5 
     | 
    
         
            +
                resources :links
         
     | 
| 
       5 
6 
     | 
    
         
             
              end
         
     | 
| 
       6 
7 
     | 
    
         
             
              resources :event_revisions do
         
     | 
| 
       7 
8 
     | 
    
         
             
                member do
         
     | 
| 
       8 
9 
     | 
    
         
             
                  post :restore
         
     | 
| 
       9 
10 
     | 
    
         
             
                end
         
     | 
| 
       10 
11 
     | 
    
         
             
              end
         
     | 
| 
       11 
     | 
    
         
            -
              # The priority is based upon order of creation:
         
     | 
| 
       12 
     | 
    
         
            -
              # first created -> highest priority.
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
              # Sample of regular route:
         
     | 
| 
       15 
     | 
    
         
            -
              #   match 'products/:id' => 'catalog#view'
         
     | 
| 
       16 
     | 
    
         
            -
              # Keep in mind you can assign values other than :controller and :action
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              # Sample of named route:
         
     | 
| 
       19 
     | 
    
         
            -
              #   match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
         
     | 
| 
       20 
     | 
    
         
            -
              # This route can be invoked with purchase_url(:id => product.id)
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
              # Sample resource route (maps HTTP verbs to controller actions automatically):
         
     | 
| 
       23 
     | 
    
         
            -
              #   resources :products
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
              # Sample resource route with options:
         
     | 
| 
       26 
     | 
    
         
            -
              #   resources :products do
         
     | 
| 
       27 
     | 
    
         
            -
              #     member do
         
     | 
| 
       28 
     | 
    
         
            -
              #       get 'short'
         
     | 
| 
       29 
     | 
    
         
            -
              #       post 'toggle'
         
     | 
| 
       30 
     | 
    
         
            -
              #     end
         
     | 
| 
       31 
     | 
    
         
            -
              #
         
     | 
| 
       32 
     | 
    
         
            -
              #     collection do
         
     | 
| 
       33 
     | 
    
         
            -
              #       get 'sold'
         
     | 
| 
       34 
     | 
    
         
            -
              #     end
         
     | 
| 
       35 
     | 
    
         
            -
              #   end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
              # Sample resource route with sub-resources:
         
     | 
| 
       38 
     | 
    
         
            -
              #   resources :products do
         
     | 
| 
       39 
     | 
    
         
            -
              #     resources :comments, :sales
         
     | 
| 
       40 
     | 
    
         
            -
              #     resource :seller
         
     | 
| 
       41 
     | 
    
         
            -
              #   end
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
              # Sample resource route with more complex sub-resources
         
     | 
| 
       44 
     | 
    
         
            -
              #   resources :products do
         
     | 
| 
       45 
     | 
    
         
            -
              #     resources :comments
         
     | 
| 
       46 
     | 
    
         
            -
              #     resources :sales do
         
     | 
| 
       47 
     | 
    
         
            -
              #       get 'recent', :on => :collection
         
     | 
| 
       48 
     | 
    
         
            -
              #     end
         
     | 
| 
       49 
     | 
    
         
            -
              #   end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
              # Sample resource route within a namespace:
         
     | 
| 
       52 
     | 
    
         
            -
              #   namespace :admin do
         
     | 
| 
       53 
     | 
    
         
            -
              #     # Directs /admin/products/* to Admin::ProductsController
         
     | 
| 
       54 
     | 
    
         
            -
              #     # (app/controllers/admin/products_controller.rb)
         
     | 
| 
       55 
     | 
    
         
            -
              #     resources :products
         
     | 
| 
       56 
     | 
    
         
            -
              #   end
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
              # You can have the root of your site routed with "root"
         
     | 
| 
       59 
     | 
    
         
            -
              # just remember to delete public/index.html.
         
     | 
| 
       60 
     | 
    
         
            -
              # root :to => "welcome#index"
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
              # See how all your routes lay out with "rake routes"
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
              # This is a legacy wild controller route that's not recommended for RESTful applications.
         
     | 
| 
       65 
     | 
    
         
            -
              # Note: This route will make all actions in every controller accessible via GET requests.
         
     | 
| 
       66 
     | 
    
         
            -
              # match ':controller(/:action(/:id(.:format)))'
         
     | 
| 
       67 
12 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class AddPresentersFacilitatorsToEvents < ActiveRecord::Migration
         
     | 
| 
      
 2 
     | 
    
         
            +
              def self.up
         
     | 
| 
      
 3 
     | 
    
         
            +
                add_column :event_calendar_events, :presenters, :text
         
     | 
| 
      
 4 
     | 
    
         
            +
                add_column :event_calendar_events, :facilitators, :text
         
     | 
| 
      
 5 
     | 
    
         
            +
              end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              def self.down
         
     | 
| 
      
 8 
     | 
    
         
            +
                remove_column :event_calendar_events, :facilitators
         
     | 
| 
      
 9 
     | 
    
         
            +
                remove_column :event_calendar_events, :presenters
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class CreateEventCalendarLinks < ActiveRecord::Migration
         
     | 
| 
      
 2 
     | 
    
         
            +
              def self.up
         
     | 
| 
      
 3 
     | 
    
         
            +
                create_table :event_calendar_links do |t|
         
     | 
| 
      
 4 
     | 
    
         
            +
                  t.string :name
         
     | 
| 
      
 5 
     | 
    
         
            +
                  t.string :url
         
     | 
| 
      
 6 
     | 
    
         
            +
                  t.text :description
         
     | 
| 
      
 7 
     | 
    
         
            +
                  
         
     | 
| 
      
 8 
     | 
    
         
            +
                  t.timestamps
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
                
         
     | 
| 
      
 11 
     | 
    
         
            +
                create_table :event_calendar_events_links, :id => false do |t|
         
     | 
| 
      
 12 
     | 
    
         
            +
                  t.integer :event_id
         
     | 
| 
      
 13 
     | 
    
         
            +
                  t.integer :link_id
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
                
         
     | 
| 
      
 16 
     | 
    
         
            +
                add_index :event_calendar_events_links, [:event_id, :link_id]
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              def self.down
         
     | 
| 
      
 20 
     | 
    
         
            +
                drop_table :event_calendar_links
         
     | 
| 
      
 21 
     | 
    
         
            +
                drop_table :event_calendar_events_links
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     |