caboose-cms 0.4.124 → 0.4.125

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTQzMWJkNGEzY2NkYWI4NTFhZmRiZjFmNTdlMGFjNDAzZjY5OWZlMw==
4
+ NzY3YzUzMzFlMjA4YjNkM2VjMmU4NjY1ZmY4YmE1ZjYyZGI1NjAyNw==
5
5
  data.tar.gz: !binary |-
6
- ZmM5MDQxMjNmMWFiMTE1MGIzMGMwMzRiYTI3MmEwOTU2NTkwYzM0Yg==
6
+ YjQ2ODg1Njk5YjExMTIxYzBmNzE5NjQ3ZTFmZTM4OGJjOWQ2NGRmZA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MzVkYzE5MzY5YmZhNzdhZmZmMDAzZjFkNDE0MDc1MjgxNzFjYzRmYzJlOTRk
10
- ZWVmNjc4NDQzNTRhOTZiOTM0Zjk1NjhmYWM4MjllZjNlMDJkNDE4MGI0ZDlh
11
- NmE0YjVkMzgxNTNmMDc1YmMxMmMyMzUyYjQzOTFkMWQ3OWI1YWI=
9
+ NWUxNTkyYmM1NGQ1MjNmYjM1MWU5MmFmY2M5MWNlZDJlYjk4YzI1ZDdiZjQ5
10
+ MGYwNGZlNDRkMWNmNjY3NTZjNDY4ZTBiNjI3NmUyZTBmNzEzYmIwMWIzNzAy
11
+ OGI2ODdiMDQxODEyMmE1NmM5YmJiNmRhMjZjNzk2Mjc4YzdlMGI=
12
12
  data.tar.gz: !binary |-
13
- ZTJlOGRmOGEwMWFhZDk0OTM5ZGE5ZTQ3ODdhOTBlZjBmYzZlZGRhNTM2ZGVk
14
- ZTIwOTA2NWFhZjM4MGRlZTdmNThhZjU5MWZmY2Y0OTUyN2ZiNmZlNTc3ZjUx
15
- YmRlZTcwM2I5Zjc3NTUyZDdhNjUwOTNjMWRjODkwZTcxOTg2MTU=
13
+ MDE1ZmQ5NmRmNWMzNTA3NDRiNzZlNzMyNTM4YTQwNTk0YzNhYmFhZDgyZTA5
14
+ ODU2NjY2NjIyM2MxZWYzNzNjOWM4MDg3NTVhNzVjODAyYmEyMWY5MzAxNDEw
15
+ N2Y3MTBhN2VhOWYzOTdkOTYzYWU2YzI1ZmQyNWQwNzNiZGQwMTk=
@@ -0,0 +1,64 @@
1
+ require 'csv'
2
+
3
+ module Caboose
4
+ class DomainsController < ApplicationController
5
+ layout 'caboose/admin'
6
+
7
+ def before_action
8
+ @page = Page.page_with_uri(request.host_with_port, '/admin')
9
+ end
10
+
11
+ # POST /admin/sites/:site_id/domains
12
+ def admin_add
13
+ return if !user_is_allowed('domains', 'edit')
14
+
15
+ resp = Caboose::StdClass.new
16
+ d = Domain.where(:domain => params[:domain]).first
17
+
18
+ if d && d.site_id != params[:site_id]
19
+ resp.error = "That domain is already associated with another site."
20
+ elsif d && d.site_id == params[:site_id]
21
+ resp.refresh = true
22
+ elsif d.nil?
23
+ primary = Domain.where(:site_id => params[:site_id]).count == 0
24
+ d = Domain.create(:site_id => params[:site_id], :domain => params[:domain], :primary => primary)
25
+ resp.refresh = true
26
+ end
27
+ render :json => resp
28
+ end
29
+
30
+ # PUT /admin/sites/:site_id/domains/:id
31
+ def admin_update
32
+ return if !user_is_allowed('domains', 'edit')
33
+
34
+ resp = StdClass.new
35
+ d = Domain.find(params[:id])
36
+
37
+ save = true
38
+ params.each do |name,value|
39
+ case name
40
+ when 'site_id' then d.site_id = value
41
+ when 'domain' then d.domain = value
42
+ when 'under_construction' then d.under_construction = value
43
+ when 'primary' then
44
+ d.primary = value
45
+ Domain.where(:site_id => params[:site_id]).all.each do |d2|
46
+ d2.primary = d2.id == d.id ? true : false
47
+ d2.save
48
+ end
49
+ end
50
+ end
51
+
52
+ resp.success = save && d.save
53
+ render :json => resp
54
+ end
55
+
56
+ # DELETE /admin/sites/:site_id/domains/:id
57
+ def admin_delete
58
+ return if !user_is_allowed('sites', 'delete')
59
+ Domain.find(params[:id]).destroy
60
+ render :json => { 'redirect' => "/admin/sites/#{params[:site_id]}" }
61
+ end
62
+
63
+ end
64
+ end
@@ -13,8 +13,20 @@ module Caboose
13
13
 
14
14
  # Find the page with an exact URI match
15
15
  page = Page.page_with_uri(request.host_with_port, request.fullpath, false)
16
-
16
+
17
17
  if (!page)
18
+
19
+ # Make sure we're not under construction
20
+ d = Caboose::Domain.where(:domain => request.host_with_port).first
21
+ if d.under_construction == true
22
+ if d.site.under_construction_html && d.site.under_construction_html.strip.length > 0
23
+ render :text => d.site.under_construction_html
24
+ else
25
+ render :file => 'caboose/application/under_construction', :layout => false
26
+ end
27
+ return
28
+ end
29
+
18
30
  asset
19
31
  return
20
32
  end
@@ -64,8 +64,9 @@ module Caboose
64
64
  save = true
65
65
  params.each do |name,value|
66
66
  case name
67
- when 'name' then site.name = value
68
- when 'description' then site.description = value
67
+ when 'name' then site.name = value
68
+ when 'description' then site.description = value
69
+ when 'under_construction_html' then site.under_construction_html = value
69
70
  end
70
71
  end
71
72
 
@@ -103,47 +104,47 @@ module Caboose
103
104
  end
104
105
 
105
106
  # POST /admin/sites/:id/domains
106
- def admin_add_domain
107
- return if !user_is_allowed('sites', 'edit')
108
-
109
- resp = Caboose::StdClass.new
110
- d = Domain.where(:domain => params[:domain]).first
111
-
112
- if d && d.site_id != params[:id]
113
- resp.error = "That domain is already associated with another site."
114
- elsif d && d.site_id == params[:id]
115
- resp.refresh = true
116
- elsif d.nil?
117
- primary = Domain.where(:site_id => params[:id]).count == 0
118
- d = Domain.create(:site_id => params[:id], :domain => params[:domain], :primary => primary)
119
- resp.refresh = true
120
- end
121
- render :json => resp
122
- end
107
+ #def admin_add_domain
108
+ # return if !user_is_allowed('sites', 'edit')
109
+ #
110
+ # resp = Caboose::StdClass.new
111
+ # d = Domain.where(:domain => params[:domain]).first
112
+ #
113
+ # if d && d.site_id != params[:id]
114
+ # resp.error = "That domain is already associated with another site."
115
+ # elsif d && d.site_id == params[:id]
116
+ # resp.refresh = true
117
+ # elsif d.nil?
118
+ # primary = Domain.where(:site_id => params[:id]).count == 0
119
+ # d = Domain.create(:site_id => params[:id], :domain => params[:domain], :primary => primary)
120
+ # resp.refresh = true
121
+ # end
122
+ # render :json => resp
123
+ #end
123
124
 
124
125
  # PUT /admin/sites/:id/domains/:domain_id/set-primary
125
- def admin_set_primary_domain
126
- return if !user_is_allowed('sites', 'edit')
127
-
128
- domain_id = params[:domain_id].to_i
129
- Domain.where(:site_id => params[:id]).all.each do |d|
130
- d.primary = d.id == domain_id ? true : false
131
- d.save
132
- end
133
- render :json => true
134
- end
126
+ #def admin_set_primary_domain
127
+ # return if !user_is_allowed('sites', 'edit')
128
+ #
129
+ # domain_id = params[:domain_id].to_i
130
+ # Domain.where(:site_id => params[:id]).all.each do |d|
131
+ # d.primary = d.id == domain_id ? true : false
132
+ # d.save
133
+ # end
134
+ # render :json => true
135
+ #end
135
136
 
136
137
  # DELETE /admin/sites/:id/domains/:domain_id
137
- def admin_remove_domain
138
- return if !user_is_allowed('sites', 'edit')
139
- Domain.find(params[:domain_id]).destroy
140
- if Domain.where(:site_id => params[:id]).count == 1
141
- d = Domain.where(:site_id => params[:id]).first
142
- d.primary = true
143
- d.save
144
- end
145
- render :json => { 'refresh' => true }
146
- end
138
+ #def admin_remove_domain
139
+ # return if !user_is_allowed('sites', 'edit')
140
+ # Domain.find(params[:domain_id]).destroy
141
+ # if Domain.where(:site_id => params[:id]).count == 1
142
+ # d = Domain.where(:site_id => params[:id]).first
143
+ # d.primary = true
144
+ # d.save
145
+ # end
146
+ # render :json => { 'refresh' => true }
147
+ #end
147
148
 
148
149
  # GET /admin/sites/options
149
150
  def options
@@ -3,6 +3,6 @@ class Caboose::Domain < ActiveRecord::Base
3
3
  self.table_name = "domains"
4
4
 
5
5
  belongs_to :site, :class_name => 'Caboose::Site'
6
- attr_accessible :id, :site_id, :domain, :primary
6
+ attr_accessible :id, :site_id, :domain, :primary, :under_construction
7
7
 
8
8
  end
@@ -67,7 +67,7 @@ class Caboose::Page < ActiveRecord::Base
67
67
  def self.page_with_uri(host_with_port, uri, get_closest_parent = true)
68
68
 
69
69
  d = Caboose::Domain.where(:domain => host_with_port).first
70
- return false if d.nil?
70
+ return false if d.nil? || d.under_construction == true
71
71
  site_id = d.site_id
72
72
 
73
73
  uri = uri.to_s.gsub(/^(.*?)\?.*?$/, '\1')
@@ -181,9 +181,10 @@ class Caboose::Schema < Caboose::Utilities::Schema
181
181
  [ :updated_at , :datetime , :null => true ]
182
182
  ],
183
183
  Caboose::Domain => [
184
- [ :site_id , :integer ],
185
- [ :domain , :string ],
186
- [ :primary , :boolean, { :default => false }]
184
+ [ :site_id , :integer ],
185
+ [ :domain , :string ],
186
+ [ :primary , :boolean, { :default => false }],
187
+ [ :under_construction , :boolean, { :default => false }]
187
188
  ],
188
189
  Caboose::MediaCategory => [
189
190
  [ :parent_id , :integer ],
@@ -280,8 +281,9 @@ class Caboose::Schema < Caboose::Utilities::Schema
280
281
  [ :value , :text ]
281
282
  ],
282
283
  Caboose::Site => [
283
- [ :name , :string ],
284
- [ :description , :text ]
284
+ [ :name , :string ],
285
+ [ :description , :text ],
286
+ [ :under_construction_html , :text ]
285
287
  ],
286
288
  Caboose::SiteMembership => [
287
289
  [ :site_id , :integer ],
@@ -5,7 +5,7 @@ class Caboose::Site < ActiveRecord::Base
5
5
  has_many :site_memberships, :class_name => 'Caboose::SiteMembership', :dependent => :delete_all
6
6
  has_many :domains, :class_name => 'Caboose::Domain', :dependent => :delete_all
7
7
  has_many :post_categories, :class_name => 'Caboose::PostCategory'
8
- attr_accessible :id, :name, :description
8
+ attr_accessible :id, :name, :description, :under_construction_html
9
9
 
10
10
  def smtp_config
11
11
  c = Caboose::SmtpConfig.where(:site_id => self.id).first
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Under Construction</title>
5
+ <style type='text/css'>
6
+ body { margin: 0; padding: 0; text-align: center; }
7
+ #container { font-size: 24pt; }
8
+ </style>
9
+ </head>
10
+ <body>
11
+ <div class="container">
12
+ <p>We apologize for the inconvenience, but we're in the process of upgrading our site. We'll be finished very soon!</p>
13
+ </div>
14
+ </body>
15
+ </html>
@@ -123,9 +123,9 @@ $(document).ready(function() {
123
123
  });
124
124
 
125
125
  </script>
126
- <% if @block.block_type.field_type == 'richtext' %>
126
+ <% if @block.block_type.field_type == 'richtext' %>
127
127
  <script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
128
- <%= tinymce :caboose, :width => '800px', :height => '300px' %>
128
+ <%= raw caboose_tinymce %>
129
129
  <% end %>
130
130
 
131
131
  <% end %>
@@ -30,6 +30,6 @@ $(document).ready(function() {
30
30
  });
31
31
 
32
32
  </script>
33
- <%= tinymce_assets %>
34
- <%= tinymce :caboose, width: '800px', height:'300px' %>
33
+ <script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
34
+ <%= raw caboose_tinymce %>
35
35
  <% end %>
@@ -27,6 +27,6 @@ $(window).load(function() {
27
27
  });
28
28
 
29
29
  </script>
30
- <%= tinymce_assets %>
31
- <%= tinymce :caboose, 'width' => '575px', 'height' => '240px' %>
30
+ <script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
31
+ <%= tinymce :caboose, 'width' => '575px', 'height' => '240px' %>
32
32
  <% end %>
@@ -9,6 +9,7 @@ user_ids = [] if user_ids.nil?
9
9
 
10
10
  <p><div id='site_<%= @site.id %>_name' ></div></p>
11
11
  <p><div id='site_<%= @site.id %>_description' ></div></p>
12
+ <p><div id='site_<%= @site.id %>_under_construction_html' ></div></p>
12
13
 
13
14
  <h2>Domains</h2>
14
15
  <p><a href='#' onclick="add_domain(<%= @site.id %>);">New Domain</a></p>
@@ -18,13 +19,15 @@ user_ids = [] if user_ids.nil?
18
19
  <tr>
19
20
  <th>Domain</th>
20
21
  <th>Primary</th>
22
+ <th>Under Construction</th>
21
23
  <th>Delete</th>
22
24
  </tr>
23
25
  <% @site.domains.all.each do |d| %>
24
26
  <tr>
25
27
  <td><%= d.domain %></td>
26
- <td align='center'><input type='radio' name='primary_domain' <%= d.primary? ? "checked='true'" : '' %> onclick="set_primary_domain(<%= s.id %>, <%= d.id %>);" /></td>
27
- <td align='center'><input type='button' value='Delete' onclick="delete_domain(<%= @site.id %>, <%= d.id %>);" /></td>
28
+ <td align='center'><input type='radio' name='primary_domain' <%= d.primary? ? "checked='true'" : '' %> onclick="set_primary_domain(<%= s.id %>, <%= d.id %>);" /></td>
29
+ <td align='center'><input type='checkbox' name='under_construction_<%= d.id %>' <%= d.under_construction ? "checked='true'" : '' %> onclick="set_under_construction(<%= s.id %>, <%= d.id %>, $(this).prop('checked'));" /></td>
30
+ <td align='center'><input type='button' value='Delete' onclick="delete_domain(<%= @site.id %>, <%= d.id %>);" /></td>
28
31
  </tr>
29
32
  <% end %>
30
33
  </table>
@@ -71,8 +74,9 @@ $(document).ready(function() {
71
74
  update_url: '/admin/sites/<%= @site.id %>',
72
75
  authenticity_token: '<%= form_authenticity_token %>',
73
76
  attributes: [
74
- { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(@site.name) %>, width: 400 },
75
- { name: 'description' , nice_name: 'Description' , type: 'textarea' , value: <%= raw Caboose.json(@site.description) %>, width: 600, height: 75 }
77
+ { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(@site.name) %>, width: 400 },
78
+ { name: 'description' , nice_name: 'Description' , type: 'textarea' , value: <%= raw Caboose.json(@site.description) %>, width: 600, height: 75 },
79
+ { name: 'under_construction_html' , nice_name: 'Under Construction HTML' , type: 'textarea' , value: <%= raw Caboose.json(@site.under_construction_html) %>, width: 600, height: 75 }
76
80
  ]
77
81
  });
78
82
  });
@@ -99,6 +103,15 @@ function delete_site(site_id, confirm)
99
103
  });
100
104
  }
101
105
 
106
+ function set_under_construction(site_id, domain_id, checked)
107
+ {
108
+ $.ajax({
109
+ url: '/admin/sites/' + site_id + '/domains/' + domain_id,
110
+ type: 'put',
111
+ data: { under_construction: checked ? 1 : 0 }
112
+ });
113
+ }
114
+
102
115
  function add_site_membership(site_id, user_id, role)
103
116
  {
104
117
  $.ajax({
@@ -23,10 +23,10 @@ Caboose::Engine.routes.draw do
23
23
 
24
24
  post "admin/sites/:id/members" => "sites#admin_add_member"
25
25
  delete "admin/sites/:id/members/:user_id" => "sites#admin_remove_member"
26
-
27
- post "admin/sites/:id/domains" => "sites#admin_add_domain"
28
- put "admin/sites/:id/domains/:domain_id/set-primary" => "sites#admin_set_primary_domain"
29
- delete "admin/sites/:id/domains/:domain_id" => "sites#admin_remove_domain"
26
+
27
+ post "admin/sites/:site_id/domains" => "domains#admin_add"
28
+ put "admin/sites/:site_id/domains/:id" => "domains#admin_update"
29
+ delete "admin/sites/:site_id/domains/:id" => "domains#admin_delete"
30
30
 
31
31
  get "admin/sites/options" => "sites#options"
32
32
  get "admin/sites" => "sites#admin_index"
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.4.124'
2
+ VERSION = '0.4.125'
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.4.124
4
+ version: 0.4.125
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-09-25 00:00:00.000000000 Z
11
+ date: 2014-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -271,6 +271,7 @@ files:
271
271
  - app/controllers/caboose/block_types_controller.rb
272
272
  - app/controllers/caboose/blocks_controller.rb
273
273
  - app/controllers/caboose/calendars_controller.rb
274
+ - app/controllers/caboose/domains_controller.rb
274
275
  - app/controllers/caboose/event_groups_controller.rb
275
276
  - app/controllers/caboose/events_controller.rb
276
277
  - app/controllers/caboose/images_controller.rb
@@ -349,6 +350,7 @@ files:
349
350
  - app/views/caboose/ab_variants/admin_new.html.erb
350
351
  - app/views/caboose/admin/index.html.erb
351
352
  - app/views/caboose/application/show.html.erb
353
+ - app/views/caboose/application/under_construction.html.erb
352
354
  - app/views/caboose/block_type_sources/admin_edit.html.erb
353
355
  - app/views/caboose/block_type_sources/admin_index.html.erb
354
356
  - app/views/caboose/block_type_sources/admin_new.html.erb
@@ -393,7 +395,7 @@ files:
393
395
  - app/views/caboose/blocks/admin_edit_h5.html.erb
394
396
  - app/views/caboose/blocks/admin_edit_h6.html.erb
395
397
  - app/views/caboose/blocks/admin_edit_heading.html
396
- - app/views/caboose/blocks/admin_edit_richtext.html.erb
398
+ - app/views/caboose/blocks/admin_edit_richtextold.html.erb
397
399
  - app/views/caboose/blocks/admin_new.html.erb
398
400
  - app/views/caboose/blocks/admin_render_second_level.json.erb
399
401
  - app/views/caboose/calendars/admin_edit.html.erb