caboose-cms 0.9.130 → 0.9.131
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/controllers/caboose/event_custom_field_values_controller.rb +22 -0
- data/app/controllers/caboose/event_custom_fields_controller.rb +146 -0
- data/app/controllers/caboose/events_controller.rb +6 -3
- data/app/models/caboose/caboose_plugin.rb +4 -0
- data/app/models/caboose/calendar_event.rb +18 -0
- data/app/models/caboose/event_custom_field.rb +21 -0
- data/app/models/caboose/event_custom_field_value.rb +13 -0
- data/app/models/caboose/schema.rb +17 -0
- data/app/views/caboose/calendars/admin_index.html.erb +2 -0
- data/app/views/caboose/event_custom_fields/admin_edit.html.erb +42 -0
- data/app/views/caboose/event_custom_fields/admin_index.html.erb +40 -0
- data/app/views/caboose/events/admin_edit.html.erb +27 -0
- data/app/views/caboose/events/show.html.erb +0 -73
- data/lib/caboose/version.rb +1 -1
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba5be70045c4cb98e995a060c10f5196a12f2ecc
|
4
|
+
data.tar.gz: 5ac342f780b94f39d2b3ac2585d30bd0a0448067
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9873c33c4494e2c5257b44459f3f5f5373b807d64d6043f70d988188b0c61a2cd8e4d5e3c8eaf4ca8edfab904c66dc84bbdd69b9e277a200bb388b7b6c31a550
|
7
|
+
data.tar.gz: c8aa3d482c8c4ee76f3a37d93ce099d305fd807c98f15cbccff5172a35e090c14867702eed768149ce886435c5f6dcfea2f355d9e3568b0566004d97e6366175
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Caboose
|
2
|
+
class EventCustomFieldValuesController < ApplicationController
|
3
|
+
|
4
|
+
# @route PUT /admin/event-custom-field-values/:id
|
5
|
+
def admin_update
|
6
|
+
return if !user_is_allowed('eventcustomfieldvalues', 'edit')
|
7
|
+
|
8
|
+
resp = Caboose::StdClass.new
|
9
|
+
fv = EventCustomFieldValue.find(params[:id])
|
10
|
+
|
11
|
+
save = true
|
12
|
+
params.each do |k, v|
|
13
|
+
case k
|
14
|
+
when 'value' then fv.value = v
|
15
|
+
end
|
16
|
+
end
|
17
|
+
resp.success = save && fv.save
|
18
|
+
render :json => resp
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
module Caboose
|
2
|
+
class EventCustomFieldsController < ApplicationController
|
3
|
+
|
4
|
+
helper :application
|
5
|
+
|
6
|
+
# @route GET /admin/event-custom-fields
|
7
|
+
def admin_index
|
8
|
+
return if !user_is_allowed_to 'view', 'eventcustomfields'
|
9
|
+
render :layout => 'caboose/admin'
|
10
|
+
end
|
11
|
+
|
12
|
+
# @route GET /admin/event-custom-fields/json
|
13
|
+
def admin_json
|
14
|
+
return if !user_is_allowed_to 'view', 'eventcustomfields'
|
15
|
+
pager = self.fields_pager
|
16
|
+
render :json => {
|
17
|
+
:pager => pager,
|
18
|
+
:models => pager.items
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def fields_pager
|
23
|
+
return Caboose::Pager.new(params, {
|
24
|
+
'site_id' => @site.id,
|
25
|
+
'key_like' => '',
|
26
|
+
'name_like' => ''
|
27
|
+
}, {
|
28
|
+
'model' => 'Caboose::EventCustomField',
|
29
|
+
'sort' => 'key',
|
30
|
+
'desc' => 'false',
|
31
|
+
'items_per_page' => 100,
|
32
|
+
'base_url' => '/admin/event-custom-fields'
|
33
|
+
})
|
34
|
+
end
|
35
|
+
|
36
|
+
# @route GET /admin/event-custom-fields/:id/json
|
37
|
+
def admin_json_single
|
38
|
+
return if !user_is_allowed_to 'view', 'eventcustomfields'
|
39
|
+
f = EventCustomField.find(params[:id])
|
40
|
+
render :json => f
|
41
|
+
end
|
42
|
+
|
43
|
+
# @route GET /admin/event-custom-fields/:id
|
44
|
+
def admin_edit
|
45
|
+
return if !user_is_allowed('eventcustomfields', 'edit')
|
46
|
+
@event_custom_field = EventCustomField.find(params[:id])
|
47
|
+
render :layout => 'caboose/admin'
|
48
|
+
end
|
49
|
+
|
50
|
+
# @route PUT /admin/event-custom-fields/:id
|
51
|
+
def admin_update
|
52
|
+
return if !user_is_allowed('eventcustomfields', 'edit')
|
53
|
+
|
54
|
+
resp = Caboose::StdClass.new
|
55
|
+
f = EventCustomField.find(params[:id])
|
56
|
+
|
57
|
+
save = true
|
58
|
+
params.each do |name, value|
|
59
|
+
case name
|
60
|
+
when 'key' then f.key = value
|
61
|
+
when 'name' then f.name = value
|
62
|
+
when 'field_type' then f.field_type = value
|
63
|
+
when 'default_value' then f.default_value = value
|
64
|
+
when 'options' then f.options = value
|
65
|
+
when 'options_url' then f.options_url = value
|
66
|
+
end
|
67
|
+
end
|
68
|
+
resp.success = save && f.save
|
69
|
+
render :json => resp
|
70
|
+
end
|
71
|
+
|
72
|
+
# @route POST /admin/event-custom-fields
|
73
|
+
def admin_add
|
74
|
+
return if !user_is_allowed('eventcustomfields', 'add')
|
75
|
+
|
76
|
+
resp = Caboose::StdClass.new
|
77
|
+
|
78
|
+
f = EventCustomField.new
|
79
|
+
f.name = params[:key]
|
80
|
+
|
81
|
+
if f.name.nil? || f.name.length == 0
|
82
|
+
resp.error = 'A field key is required.'
|
83
|
+
else
|
84
|
+
f.site_id = @site.id
|
85
|
+
f.key = f.name.gsub(' ', '_').gsub('-', '_').downcase
|
86
|
+
f.field_type = EventCustomField::FIELD_TYPE_TEXT
|
87
|
+
f.save
|
88
|
+
resp.redirect = "/admin/event-custom-fields/#{f.id}"
|
89
|
+
end
|
90
|
+
|
91
|
+
render :json => resp
|
92
|
+
end
|
93
|
+
|
94
|
+
# @route DELETE /admin/event-custom-fields/:id
|
95
|
+
def admin_delete
|
96
|
+
return if !user_is_allowed('eventcustomfields', 'edit')
|
97
|
+
if params[:id] == 'bulk'
|
98
|
+
params[:model_ids].each do |fid|
|
99
|
+
EventCustomFieldValue.where(:event_custom_field_id => fid).destroy_all
|
100
|
+
EventCustomField.where(:id => fid).destroy_all
|
101
|
+
end
|
102
|
+
else
|
103
|
+
fid = params[:id]
|
104
|
+
EventCustomFieldValue.where(:event_custom_field_id => fid).destroy_all
|
105
|
+
EventCustomField.where(:id => fid).destroy_all
|
106
|
+
end
|
107
|
+
|
108
|
+
render :json => { 'redirect' => '/admin/event-custom-fields' }
|
109
|
+
end
|
110
|
+
|
111
|
+
# @route GET /admin/event-custom-fields/:pcfid/options
|
112
|
+
def admin_field_options
|
113
|
+
options = []
|
114
|
+
pcf = EventCustomField.where(:site_id => @site.id, :id => params[:pcfid]).first
|
115
|
+
if pcf && !pcf.options.blank?
|
116
|
+
pcf.options.split(/\n/).each do |f|
|
117
|
+
opt = {'text' => f, 'value' => f}
|
118
|
+
options << opt
|
119
|
+
end
|
120
|
+
end
|
121
|
+
render :json => options
|
122
|
+
end
|
123
|
+
|
124
|
+
# @route_priority 1
|
125
|
+
# @route GET /admin/event-custom-fields/:field-options
|
126
|
+
def admin_options
|
127
|
+
return if !user_is_allowed_to 'view', 'eventcustomfields'
|
128
|
+
options = []
|
129
|
+
case params[:field]
|
130
|
+
when nil
|
131
|
+
arr = EventCustomField.where(:site_id => @site.id).reorder(:key).all
|
132
|
+
options = arr.collect{ |a| { 'value' => a.id, 'text' => a.name }}
|
133
|
+
when 'field-type'
|
134
|
+
options = [
|
135
|
+
{ 'value' => EventCustomField::FIELD_TYPE_TEXT , 'text' => 'Text' },
|
136
|
+
{ 'value' => EventCustomField::FIELD_TYPE_SELECT , 'text' => 'Select' },
|
137
|
+
{ 'value' => EventCustomField::FIELD_TYPE_CHECKBOX , 'text' => 'Checkbox' },
|
138
|
+
{ 'value' => EventCustomField::FIELD_TYPE_DATE , 'text' => 'Date' },
|
139
|
+
{ 'value' => EventCustomField::FIELD_TYPE_DATETIME , 'text' => 'Datetime' }
|
140
|
+
]
|
141
|
+
end
|
142
|
+
render :json => options
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
146
|
+
end
|
@@ -8,6 +8,7 @@ module Caboose
|
|
8
8
|
def admin_edit
|
9
9
|
return unless user_is_allowed('calendars', 'edit')
|
10
10
|
@event = CalendarEvent.find(params[:id])
|
11
|
+
@event.verify_custom_field_values_exist
|
11
12
|
if @event.calendar_event_group_id.nil?
|
12
13
|
g = CalendarEventGroup.create
|
13
14
|
@event.calendar_event_group_id = g.id
|
@@ -18,10 +19,12 @@ module Caboose
|
|
18
19
|
|
19
20
|
# @route GET /calendar-events/:id
|
20
21
|
def show
|
22
|
+
return if under_construction_or_forwarding_domain?
|
21
23
|
@event = CalendarEvent.where(:id => params[:id], :published => true).first
|
22
|
-
render :file => "caboose/extras/error404" and return if @event.nil?
|
23
|
-
@
|
24
|
-
|
24
|
+
render :file => "caboose/extras/error404" and return if @event.nil?
|
25
|
+
@event = Caboose.plugin_hook('event_content', @event)
|
26
|
+
@page.title = @event.name
|
27
|
+
@editmode = !params['edit'].nil? && user.is_allowed('calendars', 'edit') ? true : false
|
25
28
|
end
|
26
29
|
|
27
30
|
# @route_priority 1
|
@@ -2,6 +2,7 @@ module Caboose
|
|
2
2
|
class CalendarEvent < ActiveRecord::Base
|
3
3
|
self.table_name = "calendar_events"
|
4
4
|
|
5
|
+
has_many :event_custom_field_values
|
5
6
|
belongs_to :calendar
|
6
7
|
belongs_to :calendar_event_group
|
7
8
|
attr_accessible :id ,
|
@@ -58,5 +59,22 @@ module Caboose
|
|
58
59
|
return e
|
59
60
|
end
|
60
61
|
|
62
|
+
def custom_field_value(key)
|
63
|
+
fv = Caboose::EventCustomFieldValue.where(:calendar_event_id => self.id, :key => key).first
|
64
|
+
if fv.nil?
|
65
|
+
f = Caboose::EventCustomField.where(:site_id => self.calendar.site_id, :key => key).first
|
66
|
+
return nil if f.nil?
|
67
|
+
fv = Caboose::EventCustomFieldValue.create(:calendar_event_id => self.id, :event_custom_field_id => f.id, :key => key, :value => f.default_value, :sort_order => f.sort_order)
|
68
|
+
end
|
69
|
+
return fv.value
|
70
|
+
end
|
71
|
+
|
72
|
+
def verify_custom_field_values_exist
|
73
|
+
Caboose::EventCustomField.where(:site_id => self.calendar.site_id).all.each do |f|
|
74
|
+
fv = Caboose::EventCustomFieldValue.where(:calendar_event_id => self.id, :event_custom_field_id => f.id).first
|
75
|
+
Caboose::EventCustomFieldValue.create(:calendar_event_id => self.id, :event_custom_field_id => f.id, :key => f.key, :value => f.default_value, :sort_order => f.sort_order) if fv.nil?
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
61
79
|
end
|
62
80
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Caboose::EventCustomField < ActiveRecord::Base
|
2
|
+
self.table_name = "event_custom_fields"
|
3
|
+
|
4
|
+
belongs_to :site
|
5
|
+
attr_accessible :id ,
|
6
|
+
:site_id ,
|
7
|
+
:key ,
|
8
|
+
:name ,
|
9
|
+
:field_type ,
|
10
|
+
:default_value ,
|
11
|
+
:options ,
|
12
|
+
:options_url ,
|
13
|
+
:sort_order
|
14
|
+
|
15
|
+
FIELD_TYPE_TEXT = 'text'
|
16
|
+
FIELD_TYPE_SELECT = 'select'
|
17
|
+
FIELD_TYPE_CHECKBOX = 'checkbox'
|
18
|
+
FIELD_TYPE_DATE = 'date'
|
19
|
+
FIELD_TYPE_DATETIME = 'datetime'
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Caboose::EventCustomFieldValue < ActiveRecord::Base
|
2
|
+
self.table_name = "event_custom_field_values"
|
3
|
+
|
4
|
+
belongs_to :calendar_event
|
5
|
+
belongs_to :event_custom_field
|
6
|
+
attr_accessible :id ,
|
7
|
+
:calendar_event_id ,
|
8
|
+
:event_custom_field_id ,
|
9
|
+
:key ,
|
10
|
+
:value ,
|
11
|
+
:sort_order
|
12
|
+
|
13
|
+
end
|
@@ -606,6 +606,23 @@ class Caboose::Schema < Caboose::Utilities::Schema
|
|
606
606
|
[ :value , :text ],
|
607
607
|
[ :sort_order , :integer , { :default => 0 }]
|
608
608
|
],
|
609
|
+
Caboose::EventCustomField => [
|
610
|
+
[ :site_id , :integer ],
|
611
|
+
[ :key , :string ],
|
612
|
+
[ :name , :string ],
|
613
|
+
[ :field_type , :string ],
|
614
|
+
[ :options_url , :string ],
|
615
|
+
[ :default_value , :text ],
|
616
|
+
[ :options , :text ],
|
617
|
+
[ :sort_order , :integer , { :default => 0 }]
|
618
|
+
],
|
619
|
+
Caboose::EventCustomFieldValue => [
|
620
|
+
[ :calendar_event_id , :integer ],
|
621
|
+
[ :event_custom_field_id , :integer ],
|
622
|
+
[ :key , :string ],
|
623
|
+
[ :value , :text ],
|
624
|
+
[ :sort_order , :integer , { :default => 0 }]
|
625
|
+
],
|
609
626
|
Caboose::Product => [
|
610
627
|
[ :site_id , :integer ],
|
611
628
|
[ :alternate_id , :string ],
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<%
|
2
|
+
f = @event_custom_field
|
3
|
+
%>
|
4
|
+
|
5
|
+
<h1>Edit Event Custom Field</h1>
|
6
|
+
|
7
|
+
<p><div id='eventcustomfield_<%= f.id %>_key' ></div></p>
|
8
|
+
<p><div id='eventcustomfield_<%= f.id %>_name' ></div></p>
|
9
|
+
<p><div id='eventcustomfield_<%= f.id %>_field_type' ></div></p>
|
10
|
+
<p><div id='eventcustomfield_<%= f.id %>_default_value' ></div></p>
|
11
|
+
<p><div id='eventcustomfield_<%= f.id %>_options_url' ></div></p>
|
12
|
+
<p><div id='eventcustomfield_<%= f.id %>_options' ></div></p>
|
13
|
+
|
14
|
+
<div id='message'></div>
|
15
|
+
|
16
|
+
<p>
|
17
|
+
<input type='button' value='< Back' onclick="window.location='/admin/event-custom-fields';" />
|
18
|
+
</p>
|
19
|
+
|
20
|
+
<% content_for :caboose_js do %>
|
21
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
22
|
+
<script type="text/javascript">
|
23
|
+
|
24
|
+
$(document).ready(function() {
|
25
|
+
m = new ModelBinder({
|
26
|
+
name: 'EventCustomField',
|
27
|
+
id: <%= f.id %>,
|
28
|
+
update_url: '/admin/event-custom-fields/<%= f.id %>',
|
29
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
30
|
+
attributes: [
|
31
|
+
{ name: 'key' , nice_name: 'Key' , type: 'text' , value: <%= raw Caboose.json(f.key ) %>, width: 800 },
|
32
|
+
{ name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(f.name ) %>, width: 800 },
|
33
|
+
{ name: 'field_type' , nice_name: 'Type' , type: 'select' , value: <%= raw Caboose.json(f.field_type ) %>, width: 800 , options_url: '/admin/event-custom-fields/field-type-options' },
|
34
|
+
{ name: 'default_value' , nice_name: 'Default Value' , type: 'text' , value: <%= raw Caboose.json(f.default_value ) %>, width: 800 },
|
35
|
+
{ name: 'options_url' , nice_name: 'Options URL' , type: 'text' , value: <%= raw Caboose.json(f.options_url ) %>, width: 800 },
|
36
|
+
{ name: 'options' , nice_name: 'Options' , type: 'textarea' , value: <%= raw Caboose.json(f.options ) %>, width: 800 , height: 200 }
|
37
|
+
]
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
</script>
|
42
|
+
<% end %>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
<h1>Event Custom Fields</h1>
|
3
|
+
|
4
|
+
<div id='eventcustomfields'></div>
|
5
|
+
|
6
|
+
<% content_for :caboose_js do %>
|
7
|
+
<%= javascript_include_tag 'caboose/model/all' %>
|
8
|
+
<script type='text/javascript'>
|
9
|
+
|
10
|
+
$(document).ready(function() {
|
11
|
+
var that = this;
|
12
|
+
var table = new IndexTable({
|
13
|
+
form_authenticity_token: '<%= form_authenticity_token %>',
|
14
|
+
container: 'eventcustomfields',
|
15
|
+
base_url: '/admin/event-custom-fields',
|
16
|
+
allow_bulk_edit: true,
|
17
|
+
allow_bulk_delete: true,
|
18
|
+
allow_duplicate: false,
|
19
|
+
allow_advanced_edit: true,
|
20
|
+
allow_bulk_import: false,
|
21
|
+
fields: [
|
22
|
+
{ show: true, name: 'key' , nice_name: 'Key' , sort: 'key' , type: 'text' , value: function(f) { return f.key }, width: 150, align: 'left', bulk_edit: true },
|
23
|
+
{ show: true, name: 'name' , nice_name: 'Name' , sort: 'name' , type: 'text' , value: function(f) { return f.name }, width: 150, align: 'left', bulk_edit: true },
|
24
|
+
{ show: true, name: 'field_type' , nice_name: 'Type' , sort: 'field_type' , type: 'select' , value: function(f) { return f.field_type }, width: 150, align: 'left', bulk_edit: true , options_url: '/admin/event-custom-fields/field-type-options' },
|
25
|
+
{ show: true, name: 'default_value' , nice_name: 'Default Value' , sort: 'default_value' , type: 'text' , value: function(f) { return f.default_value }, width: 150, align: 'left', bulk_edit: true },
|
26
|
+
{ show: true, name: 'options' , nice_name: 'Options' , sort: 'options' , type: 'text' , value: function(f) { return f.options }, width: 150, align: 'left', bulk_edit: true }
|
27
|
+
],
|
28
|
+
new_model_text: 'New Custom Field',
|
29
|
+
new_model_fields: [
|
30
|
+
{ name: 'key', nice_name: 'Key', type: 'text', width: 400 }
|
31
|
+
],
|
32
|
+
search_fields: [
|
33
|
+
{ name: 'key', nice_name: 'Key', type: 'text', width: 150, align: 'left' }
|
34
|
+
],
|
35
|
+
no_models_text: "There are no custom fields right now."
|
36
|
+
});
|
37
|
+
});
|
38
|
+
|
39
|
+
</script>
|
40
|
+
<% end %>
|
@@ -13,6 +13,11 @@ g = @event.calendar_event_group
|
|
13
13
|
<p><div id='calendarevent_<%= e.id %>_published' ></div>
|
14
14
|
<span style="display:block;font-size:13px;margin:3px 0 0 3px;">Only published events will display on the website.</span>
|
15
15
|
</p>
|
16
|
+
<% @event.event_custom_field_values.order(:id).each do |fv| %>
|
17
|
+
<% f = fv.event_custom_field %>
|
18
|
+
<% next if f.nil? %>
|
19
|
+
<p><div id='eventcustomfieldvalue_<%= fv.id %>_value'></div></p>
|
20
|
+
<% end %>
|
16
21
|
<p><div id='calendarevent_<%= e.id %>_image' ></div></p>
|
17
22
|
<p><div id='calendarevent_<%= @event.id %>_description' ></div></p>
|
18
23
|
<div id='datetime_container' class='<%= @event.all_day ? 'all_day' : 'non_all_day' %>'>
|
@@ -191,6 +196,28 @@ function after_period_update()
|
|
191
196
|
// modal.autosize();
|
192
197
|
}
|
193
198
|
|
199
|
+
<% @event.event_custom_field_values.each do |fv| %>
|
200
|
+
<% f = fv.event_custom_field %>
|
201
|
+
<% next if f.nil? %>
|
202
|
+
new ModelBinder({
|
203
|
+
name: 'EventCustomFieldValue',
|
204
|
+
id: <%= fv.id %>,
|
205
|
+
update_url: '/admin/event-custom-field-values/<%= fv.id %>',
|
206
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
207
|
+
attributes: [
|
208
|
+
{
|
209
|
+
name: 'value',
|
210
|
+
nice_name: <%= raw Caboose.json(f.name) %>,
|
211
|
+
type: <%= raw Caboose.json(f.field_type) %>,
|
212
|
+
value: <%= raw Caboose.json(fv.value) %>,
|
213
|
+
width: 600
|
214
|
+
<% if f.field_type == 'select' && !f.options_url.blank? %>, options_url: '<%= f.options_url %>'<% end %>
|
215
|
+
<% if f.field_type == 'select' && f.options_url.blank? %>, options_url: '/admin/event-custom-fields/<%= f.id %>/options'<% end %>
|
216
|
+
}
|
217
|
+
]
|
218
|
+
});
|
219
|
+
<% end %>
|
220
|
+
|
194
221
|
</script>
|
195
222
|
|
196
223
|
<% end %>
|
@@ -1,73 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
bt = Caboose::BlockType.where(:description => 'Caboose Calendar').first
|
3
|
-
b1 = Caboose::Block.where(:block_type_id => bt.id).where(:page_id => Caboose::Page.where(:site_id => @event.calendar.site_id).pluq(:id)).first if bt && @event.calendar
|
4
|
-
b2 = b1.child('calendars_to_show') if b1
|
5
|
-
bl = Caboose::Block.where(:id => b2.id).where("value ILIKE ? OR value = ?","%#{@event.calendar_id}%","all").first if b2
|
6
|
-
pg = bl.parent.page if bl && bl.parent
|
7
|
-
%>
|
8
|
-
|
9
|
-
<div class="post-details-wrapper event">
|
10
|
-
<div class="constrain">
|
11
|
-
<div class="main-post-content event">
|
12
|
-
<% if @event.image && !@event.image.url.blank? && !@event.image.url.include?('placehold') %>
|
13
|
-
<img src="<%= @event.image.url(:large) %>" alt="<%= @event.name %>" width="300" style="display:block;margin:0 0 20px 0;" />
|
14
|
-
<% end %>
|
15
|
-
<div class="post-text">
|
16
|
-
<h2 class="post-title"><%= @event.name %></h2>
|
17
|
-
<% if !@event.location.blank? %><h4 class="location"><%= @event.location %></h4><% end %>
|
18
|
-
<% if !@event.begin_date.blank? && !@event.end_date.blank? %>
|
19
|
-
<% bd = @event.begin_date #.in_time_zone("Central Time (US & Canada)") %>
|
20
|
-
<% ed = @event.end_date #.in_time_zone("Central Time (US & Canada)") %>
|
21
|
-
<% if @event.all_day %>
|
22
|
-
<% if bd.strftime("%B") == ed.strftime("%B") && bd.strftime("%Y") == ed.strftime("%Y") && bd.strftime("%d") == ed.strftime("%d") %>
|
23
|
-
<p class="begin-date"><%= bd.strftime("%B %-d, %Y") %></p>
|
24
|
-
<% else %>
|
25
|
-
<p class="begin-date">Begins: <%= bd.strftime("%B %-d, %Y") %></p>
|
26
|
-
<p class="end-date">Ends: <%= ed.strftime("%B %-d, %Y") %></p>
|
27
|
-
<% end %>
|
28
|
-
<% else %>
|
29
|
-
<p class="begin-date">Begins: <%= bd.strftime("%B %-d, %Y at %l:%M%P") %></p>
|
30
|
-
<p class="end-date">Ends: <%= ed.strftime("%B %-d, %Y at %l:%M%P") %></p>
|
31
|
-
<% end %>
|
32
|
-
<% end %>
|
33
|
-
<div class='share-icons clearfix' style="margin-top:20px;">
|
34
|
-
<div class="share-buttons">
|
35
|
-
<% url = "http://" + @site.primary_domain.domain + '/calendar-events/' + @event.id.to_s %>
|
36
|
-
<a href="https://www.facebook.com/sharer/sharer.php?u=<%= url %>" target="_blank" title="Share on Facebook" class="holder" id="facebook" onclick="window.open(this.href, 'mywin',
|
37
|
-
'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;"><span class="icon-facebook white"></span></a>
|
38
|
-
<a href="https://twitter.com/home?status=<%= @event.name + ' @ ' + url %>" title="Share on Twitter" target="_blank" class="holder" id="twitter" onclick="window.open(this.href, 'mywin',
|
39
|
-
'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;"><span class="icon-twitter white"></span></a>
|
40
|
-
<a href="https://plus.google.com/share?url=<%= url %>" title="Share on Google +" target="_blank" class="holder" id="google-plus" onclick="window.open(this.href, 'mywin',
|
41
|
-
'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;"><span class="icon-google-plus white"></span></a>
|
42
|
-
<a href="mailto:?subject=<%= @event.name %>&body=<%= url %>" title="Share by Email" class="holder" id="email"><span class="icon-mail white"></span></a>
|
43
|
-
</div>
|
44
|
-
</div>
|
45
|
-
<div class="post-body richtext" style="margin-bottom:30px;">
|
46
|
-
<div class="content_body">
|
47
|
-
<%== @event.description %>
|
48
|
-
</div>
|
49
|
-
</div>
|
50
|
-
<% if !@event.url.blank? %>
|
51
|
-
<a <% if @event.url.include?('http') %>target="_blank"<% end %> href="<%= @event.url %>" style="margin-right:15px;" class="btn"><%= @event.url_label.blank? ? "More Info" : @event.url_label %></a>
|
52
|
-
<% end %>
|
53
|
-
<% if pg %>
|
54
|
-
<a href="/<%= pg.uri %>" class="btn">Back to Calendar</a>
|
55
|
-
<% end %>
|
56
|
-
</div>
|
57
|
-
</div>
|
58
|
-
</div>
|
59
|
-
</div>
|
60
|
-
|
61
|
-
<% content_for :caboose_css do %>
|
62
|
-
<style>
|
63
|
-
.begin-date, .end-date {
|
64
|
-
font-weight: bold;
|
65
|
-
margin-bottom: 5px;
|
66
|
-
}
|
67
|
-
.post-details-wrapper.event {
|
68
|
-
max-width: 1000px;
|
69
|
-
margin: 0 auto;
|
70
|
-
padding: 30px 2% 50px 2%;
|
71
|
-
}
|
72
|
-
</style>
|
73
|
-
<% end %>
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.131
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|
@@ -694,6 +694,8 @@ files:
|
|
694
694
|
- app/controllers/caboose/checkout_controller.rb
|
695
695
|
- app/controllers/caboose/checkout_controller_bak.rb
|
696
696
|
- app/controllers/caboose/domains_controller.rb
|
697
|
+
- app/controllers/caboose/event_custom_field_values_controller.rb
|
698
|
+
- app/controllers/caboose/event_custom_fields_controller.rb
|
697
699
|
- app/controllers/caboose/event_groups_controller.rb
|
698
700
|
- app/controllers/caboose/events_controller.rb
|
699
701
|
- app/controllers/caboose/fonts_controller.rb
|
@@ -793,6 +795,8 @@ files:
|
|
793
795
|
- app/models/caboose/discount.rb
|
794
796
|
- app/models/caboose/domain.rb
|
795
797
|
- app/models/caboose/domain_constraint.rb
|
798
|
+
- app/models/caboose/event_custom_field.rb
|
799
|
+
- app/models/caboose/event_custom_field_value.rb
|
796
800
|
- app/models/caboose/font.rb
|
797
801
|
- app/models/caboose/font_family.rb
|
798
802
|
- app/models/caboose/font_variant.rb
|
@@ -996,6 +1000,8 @@ files:
|
|
996
1000
|
- app/views/caboose/checkout/relay_postMessage.html.erb
|
997
1001
|
- app/views/caboose/checkout/shipping.html.erb
|
998
1002
|
- app/views/caboose/checkout/thanks.html.erb
|
1003
|
+
- app/views/caboose/event_custom_fields/admin_edit.html.erb
|
1004
|
+
- app/views/caboose/event_custom_fields/admin_index.html.erb
|
999
1005
|
- app/views/caboose/events/admin_edit.html.erb
|
1000
1006
|
- app/views/caboose/events/admin_index.html.erb
|
1001
1007
|
- app/views/caboose/events/admin_new.html.erb
|
@@ -1244,7 +1250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1244
1250
|
version: '0'
|
1245
1251
|
requirements: []
|
1246
1252
|
rubyforge_project:
|
1247
|
-
rubygems_version: 2.
|
1253
|
+
rubygems_version: 2.2.0
|
1248
1254
|
signing_key:
|
1249
1255
|
specification_version: 4
|
1250
1256
|
summary: CMS built on rails.
|