caboose-cms 0.3.12 → 0.3.13

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.
Files changed (37) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/caboose/admin_page_edit_content.js +6 -6
  3. data/app/controllers/caboose/page_block_field_values_controller.rb +27 -0
  4. data/app/controllers/caboose/page_block_fields_controller.rb +139 -0
  5. data/app/controllers/caboose/page_block_types_controller.rb +100 -0
  6. data/app/controllers/caboose/page_blocks_controller.rb +49 -36
  7. data/app/controllers/caboose/pages_controller.rb +2 -1
  8. data/app/models/caboose/core_plugin.rb +25 -5
  9. data/app/models/caboose/page.rb +4 -4
  10. data/app/models/caboose/page_block.rb +36 -15
  11. data/app/models/caboose/page_block_field.rb +9 -0
  12. data/app/models/caboose/page_block_field_value.rb +9 -0
  13. data/app/models/caboose/page_block_renderers/h1.rb +5 -0
  14. data/app/models/caboose/page_block_renderers/h2.rb +5 -0
  15. data/app/models/caboose/page_block_renderers/h3.rb +5 -0
  16. data/app/models/caboose/page_block_renderers/h4.rb +5 -0
  17. data/app/models/caboose/page_block_renderers/h5.rb +5 -0
  18. data/app/models/caboose/page_block_renderers/h6.rb +5 -0
  19. data/app/models/caboose/page_block_renderers/p.rb +5 -0
  20. data/app/models/caboose/page_block_renderers/richtext.rb +5 -0
  21. data/app/models/caboose/page_block_type.rb +12 -0
  22. data/app/models/caboose/schema.rb +48 -7
  23. data/app/views/caboose/page_block_fields/admin_edit.html.erb +70 -0
  24. data/app/views/caboose/page_block_fields/admin_new.html.erb +30 -0
  25. data/app/views/caboose/page_block_types/admin_edit.html.erb +77 -0
  26. data/app/views/caboose/page_block_types/admin_index.html.erb +24 -0
  27. data/app/views/caboose/page_block_types/admin_new.html.erb +30 -0
  28. data/app/views/caboose/page_blocks/_heading.html.erb +7 -0
  29. data/app/views/caboose/page_blocks/_richtext.html.erb +8 -0
  30. data/app/views/caboose/page_blocks/admin_edit.html.erb +32 -13
  31. data/app/views/caboose/page_blocks/admin_edit_custom.html.erb +35 -0
  32. data/app/views/caboose/pages/_content.html.erb +3 -0
  33. data/app/views/caboose/pages/admin_edit_content.html.erb +1 -7
  34. data/config/routes.rb +19 -0
  35. data/lib/caboose/engine.rb +1 -1
  36. data/lib/caboose/version.rb +1 -1
  37. metadata +25 -2
@@ -0,0 +1,24 @@
1
+ <h1>Page Block Types</h1>
2
+
3
+ <p><a href='/admin/page-block-types/new'>New Block Type</a></p>
4
+
5
+ <% if (@block_types.count > 0) %>
6
+
7
+ <table class='data'>
8
+ <tr>
9
+ <th>Name</th>
10
+ <th>Description</th>
11
+ </tr>
12
+ <% @block_types.each do |bt| %>
13
+ <tr onclick="window.location='/admin/page-block-types/<%= bt.id %>/edit';">
14
+ <td><%= bt.name %></td>
15
+ <td><%= bt.description %></td>
16
+ </tr>
17
+ <% end %>
18
+ </table>
19
+
20
+ <% else %>
21
+
22
+ <p>There are no block types.</p>
23
+
24
+ <% end %>
@@ -0,0 +1,30 @@
1
+
2
+ <h1>New Block Type</h1>
3
+ <p><input type='text' id='name' name='name' placeholder='Name' /></p>
4
+ <div id='message'></div>
5
+ <p>
6
+ <input type='button' value='< Back' onclick="window.location='/admin/page-block-types';" />
7
+ <input type='button' value='Add Field' onclick="add_block_type();" />
8
+ </p>
9
+
10
+ <% content_for :caboose_js do %>
11
+ <script type='text/javascript'>
12
+
13
+ function add_block_type()
14
+ {
15
+ $('#message').empty().append($('<p/>').addClass('loading').html('Adding block type...'));
16
+ $.ajax({
17
+ url: '/admin/page-block-types',
18
+ type: 'post',
19
+ data: {
20
+ name: $('#name').val()
21
+ },
22
+ success: function(resp) {
23
+ if (resp.error) $('#message').empty().append($('<p/>').addClass('note error').html(resp.error));
24
+ if (resp.redirect) window.location = resp.redirect;
25
+ }
26
+ });
27
+ }
28
+
29
+ </script>
30
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%
2
+ size = block.field_value('size')
3
+ text = block.field_value('text')
4
+ size = 1 if size.nil?
5
+ text = (empty_text ? empty_text : "") if text.nil? || text == ""
6
+
7
+ %><h<%= size %>><%= raw text %></h<%= size %>>
@@ -0,0 +1,8 @@
1
+ <%
2
+ text = block.field_value('text')
3
+ Caboose.log("text = #{text}")
4
+ if text.nil? || text == ""
5
+ text = (empty_text ? "<p>#{empty_text}</p>" : "")
6
+ end
7
+
8
+ %><%= raw text %>
@@ -1,9 +1,12 @@
1
+ <h2 style='margin-top: 0; padding-top: 0;'>Edit <%= @block.page_block_type.description %></h2>
2
+ <% @block.page_block_type.fields.each do |f| %>
3
+ <% fv = @block.field_value_object(f.name) %>
4
+ <div id='pageblockfieldvalue_<%= fv.id %>_value'></div>
5
+ <% end %>
6
+ <p><input type='button' value='Close' onclick="modal.close();" /></p>
1
7
 
2
- <p>Page block type: <%= @block.block_type %></p>
3
- <div id='pageblock_<%= @block.id %>_value'></div>
4
-
5
- <%= render :partial => 'caboose/pages/admin_footer' %>
6
8
  <% content_for :caboose_js do %>
9
+ <%= javascript_include_tag "caboose/model/all" %>
7
10
  <script type='text/javascript'>
8
11
 
9
12
  var modal = false;
@@ -11,22 +14,38 @@ $(window).load(function() {
11
14
  modal = new CabooseModal(800);
12
15
  });
13
16
 
14
- $(document).ready(function() {
15
- <% @page.blocks.each do |b| %>
17
+ $(document).ready(function() {
18
+ <% use_tinymce = false %>
19
+ <% @block.page_block_type.fields.each do |f| %>
20
+ <% fv = @block.field_value_object(f.name) %>
21
+ <% use_tinymce = true if f.field_type == 'richtext' %>
16
22
  m = new ModelBinder({
17
- name: 'PageBlock',
18
- id: <%= b.id %>,
19
- update_url: '/admin/page-blocks/<%= b.id %>',
23
+ name: 'PageBlockFieldValue',
24
+ id: <%= fv.id %>,
25
+ update_url: '/admin/page-block-field-values/<%= fv.id %>',
20
26
  authenticity_token: '<%= form_authenticity_token %>',
21
- attributes: [
22
- { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(b.name) %>, width: 784 },
23
- { name: 'value', nice_name: 'Content', type: 'richtext', value: <%= raw Caboose.json(b.value) %>, width: 800, height: 300 }
24
- ]
27
+ attributes: [{
28
+ name: 'value',
29
+ type: <%= raw Caboose.json(f.field_type) %>,
30
+ value: <% if f.field_type == 'checkbox' %><%= fv.value ? 'true' : 'false' %><% else %><%= raw Caboose.json(fv.value) %><% end %>,
31
+ <% if f.field_type == 'select' %>text: <%= raw Caboose.json(fv.value) %>,<% end %>
32
+ nice_name: <%= raw Caboose.json(f.nice_name ? f.nice_name : f.name) %>,
33
+ width: <% if f.width %><%= raw Caboose.json(f.width) %><% else %>780<% end %>,
34
+ <% if f.height %>height: <%= raw Caboose.json(f.height) %>,<% end %>
35
+ <% if f.fixed_placeholder %>fixed_placeholder: <%= raw Caboose.json(f.fixed_placeholder) %>,<% end %>
36
+ <% if f.options %>options_url: '/admin/page-block-fields/<%= f.id %>/options',<%
37
+ elsif f.options_url %>options_url: <%= raw Caboose.json(f.options_url) %>,<% end %>
38
+ after_update: function() { parent.controller.render_blocks(); },
39
+ after_cancel: function() { parent.controller.render_blocks(); }
40
+ }]
25
41
  });
26
42
  <% end %>
27
43
  });
28
44
 
29
45
  </script>
46
+ <% if use_tinymce %>
30
47
  <%= tinymce_assets %>
31
48
  <%= tinymce :caboose, width: '800px', height:'300px' %>
32
49
  <% end %>
50
+ <% end %>
51
+
@@ -0,0 +1,35 @@
1
+ <%
2
+ obj = block.value && block.value != "" ? JSON.parse(block.value) : nil
3
+ %>
4
+ <div id='pageblock_<%= @block.id %>_value'></div>
5
+
6
+ <% content_for :caboose_js do %>
7
+ <%= javascript_include_tag "caboose/model/all" %>
8
+ <script type='text/javascript'>
9
+
10
+ var modal = false;
11
+ $(window).load(function() {
12
+ modal = new CabooseModal(800);
13
+ });
14
+
15
+ $(document).ready(function() {
16
+ m = new ModelBinder({
17
+ name: 'PageBlock',
18
+ id: <%= @block.id %>,
19
+ update_url: '/admin/pages/<%= @page.id %>/blocks/<%= @block.id %>',
20
+ authenticity_token: '<%= form_authenticity_token %>',
21
+ attributes: [{
22
+ name: 'value',
23
+ nice_name: 'Content',
24
+ type: 'text',
25
+ value: <%= raw Caboose.json(@block.value) %>,
26
+ width: 800,
27
+ fixed_placeholder: false,
28
+ after_update: function() { parent.controller.render_blocks(); modal.close(); },
29
+ after_cancel: function() { parent.controller.render_blocks(); modal.close(); }
30
+ }]
31
+ });
32
+ });
33
+
34
+ </script>
35
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <% page.blocks.each do |b| %>
2
+ <%= render :partial => "caboose/page_blocks/#{b.block_type}", :locals => { :block => b, :empty_text => empty_text } %>
3
+ <% end %>
@@ -5,13 +5,7 @@
5
5
  <div id='new_blocks_container2'>
6
6
  <p class='note'>Drag a new block onto the page:</p>
7
7
  <ul id='new_blocks'>
8
- <li id='new_block_h1'>H1</li>
9
- <li id='new_block_h2'>H2</li>
10
- <li id='new_block_h3'>H3</li>
11
- <li id='new_block_h4'>H4</li>
12
- <li id='new_block_h5'>H5</li>
13
- <li id='new_block_h6'>H6</li>
14
- <li id='new_block_richtext'>Rich Text</li>
8
+ <% @block_types.each do |block_type| %><li id='new_block_<%= block_type.id %>'><%= block_type.description %></li><% end %>
15
9
  </ul>
16
10
  </div>
17
11
  </div>
@@ -80,6 +80,25 @@ Caboose::Engine.routes.draw do
80
80
  put "admin/pages/:page_id/blocks/:id" => "page_blocks#admin_update"
81
81
  delete "admin/pages/:page_id/blocks/:id" => "page_blocks#admin_delete"
82
82
 
83
+ put "admin/page-block-field-values/:id" => "page_block_field_values#admin_update"
84
+
85
+ get "admin/page-block-types/new" => "page_block_types#admin_new"
86
+ get "admin/page-block-types/:id/edit" => "page_block_types#admin_edit"
87
+ get "admin/page-block-types/:id" => "page_block_types#admin_show"
88
+ get "admin/page-block-types" => "page_block_types#admin_index"
89
+ post "admin/page-block-types" => "page_block_types#admin_create"
90
+ put "admin/page-block-types/:id" => "page_block_types#admin_update"
91
+ delete "admin/page-block-types/:id" => "page_block_types#admin_delete"
92
+
93
+ get "admin/page-block-fields/field-type-options" => "page_block_fields#admin_field_type_options"
94
+ get "admin/page-block-fields/:id/options" => "page_block_fields#admin_field_options"
95
+ get "admin/page-block-types/:block_type_id/fields/new" => "page_block_fields#admin_new"
96
+ get "admin/page-block-types/:block_type_id/fields/:id/edit" => "page_block_fields#admin_edit"
97
+ get "admin/page-block-types/:block_type_id/fields/:id" => "page_block_fields#admin_index"
98
+ post "admin/page-block-types/:block_type_id/fields" => "page_block_fields#admin_create"
99
+ put "admin/page-block-types/:block_type_id/fields/:id" => "page_block_fields#admin_update"
100
+ delete "admin/page-block-types/:block_type_id/fields/:id" => "page_block_fields#admin_delete"
101
+
83
102
  get "posts" => "posts#index"
84
103
  get "posts/:id" => "posts#detail"
85
104
  get "admin/posts/category-options" => "posts#admin_category_options"
@@ -35,7 +35,7 @@ module Caboose
35
35
  resp = nil
36
36
  args[0] = args[0].to_sym
37
37
  Caboose.plugins.each do |mod|
38
- #resp = mod.constantize.send(*args)
38
+ #resp = mod.constantize.send(*args)
39
39
  if (mod.constantize.respond_to?(args[0]))
40
40
  resp = mod.constantize.send(*args)
41
41
  end
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.3.12'
2
+ VERSION = '0.3.13'
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.3.12
4
+ version: 0.3.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-13 00:00:00.000000000 Z
11
+ date: 2014-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -170,6 +170,9 @@ files:
170
170
  - app/controllers/caboose/application_controller.rb
171
171
  - app/controllers/caboose/login_controller.rb
172
172
  - app/controllers/caboose/logout_controller.rb
173
+ - app/controllers/caboose/page_block_field_values_controller.rb
174
+ - app/controllers/caboose/page_block_fields_controller.rb
175
+ - app/controllers/caboose/page_block_types_controller.rb
173
176
  - app/controllers/caboose/page_blocks_controller.rb
174
177
  - app/controllers/caboose/pages_controller.rb
175
178
  - app/controllers/caboose/permissions_controller.rb
@@ -193,6 +196,17 @@ files:
193
196
  - app/models/caboose/page.rb
194
197
  - app/models/caboose/page_bar_generator.rb
195
198
  - app/models/caboose/page_block.rb
199
+ - app/models/caboose/page_block_field.rb
200
+ - app/models/caboose/page_block_field_value.rb
201
+ - app/models/caboose/page_block_renderers/h1.rb
202
+ - app/models/caboose/page_block_renderers/h2.rb
203
+ - app/models/caboose/page_block_renderers/h3.rb
204
+ - app/models/caboose/page_block_renderers/h4.rb
205
+ - app/models/caboose/page_block_renderers/h5.rb
206
+ - app/models/caboose/page_block_renderers/h6.rb
207
+ - app/models/caboose/page_block_renderers/p.rb
208
+ - app/models/caboose/page_block_renderers/richtext.rb
209
+ - app/models/caboose/page_block_type.rb
196
210
  - app/models/caboose/page_permission.rb
197
211
  - app/models/caboose/pager.rb
198
212
  - app/models/caboose/permission.rb
@@ -212,7 +226,15 @@ files:
212
226
  - app/views/caboose/extras/error.html.erb
213
227
  - app/views/caboose/extras/error404.html.erb
214
228
  - app/views/caboose/login/index.html.erb
229
+ - app/views/caboose/page_block_fields/admin_edit.html.erb
230
+ - app/views/caboose/page_block_fields/admin_new.html.erb
231
+ - app/views/caboose/page_block_types/admin_edit.html.erb
232
+ - app/views/caboose/page_block_types/admin_index.html.erb
233
+ - app/views/caboose/page_block_types/admin_new.html.erb
234
+ - app/views/caboose/page_blocks/_heading.html.erb
235
+ - app/views/caboose/page_blocks/_richtext.html.erb
215
236
  - app/views/caboose/page_blocks/admin_edit.html.erb
237
+ - app/views/caboose/page_blocks/admin_edit_custom.html.erb
216
238
  - app/views/caboose/page_blocks/admin_edit_h1.html.erb
217
239
  - app/views/caboose/page_blocks/admin_edit_h2.html.erb
218
240
  - app/views/caboose/page_blocks/admin_edit_h3.html.erb
@@ -222,6 +244,7 @@ files:
222
244
  - app/views/caboose/page_blocks/admin_edit_richtext.html.erb
223
245
  - app/views/caboose/pages/_admin_footer.html.erb
224
246
  - app/views/caboose/pages/_admin_header.html.erb
247
+ - app/views/caboose/pages/_content.html.erb
225
248
  - app/views/caboose/pages/admin_delete_form.html.erb
226
249
  - app/views/caboose/pages/admin_edit_content.html.erb
227
250
  - app/views/caboose/pages/admin_edit_css.html.erb