trusty-cms 3.2.1 → 3.3.0
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 +5 -5
- data/Gemfile +2 -3
- data/Gemfile.lock +50 -51
- data/app/models/asset.rb +2 -2
- data/app/models/page.rb +20 -10
- data/app/models/trusty_cms/config.rb +21 -9
- data/lib/tasks/database.rake +0 -2
- data/lib/trusty_cms.rb +1 -1
- data/spec/ci/database.mysql.yml +1 -1
- data/spec/dummy/db/schema.rb +13 -13
- data/trusty_cms.gemspec +1 -1
- data/vendor/extensions/clipped-extension/clipped_extension.rb +1 -0
- data/{app/helpers → vendor/extensions/clipped-extension/lib}/admin/assets_helper.rb +5 -5
- data/vendor/extensions/clipped-extension/lib/page_asset_associations.rb +4 -6
- data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_validation.rb +15 -5
- metadata +6 -10
- data/lib/tasks/instance.rake +0 -23
- data/lib/tasks/undefine.rake +0 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: '08f5e8a4af024687fbd7b3254c2b59c20d5f33e3'
|
|
4
|
+
data.tar.gz: 89474a5f5fa76618a79704889210b170a2584be5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 871dcea0008cb217654ade4a262dc0421b1abaaf4ea10e70523a819a45186e9ce6a6584be3f3b305208204a502879114af031cded53a026717eeaeb8d049ff4c
|
|
7
|
+
data.tar.gz: 8f3028f2224bad2539abc7f4fb9beef0838e13200e4055871a4e44f121d4b768949a3eb489aba4cebb4110b07bfadf8a0616dc0750b83b1f64400820d98d7dbc
|
data/Gemfile
CHANGED
|
@@ -19,9 +19,8 @@ group :development, :test do
|
|
|
19
19
|
gem 'factory_bot_rails'
|
|
20
20
|
gem 'launchy', '~> 2.4.2'
|
|
21
21
|
gem 'mysql2', '~> 0.4.2'
|
|
22
|
-
gem 'rails-observers', :git => 'https://github.com/rails/rails-observers'
|
|
23
|
-
gem 'rspec-rails'
|
|
24
22
|
gem 'poltergeist', '~> 1.14.0'
|
|
25
|
-
gem 'protected_attributes_continued'
|
|
26
23
|
gem 'pry-byebug'
|
|
24
|
+
gem 'rails-observers'
|
|
25
|
+
gem 'rspec-rails'
|
|
27
26
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
GIT
|
|
2
|
-
remote: https://github.com/rails/rails-observers
|
|
3
|
-
revision: fb6b95509c3f1a50c973280ddc2b56648e33623f
|
|
4
|
-
specs:
|
|
5
|
-
rails-observers (0.2.0)
|
|
6
|
-
activemodel (>= 4.2)
|
|
7
|
-
|
|
8
1
|
PATH
|
|
9
2
|
remote: .
|
|
10
3
|
specs:
|
|
11
|
-
trusty-cms (3.
|
|
4
|
+
trusty-cms (3.3.0)
|
|
12
5
|
RedCloth (= 4.3.2)
|
|
13
6
|
acts_as_list (~> 0.9.5)
|
|
14
7
|
acts_as_tree (~> 2.6.1)
|
|
@@ -27,7 +20,7 @@ PATH
|
|
|
27
20
|
rack (~> 2.0.1)
|
|
28
21
|
rack-cache (~> 1.7)
|
|
29
22
|
radius (~> 0.7)
|
|
30
|
-
rails (~> 5.
|
|
23
|
+
rails (~> 5.2.0.rc2)
|
|
31
24
|
rake (< 11.0)
|
|
32
25
|
rdoc (~> 5.1)
|
|
33
26
|
roadie-rails (~> 1.2.1)
|
|
@@ -42,39 +35,43 @@ GEM
|
|
|
42
35
|
remote: https://rubygems.org/
|
|
43
36
|
specs:
|
|
44
37
|
RedCloth (4.3.2)
|
|
45
|
-
actioncable (5.
|
|
46
|
-
actionpack (= 5.
|
|
38
|
+
actioncable (5.2.0.rc2)
|
|
39
|
+
actionpack (= 5.2.0.rc2)
|
|
47
40
|
nio4r (~> 2.0)
|
|
48
|
-
websocket-driver (
|
|
49
|
-
actionmailer (5.
|
|
50
|
-
actionpack (= 5.
|
|
51
|
-
actionview (= 5.
|
|
52
|
-
activejob (= 5.
|
|
41
|
+
websocket-driver (>= 0.6.1)
|
|
42
|
+
actionmailer (5.2.0.rc2)
|
|
43
|
+
actionpack (= 5.2.0.rc2)
|
|
44
|
+
actionview (= 5.2.0.rc2)
|
|
45
|
+
activejob (= 5.2.0.rc2)
|
|
53
46
|
mail (~> 2.5, >= 2.5.4)
|
|
54
47
|
rails-dom-testing (~> 2.0)
|
|
55
|
-
actionpack (5.
|
|
56
|
-
actionview (= 5.
|
|
57
|
-
activesupport (= 5.
|
|
48
|
+
actionpack (5.2.0.rc2)
|
|
49
|
+
actionview (= 5.2.0.rc2)
|
|
50
|
+
activesupport (= 5.2.0.rc2)
|
|
58
51
|
rack (~> 2.0)
|
|
59
52
|
rack-test (>= 0.6.3)
|
|
60
53
|
rails-dom-testing (~> 2.0)
|
|
61
54
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
62
|
-
actionview (5.
|
|
63
|
-
activesupport (= 5.
|
|
55
|
+
actionview (5.2.0.rc2)
|
|
56
|
+
activesupport (= 5.2.0.rc2)
|
|
64
57
|
builder (~> 3.1)
|
|
65
58
|
erubi (~> 1.4)
|
|
66
59
|
rails-dom-testing (~> 2.0)
|
|
67
60
|
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
68
|
-
activejob (5.
|
|
69
|
-
activesupport (= 5.
|
|
61
|
+
activejob (5.2.0.rc2)
|
|
62
|
+
activesupport (= 5.2.0.rc2)
|
|
70
63
|
globalid (>= 0.3.6)
|
|
71
|
-
activemodel (5.
|
|
72
|
-
activesupport (= 5.
|
|
73
|
-
activerecord (5.
|
|
74
|
-
activemodel (= 5.
|
|
75
|
-
activesupport (= 5.
|
|
76
|
-
arel (
|
|
77
|
-
|
|
64
|
+
activemodel (5.2.0.rc2)
|
|
65
|
+
activesupport (= 5.2.0.rc2)
|
|
66
|
+
activerecord (5.2.0.rc2)
|
|
67
|
+
activemodel (= 5.2.0.rc2)
|
|
68
|
+
activesupport (= 5.2.0.rc2)
|
|
69
|
+
arel (>= 9.0)
|
|
70
|
+
activestorage (5.2.0.rc2)
|
|
71
|
+
actionpack (= 5.2.0.rc2)
|
|
72
|
+
activerecord (= 5.2.0.rc2)
|
|
73
|
+
marcel (~> 0.3.1)
|
|
74
|
+
activesupport (5.2.0.rc2)
|
|
78
75
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
79
76
|
i18n (>= 0.7, < 2)
|
|
80
77
|
minitest (~> 5.1)
|
|
@@ -85,7 +82,7 @@ GEM
|
|
|
85
82
|
activerecord (>= 3.0.0)
|
|
86
83
|
addressable (2.5.2)
|
|
87
84
|
public_suffix (>= 2.0.2, < 4.0)
|
|
88
|
-
arel (
|
|
85
|
+
arel (9.0.0)
|
|
89
86
|
builder (3.2.3)
|
|
90
87
|
byebug (10.0.2)
|
|
91
88
|
capybara (2.18.0)
|
|
@@ -175,6 +172,8 @@ GEM
|
|
|
175
172
|
nokogiri (>= 1.5.9)
|
|
176
173
|
mail (2.7.0)
|
|
177
174
|
mini_mime (>= 0.1.1)
|
|
175
|
+
marcel (0.3.2)
|
|
176
|
+
mimemagic (~> 0.3.2)
|
|
178
177
|
method_source (0.9.0)
|
|
179
178
|
mime-types (3.1)
|
|
180
179
|
mime-types-data (~> 3.2015)
|
|
@@ -201,8 +200,6 @@ GEM
|
|
|
201
200
|
capybara (~> 2.1)
|
|
202
201
|
cliver (~> 0.3.1)
|
|
203
202
|
websocket-driver (>= 0.2.0)
|
|
204
|
-
protected_attributes_continued (1.3.0)
|
|
205
|
-
activemodel (~> 5.0)
|
|
206
203
|
pry (0.11.3)
|
|
207
204
|
coderay (~> 1.1.0)
|
|
208
205
|
method_source (~> 0.9.0)
|
|
@@ -216,26 +213,29 @@ GEM
|
|
|
216
213
|
rack-test (1.0.0)
|
|
217
214
|
rack (>= 1.0, < 3)
|
|
218
215
|
radius (0.7.4)
|
|
219
|
-
rails (5.
|
|
220
|
-
actioncable (= 5.
|
|
221
|
-
actionmailer (= 5.
|
|
222
|
-
actionpack (= 5.
|
|
223
|
-
actionview (= 5.
|
|
224
|
-
activejob (= 5.
|
|
225
|
-
activemodel (= 5.
|
|
226
|
-
activerecord (= 5.
|
|
227
|
-
|
|
216
|
+
rails (5.2.0.rc2)
|
|
217
|
+
actioncable (= 5.2.0.rc2)
|
|
218
|
+
actionmailer (= 5.2.0.rc2)
|
|
219
|
+
actionpack (= 5.2.0.rc2)
|
|
220
|
+
actionview (= 5.2.0.rc2)
|
|
221
|
+
activejob (= 5.2.0.rc2)
|
|
222
|
+
activemodel (= 5.2.0.rc2)
|
|
223
|
+
activerecord (= 5.2.0.rc2)
|
|
224
|
+
activestorage (= 5.2.0.rc2)
|
|
225
|
+
activesupport (= 5.2.0.rc2)
|
|
228
226
|
bundler (>= 1.3.0)
|
|
229
|
-
railties (= 5.
|
|
227
|
+
railties (= 5.2.0.rc2)
|
|
230
228
|
sprockets-rails (>= 2.0.0)
|
|
231
229
|
rails-dom-testing (2.0.3)
|
|
232
230
|
activesupport (>= 4.2.0)
|
|
233
231
|
nokogiri (>= 1.6)
|
|
234
232
|
rails-html-sanitizer (1.0.4)
|
|
235
233
|
loofah (~> 2.2, >= 2.2.2)
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
234
|
+
rails-observers (0.1.5)
|
|
235
|
+
activemodel (>= 4.0)
|
|
236
|
+
railties (5.2.0.rc2)
|
|
237
|
+
actionpack (= 5.2.0.rc2)
|
|
238
|
+
activesupport (= 5.2.0.rc2)
|
|
239
239
|
method_source
|
|
240
240
|
rake (>= 0.8.7)
|
|
241
241
|
thor (>= 0.18.1, < 2.0)
|
|
@@ -245,7 +245,7 @@ GEM
|
|
|
245
245
|
ffi (>= 0.5.0, < 2)
|
|
246
246
|
rdoc (5.1.0)
|
|
247
247
|
ref (2.0.0)
|
|
248
|
-
roadie (3.
|
|
248
|
+
roadie (3.2.2)
|
|
249
249
|
css_parser (~> 1.4)
|
|
250
250
|
nokogiri (~> 1.5)
|
|
251
251
|
roadie-rails (1.2.1)
|
|
@@ -277,7 +277,7 @@ GEM
|
|
|
277
277
|
sprockets (>= 2.8, < 4.0)
|
|
278
278
|
sprockets-rails (>= 2.0, < 4.0)
|
|
279
279
|
tilt (>= 1.1, < 3)
|
|
280
|
-
sexp_processor (4.
|
|
280
|
+
sexp_processor (4.10.1)
|
|
281
281
|
simplecov (0.13.0)
|
|
282
282
|
docile (~> 1.1.0)
|
|
283
283
|
json (>= 1.8, < 3)
|
|
@@ -307,7 +307,7 @@ GEM
|
|
|
307
307
|
uglifier (3.2.0)
|
|
308
308
|
execjs (>= 0.3.0, < 3)
|
|
309
309
|
uuidtools (2.1.5)
|
|
310
|
-
websocket-driver (0.
|
|
310
|
+
websocket-driver (0.7.0)
|
|
311
311
|
websocket-extensions (>= 0.1.0)
|
|
312
312
|
websocket-extensions (0.1.3)
|
|
313
313
|
will_paginate (3.1.6)
|
|
@@ -326,9 +326,8 @@ DEPENDENCIES
|
|
|
326
326
|
launchy (~> 2.4.2)
|
|
327
327
|
mysql2 (~> 0.4.2)
|
|
328
328
|
poltergeist (~> 1.14.0)
|
|
329
|
-
protected_attributes_continued
|
|
330
329
|
pry-byebug
|
|
331
|
-
rails-observers
|
|
330
|
+
rails-observers
|
|
332
331
|
rspec-rails
|
|
333
332
|
trusty-cms!
|
|
334
333
|
trustygems (~> 0.2.0)
|
data/app/models/asset.rb
CHANGED
|
@@ -10,7 +10,7 @@ class Asset < ActiveRecord::Base
|
|
|
10
10
|
|
|
11
11
|
default_scope {order("created_at DESC")}
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
attr_accessor :title, :asset, :caption
|
|
14
14
|
|
|
15
15
|
scope :latest, lambda { |limit|
|
|
16
16
|
order("created_at DESC").limit(limit)
|
|
@@ -189,7 +189,7 @@ private
|
|
|
189
189
|
end
|
|
190
190
|
|
|
191
191
|
def assign_title
|
|
192
|
-
self.title = self.asset_file_name.
|
|
192
|
+
self.title = self.asset_file_name.sub(self.original_extension, "").sub(".", "")
|
|
193
193
|
end
|
|
194
194
|
|
|
195
195
|
def assign_uuid
|
data/app/models/page.rb
CHANGED
|
@@ -9,9 +9,9 @@ class Page < ActiveRecord::Base
|
|
|
9
9
|
|
|
10
10
|
# Associations
|
|
11
11
|
acts_as_tree :order => 'title ASC'
|
|
12
|
-
has_many :parts, {:class_name => 'PagePart', :dependent => :destroy
|
|
12
|
+
has_many :parts, -> {order(:id)}, :class_name => 'PagePart', :dependent => :destroy
|
|
13
13
|
accepts_nested_attributes_for :parts, :allow_destroy => true
|
|
14
|
-
has_many :fields, {:class_name => 'PageField', :dependent => :destroy
|
|
14
|
+
has_many :fields, -> {order(:id)}, :class_name => 'PageField', :dependent => :destroy
|
|
15
15
|
accepts_nested_attributes_for :fields, :allow_destroy => true
|
|
16
16
|
belongs_to :layout
|
|
17
17
|
belongs_to :created_by, :class_name => 'User'
|
|
@@ -282,14 +282,16 @@ class Page < ActiveRecord::Base
|
|
|
282
282
|
$1.camelize.constantize if page =~ %r{/([^/]+)\.rb}
|
|
283
283
|
end
|
|
284
284
|
end
|
|
285
|
-
if
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
285
|
+
if database_exists?
|
|
286
|
+
if ActiveRecord::Base.connection.data_sources.include?('pages') && Page.column_names.include?('class_name') # Assume that we have bootstrapped
|
|
287
|
+
Page.connection.select_values("SELECT DISTINCT class_name FROM pages WHERE class_name <> '' AND class_name IS NOT NULL").each do |p|
|
|
288
|
+
begin
|
|
289
|
+
p.constantize
|
|
290
|
+
rescue NameError, LoadError
|
|
291
|
+
#Rubocop: The use of eval is a serious security risk.
|
|
292
|
+
#eval(%Q{class #{p} < Page; acts_as_tree; def self.missing?; true end end}, TOPLEVEL_BINDING)
|
|
293
|
+
Rails.logger.error NameError
|
|
294
|
+
end
|
|
293
295
|
end
|
|
294
296
|
end
|
|
295
297
|
end
|
|
@@ -364,6 +366,14 @@ class Page < ActiveRecord::Base
|
|
|
364
366
|
!parent.nil?
|
|
365
367
|
end
|
|
366
368
|
|
|
369
|
+
def database_exists?
|
|
370
|
+
ActiveRecord::Base.connection
|
|
371
|
+
rescue ActiveRecord::NoDatabaseError
|
|
372
|
+
false
|
|
373
|
+
else
|
|
374
|
+
true
|
|
375
|
+
end
|
|
376
|
+
|
|
367
377
|
def lazy_initialize_parser_and_context
|
|
368
378
|
unless @parser and @context
|
|
369
379
|
@context = PageContext.new(self)
|
|
@@ -76,23 +76,35 @@ module TrustyCms
|
|
|
76
76
|
|
|
77
77
|
class << self
|
|
78
78
|
def [](key)
|
|
79
|
-
if
|
|
80
|
-
|
|
81
|
-
TrustyCms::Config.
|
|
82
|
-
|
|
79
|
+
if database_exists?
|
|
80
|
+
if table_exists?
|
|
81
|
+
unless TrustyCms::Config.cache_file_exists?
|
|
82
|
+
TrustyCms::Config.ensure_cache_file
|
|
83
|
+
TrustyCms::Config.initialize_cache
|
|
84
|
+
end
|
|
85
|
+
TrustyCms::Config.initialize_cache if TrustyCms::Config.stale_cache?
|
|
86
|
+
Rails.cache.read('TrustyCms::Config')[key]
|
|
83
87
|
end
|
|
84
|
-
TrustyCms::Config.initialize_cache if TrustyCms::Config.stale_cache?
|
|
85
|
-
Rails.cache.read('TrustyCms::Config')[key]
|
|
86
88
|
end
|
|
87
89
|
end
|
|
88
90
|
|
|
89
91
|
def []=(key, value)
|
|
90
|
-
if
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
if database_exists?
|
|
93
|
+
if table_exists?
|
|
94
|
+
setting = where(key: key).first_or_initialize
|
|
95
|
+
setting.value = value
|
|
96
|
+
end
|
|
93
97
|
end
|
|
94
98
|
end
|
|
95
99
|
|
|
100
|
+
def database_exists?
|
|
101
|
+
ActiveRecord::Base.connection
|
|
102
|
+
rescue ActiveRecord::NoDatabaseError
|
|
103
|
+
false
|
|
104
|
+
else
|
|
105
|
+
true
|
|
106
|
+
end
|
|
107
|
+
|
|
96
108
|
def to_hash
|
|
97
109
|
Hash[ *all.map { |pair| [pair.key, pair.value] }.flatten ]
|
|
98
110
|
end
|
data/lib/tasks/database.rake
CHANGED
|
@@ -65,7 +65,6 @@ To add more extensions just add them to your Gemfile and run `bundle install`.
|
|
|
65
65
|
desc "Migrate the database through all available migration scripts (looks for db/migrate/* in trusty-cms, in extensions and in your site) and update db/schema.rb by invoking db:schema:dump. Turn off output with VERBOSE=false."
|
|
66
66
|
task :migrate => [:environment, 'db:migrate:trusty_cms', 'db:migrate:extensions'] do
|
|
67
67
|
ActiveRecord::Migration[5.1].verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
|
|
68
|
-
ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
|
69
68
|
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
|
|
70
69
|
end
|
|
71
70
|
|
|
@@ -73,7 +72,6 @@ To add more extensions just add them to your Gemfile and run `bundle install`.
|
|
|
73
72
|
desc "Migrates the database through steps defined in the core trusty-cms distribution. Usual db:migrate options can apply."
|
|
74
73
|
task :trusty_cms => :environment do
|
|
75
74
|
ActiveRecord::Migration[5.1].verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
|
|
76
|
-
ActiveRecord::Migrator.migrate(File.join(TrustyCms.root, 'db', 'migrate'), ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
|
77
75
|
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
|
|
78
76
|
end
|
|
79
77
|
end
|
data/lib/trusty_cms.rb
CHANGED
data/spec/ci/database.mysql.yml
CHANGED
data/spec/dummy/db/schema.rb
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
#
|
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
|
12
12
|
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
|
13
|
+
ActiveRecord::Schema.define(version: 2016_10_27_141250) do
|
|
14
14
|
|
|
15
|
-
create_table "assets",
|
|
15
|
+
create_table "assets", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
16
16
|
t.string "caption"
|
|
17
17
|
t.string "title"
|
|
18
18
|
t.string "asset_file_name"
|
|
@@ -28,19 +28,19 @@ ActiveRecord::Schema.define(version: 20161027141250) do
|
|
|
28
28
|
t.string "original_extension"
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
create_table "config",
|
|
31
|
+
create_table "config", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
32
32
|
t.string "key", limit: 40, default: "", null: false
|
|
33
33
|
t.string "value", default: ""
|
|
34
34
|
t.index ["key"], name: "key", unique: true
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
create_table "extension_meta",
|
|
37
|
+
create_table "extension_meta", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
38
38
|
t.string "name"
|
|
39
39
|
t.integer "schema_version", default: 0
|
|
40
40
|
t.boolean "enabled", default: true
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
create_table "layouts",
|
|
43
|
+
create_table "layouts", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
44
44
|
t.string "name", limit: 100
|
|
45
45
|
t.text "content"
|
|
46
46
|
t.datetime "created_at"
|
|
@@ -52,20 +52,20 @@ ActiveRecord::Schema.define(version: 20161027141250) do
|
|
|
52
52
|
t.integer "site_id"
|
|
53
53
|
end
|
|
54
54
|
|
|
55
|
-
create_table "page_attachments",
|
|
55
|
+
create_table "page_attachments", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
56
56
|
t.integer "asset_id"
|
|
57
57
|
t.integer "page_id"
|
|
58
58
|
t.integer "position"
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
-
create_table "page_fields",
|
|
61
|
+
create_table "page_fields", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
62
62
|
t.integer "page_id"
|
|
63
63
|
t.string "name"
|
|
64
64
|
t.string "content"
|
|
65
65
|
t.index ["page_id", "name", "content"], name: "index_page_fields_on_page_id_and_name_and_content"
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
-
create_table "page_parts",
|
|
68
|
+
create_table "page_parts", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
69
69
|
t.string "name", limit: 100
|
|
70
70
|
t.string "filter_id", limit: 25
|
|
71
71
|
t.text "content", limit: 16777215
|
|
@@ -73,7 +73,7 @@ ActiveRecord::Schema.define(version: 20161027141250) do
|
|
|
73
73
|
t.index ["page_id", "name"], name: "parts_by_page"
|
|
74
74
|
end
|
|
75
75
|
|
|
76
|
-
create_table "pages",
|
|
76
|
+
create_table "pages", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
77
77
|
t.string "title"
|
|
78
78
|
t.string "slug", limit: 100
|
|
79
79
|
t.string "breadcrumb", limit: 160
|
|
@@ -98,7 +98,7 @@ ActiveRecord::Schema.define(version: 20161027141250) do
|
|
|
98
98
|
t.index ["virtual", "status_id"], name: "pages_published"
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
-
create_table "sessions",
|
|
101
|
+
create_table "sessions", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
102
102
|
t.string "session_id"
|
|
103
103
|
t.text "data"
|
|
104
104
|
t.datetime "updated_at"
|
|
@@ -106,7 +106,7 @@ ActiveRecord::Schema.define(version: 20161027141250) do
|
|
|
106
106
|
t.index ["updated_at"], name: "index_sessions_on_updated_at"
|
|
107
107
|
end
|
|
108
108
|
|
|
109
|
-
create_table "sites",
|
|
109
|
+
create_table "sites", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
110
110
|
t.string "name"
|
|
111
111
|
t.string "domain"
|
|
112
112
|
t.integer "homepage_id"
|
|
@@ -120,7 +120,7 @@ ActiveRecord::Schema.define(version: 20161027141250) do
|
|
|
120
120
|
t.string "base_domain"
|
|
121
121
|
end
|
|
122
122
|
|
|
123
|
-
create_table "snippets",
|
|
123
|
+
create_table "snippets", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
124
124
|
t.string "name", limit: 100, default: "", null: false
|
|
125
125
|
t.string "filter_id", limit: 25
|
|
126
126
|
t.text "content"
|
|
@@ -133,7 +133,7 @@ ActiveRecord::Schema.define(version: 20161027141250) do
|
|
|
133
133
|
t.index ["name", "site_id"], name: "name_site_id", unique: true
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
create_table "users",
|
|
136
|
+
create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
137
137
|
t.string "name", limit: 100
|
|
138
138
|
t.string "email"
|
|
139
139
|
t.string "login", limit: 40, default: "", null: false
|
data/trusty_cms.gemspec
CHANGED
|
@@ -40,7 +40,7 @@ a general purpose content managment system--not merely a blogging engine.}
|
|
|
40
40
|
s.add_dependency 'paperclip', '> 5.2'
|
|
41
41
|
s.add_dependency 'rack', '~> 2.0.1'
|
|
42
42
|
s.add_dependency 'rack-cache', '~> 1.7'
|
|
43
|
-
s.add_dependency 'rails', '~> 5.
|
|
43
|
+
s.add_dependency 'rails', '~> 5.2.0.rc2'
|
|
44
44
|
s.add_dependency 'rdoc', '~> 5.1'
|
|
45
45
|
s.add_dependency 'radius', '~> 0.7'
|
|
46
46
|
s.add_dependency 'RedCloth', '4.3.2'
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
module Admin::AssetsHelper
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
def automatic_size_descriptions
|
|
4
4
|
Asset.thumbnail_sizes.collect{|k,v| "#{k} (#{(v.to_s).match(/\d+x\d+/)})"}.join(', ')
|
|
5
5
|
end
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
def asset_insertion_link(asset)
|
|
8
8
|
radius_tag = asset.asset_type.default_radius_tag || 'link';
|
|
9
9
|
link_to t('clipped_extension.insert'), '#', :class => 'insert_asset', :rel => "#{radius_tag}_#{TrustyCms.config['assets.insertion_size']}_#{asset.id}"
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
def asset_attachment_link(asset)
|
|
13
13
|
link_to t("clipped_extension.attach"), new_admin_page_attachment_path(:asset_id => asset.id), :class => 'attach_asset', :rel => "attach_#{asset.id}"
|
|
14
14
|
end
|
|
15
|
-
|
|
16
|
-
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
module PageAssetAssociations
|
|
2
|
-
|
|
3
|
-
#TODO: Turn page_attachments into a generic, polymorphic asset-attachment mechanism
|
|
4
|
-
|
|
2
|
+
|
|
5
3
|
def self.included(base)
|
|
6
4
|
base.class_eval {
|
|
7
5
|
has_many :page_attachments, -> { order 'position desc' }
|
|
8
|
-
has_many :assets,
|
|
6
|
+
has_many :assets, -> { order 'page_attachments.position ASC' }, through: :page_attachments
|
|
9
7
|
accepts_nested_attributes_for :page_attachments, :allow_destroy => true
|
|
10
8
|
}
|
|
11
9
|
end
|
|
12
|
-
|
|
13
|
-
end
|
|
10
|
+
|
|
11
|
+
end
|
|
@@ -15,16 +15,26 @@ module MultiSite::ScopedValidation
|
|
|
15
15
|
# Hence the check for a site_id column. It's a hack, but a fairly harmless one.
|
|
16
16
|
|
|
17
17
|
def validates_uniqueness_of_with_site(*attr)
|
|
18
|
-
if
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
if database_exists?
|
|
19
|
+
if table_exists? && column_names.include?('site_id')
|
|
20
|
+
configuration = attr.extract_options!
|
|
21
|
+
configuration[:scope] ||= :site_id
|
|
22
|
+
attr.push(configuration)
|
|
23
|
+
end
|
|
24
|
+
validates_uniqueness_of_without_site(*attr)
|
|
22
25
|
end
|
|
23
|
-
validates_uniqueness_of_without_site(*attr)
|
|
24
26
|
end
|
|
25
27
|
|
|
26
28
|
alias_method :validates_uniqueness_of_without_site, :validates_uniqueness_of
|
|
27
29
|
alias_method :validates_uniqueness_of, :validates_uniqueness_of_with_site
|
|
30
|
+
|
|
31
|
+
def database_exists?
|
|
32
|
+
ActiveRecord::Base.connection
|
|
33
|
+
rescue ActiveRecord::NoDatabaseError
|
|
34
|
+
false
|
|
35
|
+
else
|
|
36
|
+
true
|
|
37
|
+
end
|
|
28
38
|
end
|
|
29
39
|
|
|
30
40
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: trusty-cms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- TrustyCms CMS dev team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-04-
|
|
11
|
+
date: 2018-04-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: acts_as_list
|
|
@@ -240,14 +240,14 @@ dependencies:
|
|
|
240
240
|
requirements:
|
|
241
241
|
- - "~>"
|
|
242
242
|
- !ruby/object:Gem::Version
|
|
243
|
-
version:
|
|
243
|
+
version: 5.2.0.rc2
|
|
244
244
|
type: :runtime
|
|
245
245
|
prerelease: false
|
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
|
247
247
|
requirements:
|
|
248
248
|
- - "~>"
|
|
249
249
|
- !ruby/object:Gem::Version
|
|
250
|
-
version:
|
|
250
|
+
version: 5.2.0.rc2
|
|
251
251
|
- !ruby/object:Gem::Dependency
|
|
252
252
|
name: rdoc
|
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -621,7 +621,6 @@ files:
|
|
|
621
621
|
- app/controllers/application_controller.rb
|
|
622
622
|
- app/controllers/site_controller.rb
|
|
623
623
|
- app/controllers/social_mailer_controller.rb
|
|
624
|
-
- app/helpers/admin/assets_helper.rb
|
|
625
624
|
- app/helpers/admin/configuration_helper.rb
|
|
626
625
|
- app/helpers/admin/export_helper.rb
|
|
627
626
|
- app/helpers/admin/extensions_helper.rb
|
|
@@ -983,11 +982,9 @@ files:
|
|
|
983
982
|
- lib/tasks/environments.rake
|
|
984
983
|
- lib/tasks/extensions.rake
|
|
985
984
|
- lib/tasks/framework.rake
|
|
986
|
-
- lib/tasks/instance.rake
|
|
987
985
|
- lib/tasks/radiant_config.rake
|
|
988
986
|
- lib/tasks/snippets_extension_tasks.rake
|
|
989
987
|
- lib/tasks/translate.rake
|
|
990
|
-
- lib/tasks/undefine.rake
|
|
991
988
|
- lib/translation_support.rb
|
|
992
989
|
- lib/trusty_cms.rb
|
|
993
990
|
- lib/trusty_cms/admin_ui.rb
|
|
@@ -1052,7 +1049,6 @@ files:
|
|
|
1052
1049
|
- spec/dummy/config/routes.rb
|
|
1053
1050
|
- spec/dummy/config/secrets.yml
|
|
1054
1051
|
- spec/dummy/db/schema.rb
|
|
1055
|
-
- spec/dummy/log/development.log
|
|
1056
1052
|
- spec/dummy/log/test.log
|
|
1057
1053
|
- spec/dummy/node_modules/jquery-ui-bundle/AUTHORS.txt
|
|
1058
1054
|
- spec/dummy/node_modules/jquery-ui-bundle/LICENSE.txt
|
|
@@ -1225,6 +1221,7 @@ files:
|
|
|
1225
1221
|
- spec/support/custom_actions.rb
|
|
1226
1222
|
- trusty_cms.gemspec
|
|
1227
1223
|
- vendor/extensions/clipped-extension/clipped_extension.rb
|
|
1224
|
+
- vendor/extensions/clipped-extension/lib/admin/assets_helper.rb
|
|
1228
1225
|
- vendor/extensions/clipped-extension/lib/asset_tags.rb
|
|
1229
1226
|
- vendor/extensions/clipped-extension/lib/clipped/engine.rb
|
|
1230
1227
|
- vendor/extensions/clipped-extension/lib/clipped_admin_ui.rb
|
|
@@ -1318,7 +1315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1318
1315
|
version: 1.3.1
|
|
1319
1316
|
requirements: []
|
|
1320
1317
|
rubyforge_project:
|
|
1321
|
-
rubygems_version: 2.
|
|
1318
|
+
rubygems_version: 2.6.13
|
|
1322
1319
|
signing_key:
|
|
1323
1320
|
specification_version: 4
|
|
1324
1321
|
summary: A no-fluff content management system designed for small teams.
|
|
@@ -1352,7 +1349,6 @@ test_files:
|
|
|
1352
1349
|
- spec/dummy/config/secrets.yml
|
|
1353
1350
|
- spec/dummy/config.ru
|
|
1354
1351
|
- spec/dummy/db/schema.rb
|
|
1355
|
-
- spec/dummy/log/development.log
|
|
1356
1352
|
- spec/dummy/log/test.log
|
|
1357
1353
|
- spec/dummy/node_modules/jquery/AUTHORS.txt
|
|
1358
1354
|
- spec/dummy/node_modules/jquery/bower.json
|
data/lib/tasks/instance.rake
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# # Redefined standard Rails tasks only in instance mode
|
|
2
|
-
# unless TrustyCms.app?
|
|
3
|
-
# require 'rake/testtask'
|
|
4
|
-
#
|
|
5
|
-
# ENV['RADIANT_ENV_FILE'] = File.join(Rails.root, 'config', 'environment')
|
|
6
|
-
#
|
|
7
|
-
# [Dir["#{Rails.Root}/vendor/rails/railties/lib/tasks/*.rake"], Dir["#{Rails.root}/vendor/plugins/rspec_on_rails/tasks/*.rake"]].flatten.each do |rake|
|
|
8
|
-
# lines = IO.readlines(rake)
|
|
9
|
-
# lines.map! do |line|
|
|
10
|
-
# line.gsub!('Rails.root', 'TRUSTY_CMS_ROOT') unless rake =~ /(misc|rspec|databases)\.rake$/
|
|
11
|
-
# case rake
|
|
12
|
-
# when /testing\.rake$/
|
|
13
|
-
# line.gsub!(/t.libs << (["'])/, 't.libs << \1#{TRUSTY_CMS_ROOT}/')
|
|
14
|
-
# line.gsub!(/t\.pattern = (["'])/, 't.pattern = \1#{TRUSTY_CMS_ROOT}/')
|
|
15
|
-
# when /databases\.rake$/
|
|
16
|
-
# line.gsub!(/(migrate|rollback)\((["'])/, '\1(\2#{TRUSTY_CMS_ROOT}/')
|
|
17
|
-
# line.gsub!(/(run|new)\((:up|:down), (["'])db/, '\1(\2, \3#{TRUSTY_CMS_ROOT}/db')
|
|
18
|
-
# end
|
|
19
|
-
# line
|
|
20
|
-
# end
|
|
21
|
-
# eval(lines.join("\n"), binding, rake)
|
|
22
|
-
# end
|
|
23
|
-
# end
|
data/lib/tasks/undefine.rake
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# # Undefined unneeded tasks in instance mode
|
|
2
|
-
# unless TrustyCms.app?
|
|
3
|
-
# def undefine_task(*names)
|
|
4
|
-
# app = Rake.application
|
|
5
|
-
# tasks = app.instance_variable_get('@tasks')
|
|
6
|
-
# names.flatten.each { |name| tasks.delete(name) }
|
|
7
|
-
# end
|
|
8
|
-
#
|
|
9
|
-
# undefine_task %w(
|
|
10
|
-
# radiant:clobber_package
|
|
11
|
-
# radiant:install_gem
|
|
12
|
-
# radiant:package
|
|
13
|
-
# radiant:release
|
|
14
|
-
# radiant:repackage
|
|
15
|
-
# radiant:uninstall_gem
|
|
16
|
-
# rails:freeze:edge
|
|
17
|
-
# rails:freeze:gems
|
|
18
|
-
# rails:unfreeze
|
|
19
|
-
# rails:update
|
|
20
|
-
# rails:update:configs
|
|
21
|
-
# rails:update:javascripts
|
|
22
|
-
# rails:update:scripts
|
|
23
|
-
# )
|
|
24
|
-
# end
|