caboose-cms 0.9.130 → 0.9.131
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|