alchemy_cms 3.6.2 → 3.6.7

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
- SHA1:
3
- metadata.gz: aa89fac8ccee2fe3971a90fa2674a8f6e25f81df
4
- data.tar.gz: a8179705ad6aedbaafb0910ddb22cfee157025c7
2
+ SHA256:
3
+ metadata.gz: 9a490428d0bd7ad0bc938fa1390975de5764e222fc4a6cde1cfccdaf13901d3f
4
+ data.tar.gz: e2297acd723cbef927d578306de473f3b20125801757c569a09774234d3ba128
5
5
  SHA512:
6
- metadata.gz: df863653927ec799671903857aea93c53ab3ebd2194eebf1f0cc045c4c64a1acb64715339c6a5e8a416bad84af6f4e3328fb097265737975a4c9d00bac5e6209
7
- data.tar.gz: 04b9ec7edeafae429eeb55c40059870e84f36e711e5fbe9d3470875b21374f1c65135ec82ccb25be9b2680ebe366bda5c039df758d58494ff397695472e813a3
6
+ metadata.gz: b364510cd94a41a52fdbbbc8543c99a478be43d90bda1d506ca87f11dbd8a93a069293b042b0a4774e314971a7b9c1823217d874deb9208582ab7a02f8750e56
7
+ data.tar.gz: a96c75c5bbc4a44daa3ad82ec26b005cbcf11920c695793935cd1a40683cb98497cd2bd255054687c554a1ff37d6abeb691f819fb90b375eefad78d1e4ed265a
data/.travis.yml CHANGED
@@ -1,13 +1,15 @@
1
1
  language: ruby
2
2
  sudo: false
3
+ services:
4
+ - mysql
5
+ - postgresql
3
6
  cache:
4
7
  bundler: true
5
8
  directories:
6
9
  - "travis_phantomjs"
7
10
  rvm:
8
- - 2.1
9
- - 2.2
10
- - 2.3.0
11
+ - 2.3
12
+ - 2.4
11
13
  branches:
12
14
  only:
13
15
  - 3.6-stable
@@ -20,7 +22,7 @@ before_install:
20
22
  - "if [ $(phantomjs --version) != '2.1.1' ]; then wget https://assets.membergetmember.co/software/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2; fi"
21
23
  - "if [ $(phantomjs --version) != '2.1.1' ]; then tar -xvf $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs; fi"
22
24
  - "phantomjs --version"
23
- - gem install bundler
25
+ - gem install bundler -v "< 2"
24
26
  before_script: bundle exec rake alchemy:spec:prepare
25
27
  script: bundle exec rspec
26
28
  after_success: bundle exec codeclimate-test-reporter
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Change Log
2
2
 
3
+ ## 3.6.7 (2021-04-13)
4
+
5
+ - Allow "data" key for module navigations
6
+
7
+ ## 3.6.6 (2020-10-08)
8
+
9
+ - Allow AwesomeNestedSet >= 3.0 [#1619](https://github.com/AlchemyCMS/alchemy_cms/pull/1619) by [tvdeyen](https://github.com/tvdeyen)
10
+
11
+ ## 3.6.5 (2018-05-08)
12
+
13
+ - Fix for drag'n'drop trashed elements into pages with cells [#1430](https://github.com/AlchemyCMS/alchemy_cms/pull/1430) by [tvdeyen](https://github.com/tvdeyen)
14
+
15
+ ## 3.6.4 (2018-04-23)
16
+
17
+ - Allows `Symbol`, `Regexp` and `Date` in all YAML config files [#1333](https://github.com/AlchemyCMS/alchemy_cms/pull/1333) by [robinboening](https://github.com/robinboening)
18
+
19
+ ## 3.6.3 (2017-10-24)
20
+
21
+ * Remove `:display` cancan alias [#1318](https://github.com/AlchemyCMS/alchemy_cms/pull/1318) by [tvdeyen](https://github.com/tvdeyen)
22
+
3
23
  ## 3.6.2 (2017-09-01)
4
24
 
5
25
  * Handle custom errors in `Alchemy::Picture#url` [#1305](https://github.com/AlchemyCMS/alchemy_cms/pull/1305) by [tvdeyen](https://github.com/tvdeyen)
data/Gemfile CHANGED
@@ -5,15 +5,16 @@ gemspec
5
5
  # Profiling
6
6
  gem 'rack-mini-profiler', group: :development, require: false
7
7
 
8
- gem 'sqlite3' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
8
+ gem 'sqlite3', '~> 1.3.6' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
9
9
  gem 'mysql2', '~> 0.3.18' if ENV['DB'] == 'mysql'
10
- gem 'pg' if ENV['DB'] == 'postgresql'
10
+ gem 'pg', '~> 0.21' if ENV['DB'] == 'postgresql'
11
11
  gem 'sassc-rails'
12
12
 
13
13
  group :development, :test do
14
14
  gem 'jasmine-rails', github: 'searls/jasmine-rails'
15
15
  gem 'jasmine-jquery-rails', github: 'travisjeffery/jasmine-jquery-rails'
16
16
  gem 'simplecov', require: false
17
+ gem 'sassc', '~> 2.1.0'
17
18
  if ENV['TRAVIS']
18
19
  gem 'codeclimate-test-reporter', '~> 1.0', require: false
19
20
  end
@@ -41,9 +42,3 @@ end
41
42
  group :development, :production do
42
43
  gem 'quiet_assets'
43
44
  end
44
-
45
- # We need this if we want to start the dummy app in production, ie on Teatro.io
46
- group :production do
47
- gem 'uglifier', '>= 1.0.3'
48
- gem 'therubyracer'
49
- end
data/alchemy_cms.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
21
21
  gem.add_runtime_dependency 'active_model_serializers', ['~> 0.9.0']
22
22
  gem.add_runtime_dependency 'acts_as_list', ['~> 0.3']
23
23
  gem.add_runtime_dependency 'acts-as-taggable-on', ['~> 4.0']
24
- gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.1']
24
+ gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.0']
25
25
  gem.add_runtime_dependency 'bourbon', ['~> 4.2']
26
26
  gem.add_runtime_dependency 'cancancan', ['~> 1.9']
27
27
  gem.add_runtime_dependency 'coffee-rails', ['~> 4.0']
@@ -145,7 +145,10 @@ module Alchemy
145
145
 
146
146
  def paste_element_from_clipboard
147
147
  @source_element = Element.find(element_from_clipboard['id'])
148
- new_attributes = {page_id: @page.id}
148
+ new_attributes = {
149
+ parent_element_id: params[:element][:parent_element_id],
150
+ page_id: @page.id
151
+ }
149
152
  if @page.can_have_cells?
150
153
  new_attributes = new_attributes.merge({cell_id: find_or_create_cell.try(:id)})
151
154
  end
@@ -56,7 +56,7 @@ module Alchemy
56
56
  private
57
57
 
58
58
  def read_yml_file
59
- ::YAML.safe_load(ERB.new(File.read(yml_file_path)).result, [], [], true) || []
59
+ ::YAML.safe_load(ERB.new(File.read(yml_file_path)).result, YAML_WHITELIST_CLASSES, [], true) || []
60
60
  end
61
61
 
62
62
  def yml_file_path
@@ -26,7 +26,7 @@ module Alchemy
26
26
  #
27
27
  def read_definitions_file
28
28
  if ::File.exist?(definitions_file_path)
29
- ::YAML.safe_load(ERB.new(File.read(definitions_file_path)).result, [Regexp, Date], [], true) || []
29
+ ::YAML.safe_load(ERB.new(File.read(definitions_file_path)).result, YAML_WHITELIST_CLASSES, [], true) || []
30
30
  else
31
31
  raise LoadError, "Could not find elements.yml file! Please run `rails generate alchemy:scaffold`"
32
32
  end
@@ -24,7 +24,7 @@ module Alchemy
24
24
  scope :published, -> { where(public: true) }
25
25
 
26
26
  # Callbacks
27
- before_create :create_default_language!, unless: -> { languages.any? }
27
+ before_create :create_default_language!
28
28
 
29
29
  # concerns
30
30
  include Alchemy::Site::Layout
@@ -10,7 +10,9 @@
10
10
  </li>
11
11
  <% end %>
12
12
  </ul>
13
- <div id="cell_for_other_elements" class="sortable_cell for_other_elements_cell">
13
+ <div id="cell_for_other_elements"
14
+ class="sortable_cell for_other_elements_cell"
15
+ data-droppable-elements="<%= @page.element_names_from_definition.join(' ') %>">
14
16
  <%= render partial: 'alchemy/admin/elements/element',
15
17
  collection: @page.elements.not_trashed.not_in_cell %>
16
18
  </div>
@@ -18,7 +20,7 @@
18
20
  <%= content_tag :div,
19
21
  id: "cell_#{cell.name}",
20
22
  class: ["sortable_cell", "#{cell.name}_cell"].join(' '),
21
- data: {'cell-id' => cell.id, 'data-droppable-elements' => cell.element_definitions.join(' ')} do %>
23
+ data: {'cell-id' => cell.id, 'droppable-elements' => cell.element_definitions.join(' ')} do %>
22
24
  <%= render partial: 'alchemy/admin/elements/element', collection: elements %>
23
25
  <% end %>
24
26
  <% end %>
@@ -11,7 +11,8 @@
11
11
  </div>
12
12
  <div id="paste_element_tab">
13
13
  <%= alchemy_form_for([:admin, @element]) do |f| %>
14
- <%= f.hidden_field(:page_id) %>
14
+ <%= f.hidden_field :page_id %>
15
+ <%= f.hidden_field :parent_element_id, value: @parent_element.try(:id) %>
15
16
  <div class="input select">
16
17
  <label for="paste_from_clipboard" class="control-label"><%= Alchemy.t("Element") %></label>
17
18
  <%= select_tag 'paste_from_clipboard',
@@ -1,5 +1,5 @@
1
1
  <% if can? *navigate_module(navigation) %>
2
- <%= content_tag :div, class: main_navigation_css_classes(navigation) do %>
2
+ <%= content_tag :div, class: main_navigation_css_classes(navigation), data: navigation["data"] do %>
3
3
  <%= link_to url_for_module(alchemy_module) do %>
4
4
  <% if navigation["image"] %>
5
5
  <%= image_tag(navigation["image"]) %>
@@ -46,7 +46,8 @@ module Alchemy
46
46
  # If it does not exist, or its empty, it returns an empty Hash.
47
47
  #
48
48
  def read_file(file)
49
- return YAML.load_file(file) || {} if File.exist?(file) # YAML.load_file returns false if file is empty.
49
+ YAML.safe_load(ERB.new(File.read(file)).result, YAML_WHITELIST_CLASSES, [], true) || {}
50
+ rescue Errno::ENOENT
50
51
  {}
51
52
  end
52
53
 
@@ -157,7 +157,7 @@ module Alchemy
157
157
  #
158
158
  def read_definitions_file
159
159
  if File.exist?(layouts_file_path)
160
- YAML.safe_load(ERB.new(File.read(layouts_file_path)).result, [Date], [], true) || []
160
+ YAML.safe_load(ERB.new(File.read(layouts_file_path)).result, YAML_WHITELIST_CLASSES, [], true) || []
161
161
  else
162
162
  raise LoadError, "Could not find page_layouts.yml file! Please run `rails generate alchemy:scaffold`"
163
163
  end
@@ -35,7 +35,6 @@ module Alchemy
35
35
  def alchemy_guest_user_rules
36
36
  can([:show, :download], Alchemy::Attachment) { |a| !a.restricted? }
37
37
  can :see, Alchemy::Page, restricted: false, visible: true
38
- can(:display, Alchemy::Picture) { |p| !p.restricted? }
39
38
 
40
39
  can :read, Alchemy::Content, Alchemy::Content.available.not_restricted do |c|
41
40
  c.public? && !c.restricted? && !c.trashed?
@@ -65,7 +64,6 @@ module Alchemy
65
64
  can [:show, :download], Alchemy::Attachment
66
65
  can :read, Alchemy::Page, Alchemy::Page.published, &:public?
67
66
  can :see, Alchemy::Page, restricted: true, visible: true
68
- can :display, Alchemy::Picture
69
67
 
70
68
  can :read, Alchemy::Content, Alchemy::Content.available do |c|
71
69
  c.public? && !c.trashed?
@@ -215,11 +213,6 @@ module Alchemy
215
213
  :unlock,
216
214
  :visit,
217
215
  to: :edit_content
218
-
219
- alias_action :show,
220
- :thumbnail,
221
- :zoom,
222
- to: :display
223
216
  end
224
217
 
225
218
  # Include the role specific permissions.
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
- VERSION = "3.6.2"
2
+ VERSION = "3.6.7"
3
3
 
4
4
  def self.version
5
5
  VERSION
data/lib/alchemy_cms.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # Instantiate the global Alchemy namespace
2
2
  module Alchemy
3
+ Alchemy::YAML_WHITELIST_CLASSES = %w(Symbol Date Regexp)
3
4
  end
4
5
 
5
6
  # Require globally used external libraries
@@ -32,7 +32,7 @@ module Alchemy
32
32
  end
33
33
 
34
34
  def load_alchemy_yaml(name)
35
- YAML.safe_load(ERB.new(File.read("#{Rails.root}/config/alchemy/#{name}")).result, [Regexp], [], true)
35
+ YAML.safe_load(ERB.new(File.read("#{Rails.root}/config/alchemy/#{name}")).result, YAML_WHITELIST_CLASSES, [], true)
36
36
  rescue Errno::ENOENT
37
37
  puts "\nERROR: Could not read config/alchemy/#{name} file. Please run: rails generate alchemy:scaffold"
38
38
  end
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: 3.6.2
4
+ version: 3.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2017-09-01 00:00:00.000000000 Z
16
+ date: 2021-04-13 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: active_model_serializers
@@ -63,14 +63,14 @@ dependencies:
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '3.1'
66
+ version: '3.0'
67
67
  type: :runtime
68
68
  prerelease: false
69
69
  version_requirements: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: '3.1'
73
+ version: '3.0'
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: bourbon
76
76
  requirement: !ruby/object:Gem::Requirement
@@ -995,7 +995,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
995
995
  requirements:
996
996
  - ImageMagick (libmagick), v6.6 or greater.
997
997
  rubyforge_project:
998
- rubygems_version: 2.6.11
998
+ rubygems_version: 2.7.6.2
999
999
  signing_key:
1000
1000
  specification_version: 4
1001
1001
  summary: A powerful, userfriendly and flexible CMS for Rails 4