caboose-cms 0.8.39 → 0.8.40

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: 99ae29203df95c60378f40de21837b5aefedec12
4
- data.tar.gz: f6835c1bc2774a5c97863ec6de0d37f1103ee939
3
+ metadata.gz: 22b48d7ce6d1545a3e67e1fa703b71738911a7e3
4
+ data.tar.gz: 1817cf46b3229a1f6952fd9827655831547caa00
5
5
  SHA512:
6
- metadata.gz: 444cc4df3817be4c231b9c73874a409c6da44bd98f6ae225e489ed0cd791e3fc1ad296ce85214f2895f3195a4efac126eee74167448e09a10593b1677a8b9a42
7
- data.tar.gz: 84bc7fec0c54554fdd662b6d5ed15291505df0e1abd4fb3eef81595ed6910da4f4d9e2e3f7a77ea769204c6e3d17fa2520882ad17bde7e17eab16e571d4b0a89
6
+ metadata.gz: c020e9dc6acc89b63678f551792d44b393a4771056b126d03d9b9952bbf57b8f0c4b4b8154032a8ecc6ace54e868ac4b22d4dc663c8e76b2bffed5582c856ac9
7
+ data.tar.gz: 6198d93c11ec8cbcc22984d2c65519de2b649207616072a26cc9961291525e1c2899af98da61bed77b5b7d4d5db90c99569d4d9ed7806b5f9c7cd6a0bcad6ef9
@@ -7,8 +7,7 @@ module Caboose
7
7
  def before_action
8
8
  @page = Page.page_with_uri(request.host_with_port, '/admin')
9
9
  end
10
-
11
- # @route_priority 9
10
+
12
11
  # @route GET /admin/sites
13
12
  def admin_index
14
13
  return if !user_is_allowed('sites', 'view')
@@ -30,7 +29,35 @@ module Caboose
30
29
  @sites = @pager.items
31
30
  end
32
31
 
33
- # @route_priority 2
32
+ # @route GET /admin/sites/json
33
+ def admin_json
34
+ return if !user_is_allowed('sites', 'view')
35
+ h = {
36
+ 'name' => '',
37
+ 'description' => '',
38
+ 'name_like' => '',
39
+ 'description_like' => '',
40
+ }
41
+ pager = Caboose::Pager.new(params, h, {
42
+ 'model' => 'Caboose::Site',
43
+ 'sort' => 'name',
44
+ 'desc' => 'false',
45
+ 'base_url' => "/admin/sites",
46
+ 'items_per_page' => 1000
47
+ })
48
+ render :json => {
49
+ :pager => pager,
50
+ :models => pager.items.as_json(:include => :domains)
51
+ }
52
+ end
53
+
54
+ # @route GET /admin/sites/:id/json
55
+ def admin_json_single
56
+ return if !user_is_allowed('sites', 'view')
57
+ site = Site.find(params[:id])
58
+ render :json => site.as_json(:include => :domains)
59
+ end
60
+
34
61
  # @route GET /admin/sites/new
35
62
  def admin_new
36
63
  return if !user_is_allowed('sites', 'add')
@@ -41,22 +68,9 @@ module Caboose
41
68
 
42
69
  @site = Site.new
43
70
  end
71
+
44
72
 
45
- # @route_priority 8
46
- # @route GET /admin/sites/:id
47
- def admin_edit
48
- return if !user_is_allowed('sites', 'edit')
49
- if !@site.is_master
50
- @error = "You are not allowed to manage sites."
51
- render :file => 'caboose/extras/error' and return
52
- end
53
-
54
- @site = Site.find(params[:id])
55
- @site.init_users_and_roles
56
73
 
57
- end
58
-
59
- # @route_priority 6
60
74
  # @route GET /admin/sites/:id/block-types
61
75
  def admin_edit_block_types
62
76
  return if !user_is_allowed('sites', 'edit')
@@ -67,8 +81,7 @@ module Caboose
67
81
 
68
82
  @site = Site.find(params[:id])
69
83
  end
70
-
71
- # @route_priority 4
84
+
72
85
  # @route GET /admin/sites/:id/css
73
86
  def admin_edit_css
74
87
  return if !user_is_allowed('sites', 'edit')
@@ -78,8 +91,7 @@ module Caboose
78
91
  end
79
92
  @site = Site.find(params[:id])
80
93
  end
81
-
82
- # @route_priority 5
94
+
83
95
  # @route GET /admin/sites/:id/js
84
96
  def admin_edit_js
85
97
  return if !user_is_allowed('sites', 'edit')
@@ -89,8 +101,7 @@ module Caboose
89
101
  end
90
102
  @site = Site.find(params[:id])
91
103
  end
92
-
93
- # @route_priority 7
104
+
94
105
  # @route GET /admin/sites/:id/delete
95
106
  def admin_delete_form
96
107
  return if !user_is_allowed('sites', 'edit')
@@ -101,7 +112,19 @@ module Caboose
101
112
  @site = Site.find(params[:id])
102
113
  end
103
114
 
104
- # @route_priority 10
115
+ # @route GET /admin/sites/:id
116
+ def admin_edit
117
+ return if !user_is_allowed('sites', 'edit')
118
+ if !@site.is_master
119
+ @error = "You are not allowed to manage sites."
120
+ render :file => 'caboose/extras/error' and return
121
+ end
122
+
123
+ @site = Site.find(params[:id])
124
+ @site.init_users_and_roles
125
+
126
+ end
127
+
105
128
  # @route POST /admin/sites
106
129
  def admin_add
107
130
  return if !user_is_allowed('sites', 'add')
@@ -203,25 +226,23 @@ module Caboose
203
226
 
204
227
  # @route_priority 1
205
228
  # @route GET /admin/sites/options
229
+ # @route GET /admin/sites/:field-options
230
+ # @route GET /admin/sites/:id/:field-options
206
231
  def options
207
232
  return if !user_is_allowed('sites', 'view')
208
- render :json => { :error => "You are not allowed to manage sites." } and return if !logged_in_user.is_super_admin?
209
233
 
210
- options = Site.reorder('name').all.collect { |s| { 'value' => s.id, 'text' => s.name }}
234
+ case params[:field]
235
+ when nil
236
+ options = logged_in_user.is_super_admin? ? Site.reorder('name').all.collect { |s| { 'value' => s.id, 'text' => s.name }} : []
237
+ when 'default-layout'
238
+ cat_ids = Caboose::BlockTypeCategory.layouts.collect{ |cat| cat.id }
239
+ block_types = Caboose::BlockType.includes(:block_type_site_memberships).where("block_type_category_id in (?) and block_type_site_memberships.site_id = ?", cat_ids, params[:id]).reorder(:description).all
240
+ options = block_types.collect do |bt|
241
+ { 'value' => bt.id, 'text' => bt.description }
242
+ end
243
+ end
211
244
  render :json => options
212
245
  end
213
246
 
214
- # @route_priority 3
215
- # @route GET /admin/sites/:id/default-layout-options
216
- def admin_default_layout_options
217
- return if !user_is_allowed('sites', 'view')
218
- cat_ids = Caboose::BlockTypeCategory.layouts.collect{ |cat| cat.id }
219
- block_types = Caboose::BlockType.includes(:block_type_site_memberships).where("block_type_category_id in (?) and block_type_site_memberships.site_id = ?", cat_ids, params[:id]).reorder(:description).all
220
- options = block_types.collect do |bt|
221
- { 'value' => bt.id, 'text' => bt.description }
222
- end
223
- render :json => options
224
- end
225
-
226
247
  end
227
248
  end
@@ -19,7 +19,29 @@ class Caboose::Site < ActiveRecord::Base
19
19
  :large => '600x800>'
20
20
  }
21
21
  do_not_validate_attachment_file_type :logo
22
- attr_accessible :id, :name, :description, :under_construction_html
22
+ attr_accessible :id ,
23
+ :name ,
24
+ :description ,
25
+ :under_construction_html ,
26
+ :use_store ,
27
+ :use_fonts ,
28
+ :logo ,
29
+ :is_master ,
30
+ :allow_self_registration ,
31
+ :analytics_id ,
32
+ :use_retargeting ,
33
+ :date_js_updated ,
34
+ :date_css_updated ,
35
+ :default_layout_id ,
36
+ :login_fail_lock_count
37
+
38
+ before_save :validate_presence_of_store_config
39
+
40
+ def validate_presence_of_store_config
41
+ if self.use_store && !Caboose::StoreConfig.where(:site_id => self.id).exists?
42
+ Caboose::StoreConfig.create(:site_id => self.id)
43
+ end
44
+ end
23
45
 
24
46
  def default_layout
25
47
  return Caboose::BlockType.where(:id => self.default_layout_id).first if self.default_layout_id
@@ -39,6 +39,9 @@ $(document).ready(function() {
39
39
  { name: 'options_function' , sort: 'options_function' , show: false , bulk_edit: false, nice_name: 'Options Function' , type: 'textarea' , value: function(bt) { return bt.options_function; }, width: 400, height: 100 },
40
40
  { name: 'options' , sort: 'options' , show: false , bulk_edit: false, nice_name: 'Options' , type: 'textarea' , value: function(bt) { return bt.options; }, width: 400, height: 100 }
41
41
  ],
42
+ search_fields: [
43
+ { name: 'name_like', nice_name: 'Name', type: 'text', width: 400 }
44
+ ],
42
45
  new_model_text: 'New Block Type',
43
46
  new_model_fields: [
44
47
  { name: 'name', nice_name: 'Name', type: 'text', width: 400 }
@@ -1,31 +1,31 @@
1
1
  <h1>Sites</h1>
2
2
 
3
- <form action='/admin/sites' method='get' class='search_form'>
4
- <input type='text' name='name_like' placeholder='Name' />
5
- <input type='submit' value='Search' />
6
- </form>
3
+ <div id='sites'></div>
7
4
 
8
- <p><a href='/admin/sites/new'>New Site</a></p>
5
+ <% content_for :caboose_js do %>
6
+ <%= javascript_include_tag 'caboose/model/all' %>
7
+ <script type='text/javascript'>
9
8
 
10
- <% if @sites && @sites.count > 0 %>
11
- <table class='data' id='users_table'>
12
- <tr>
13
- <%= raw @pager.sortable_table_headings({
14
- 'name' => 'Name',
15
- 'description' => 'Description',
16
- 'name, description' => 'Domains'
17
- })
18
- %>
19
- </tr>
20
- <% @sites.each do |site| %>
21
- <tr onclick="window.location='/admin/sites/<%= site.id %>';">
22
- <td><%= site.name %></td>
23
- <td><%= site.description %></td>
24
- <td><%= raw site.domains ? site.domains.collect{ |d| d.domain }.join('<br />') : '' %></td>
25
- </tr>
26
- <% end %>
27
- </table>
28
- <p><%= raw @pager.generate %></p>
29
- <% else %>
30
- <p>There are no sites right now.</p>
9
+ $(document).ready(function() {
10
+ var that = this;
11
+ var table = new IndexTable({
12
+ form_authenticity_token: '<%= form_authenticity_token %>',
13
+ container: 'sites',
14
+ base_url: '/admin/sites',
15
+ fields: [
16
+ { name: 'name' , sort: 'name' , show: true , bulk_edit: false, nice_name: 'Name' , type: 'text' , value: function(site) { return site.name; }, width: 400 },
17
+ { name: 'description' , sort: 'description' , show: true , bulk_edit: false, nice_name: 'Description' , type: 'text' , value: function(site) { return site.description; }, width: 400 },
18
+ { name: 'domains' , sort: 'name, description' , show: true , bulk_edit: false, nice_name: 'Domains' , type: 'text' , value: function(site) { return site.domains ? site.domains.map(function(d) { return d.id }) : []; }, text: function(site) { return site.domains ? site.domains.map(function(d) { return d.domain }).join('<br />') : ''; }, width: 400, height: 200, editable: false }
19
+ ],
20
+ search_fields: [
21
+ { name: 'name_like', nice_name: 'Name', type: 'text', width: 400 }
22
+ ],
23
+ new_model_text: 'New Site',
24
+ new_model_fields: [
25
+ { name: 'name', nice_name: 'Name', type: 'text', width: 400 }
26
+ ],
27
+ });
28
+ });
29
+
30
+ </script>
31
31
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.8.39'
2
+ VERSION = '0.8.40'
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.8.39
4
+ version: 0.8.40
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-05 00:00:00.000000000 Z
11
+ date: 2016-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg