caboose-cms 0.9.180 → 0.9.181

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fc468f8ca4f53d146f10e5aa9e1aaf56c9d72d65
4
- data.tar.gz: 8419e3152447cb77af29cd78b151207d6e036ad1
3
+ metadata.gz: ef969e5eae4c2719750d5823845b9d9253070924
4
+ data.tar.gz: 769aa0063fc099a95ff534f78e884755fa81b730
5
5
  SHA512:
6
- metadata.gz: 5388ac08cc7bffd8e2efafff26263300483c88d3f7333cd678d3a8e148e79b4b0bb2bf12efc20bdd9e7bbb652255b45a584b1f9f8b2b2150d343f966612e4002
7
- data.tar.gz: f637e4a5b0672b70bd289d7468f3ff7602f3064f0523a54048858b8f8492d884a91e92451a1eba3d1164251d31a6b12d51b2ddcfbd7f2a43245dc706cdba2d1b
6
+ metadata.gz: 5f9064f3e3fae1d27406ccb8abbcc5373db02a78dd4d86f59db4767737e0c3bacfa957b2c929c477c65f9777695d455e61498c5d72fc7dc6feeb87b0cc9cc766
7
+ data.tar.gz: 7450e9e4e97e7c87e05b82dde4296a62b0cde924b9fb5979e5ef865ab00112042bbefde0ad85960da1b648fae779dfa0eb07e86a2c87eba8040ecc698abbf00e
@@ -7,6 +7,13 @@ module Caboose
7
7
  return unless user_is_allowed('pages', 'edit')
8
8
  render :json => BlockTypeCategory.tree
9
9
  end
10
+
11
+ # @route GET /admin/block-type-categories/:id/options
12
+ def admin_options
13
+ btc = BlockTypeCategory.find(params[:id])
14
+ options = BlockType.joins(:block_type_site_memberships).where("block_type_site_memberships.site_id = ?",@site.id).where("block_type_site_memberships.block_type_id = block_types.id").where("block_types.block_type_category_id = ?",btc.id).reorder('block_types.description').all.collect { |s| { 'value' => s.id, 'text' => s.description }}
15
+ render :json => options
16
+ end
10
17
 
11
18
  end
12
19
  end
@@ -188,6 +188,7 @@ module Caboose
188
188
  when 'options_url' then bt.options_url = v
189
189
  when 'default_constrain' then bt.default_constrain = v
190
190
  when 'default_full_width' then bt.default_full_width = v
191
+ when 'default_included' then bt.default_included = v
191
192
  when 'site_id' then resp.btsm_id = bt.toggle_site(v[0], v[1])
192
193
  end
193
194
  end
@@ -307,7 +308,8 @@ module Caboose
307
308
  return if !user_is_allowed_to('edit', 'sites')
308
309
  resp = StdClass.new
309
310
  @btsm = BlockTypeSiteMembership.find(params[:id])
310
- @btsm.custom_html = params['code']
311
+ code = params['code'].blank? ? '' : params['code'].gsub('<%==','<%= raw')
312
+ @btsm.custom_html = code
311
313
  @btsm.save
312
314
  resp.success = true
313
315
  resp.message = "Code has been saved!"
@@ -212,8 +212,17 @@ class Caboose::Block < ActiveRecord::Base
212
212
 
213
213
  view = options2[:view]
214
214
  view = ActionView::Base.new(ActionController::Base.view_paths) if view.nil?
215
+
216
+ btsm_rf = Caboose::BlockTypeSiteMembership.where(:site_id => options2[:site].id, :block_type_id => block.block_type.id).where('custom_html IS NOT NULL and custom_html != ?', '').first
217
+ bt_rf = btsm_rf.nil? ? (block.block_type.use_render_function && block.block_type.render_function ? block.block_type.render_function : nil) : btsm_rf
218
+ rf = btsm_rf.nil? ? bt_rf : btsm_rf.custom_html
215
219
 
216
- if (block.block_type.use_render_function && block.block_type.render_function) || Caboose::BlockTypeSiteMembership.where(:site_id => options2[:site].id, :block_type_id => block.block_type.id).where('custom_html IS NOT NULL and custom_html != ?', '').exists?
220
+ if !rf.blank?
221
+ options2[:caboose_js] = rf.match(/<% content_for :js do %>(.*?)<% end %>/m)
222
+ options2[:caboose_css] = rf.match(/<% content_for :css do %>(.*?)<% end %>/m)
223
+ rf = rf.gsub(/<% content_for :js do %>(.*?)<% end %>/m, '')
224
+ rf = rf.gsub(/<% content_for :css do %>(.*?)<% end %>/m, '')
225
+ options2[:render_function] = rf
217
226
  begin
218
227
  str = view.render(:partial => "caboose/blocks/render_function", :locals => options2)
219
228
  rescue Exception => ex
@@ -29,6 +29,7 @@ class Caboose::BlockType < ActiveRecord::Base
29
29
  :options_url,
30
30
  :icon,
31
31
  :default_constrain,
32
+ :default_included,
32
33
  :custom_sass,
33
34
  :latest_error,
34
35
  :share, # Whether or not to share the block type in the existing block store.
@@ -130,7 +130,8 @@ class Caboose::Page < ActiveRecord::Base
130
130
  parts = uri.split('/')
131
131
 
132
132
  # See where to start looking
133
- page_ids = self.where(:site_id => site_id, :alias => parts[0]).limit(1).pluck(:id)
133
+ pagealias = parts[0].blank? ? '' : parts[0].downcase
134
+ page_ids = self.where(:site_id => site_id, :alias => pagealias).limit(1).pluck(:id)
134
135
  page_id = !page_ids.nil? && page_ids.count > 0 ? page_ids[0] : false
135
136
 
136
137
  # Search for the page
@@ -146,14 +147,14 @@ class Caboose::Page < ActiveRecord::Base
146
147
  page = self.find(page_id)
147
148
 
148
149
  if (!get_closest_parent) # // Look for an exact match
149
- return false if page.uri != uri
150
+ return false if (page.uri.blank? ? '' : page.uri.downcase) != (uri.blank? ? '' : uri.downcase)
150
151
  end
151
152
  return page
152
153
  end
153
154
 
154
155
  def self.page_with_uri_helper(parts, level, parent_id)
155
156
  return parent_id if level >= parts.count
156
- slug = parts[level]
157
+ slug = parts[level].downcase
157
158
  page_ids = self.where(:parent_id => parent_id, :slug => slug).limit(1).pluck(:id)
158
159
  return parent_id if page_ids.nil? || page_ids.count == 0
159
160
  return self.page_with_uri_helper(parts, level+1, page_ids[0])
@@ -201,6 +201,7 @@ class Caboose::Schema < Caboose::Utilities::Schema
201
201
  [ :options_url , :string ],
202
202
  [ :latest_error , :text ],
203
203
  [ :default_constrain , :boolean , { :default => false }],
204
+ [ :default_included , :boolean , { :default => false }],
204
205
  [ :default_full_width , :boolean , { :default => false }],
205
206
  [ :share , :boolean , { :default => true }],
206
207
  [ :downloaded , :boolean , { :default => false }]
@@ -37,6 +37,7 @@ bt = @block_type
37
37
  <p><div id='blocktype_<%= bt.id %>_default_child_block_type_id' ></div></p>
38
38
  <p><div id='blocktype_<%= bt.id %>_default_constrain' ></div></p>
39
39
  <p><div id='blocktype_<%= bt.id %>_default_full_width' ></div></p>
40
+ <p><div id='blocktype_<%= bt.id %>_default_included' ></div></p>
40
41
  <p>
41
42
 
42
43
  </p>
@@ -54,7 +55,6 @@ bt = @block_type
54
55
  <% content_for :caboose_css do %>
55
56
  <%= stylesheet_link_tag 'caboose/icomoon_fonts' %>
56
57
  <style type='text/css'>
57
- #blocktype_<%= bt.id %>_render_function { font-family: Courier; font-size: 80%; width: 100%; }
58
58
  #blocktype_<%= bt.id %>_options_function { font-family: Courier; font-size: 80%; width: 100%; }
59
59
  </style>
60
60
  <% end %>
@@ -106,8 +106,7 @@ $(document).ready(function() {
106
106
  { name: 'use_render_function_for_layout' , sort: 'use_render_function_for_layout' , show: true , bulk_edit: false, nice_name: 'Use Render Function for Modal' , type: 'checkbox' , value: function(bt) { return bt.use_render_function_for_layout; }, text: function(bt) { return bt.use_render_function_for_layout ? 'Yes' : 'No' }, width: 400 },
107
107
  { name: 'use_js_for_modal' , sort: 'use_js_for_modal' , show: true , bulk_edit: false, nice_name: 'Use JS for Modal' , type: 'checkbox' , value: function(bt) { return bt.use_js_for_modal; }, text: function(bt) { return bt.use_js_for_modal ? 'Yes' : 'No' }, width: 400 },
108
108
  { name: 'allow_child_blocks' , sort: 'allow_child_blocks' , show: true , bulk_edit: false, nice_name: 'Allow Child Blocks' , type: 'checkbox' , value: function(bt) { return bt.allow_child_blocks; }, text: function(bt) { return bt.allow_child_blocks ? 'Yes' : 'No' }, width: 400 },
109
- { name: 'default_child_block_type_id' , sort: 'default_child_block_type_id' , show: false , bulk_edit: false, nice_name: 'Default Child Block Type ID' , type: 'text' , value: function(bt) { return bt.default_child_block_type_id; }, width: 400 },
110
- { name: 'render_function' , sort: 'render_function' , show: false , bulk_edit: false, nice_name: 'Render Function' , type: 'textarea' , value: function(bt) { return bt.render_function; }, width: 800, height: 200 },
109
+ { name: 'default_child_block_type_id' , sort: 'default_child_block_type_id' , show: false , bulk_edit: false, nice_name: 'Default Child Block Type ID' , type: 'text' , value: function(bt) { return bt.default_child_block_type_id; }, width: 400 },
111
110
  { name: 'default' , sort: 'default' , show: false , bulk_edit: false, nice_name: 'Default value' , type: 'text' , value: function(bt) { return bt.default; }, width: 400 },
112
111
  { name: 'width' , sort: 'width' , show: false , bulk_edit: false, nice_name: 'Width' , type: 'text' , value: function(bt) { return bt.width; }, width: 400 },
113
112
  { name: 'height' , sort: 'height' , show: false , bulk_edit: false, nice_name: 'Height' , type: 'text' , value: function(bt) { return bt.height; }, width: 400 },
@@ -139,8 +138,7 @@ $(document).ready(function() {
139
138
  { name: 'use_render_function_for_layout' , nice_name: 'Use Render Function for Modal' , type: 'checkbox' , value: <%= bt.use_render_function_for_layout ? 'true' : 'false' %>, width: 400 },
140
139
  { name: 'use_js_for_modal' , nice_name: 'Use JS for Modal' , type: 'checkbox' , value: <%= bt.use_js_for_modal ? 'true' : 'false' %>, width: 400 },
141
140
  { name: 'allow_child_blocks' , nice_name: 'Allow Child Blocks' , type: 'checkbox' , value: <%= bt.allow_child_blocks ? 'true' : 'false' %>, width: 400 },
142
- { name: 'default_child_block_type_id' , nice_name: 'Default Child Block Type ID' , type: 'text' , value: <%= raw Caboose.json(bt.default_child_block_type_id) %>, width: 400 },
143
- { name: 'render_function' , nice_name: 'Render Function' , type: 'textarea' , value: <%= raw Caboose.json(bt.render_function) %>, width: 800, height: 200 },
141
+ { name: 'default_child_block_type_id' , nice_name: 'Default Child Block Type ID' , type: 'text' , value: <%= raw Caboose.json(bt.default_child_block_type_id) %>, width: 400 },
144
142
  { name: 'field_type' , nice_name: 'Field type' , type: 'select' , value: <%= raw Caboose.json(bt.field_type) %>, text: <%= raw Caboose.json(bt.field_type) %>, width: 400, options_url: '/admin/block-types/field-type-options' },
145
143
  { name: 'default' , nice_name: 'Default value' , type: 'text' , value: <%= raw Caboose.json(bt.default) %>, width: 400 },
146
144
  { name: 'width' , nice_name: 'Width' , type: 'text' , value: <%= raw Caboose.json(bt.width) %>, width: 400 },
@@ -148,7 +146,8 @@ $(document).ready(function() {
148
146
  { name: 'fixed_placeholder' , nice_name: 'Fixed placeholder' , type: 'checkbox' , value: <%= raw Caboose.json(bt.fixed_placeholder) %>, width: 400 },
149
147
  { name: 'options_url' , nice_name: 'Options URL' , type: 'text' , value: <%= raw Caboose.json(bt.options_url) %>, width: 400 },
150
148
  { name: 'options_function' , nice_name: 'Options Function' , type: 'textarea' , value: <%= raw Caboose.json(bt.options_function) %>, width: 400, height: 100 },
151
- { name: 'options' , nice_name: 'Options' , type: 'textarea' , value: <%= raw Caboose.json(bt.options) %>, width: 400, height: 100 }
149
+ { name: 'options' , nice_name: 'Options' , type: 'textarea' , value: <%= raw Caboose.json(bt.options) %>, width: 400, height: 100 },
150
+ { name: 'default_included' , sort: 'default_included' , nice_name: 'Include on New Sites' , type: 'checkbox' , value: <%= bt.default_included ? 'true' : 'false' %> , width: 400 }
152
151
  ]
153
152
  });
154
153
  });
@@ -1,6 +1,6 @@
1
1
  <h1>Error Log</h1>
2
2
 
3
- <a href="/admin/block-types/<%= @block_type.id %>/render-function" class="caboose-btn">Back</a>
3
+ <a href="#" onclick="window.history.back();return false;" class="caboose-btn">Back</a>
4
4
 
5
5
  <% if !@block_type.latest_error.blank? %>
6
6
  <div class="error" style="font-size:13px;line-height:18px;font-family:monospace;margin-top:10px;">
@@ -1,5 +1,20 @@
1
- <%
2
- btsm = Caboose::BlockTypeSiteMembership.where(:site_id => site.id, :block_type_id => block.block_type.id).where('custom_html IS NOT NULL and custom_html != ?', '').first
3
- rf = btsm ? btsm.custom_html : block.block_type.render_function
4
- %>
5
- <%= raw ERB.new(rf).result(self.instance_eval { binding }) %>
1
+ <%= raw ERB.new(render_function).result(self.instance_eval { binding }) %>
2
+
3
+ <% if caboose_js && caboose_js.length > 1 %>
4
+ <% caboose_js.to_a.each_with_index do |js, ind| %>
5
+ <% next if ind == 0 %>
6
+ <% content_for :js do %>
7
+ <% erb = ERB.new(js).result(self.instance_eval { binding }) %>
8
+ <%== erb %>
9
+ <% end %>
10
+ <% end %>
11
+ <% end %>
12
+ <% if caboose_css && caboose_css.length > 1 %>
13
+ <% caboose_css.to_a.each_with_index do |css, ind| %>
14
+ <% next if ind == 0 %>
15
+ <% content_for :css do %>
16
+ <% erb = ERB.new(css).result(self.instance_eval { binding }) %>
17
+ <%== erb %>
18
+ <% end %>
19
+ <% end %>
20
+ <% end %>
@@ -272,7 +272,8 @@ $(document).ready(function() {
272
272
  { name: 'banner_overlay_color', nice_name: "<%= 'banner_overlay_color'.titleize %>", type: 'color', value: <%== Caboose.json(@theme.banner_overlay_color) %>, width: 400 },
273
273
  { name: 'banner_overlay_opacity', nice_name: "<%= 'banner_overlay_opacity'.titleize %>", type: 'text', value: <%== Caboose.json(@theme.banner_overlay_opacity) %>, width: 400 },
274
274
  <% if style %>
275
- { name: 'default_header_style', nice_name: "<%= 'default_style'.titleize %>", type: 'select', value: <%== Caboose.json(@theme.default_header_style) %>, options_url: '/admin/block-types/<%= style.id %>/options', width: 400 },
275
+ <% cat = Caboose::BlockTypeCategory.where(:name => 'Headers').first %>
276
+ { name: 'default_header_style', nice_name: "<%= 'default_style'.titleize %>", type: 'select', value: <%== Caboose.json(@theme.default_header_style) %>, options_url: '/admin/block-type-categories/<%= cat.id %>/options', width: 400 },
276
277
  <% else %>
277
278
  { name: 'default_header_style', nice_name: "<%= 'default_style'.titleize %>", type: 'text', value: <%== Caboose.json(@theme.default_header_style) %>, width: 400 },
278
279
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.9.180'
2
+ VERSION = '0.9.181'
3
3
  end
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.180
4
+ version: 0.9.181
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-10-22 00:00:00.000000000 Z
11
+ date: 2018-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg