alchemy_cms 4.6.1 → 4.6.5
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.
Potentially problematic release.
This version of alchemy_cms might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -1
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +6 -6
- data/app/models/alchemy/attachment.rb +1 -1
- data/app/models/alchemy/content.rb +1 -1
- data/app/models/alchemy/element.rb +1 -1
- data/app/models/alchemy/node.rb +1 -1
- data/app/models/alchemy/page/page_naming.rb +1 -1
- data/app/models/alchemy/page.rb +1 -1
- data/app/models/alchemy/picture.rb +1 -1
- data/lib/alchemy/essence.rb +1 -1
- data/lib/alchemy/resource.rb +6 -4
- data/lib/alchemy/upgrader/four_point_two.rb +1 -0
- data/lib/alchemy/upgrader/tasks/cells_migration.rb +2 -1
- data/lib/alchemy/upgrader/tasks/cells_upgrader.rb +21 -3
- data/lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb +8 -4
- data/lib/alchemy/upgrader/tasks/fixed_element_name_finder.rb +31 -0
- data/lib/alchemy/userstamp.rb +1 -1
- data/lib/alchemy/version.rb +1 -1
- data/lib/tasks/alchemy/convert.rake +8 -7
- data/lib/tasks/alchemy/upgrade.rake +5 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 252654553b59bae763586b46125e8f1ebd621639fc03393c9351ca7984864a79
|
4
|
+
data.tar.gz: 75262fba1d9d9dd36543fb3f10c2fc36fa5d27b2415d27e6379790ba5e2a575b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7c12139368b27f65aac476391aa826033f25bd826c36bf9abef052474c28af364cd115b96e294632c5ee5a1e6922c2d31ffae117fb004d7a5b03e2d9da7c5f9
|
7
|
+
data.tar.gz: 990082f879013f1ce4215992e286a5c28ecefcde47c26a001197d0a927ef38bef8ee83373af4333942718c17d6ccb33794fac6aa63fa60369360ec4557fc0e67
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,23 @@
|
|
1
|
-
##
|
1
|
+
## 4.6.5 (2021-11-17)
|
2
|
+
|
3
|
+
- Set stampable user_class_name without root identifier ([tvdeyen](https://github.com/tvdeyen))
|
4
|
+
|
5
|
+
## 4.6.4 (2021-11-15)
|
6
|
+
|
7
|
+
- Use relative path for tinymce font-face ([tvdeyen](https://github.com/tvdeyen))
|
8
|
+
- make the fixed element upgrader more robust ([darkswoop](https://github.com/darkswoop))
|
9
|
+
- don't use existing element names when migrating from cells ([darkswoop](https://github.com/darkswoop))
|
10
|
+
- enhance regexp in partial name upgrader ([darkswoop](https://github.com/darkswoop))
|
11
|
+
|
12
|
+
## 4.6.3 (2020-05-06)
|
13
|
+
|
14
|
+
- Use symbols in polymorphic routes for resources [#2087](https://github.com/AlchemyCMS/alchemy_cms/pull/2087) ([tvdeyen](https://github.com/tvdeyen))
|
15
|
+
- Fix convert:page_trees:to_menus task [#2033](https://github.com/AlchemyCMS/alchemy_cms/pull/2033) ([afdev82](https://github.com/afdev82))
|
16
|
+
- fix 4.6 upgrader tasks [#1995](https://github.com/AlchemyCMS/alchemy_cms/pull/1995) ([afdev82](https://github.com/afdev82))
|
17
|
+
|
18
|
+
## 4.6.2 (2020-09-07)
|
19
|
+
|
20
|
+
- Fix tri-Boolean check in PageNaming Module [#1931](https://github.com/AlchemyCMS/alchemy_cms/pull/1931) ([mamhoff](https://github.com/mamhoff))
|
2
21
|
|
3
22
|
## 4.6.1 (2020-06-04)
|
4
23
|
|
@@ -1566,18 +1566,18 @@ i.mce-i-resize {
|
|
1566
1566
|
|
1567
1567
|
@font-face {
|
1568
1568
|
font-family: 'tinymce';
|
1569
|
-
src: url('fonts/tinymce.woff') format('woff'),
|
1570
|
-
url('fonts/tinymce.ttf') format('truetype'),
|
1571
|
-
url('fonts/tinymce.svg#tinymce') format('svg');
|
1569
|
+
src: url('./fonts/tinymce.woff') format('woff'),
|
1570
|
+
url('./fonts/tinymce.ttf') format('truetype'),
|
1571
|
+
url('./fonts/tinymce.svg#tinymce') format('svg');
|
1572
1572
|
font-weight: normal;
|
1573
1573
|
font-style: normal;
|
1574
1574
|
}
|
1575
1575
|
|
1576
1576
|
@font-face {
|
1577
1577
|
font-family: 'tinymce-small';
|
1578
|
-
src: url('fonts/tinymce-small.woff') format('woff'),
|
1579
|
-
url('fonts/tinymce-small.ttf') format('truetype'),
|
1580
|
-
url('fonts/tinymce-small.svg#tinymce') format('svg');
|
1578
|
+
src: url('./fonts/tinymce-small.woff') format('woff'),
|
1579
|
+
url('./fonts/tinymce-small.ttf') format('truetype'),
|
1580
|
+
url('./fonts/tinymce-small.svg#tinymce') format('svg');
|
1581
1581
|
font-weight: normal;
|
1582
1582
|
font-style: normal;
|
1583
1583
|
}
|
@@ -28,7 +28,7 @@ module Alchemy
|
|
28
28
|
after_assign { |f| write_attribute(:file_mime_type, f.mime_type) }
|
29
29
|
end
|
30
30
|
|
31
|
-
stampable stamper_class_name: Alchemy.
|
31
|
+
stampable stamper_class_name: Alchemy.user_class.name
|
32
32
|
|
33
33
|
has_many :essence_files, class_name: 'Alchemy::EssenceFile', foreign_key: 'attachment_id'
|
34
34
|
has_many :contents, through: :essence_files
|
@@ -28,7 +28,7 @@ module Alchemy
|
|
28
28
|
belongs_to :element, touch: true, inverse_of: :contents
|
29
29
|
has_one :page, through: :element
|
30
30
|
|
31
|
-
stampable stamper_class_name: Alchemy.
|
31
|
+
stampable stamper_class_name: Alchemy.user_class.name
|
32
32
|
|
33
33
|
acts_as_list scope: [:element_id]
|
34
34
|
|
@@ -58,7 +58,7 @@ module Alchemy
|
|
58
58
|
#
|
59
59
|
acts_as_list scope: [:page_id, :fixed, :parent_element_id]
|
60
60
|
|
61
|
-
stampable stamper_class_name: Alchemy.
|
61
|
+
stampable stamper_class_name: Alchemy.user_class.name
|
62
62
|
|
63
63
|
has_many :contents, -> { order(:position) }, dependent: :destroy, inverse_of: :element
|
64
64
|
|
data/app/models/alchemy/node.rb
CHANGED
@@ -5,7 +5,7 @@ module Alchemy
|
|
5
5
|
VALID_URL_REGEX = /\A(\/|\D[a-z\+\d\.\-]+:)/
|
6
6
|
|
7
7
|
acts_as_nested_set scope: "language_id", touch: true
|
8
|
-
stampable stamper_class_name: Alchemy.
|
8
|
+
stampable stamper_class_name: Alchemy.user_class.name
|
9
9
|
|
10
10
|
belongs_to :site, class_name: "Alchemy::Site"
|
11
11
|
belongs_to :language, class_name: "Alchemy::Language"
|
data/app/models/alchemy/page.rb
CHANGED
@@ -74,7 +74,7 @@ module Alchemy
|
|
74
74
|
case_sensitive: false,
|
75
75
|
message: Alchemy.t("not a valid image")
|
76
76
|
|
77
|
-
stampable stamper_class_name: Alchemy.
|
77
|
+
stampable stamper_class_name: Alchemy.user_class.name
|
78
78
|
|
79
79
|
scope :named, ->(name) {
|
80
80
|
where("#{table_name}.name LIKE ?", "%#{name}%")
|
data/lib/alchemy/essence.rb
CHANGED
@@ -48,7 +48,7 @@ module Alchemy #:nodoc:
|
|
48
48
|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
49
49
|
attr_writer :validation_errors
|
50
50
|
include Alchemy::Essence::InstanceMethods
|
51
|
-
stampable stamper_class_name: Alchemy.
|
51
|
+
stampable stamper_class_name: Alchemy.user_class.name
|
52
52
|
validate :validate_ingredient, on: :update, if: -> { validations.any? }
|
53
53
|
|
54
54
|
has_one :content, as: :essence, class_name: "Alchemy::Content", inverse_of: :essence
|
data/lib/alchemy/resource.rb
CHANGED
@@ -131,21 +131,23 @@ module Alchemy
|
|
131
131
|
end
|
132
132
|
|
133
133
|
def namespaced_resource_name
|
134
|
-
@_namespaced_resource_name ||=
|
134
|
+
@_namespaced_resource_name ||= begin
|
135
|
+
namespaced_resources_name.to_s.singularize
|
136
|
+
end.to_sym # Rails >= 6.0.3.7 needs symbols in polymorphic routes
|
135
137
|
end
|
136
138
|
|
137
139
|
def namespaced_resources_name
|
138
140
|
@_namespaced_resources_name ||= begin
|
139
141
|
resource_name_array = resource_array.dup
|
140
142
|
resource_name_array.delete(engine_name) if in_engine?
|
141
|
-
resource_name_array.join(
|
142
|
-
end
|
143
|
+
resource_name_array.join("_")
|
144
|
+
end.to_sym # Rails >= 6.0.3.7 needs symbols in polymorphic routes
|
143
145
|
end
|
144
146
|
|
145
147
|
def namespace_for_scope
|
146
148
|
namespace_array = namespace_diff
|
147
149
|
namespace_array.delete(engine_name) if in_engine?
|
148
|
-
namespace_array
|
150
|
+
namespace_array.map(&:to_sym) # Rails >= 6.0.3.7 needs symbols in polymorphic routes
|
149
151
|
end
|
150
152
|
|
151
153
|
# Returns an array of underscored association names
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative 'tasks/picture_gallery_upgrader'
|
2
2
|
require_relative 'tasks/picture_gallery_migration'
|
3
|
+
require_relative 'tasks/fixed_element_name_finder'
|
3
4
|
require_relative 'tasks/cells_upgrader'
|
4
5
|
require_relative 'tasks/cells_migration'
|
5
6
|
require_relative 'tasks/element_partial_name_variable_updater'
|
@@ -8,6 +8,7 @@ module Alchemy::Upgrader::Tasks
|
|
8
8
|
def migrate_cells
|
9
9
|
if ActiveRecord::Base.connection.data_source_exists?('alchemy_cells')
|
10
10
|
cells = Cell.all
|
11
|
+
@fixed_element_name_finder = FixedElementNameFinder.new
|
11
12
|
|
12
13
|
if cells.any?
|
13
14
|
cells.each do |cell|
|
@@ -26,7 +27,7 @@ module Alchemy::Upgrader::Tasks
|
|
26
27
|
def migrate_cell!(cell)
|
27
28
|
# bust element definitions insta cache
|
28
29
|
Alchemy::Element.instance_variable_set('@definitions', nil)
|
29
|
-
fixed_element = Alchemy::Element.find_or_initialize_by(fixed: true, name: cell.name, page: cell.page)
|
30
|
+
fixed_element = Alchemy::Element.find_or_initialize_by(fixed: true, name: @fixed_element_name_finder.call(cell.name), page: cell.page)
|
30
31
|
elements = Alchemy::Element.where(cell_id: cell.id).order(position: :asc)
|
31
32
|
|
32
33
|
if fixed_element.new_record?
|
@@ -72,12 +72,13 @@ module Alchemy::Upgrader::Tasks
|
|
72
72
|
|
73
73
|
def convert_cell_config
|
74
74
|
puts '-- Converting cells into unique fixed nestable elements.'
|
75
|
+
fixed_element_name_finder = FixedElementNameFinder.new
|
75
76
|
|
76
77
|
YAML.load_file(cells_config_file).each do |cell|
|
77
78
|
append_to_file Rails.root.join('config', 'alchemy', 'elements.yml') do
|
78
79
|
<<-CELL.strip_heredoc
|
79
80
|
|
80
|
-
- name: #{cell['name']}
|
81
|
+
- name: #{fixed_element_name_finder.call(cell['name'])}
|
81
82
|
fixed: true
|
82
83
|
unique: true
|
83
84
|
nestable_elements: [#{cell['elements'].join(', ')}]
|
@@ -128,8 +129,25 @@ module Alchemy::Upgrader::Tasks
|
|
128
129
|
puts "-- Update render_cell calls"
|
129
130
|
Dir.glob("#{alchemy_views_folder}/**/*").each do |view|
|
130
131
|
next if File.directory?(view)
|
131
|
-
|
132
|
-
|
132
|
+
# <%= render_cell 'test' %>
|
133
|
+
# <%= render_cell('test') %>
|
134
|
+
# <%= render_cell("test", options: true) %>
|
135
|
+
content = File.binread(view)
|
136
|
+
content.gsub!(/render_cell([\s(]+)(['":])(\w+)([^\w])(.*?)/) do
|
137
|
+
element_name = CellNameMigrator.call($3)
|
138
|
+
"render_elements#{$1}only: #{$2}#{element_name}#{$4}, fixed: true#{$5}"
|
139
|
+
end
|
140
|
+
|
141
|
+
# <%= render_elements from_cell: 'page_intro' %>
|
142
|
+
# <%= render_elements testing: 'blubb', from_cell: :page_intro %>
|
143
|
+
# <%= render_elements from_cell: "page_intro", testing: 'blubb' %>
|
144
|
+
# <%= render_elements(from_cell: "page_intro", testing: 'blubb') %>
|
145
|
+
# <%= render_elements(testing: 'blubb', from_cell: "page_intro") %>
|
146
|
+
content.gsub!(/render_elements(.*?)from_cell[:\s=>]+([:'"])(\w+)(['"]?)(.*)/) do
|
147
|
+
element_name = CellNameMigrator.call($3)
|
148
|
+
"render_elements#{$1}only: #{$2}#{element_name}#{$4}, fixed: true#{$5}"
|
149
|
+
end
|
150
|
+
File.open(view, "wb") { |file| file.write(content) }
|
133
151
|
end
|
134
152
|
end
|
135
153
|
|
@@ -11,10 +11,14 @@ module Alchemy::Upgrader::Tasks
|
|
11
11
|
puts "-- Update element views local variable to partial name"
|
12
12
|
Dir.glob("#{elements_view_folder}/*_view.*").each do |view|
|
13
13
|
variable_name = File.basename(view).gsub(/^_([\w-]*)\..*$/, '\1')
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
%w[
|
15
|
+
cache
|
16
|
+
render_essence_view_by_name
|
17
|
+
element_view_for
|
18
|
+
].each do |method_name|
|
19
|
+
gsub_file(view, /#{method_name}([\s(]+)element([^\w])/, "#{method_name}\\1#{variable_name}\\2")
|
20
|
+
end
|
21
|
+
gsub_file(view, /([\s(%={]+)element([^\w:"'])/, "\\1#{variable_name}\\2")
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Alchemy::Upgrader::Tasks
|
2
|
+
class FixedElementNameFinder
|
3
|
+
|
4
|
+
def call(cell_name)
|
5
|
+
return cell_name if fixed_elements.include?(cell_name)
|
6
|
+
return "#{cell_name}_elements" if unfixed_elements.include?(cell_name)
|
7
|
+
cell_name
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def fixed_elements
|
13
|
+
@_fixed_element_names ||= begin
|
14
|
+
definitions.select { |element| element['fixed'] }.map { |element| element['name'] }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def unfixed_elements
|
19
|
+
@_unfixed_elements ||= begin
|
20
|
+
definitions.reject { |element| element['fixed'] }.map { |element| element['name'] }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def definitions
|
25
|
+
@_definitions ||= begin
|
26
|
+
elements_file_path = Rails.root.join('config', 'alchemy', 'elements.yml')
|
27
|
+
YAML.load_file(elements_file_path)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/alchemy/userstamp.rb
CHANGED
data/lib/alchemy/version.rb
CHANGED
@@ -60,15 +60,17 @@ namespace :alchemy do
|
|
60
60
|
def convert_to_nodes(children, node:)
|
61
61
|
children.each do |page|
|
62
62
|
has_children = page.children.any?
|
63
|
-
next unless page.visible || has_children
|
64
63
|
|
65
64
|
Alchemy::Deprecation.silence do
|
65
|
+
next unless page.visible || has_children
|
66
|
+
|
66
67
|
new_node = node.children.create!(
|
67
68
|
name: name_for_node(page),
|
68
69
|
page: page_for_node(page),
|
69
|
-
url: page.definition['redirects_to_external'] ? page.urlname : nil,
|
70
|
-
external: page.definition['redirects_to_external'] && Alchemy::Config.get(:open_external_links_in_new_tab),
|
71
|
-
language_id: page.language_id
|
70
|
+
url: !!page.definition['redirects_to_external'] ? page.urlname : nil,
|
71
|
+
external: !!page.definition['redirects_to_external'] && Alchemy::Config.get(:open_external_links_in_new_tab),
|
72
|
+
language_id: page.language_id,
|
73
|
+
site_id: page.language.site_id
|
72
74
|
)
|
73
75
|
print "."
|
74
76
|
if has_children
|
@@ -82,9 +84,8 @@ namespace :alchemy do
|
|
82
84
|
puts "\n- Converting #{menu_count} page #{'tree'.pluralize(menu_count)} into #{'menu'.pluralize(menu_count)}."
|
83
85
|
Alchemy::BaseRecord.transaction do
|
84
86
|
Alchemy::Language.all.each do |language|
|
85
|
-
|
86
|
-
|
87
|
-
root_node = Alchemy::Node.create(language: language, name: menu_name)
|
87
|
+
menu_name = 'main_menu'
|
88
|
+
root_node = Alchemy::Node.create(language: language, name: menu_name, site: language.site, external: false)
|
88
89
|
language.pages.language_roots.each do |root_page|
|
89
90
|
convert_to_nodes(root_page.children, node: root_node)
|
90
91
|
end
|
@@ -143,7 +143,11 @@ namespace :alchemy do
|
|
143
143
|
desc "Upgrade Alchemy to v4.6"
|
144
144
|
task "4.6" => [
|
145
145
|
"alchemy:upgrade:prepare",
|
146
|
-
|
146
|
+
"alchemy:upgrade:4.6:run",
|
147
|
+
"alchemy:upgrade:4.6:todo",
|
148
|
+
] do
|
149
|
+
Alchemy::Upgrader.display_todos
|
150
|
+
end
|
147
151
|
|
148
152
|
namespace "4.6" do
|
149
153
|
task run: []
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.6.
|
4
|
+
version: 4.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas von Deyen
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
- Hendrik Mans
|
11
11
|
- Carsten Fregin
|
12
12
|
- Martin Meyerhoff
|
13
|
-
autorequire:
|
13
|
+
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2021-11-17 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: active_model_serializers
|
@@ -1110,6 +1110,7 @@ files:
|
|
1110
1110
|
- lib/alchemy/upgrader/tasks/cells_upgrader.rb
|
1111
1111
|
- lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb
|
1112
1112
|
- lib/alchemy/upgrader/tasks/element_views_updater.rb
|
1113
|
+
- lib/alchemy/upgrader/tasks/fixed_element_name_finder.rb
|
1113
1114
|
- lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb
|
1114
1115
|
- lib/alchemy/upgrader/tasks/picture_gallery_migration.rb
|
1115
1116
|
- lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb
|
@@ -1244,8 +1245,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1244
1245
|
version: '0'
|
1245
1246
|
requirements:
|
1246
1247
|
- ImageMagick (libmagick), v6.6 or greater.
|
1247
|
-
rubygems_version: 3.
|
1248
|
-
signing_key:
|
1248
|
+
rubygems_version: 3.1.6
|
1249
|
+
signing_key:
|
1249
1250
|
specification_version: 4
|
1250
1251
|
summary: A powerful, userfriendly and flexible CMS for Rails 5
|
1251
1252
|
test_files: []
|