alchemy_cms 5.0.7 → 5.0.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8314deb3da46220c3ae380d6cfbcf4bf9c5ae71c89f57070c80854c852902fa0
4
- data.tar.gz: c6f0b239474a7f9117b7178880efddcfd2072aa7b625ea023ca461e286041721
3
+ metadata.gz: af554839b7abeaeb5b0bc5a7d7bacc1aaa44973b0e1c44460f984d46447c6316
4
+ data.tar.gz: aae5090361517ba5b64436977841afcd9c7f111fc4c4be224a6c01e13e73cf8b
5
5
  SHA512:
6
- metadata.gz: 1feceb8caa6386c912ce7eee42dc23f3cc7defc7c2be23a9b7760f8677e838691ca13ea5dfad1ae68a92c15c88493d20a3b54847b66886b2c7cc298e37f24ca5
7
- data.tar.gz: b63b5df5f228e82f125273fbb29dfca421b57c06d9bdb111031f04e81942e6aacf7b3c6f593cfed0b7a7969f89175d221ed352bbe296062fb80ddf6647340eee
6
+ metadata.gz: 0efe007dba193d3637552279f109ec785e038a557c3ec022415a9057ae0cc0723e054cdc82c12e0b352026442306974fe8fbcc36d3cf8fd0b0be5896b610016d
7
+ data.tar.gz: 38d0439955c53b1f5eddbf7230d8eb23d730e7a4fd2cd2645132e239ab284a5987633359d7b89060a8cf5d30577822421e682610e503641a5c10702df5780f77
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## 5.0.10 (2022-02-28)
2
+
3
+ - Add crop_resize Dragonfly processor ([tvdeyen](https://github.com/tvdeyen))
4
+
5
+ ## 5.0.9 (2021-11-24)
6
+
7
+ - Adjust tinymce skin assets urls again ([tvdeyen](https://github.com/tvdeyen))
8
+
9
+ ## 5.0.8 (2021-11-17)
10
+
11
+ - Set stampable user_class_name without root identifier ([tvdeyen](https://github.com/tvdeyen))
12
+ - Use relative path for tinymce font-face ([tvdeyen](https://github.com/tvdeyen))
13
+
1
14
  ## 5.0.7 (2021-10-26)
2
15
 
3
16
  - Make sure to install correct npm package ([tvdeyen](https://github.com/tvdeyen))
data/alchemy_cms.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |gem|
23
23
  gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.1']
24
24
  gem.add_runtime_dependency 'cancancan', ['>= 2.1', '< 4.0']
25
25
  gem.add_runtime_dependency 'coffee-rails', ['~> 4.0', '< 5.0']
26
- gem.add_runtime_dependency 'dragonfly', ['~> 1.0', '>= 1.0.7', '< 1.4.0']
26
+ gem.add_runtime_dependency 'dragonfly', ['~> 1.4']
27
27
  gem.add_runtime_dependency 'dragonfly_svg', ['~> 0.0.4']
28
28
  gem.add_runtime_dependency 'gutentag', ['~> 2.2', '>= 2.2.1']
29
29
  gem.add_runtime_dependency 'handlebars_assets', ['~> 0.23']
@@ -30,7 +30,7 @@ td,th {
30
30
 
31
31
  .mce-object {
32
32
  border: 1px dotted #3a3a3a;
33
- background: #d5d5d5 url(img/object.gif) no-repeat center;
33
+ background: #d5d5d5 url('tinymce/skins/alchemy/fonts/img/object.gif') no-repeat center;
34
34
  }
35
35
 
36
36
  .mce-pagebreak {
@@ -55,7 +55,7 @@ td,th {
55
55
  width: 9px!important;
56
56
  height: 9px!important;
57
57
  border: 1px dotted #3a3a3a;
58
- background: #d5d5d5 url(img/anchor.gif) no-repeat center;
58
+ background: #d5d5d5 url('tinymce/skins/alchemy/fonts/img/anchor.gif') no-repeat center;
59
59
  }
60
60
 
61
61
  .mce-nbsp {
@@ -77,7 +77,7 @@ hr {
77
77
  }
78
78
 
79
79
  .mce-spellchecker-word {
80
- background: url(img/wline.gif) repeat-x bottom left;
80
+ background: url('tinymce/skins/alchemy/fonts/img/wline.gif') repeat-x bottom left;
81
81
  cursor: default;
82
82
  }
83
83
 
@@ -1561,23 +1561,23 @@ i.mce-i-resize {
1561
1561
  opacity: 0.6;
1562
1562
  filter: alpha(opacity=60);
1563
1563
  zoom: 1;
1564
- background: #fff url('img/loader.gif') no-repeat center center;
1564
+ background: #fff url('tinymce/skins/alchemy/fonts/img/loader.gif') no-repeat center center;
1565
1565
  }
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('tinymce/skins/alchemy/fonts/tinymce.woff') format('woff'),
1570
+ url('tinymce/skins/alchemy/fonts/tinymce.ttf') format('truetype'),
1571
+ url('tinymce/skins/alchemy/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('tinymce/skins/alchemy/fonts/tinymce-small.woff') format('woff'),
1579
+ url('tinymce/skins/alchemy/fonts/tinymce-small.ttf') format('truetype'),
1580
+ url('tinymce/skins/alchemy/fonts/tinymce-small.svg#tinymce') format('svg');
1581
1581
  font-weight: normal;
1582
1582
  font-style: normal;
1583
1583
  }
@@ -40,9 +40,7 @@ module Alchemy
40
40
  def exception_handler(error)
41
41
  exception_logger(error)
42
42
  show_error_notice(error)
43
- if defined?(Airbrake)
44
- notify_airbrake(error) unless Rails.env.development? || Rails.env.test?
45
- end
43
+ notify_error_tracker(error)
46
44
  end
47
45
 
48
46
  # Displays an error notice in the Alchemy backend.
@@ -147,6 +145,14 @@ module Alchemy
147
145
  site
148
146
  end
149
147
  end
148
+
149
+ def notify_error_tracker(exception)
150
+ if ::Alchemy::ErrorTracking.notification_handler.respond_to?(:call)
151
+ ::Alchemy::ErrorTracking.notification_handler.call(exception)
152
+ else
153
+ Rails.logger.warn("To use the Alchemy::ErrorTracking.notification_handler, it must respond to #call.")
154
+ end
155
+ end
150
156
  end
151
157
  end
152
158
  end
@@ -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.user_class_name
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
@@ -60,7 +60,7 @@ module Alchemy
60
60
  #
61
61
  acts_as_list scope: [:page_id, :fixed, :parent_element_id]
62
62
 
63
- stampable stamper_class_name: Alchemy.user_class_name
63
+ stampable stamper_class_name: Alchemy.user_class.name
64
64
 
65
65
  has_many :contents, dependent: :destroy, inverse_of: :element
66
66
 
@@ -7,7 +7,7 @@ module Alchemy
7
7
  before_destroy :check_if_related_essence_nodes_present
8
8
 
9
9
  acts_as_nested_set scope: "language_id", touch: true
10
- stampable stamper_class_name: Alchemy.user_class_name
10
+ stampable stamper_class_name: Alchemy.user_class.name
11
11
 
12
12
  belongs_to :language, class_name: "Alchemy::Language"
13
13
  belongs_to :page, class_name: "Alchemy::Page", optional: true, inverse_of: :nodes
@@ -82,7 +82,7 @@ module Alchemy
82
82
 
83
83
  acts_as_nested_set(dependent: :destroy, scope: [:layoutpage, :language_id])
84
84
 
85
- stampable stamper_class_name: Alchemy.user_class_name
85
+ stampable stamper_class_name: Alchemy.user_class.name
86
86
 
87
87
  belongs_to :language
88
88
 
@@ -241,12 +241,12 @@ module Alchemy
241
241
  # Use imagemagick to custom crop an image. Uses -thumbnail for better performance when resizing.
242
242
  #
243
243
  def xy_crop_resize(dimensions, top_left, crop_dimensions, upsample)
244
- crop_argument = "-crop #{dimensions_to_string(crop_dimensions)}"
244
+ crop_argument = dimensions_to_string(crop_dimensions)
245
245
  crop_argument += "+#{top_left[:x]}+#{top_left[:y]}"
246
246
 
247
- resize_argument = "-resize #{dimensions_to_string(dimensions)}"
247
+ resize_argument = dimensions_to_string(dimensions)
248
248
  resize_argument += ">" unless upsample
249
- image_file.convert "#{crop_argument} #{resize_argument}"
249
+ image_file.crop_resize(crop_argument, resize_argument)
250
250
  end
251
251
 
252
252
  # Used when centercropping.
@@ -93,7 +93,7 @@ module Alchemy
93
93
  case_sensitive: false,
94
94
  message: Alchemy.t("not a valid image")
95
95
 
96
- stampable stamper_class_name: Alchemy.user_class_name
96
+ stampable stamper_class_name: Alchemy.user_class.name
97
97
 
98
98
  scope :named, ->(name) { where("#{table_name}.name LIKE ?", "%#{name}%") }
99
99
  scope :recent, -> { where("#{table_name}.created_at > ?", Time.current - 24.hours).order(:created_at) }
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require "dragonfly_svg"
3
+ require "alchemy/dragonfly/processors/crop_resize"
3
4
 
4
5
  # Logger
5
6
  Dragonfly.logger = Rails.logger
@@ -9,3 +10,10 @@ if defined?(ActiveRecord::Base)
9
10
  ActiveRecord::Base.extend Dragonfly::Model
10
11
  ActiveRecord::Base.extend Dragonfly::Model::Validations
11
12
  end
13
+
14
+ # Dragonfly 1.4.0 only allows `quality` as argument to `encode`
15
+ Dragonfly::ImageMagick::Processors::Encode::WHITELISTED_ARGS << "flatten"
16
+
17
+ Rails.application.config.after_initialize do
18
+ Dragonfly.app(:alchemy_pictures).add_processor(:crop_resize, Alchemy::Dragonfly::Processors::CropResize.new)
19
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "dragonfly/image_magick/commands"
4
+
5
+ module Alchemy
6
+ module Dragonfly
7
+ module Processors
8
+ class CropResize
9
+ include ::Dragonfly::ParamValidators
10
+
11
+ IS_CROP_ARGUMENT = ->(args_string) {
12
+ args_string.match?(::Dragonfly::ImageMagick::Processors::Thumb::CROP_GEOMETRY)
13
+ }
14
+
15
+ IS_RESIZE_ARGUMENT = ->(args_string) {
16
+ args_string.match?(::Dragonfly::ImageMagick::Processors::Thumb::RESIZE_GEOMETRY)
17
+ }
18
+
19
+ def call(content, crop_argument, resize_argument)
20
+ validate!(crop_argument, &IS_CROP_ARGUMENT)
21
+ validate!(resize_argument, &IS_RESIZE_ARGUMENT)
22
+ ::Dragonfly::ImageMagick::Commands.convert(
23
+ content,
24
+ "-crop #{crop_argument} -resize #{resize_argument}"
25
+ )
26
+ end
27
+
28
+ def update_url(attrs, _args = "", opts = {})
29
+ format = opts["format"]
30
+ attrs.ext = format if format
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -43,5 +43,12 @@ module Alchemy
43
43
  config.after_initialize do
44
44
  require_relative "./userstamp"
45
45
  end
46
+
47
+ initializer "alchemy.error_tracking" do
48
+ if defined?(Airbrake)
49
+ require_relative "error_tracking/airbrake_handler"
50
+ Alchemy::ErrorTracking.notification_handler = Alchemy::ErrorTracking::AirbrakeHandler
51
+ end
52
+ end
46
53
  end
47
54
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Alchemy
4
+ module ErrorTracking
5
+ class AirbrakeHandler < BaseHandler
6
+ def self.call(exception)
7
+ return if ["development", "test"].include?(Rails.env)
8
+
9
+ notify_airbrake(exception)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Alchemy
4
+ module ErrorTracking
5
+ class BaseHandler
6
+ def self.call(exception)
7
+ # implement your own notification method
8
+ end
9
+ end
10
+
11
+ mattr_accessor :notification_handler
12
+ @@notification_handler = BaseHandler
13
+ end
14
+ end
@@ -7,6 +7,6 @@
7
7
  if Alchemy.user_class < ActiveRecord::Base
8
8
  Alchemy.user_class.class_eval do
9
9
  model_stamper
10
- stampable stamper_class_name: Alchemy.user_class_name
10
+ stampable stamper_class_name: Alchemy.user_class.name
11
11
  end
12
12
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alchemy
4
- VERSION = "5.0.7"
4
+ VERSION = "5.0.10"
5
5
 
6
6
  def self.version
7
7
  VERSION
data/lib/alchemy_cms.rb CHANGED
@@ -38,6 +38,7 @@ require_relative "alchemy/configuration_methods"
38
38
  require_relative "alchemy/controller_actions"
39
39
  require_relative "alchemy/deprecation"
40
40
  require_relative "alchemy/elements_finder"
41
+ require_relative "alchemy/error_tracking"
41
42
  require_relative "alchemy/errors"
42
43
  require_relative "alchemy/essence"
43
44
  require_relative "alchemy/filetypes"
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alchemy_cms/admin",
3
- "version": "5.0.7",
3
+ "version": "5.0.10",
4
4
  "description": "AlchemyCMS",
5
5
  "browser": "package/admin.js",
6
6
  "files": [
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: 5.0.7
4
+ version: 5.0.10
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: 2021-10-26 00:00:00.000000000 Z
16
+ date: 2022-02-28 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: active_model_serializers
@@ -109,26 +109,14 @@ dependencies:
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: '1.0'
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: 1.0.7
116
- - - "<"
117
- - !ruby/object:Gem::Version
118
- version: 1.4.0
112
+ version: '1.4'
119
113
  type: :runtime
120
114
  prerelease: false
121
115
  version_requirements: !ruby/object:Gem::Requirement
122
116
  requirements:
123
117
  - - "~>"
124
118
  - !ruby/object:Gem::Version
125
- version: '1.0'
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: 1.0.7
129
- - - "<"
130
- - !ruby/object:Gem::Version
131
- version: 1.4.0
119
+ version: '1.4'
132
120
  - !ruby/object:Gem::Dependency
133
121
  name: dragonfly_svg
134
122
  requirement: !ruby/object:Gem::Requirement
@@ -1085,8 +1073,11 @@ files:
1085
1073
  - lib/alchemy/configuration_methods.rb
1086
1074
  - lib/alchemy/controller_actions.rb
1087
1075
  - lib/alchemy/deprecation.rb
1076
+ - lib/alchemy/dragonfly/processors/crop_resize.rb
1088
1077
  - lib/alchemy/elements_finder.rb
1089
1078
  - lib/alchemy/engine.rb
1079
+ - lib/alchemy/error_tracking.rb
1080
+ - lib/alchemy/error_tracking/airbrake_handler.rb
1090
1081
  - lib/alchemy/errors.rb
1091
1082
  - lib/alchemy/essence.rb
1092
1083
  - lib/alchemy/filetypes.rb
@@ -1274,7 +1265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1274
1265
  version: '0'
1275
1266
  requirements:
1276
1267
  - ImageMagick (libmagick), v6.6 or greater.
1277
- rubygems_version: 3.2.28
1268
+ rubygems_version: 3.1.6
1278
1269
  signing_key:
1279
1270
  specification_version: 4
1280
1271
  summary: A powerful, userfriendly and flexible CMS for Rails