alchemy_cms 7.1.5 → 7.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96768643fc124e7d3faf032a61ec6b1cb2d737a5582f146990a63809f5f12814
4
- data.tar.gz: 8bc4f8f2d7c4416562ee1259601919f48867b91b4479130d24975c900ecc561b
3
+ metadata.gz: 8c18c4c0bf8d1eca13517eb239dd21c2995e35078d4bf652ac8ad6ad60fe0604
4
+ data.tar.gz: 0461d163fbeacc70b4949c82f363eaca684a380b0a6a97668bd0145c30248740
5
5
  SHA512:
6
- metadata.gz: 2b79394f97b700fa5e59fa242c50d9b296b3de5abcd8e35d483a609fc7d44329ab0e5cdc9d350f8e2891fea81a2f5627fe1a2a08436d1fb3f56ef3e22d209f08
7
- data.tar.gz: 5e018ef946f2185733751c6d2e4e62248ce2af578c2cefec7417932b1d8153522ec6f0c684451989291c6a1361a49193295e6c4ae1f3218fbe9c5398d76bb565
6
+ metadata.gz: 350a8d8456af8acf413ebd125b974f95edeecf5abe4b3cad1cd6ef9515f19d3371905b63074250dd2a2f7349b0c0aae679d71f7f81c2b661190acbc8ed8a66c8
7
+ data.tar.gz: a90eb673042a0b72f67f75dcd02dec0b95aaae850c6d45d250d3d6f0d8f03ce230cb081e05e95ced98ccf8c7d86fd278d3dca31117b9dc566e52f92c8144c1bb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 7.1.7 (2024-04-12)
4
+
5
+ - [7.1-stable] Fix Ingredient Boolean View [#2838](https://github.com/AlchemyCMS/alchemy_cms/pull/2838) ([alchemycms-bot](https://github.com/alchemycms-bot))
6
+ - [7.1-stable] Nullify Ingredients::Page on Page destroy [#2831](https://github.com/AlchemyCMS/alchemy_cms/pull/2831) ([alchemycms-bot](https://github.com/alchemycms-bot))
7
+ - [7.1] Reload preview window (again) after element create [#2826](https://github.com/AlchemyCMS/alchemy_cms/pull/2826) ([tvdeyen](https://github.com/tvdeyen))
8
+ - [7.1-stable] Fix module error [#2822](https://github.com/AlchemyCMS/alchemy_cms/pull/2822) ([alchemycms-bot](https://github.com/alchemycms-bot))
9
+ - [7.1-stable] Mark ingredient output as html_safe [#2782](https://github.com/AlchemyCMS/alchemy_cms/pull/2782) ([alchemycms-bot](https://github.com/alchemycms-bot))
10
+
11
+ ## 7.1.6 (2024-03-05)
12
+
13
+ - [7.1-stable] Do not include timezone in datepickers only displaying date [#2768](https://github.com/AlchemyCMS/alchemy_cms/pull/2768) ([alchemycms-bot](https://github.com/alchemycms-bot))
14
+
3
15
  ## 7.1.5 (2024-02-29)
4
16
 
5
17
  - [7.1-stable] Fix taggable uniqueness in tags admin table [#2764](https://github.com/AlchemyCMS/alchemy_cms/pull/2764) ([alchemycms-bot](https://github.com/alchemycms-bot))
data/Gemfile CHANGED
@@ -59,3 +59,5 @@ end
59
59
  gem "web-console", "~> 4.2", group: :development
60
60
 
61
61
  gem "rails_live_reload", "~> 0.3.5"
62
+
63
+ gem "gem-release", "~> 2.2"
@@ -4,7 +4,7 @@ module Alchemy
4
4
  def call
5
5
  content_tag(:audio, **html_options) do
6
6
  tag(:source, src: src, type: type)
7
- end
7
+ end.html_safe
8
8
  end
9
9
 
10
10
  def render?
@@ -16,7 +16,7 @@ module Alchemy
16
16
  end
17
17
 
18
18
  def call
19
- value
19
+ value.html_safe
20
20
  end
21
21
 
22
22
  def render?
@@ -2,7 +2,7 @@ module Alchemy
2
2
  module Ingredients
3
3
  class BooleanView < BaseView
4
4
  def call
5
- Alchemy.t(value, scope: "ingredient_values.boolean")
5
+ Alchemy.t(value.to_s, scope: "ingredient_values.boolean").html_safe
6
6
  end
7
7
 
8
8
  def render?
@@ -15,7 +15,7 @@ module Alchemy
15
15
  ingredient.value.to_s(:rfc822)
16
16
  else
17
17
  ::I18n.l(ingredient.value, format: date_format)
18
- end
18
+ end.html_safe
19
19
  end
20
20
  end
21
21
  end
@@ -23,7 +23,7 @@ module Alchemy
23
23
  class: ingredient.css_class.presence,
24
24
  title: ingredient.title.presence
25
25
  }.merge(html_options)
26
- )
26
+ ).html_safe
27
27
  end
28
28
 
29
29
  def render?
@@ -7,13 +7,22 @@ module Alchemy
7
7
  end
8
8
 
9
9
  def call
10
- content_tag "h#{@level || ingredient.level}",
11
- ingredient.value,
12
- id: ingredient.dom_id.presence,
13
- class: [
14
- ingredient.size ? "h#{ingredient.size}" : nil,
15
- html_options[:class]
16
- ]
10
+ content_tag tag_name, id: dom_id, class: css_classes do
11
+ ingredient.value
12
+ end.html_safe
13
+ end
14
+
15
+ private
16
+
17
+ def tag_name = "h#{@level || ingredient.level}"
18
+
19
+ def dom_id = ingredient.dom_id.presence
20
+
21
+ def css_classes
22
+ [
23
+ ingredient.size ? "h#{ingredient.size}" : nil,
24
+ html_options[:class]
25
+ ]
17
26
  end
18
27
  end
19
28
  end
@@ -12,7 +12,7 @@ module Alchemy
12
12
  end
13
13
 
14
14
  def call
15
- link_to(link_text, value, {target: link_target}.merge(html_options))
15
+ link_to(link_text, value, {target: link_target}.merge(html_options)).html_safe
16
16
  end
17
17
 
18
18
  private
@@ -4,7 +4,7 @@ module Alchemy
4
4
  delegate :page, to: :ingredient
5
5
 
6
6
  def call
7
- link_to page.name, alchemy.show_page_path(urlname: page.urlname)
7
+ link_to(page.name, alchemy.show_page_path(urlname: page.urlname)).html_safe
8
8
  end
9
9
 
10
10
  def render?
@@ -57,7 +57,7 @@ module Alchemy
57
57
  content_tag(:figure, output, {class: ingredient.css_class.presence}.merge(html_options))
58
58
  else
59
59
  output
60
- end
60
+ end.html_safe
61
61
  end
62
62
 
63
63
  private
@@ -15,7 +15,7 @@ module Alchemy
15
15
  ingredient.stripped_body
16
16
  else
17
17
  value.to_s.html_safe
18
- end
18
+ end.html_safe
19
19
  end
20
20
  end
21
21
  end
@@ -24,7 +24,7 @@ module Alchemy
24
24
  target: ((link_target == "blank") ? "_blank" : nil),
25
25
  data: {link_target: link_target}
26
26
  }.merge(html_options))
27
- end
27
+ end.html_safe
28
28
  end
29
29
 
30
30
  private
@@ -6,7 +6,7 @@ module Alchemy
6
6
  def call
7
7
  content_tag(:video, html_options) do
8
8
  tag(:source, src: src, type: attachment.file_mime_type)
9
- end
9
+ end.html_safe
10
10
  end
11
11
 
12
12
  def render?
@@ -13,14 +13,25 @@ class Datepicker extends AlchemyHTMLElement {
13
13
  }
14
14
 
15
15
  afterRender() {
16
+ this.flatpickr = flatpickr(
17
+ this.getElementsByTagName("input")[0],
18
+ this.flatpickrOptions
19
+ )
20
+ }
21
+
22
+ disconnected() {
23
+ this.flatpickr.destroy()
24
+ }
25
+
26
+ get flatpickrOptions() {
27
+ const enableTime = /time/.test(this.inputType)
16
28
  const options = {
17
29
  // alchemy_i18n supports `zh_CN` etc., but flatpickr only has two-letter codes (`zh`)
18
30
  locale: currentLocale().slice(0, 2),
19
31
  altInput: true,
20
32
  altFormat: translate(`formats.${this.inputType}`),
21
33
  altInputClass: "flatpickr-input",
22
- dateFormat: "Z",
23
- enableTime: /time/.test(this.inputType),
34
+ enableTime,
24
35
  noCalendar: this.inputType === "time",
25
36
  time_24hr: translate("formats.time_24hr"),
26
37
  onValueUpdate(_selectedDates, _dateStr, instance) {
@@ -28,11 +39,11 @@ class Datepicker extends AlchemyHTMLElement {
28
39
  }
29
40
  }
30
41
 
31
- this.flatpickr = flatpickr(this.getElementsByTagName("input")[0], options)
32
- }
42
+ if (enableTime) {
43
+ options.dateFormat = "Z"
44
+ }
33
45
 
34
- disconnected() {
35
- this.flatpickr.destroy()
46
+ return options
36
47
  }
37
48
  }
38
49
 
@@ -121,6 +121,8 @@ module Alchemy
121
121
  has_one :draft_version, -> { drafts }, class_name: "Alchemy::PageVersion"
122
122
  has_one :public_version, -> { published }, class_name: "Alchemy::PageVersion", autosave: -> { persisted? }
123
123
 
124
+ has_many :page_ingredients, class_name: "Alchemy::Ingredients::Page", foreign_key: :related_object_id, dependent: :nullify
125
+
124
126
  before_validation :set_language,
125
127
  if: -> { language.nil? }
126
128
 
@@ -28,6 +28,7 @@
28
28
 
29
29
  Alchemy.growl('<%= Alchemy.t(:successfully_added_element) %>');
30
30
  Alchemy.closeCurrentDialog();
31
+ Alchemy.reloadPreview();
31
32
 
32
33
  el = document.querySelector('#element_<%= @element.id %>');
33
34
  el.focusElement();
@@ -35,7 +35,7 @@ module Alchemy
35
35
  defined_controllers.concat(definition_hash["navigation"]["sub_navigation"].map { |x| x["controller"] })
36
36
  end
37
37
 
38
- validate_controllers_existence(defined_controllers)
38
+ validate_controllers_existence(defined_controllers, definition_hash)
39
39
  end
40
40
 
41
41
  @@alchemy_modules |= [definition_hash]
@@ -43,7 +43,7 @@ module Alchemy
43
43
 
44
44
  private
45
45
 
46
- def validate_controllers_existence(controllers)
46
+ def validate_controllers_existence(controllers, definition_hash)
47
47
  controllers.each do |controller_val|
48
48
  next if controller_val.blank?
49
49
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alchemy
4
- VERSION = "7.1.5"
4
+ VERSION = "7.1.7"
5
5
 
6
6
  def self.version
7
7
  VERSION
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: 7.1.5
4
+ version: 7.1.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: 2024-02-29 00:00:00.000000000 Z
16
+ date: 2024-04-12 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: actionmailer