tb_events 1.1.2 → 1.2.0.beta1
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/admin/events/application.js +16 -0
- data/app/assets/javascripts/{calendar_events.js → admin/events/calendar_events.js} +0 -0
- data/app/assets/javascripts/{spud/admin → admin/events}/calendars.js +0 -0
- data/app/assets/stylesheets/admin/events/application.css +4 -0
- data/app/assets/{javascripts/spud/events.js → stylesheets/admin/events/calendar_events.css} +0 -0
- data/app/assets/stylesheets/{spud → admin/events}/calendars.css +13 -27
- data/app/controllers/admin/calendars_controller.rb +1 -1
- data/app/helpers/admin/calendars_helper.rb +4 -4
- data/app/helpers/calendars_helper.rb +35 -42
- data/app/models/spud/spud_calendar_event_model.rb +2 -7
- data/app/models/spud_calendar.rb +18 -2
- data/app/views/admin/calendar_events/_calendar.html.erb +10 -4
- data/app/views/admin/calendar_events/_form.html.erb +15 -97
- data/app/views/admin/calendar_events/index.html.erb +18 -11
- data/app/views/admin/calendars/_calendar_legend.html.erb +5 -4
- data/app/views/admin/calendars/_form.html.erb +4 -19
- data/config/locales/en.yml +9 -0
- data/db/migrate/20140730182213_remove_color_from_spud_calendars.rb +8 -0
- data/lib/spud_events/calendar_builder.rb +1 -1
- data/lib/spud_events/engine.rb +2 -6
- data/lib/spud_events/version.rb +1 -1
- metadata +17 -47
- data/app/assets/javascripts/calendars.js +0 -2
- data/app/assets/javascripts/spud/admin/calendar_events.js +0 -2
- data/app/assets/javascripts/spud/admin/events.js +0 -51
- data/app/assets/lib/colorpicker/colorpicker.css +0 -164
- data/app/assets/lib/colorpicker/colorpicker.js +0 -484
- data/app/assets/lib/colorpicker/images/blank.gif +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_background.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_hex.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_hsb_b.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_hsb_h.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_hsb_s.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_indic.gif +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_overlay.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_rgb_b.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_rgb_g.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_rgb_r.png +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_select.gif +0 -0
- data/app/assets/lib/colorpicker/images/colorpicker_submit.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_background.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_hex.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_hsb_b.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_hsb_h.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_hsb_s.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_indic.gif +0 -0
- data/app/assets/lib/colorpicker/images/custom_rgb_b.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_rgb_g.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_rgb_r.png +0 -0
- data/app/assets/lib/colorpicker/images/custom_submit.png +0 -0
- data/app/assets/lib/colorpicker/images/select.png +0 -0
- data/app/assets/lib/colorpicker/images/select2.png +0 -0
- data/app/assets/lib/colorpicker/images/slider.png +0 -0
- data/app/assets/stylesheets/spud/admin/events.css +0 -16
- data/app/assets/stylesheets/spud/calendar_events.css +0 -18
- data/app/assets/stylesheets/spud/events.css +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce1daf8729504d0663c17b5eea3fe706f86965da
|
4
|
+
data.tar.gz: fa913c71926dacde2922cb5d538d64599968c512
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2f3c7f6768a50f6a29150c72cdbc13644c31c9d91dd8a4a18fecc4cef78c3ef90f251c7210ec08ea858d8490315438b5c8d8d3a1e7ad2798c73c40c4d983a61
|
7
|
+
data.tar.gz: 1a9e8432f194112a8051958f4d5a6710774f46de4ad04c42ffb729ab443a4ccc143a5a38d4792f39409813b736044cacb783da08864e1964c156c2866b2f4eb0
|
@@ -0,0 +1,16 @@
|
|
1
|
+
//= require_self
|
2
|
+
//= require_directory
|
3
|
+
|
4
|
+
(function(){
|
5
|
+
|
6
|
+
spud.admin.events = {
|
7
|
+
init: function(){
|
8
|
+
$(document).on('ajax:success','.js-spud-calendar-delete-action', deletedCalendar);
|
9
|
+
}
|
10
|
+
};
|
11
|
+
|
12
|
+
var deletedCalendar = function(){
|
13
|
+
$(this).closest('.spud_events_admin_calendar_legend_item').fadeOut(500, function(){ $(this).remove(); });
|
14
|
+
};
|
15
|
+
|
16
|
+
})();
|
File without changes
|
File without changes
|
File without changes
|
@@ -49,10 +49,8 @@
|
|
49
49
|
|
50
50
|
#spud_events_admin_calendar,
|
51
51
|
#spud_events_calendar {
|
52
|
-
|
53
|
-
padding-bottom: 50px;
|
52
|
+
margin: 0 0 20px;
|
54
53
|
position: relative;
|
55
|
-
float: left;
|
56
54
|
}
|
57
55
|
#spud_events_calendar {
|
58
56
|
width: auto;
|
@@ -78,20 +76,23 @@
|
|
78
76
|
vertical-align: top;
|
79
77
|
width: 98px;
|
80
78
|
}
|
81
|
-
.
|
82
|
-
.spud_events_calendar_date_container {
|
83
|
-
display: block;
|
84
|
-
padding: 18px 5px 0;
|
85
|
-
position: relative;
|
86
|
-
}
|
87
|
-
span.spud_events_admin_calendar_date,
|
88
|
-
span.spud_events_calendar_date {
|
79
|
+
.calendar-day{
|
89
80
|
position: absolute;
|
90
81
|
top: 3px;
|
91
|
-
|
82
|
+
left: 3px;
|
92
83
|
font-size: 11px;
|
93
84
|
line-height: 11px;
|
94
85
|
}
|
86
|
+
.calendar-events-list{
|
87
|
+
list-style: none;
|
88
|
+
margin: 20px 0 0;
|
89
|
+
}
|
90
|
+
.calendar-events-list li{
|
91
|
+
margin: 4px;
|
92
|
+
}
|
93
|
+
.calendar-events-list a{
|
94
|
+
text-decoration: none;
|
95
|
+
}
|
95
96
|
|
96
97
|
/* Calendar Legend
|
97
98
|
----------------------- */
|
@@ -100,7 +101,6 @@ span.spud_events_calendar_date {
|
|
100
101
|
list-style: none;
|
101
102
|
border: 1px solid #d9d9d9;
|
102
103
|
padding: 0;
|
103
|
-
margin: 45px 0 0 725px;
|
104
104
|
}
|
105
105
|
#spud_events_admin_calendar_legend li,
|
106
106
|
#spud_events_calendar_legend li {
|
@@ -120,17 +120,3 @@ span.spud_events_calendar_date {
|
|
120
120
|
#spud_events_calendar_legend li:last-child {
|
121
121
|
border: none;
|
122
122
|
}
|
123
|
-
.spud_events_admin_calendar_actions,
|
124
|
-
.spud_events_calendar_actions {
|
125
|
-
text-align: right;
|
126
|
-
}
|
127
|
-
|
128
|
-
#spud_events_admin_calendar_legend span,
|
129
|
-
#spud_events_calendar_legend span {
|
130
|
-
display: inline-block;
|
131
|
-
-moz-border-radius: 3px;
|
132
|
-
-webkit-border-radius: 3px;
|
133
|
-
border-radius: 3px;
|
134
|
-
padding: 2px 8px;
|
135
|
-
margin: 8px 0 0 8px;
|
136
|
-
}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module Admin::CalendarsHelper
|
2
2
|
|
3
|
-
def link_to_previous_admin_calendar_month(date, url_for_options)
|
3
|
+
def link_to_previous_admin_calendar_month(date, url_for_options={})
|
4
4
|
date = date.advance(:months => -1)
|
5
5
|
calendar = params[:calendar] ? params[:calendar] : nil
|
6
|
-
link_to('« Previous Month'.html_safe, admin_list_spud_calendar_events_path(:month => date.month, :year => date.year, :calendar => calendar), :class => 'spud_events_calendar_link previous_calendar btn').html_safe
|
6
|
+
link_to('« Previous Month'.html_safe, admin_list_spud_calendar_events_path(:month => date.month, :year => date.year, :calendar => calendar), :class => 'spud_events_calendar_link previous_calendar btn btn-sm btn-default').html_safe
|
7
7
|
end
|
8
8
|
|
9
|
-
def link_to_next_admin_calendar_month(date, url_for_options)
|
9
|
+
def link_to_next_admin_calendar_month(date, url_for_options={})
|
10
10
|
date = date.advance(:months => 1)
|
11
11
|
calendar = params[:calendar] ? params[:calendar] : nil
|
12
|
-
link_to('Next Month »'.html_safe, admin_list_spud_calendar_events_path(:month => date.month, :year => date.year, :calendar => calendar), :class => 'spud_events_calendar_link next_calendar btn').html_safe
|
12
|
+
link_to('Next Month »'.html_safe, admin_list_spud_calendar_events_path(:month => date.month, :year => date.year, :calendar => calendar), :class => 'spud_events_calendar_link next_calendar btn btn-sm btn-default pull-right').html_safe
|
13
13
|
end
|
14
14
|
|
15
15
|
end
|
@@ -6,43 +6,56 @@ module CalendarsHelper
|
|
6
6
|
# * opts:
|
7
7
|
# - headers: Array of weekday headers (optional)
|
8
8
|
#
|
9
|
-
def spud_calendar_for_date(date, opts={})
|
10
|
-
|
11
|
-
|
12
|
-
if block_given?
|
13
|
-
yield(day)
|
14
|
-
end
|
15
|
-
end
|
9
|
+
def spud_calendar_for_date(date, opts={}, &block)
|
10
|
+
events = SpudCalendarEvent.in_month_of(date)
|
11
|
+
spud_calendar_for_events(events, date, opts, &block)
|
16
12
|
end
|
17
13
|
|
18
|
-
# Builds a calendar for the given date
|
14
|
+
# Builds a calendar for the given date and identifier
|
19
15
|
#
|
20
|
-
# *
|
16
|
+
# * identifier: Symbol for the SpudCalendar you wish to display
|
21
17
|
# * date: Determines the month to be displayed. Given date will have the "today" css class
|
22
18
|
# * opts:
|
23
19
|
# - headers: Array of weekday headers (optional)
|
24
20
|
#
|
25
|
-
def
|
26
|
-
|
27
|
-
|
28
|
-
events =
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
## TODO
|
33
|
-
end
|
21
|
+
def spud_calendar_for_identifier(identifier, date, opts={}, &block)
|
22
|
+
calendar = SpudCalendar.with_identifier(identifier)
|
23
|
+
if calendar.present?
|
24
|
+
events = calendar.spud_calendar_events.in_month_of(date)
|
25
|
+
else
|
26
|
+
logger.warn "Failed to load calendar by identifer '#{identifier}'. Does it exist?"
|
27
|
+
events = []
|
34
28
|
end
|
29
|
+
spud_calendar_for_events(events, date, opts, &block)
|
35
30
|
end
|
36
31
|
|
37
|
-
# Builds a calendar for the given date
|
32
|
+
# Builds a calendar for the given date, with events
|
38
33
|
#
|
39
|
-
# *
|
34
|
+
# * events: An array or relation of SpudCalendarEvent records
|
40
35
|
# * date: Determines the month to be displayed. Given date will have the "today" css class
|
41
36
|
# * opts:
|
42
37
|
# - headers: Array of weekday headers (optional)
|
43
38
|
#
|
44
|
-
def
|
45
|
-
|
39
|
+
def spud_calendar_for_events(events, date, opts={}, &block)
|
40
|
+
events_grouped = events.group_by(&:start_date)
|
41
|
+
cache(['spud-calendar', date.to_s, events]) do
|
42
|
+
concat(
|
43
|
+
SpudEvents::CalendarBuilder.new(self, date, opts).table do |day|
|
44
|
+
events = events_grouped[day] || []
|
45
|
+
if block
|
46
|
+
block.call(day, events)
|
47
|
+
else
|
48
|
+
concat content_tag(:span, day.day.to_s, :class => 'calendar-day')
|
49
|
+
if events.length > 0
|
50
|
+
list_items = events.collect{ |event|
|
51
|
+
'<li>' + link_to(event.title, calendar_event_path(event)) + '</li>'
|
52
|
+
}.join('')
|
53
|
+
concat content_tag(:ul, raw(list_items), :class => 'events-list')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
)
|
58
|
+
end
|
46
59
|
end
|
47
60
|
|
48
61
|
def link_to_previous_calendar_month(date)
|
@@ -57,24 +70,4 @@ module CalendarsHelper
|
|
57
70
|
link_to('Next Month »'.html_safe, calendar_path(:month => date.month, :year => date.year, :calendar => calendar), :class => 'spud_events_calendar_link next_calendar btn').html_safe
|
58
71
|
end
|
59
72
|
|
60
|
-
def calendar_fore_color(backcolor)
|
61
|
-
fore_color = "ffffff"
|
62
|
-
if backcolor.length != 6
|
63
|
-
return fore_color
|
64
|
-
end
|
65
|
-
|
66
|
-
red = backcolor[0,2].hex
|
67
|
-
green = backcolor[2,2].hex
|
68
|
-
blue = backcolor[4,2].hex
|
69
|
-
|
70
|
-
perceived_brightness = Math.sqrt(red*red*0.241 + green*green*0.691 + blue*blue*0.068)
|
71
|
-
|
72
|
-
|
73
|
-
# average = (red+green+blue) / 3
|
74
|
-
if(perceived_brightness >= 130)
|
75
|
-
return "000000"
|
76
|
-
else
|
77
|
-
return fore_color
|
78
|
-
end
|
79
|
-
end
|
80
73
|
end
|
@@ -5,14 +5,9 @@ class Spud::SpudCalendarEventModel < ActiveRecord::Base
|
|
5
5
|
validates_presence_of :title, :start_at, :end_at, :spud_calendar_id
|
6
6
|
|
7
7
|
scope :ordered, ->{ order('start_at desc') }
|
8
|
+
scope :in_month_of, ->(date){ where(:start_at => date.beginning_of_month...date.end_of_month) }
|
8
9
|
scope :upcoming, ->(limit=false){ where('start_at >= ?', Date.today).order('start_at asc').limit(limit) }
|
9
|
-
|
10
|
-
first = date.beginning_of_month
|
11
|
-
range_start = Time.zone.local(first.year, first.month, first.day)
|
12
|
-
range_end = range_start.end_of_month
|
13
|
-
where(:start_at => range_start..range_end)
|
14
|
-
}
|
15
|
-
|
10
|
+
|
16
11
|
def start_date
|
17
12
|
return start_at.to_date
|
18
13
|
end
|
data/app/models/spud_calendar.rb
CHANGED
@@ -1,11 +1,27 @@
|
|
1
1
|
class SpudCalendar < ActiveRecord::Base
|
2
2
|
has_many :spud_calendar_events, :dependent => :destroy
|
3
|
-
validates_presence_of :title
|
3
|
+
validates_presence_of :title
|
4
4
|
validates :identifier, :presence => true, :uniqueness => true
|
5
5
|
|
6
6
|
before_validation :set_identifier
|
7
7
|
|
8
|
-
|
8
|
+
def self.with_identifier(identifier)
|
9
|
+
where(:identifier => identifier).first
|
10
|
+
end
|
11
|
+
|
12
|
+
def color
|
13
|
+
modulo = (self.id-1) % COLORS.length
|
14
|
+
return COLORS[modulo]
|
15
|
+
end
|
16
|
+
|
17
|
+
COLORS = [
|
18
|
+
'4D854B',
|
19
|
+
'f89406',
|
20
|
+
'b94a48',
|
21
|
+
'3a87ad',
|
22
|
+
'999999',
|
23
|
+
'333333'
|
24
|
+
]
|
9
25
|
|
10
26
|
private
|
11
27
|
|
@@ -1,13 +1,19 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
<%= link_to_next_admin_calendar_month @calendar_date %>
|
2
|
+
<%= link_to_previous_admin_calendar_month @calendar_date %>
|
3
3
|
|
4
4
|
<%= spud_calendar_for_events(@calendar_events, @calendar_date, :headers => ['S', 'M', 'T', 'W', 'T', 'F', 'S']) do |day, events| %>
|
5
5
|
<span class="calendar-day">
|
6
6
|
<%= day.day %>
|
7
7
|
</span>
|
8
|
-
<ul class="calendar-events">
|
8
|
+
<ul class="calendar-events-list">
|
9
9
|
<% events.each do |event| %>
|
10
|
-
<li
|
10
|
+
<li>
|
11
|
+
<%= link_to edit_admin_calendar_event_path(event.id) do %>
|
12
|
+
<span class="label" style="background-color: #<%= event.spud_calendar.color %>">
|
13
|
+
<%= truncate(event.title, :length => 25) %>
|
14
|
+
</span>
|
15
|
+
<% end %>
|
16
|
+
</li>
|
11
17
|
<% end %>
|
12
18
|
</ul>
|
13
19
|
<% end %>
|
@@ -1,103 +1,21 @@
|
|
1
|
-
<%= form_for @calendar_event, :url => path, :html=>{:class=>"form-horizontal"} do |f| %>
|
2
|
-
<%=
|
3
|
-
<fieldset>
|
4
|
-
<legend>Details</legend>
|
5
|
-
<div class="control-group">
|
6
|
-
<%= f.label :spud_calender_id, "Calendar",:class => "control-label" %>
|
7
|
-
<div class="controls">
|
8
|
-
<%= f.select(:spud_calendar_id, options_from_collection_for_select(SpudCalendar.all, :id, :title, @calendar_event.spud_calendar_id)) %>
|
9
|
-
</div>
|
10
|
-
</div>
|
11
|
-
<div class="control-group">
|
12
|
-
<%= f.label :title,:class => "control-label" %>
|
13
|
-
<div class="controls">
|
14
|
-
<%= f.text_field :title %>
|
15
|
-
</div>
|
16
|
-
</div>
|
17
|
-
<div class="control-group">
|
18
|
-
<%= f.label :description,:class => "control-label" %>
|
19
|
-
<div class="controls">
|
20
|
-
<%= f.text_area :description, :rows => 5 %>
|
21
|
-
</div>
|
22
|
-
</div>
|
23
|
-
</fieldset>
|
1
|
+
<%= form_for @calendar_event, :url => path, :builder => TbCore::FormBuilder, :html => {:class => "form-horizontal"} do |f| %>
|
2
|
+
<%= tb_form_error_header(f.object) %>
|
24
3
|
|
25
|
-
|
26
|
-
<legend>Event Time</legend>
|
4
|
+
<%= f.tb_select :spud_calendar_id, options_from_collection_for_select(SpudCalendar.all, :id, :title, @calendar_event.spud_calendar_id) %>
|
27
5
|
|
28
|
-
|
29
|
-
|
30
|
-
<div class="controls">
|
31
|
-
<%= f.text_field :start_at,:value => f.object.start_at.blank? ? Time.now.strftime("%Y-%m-%d %H:%M") : f.object.start_at.strftime("%Y-%m-%d %H:%M") , :class => 'spud_form_date_picker' %>
|
32
|
-
<span class="time_select">
|
33
|
-
<%= f.time_select :start_at, :ignore_date => true,:ampm => true%>
|
34
|
-
</span>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
<div class="control-group">
|
38
|
-
<%= f.label :end_at, "Ends",:class => "control-label" %>
|
6
|
+
<%= f.tb_text_field :title %>
|
7
|
+
<%= f.tb_text_area :description %>
|
39
8
|
|
40
|
-
|
41
|
-
|
42
|
-
<span class="time_select">
|
43
|
-
<%= f.time_select :end_at, :ignore_date => true,:ampm => true%>
|
44
|
-
</span>
|
45
|
-
</div>
|
46
|
-
</div>
|
47
|
-
</fieldset>
|
48
|
-
<fieldset>
|
49
|
-
<legend>Location</legend>
|
50
|
-
<div class="control-group">
|
51
|
-
<%= f.label :location,:class => "control-label" %>
|
52
|
-
<div class="controls">
|
53
|
-
<%= f.text_field :location %>
|
54
|
-
</div>
|
55
|
-
</div>
|
56
|
-
<div class="control-group">
|
57
|
-
<%= f.label :address,:class => "control-label" %>
|
58
|
-
<div class="controls">
|
59
|
-
<%= f.text_field :address %>
|
60
|
-
</div>
|
61
|
-
</div>
|
62
|
-
<div class="control-group">
|
63
|
-
<%= f.label :address_2,:class => "control-label" %>
|
64
|
-
<div class="controls">
|
65
|
-
<%= f.text_field :address_2 %>
|
66
|
-
</div>
|
67
|
-
</div>
|
68
|
-
<div class="control-group">
|
69
|
-
<%= f.label :city,:class => "control-label" %>
|
70
|
-
<div class="controls">
|
71
|
-
<%= f.text_field :city %>
|
72
|
-
</div>
|
73
|
-
</div>
|
74
|
-
<div class="control-group">
|
75
|
-
<%= f.label :state,:class => "control-label" %>
|
76
|
-
<div class="controls">
|
77
|
-
<%= f.text_field :state %>
|
78
|
-
</div>
|
79
|
-
</div>
|
80
|
-
<div class="control-group">
|
81
|
-
<%= f.label :zip,:class => "control-label" %>
|
82
|
-
<div class="controls">
|
83
|
-
<%= f.text_field :zip %>
|
84
|
-
</div>
|
85
|
-
</div>
|
86
|
-
</fieldset>
|
9
|
+
<%= f.tb_datetime_select :start_at, :ampm => true, :minute_step => 5 %>
|
10
|
+
<%= f.tb_datetime_select :end_at, :ampm => true, :minute_step => 5 %>
|
87
11
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
12
|
+
<%= f.tb_text_field :location %>
|
13
|
+
<%= f.tb_text_field :address %>
|
14
|
+
<%= f.tb_text_field :address_2 %>
|
15
|
+
<%= f.tb_text_field :city %>
|
16
|
+
<%= f.tb_text_field :state %>
|
17
|
+
<%= f.tb_text_field :zip %>
|
18
|
+
|
19
|
+
<%= f.tb_save_buttons 'Event', admin_list_spud_calendar_events_path %>
|
96
20
|
|
97
21
|
<% end %>
|
98
|
-
<br class="clear" />
|
99
|
-
<script type="text/javascript">
|
100
|
-
$(document).ready(function(){
|
101
|
-
spud.admin.date_picker.init();
|
102
|
-
});
|
103
|
-
</script>
|
@@ -1,21 +1,28 @@
|
|
1
|
+
<% @page_name = "Events - #{@calendar_date.strftime('%B %Y')}" %>
|
2
|
+
|
1
3
|
<%= content_for :data_controls do %>
|
2
|
-
<%= link_to "New
|
4
|
+
<%= link_to "New Calendar", new_admin_calendar_path, :class => "btn btn-default" %>
|
5
|
+
<%= link_to "New Event", new_admin_calendar_event_path, :class => "btn btn-primary" %>
|
3
6
|
<% end %>
|
4
7
|
|
5
8
|
<%= content_for :detail do %>
|
6
9
|
|
7
|
-
<
|
10
|
+
<div class="row">
|
11
|
+
<div id="spud_events_admin_calendar" class="col-md-8">
|
12
|
+
<%= render :partial => 'calendar' %>
|
13
|
+
</div>
|
8
14
|
|
9
|
-
|
10
|
-
|
15
|
+
<div class="col-md-4">
|
16
|
+
<ul id="spud_events_admin_calendar_legend">
|
17
|
+
<%= render :partial => 'admin/calendars/calendar_legend', :collection => @calendars, :as => :calendar %>
|
18
|
+
</ul>
|
19
|
+
</div>
|
11
20
|
</div>
|
12
21
|
|
13
|
-
<
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
</li>
|
19
|
-
</ul>
|
22
|
+
<script>
|
23
|
+
$(document).ready(function() {
|
24
|
+
spud.admin.events.init();
|
25
|
+
});
|
26
|
+
</script>
|
20
27
|
|
21
28
|
<% end %>
|