katalyst-content 2.1.0 → 2.1.1

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: ccae8b137b15ca5142051b2de2e58f75c379ac79cf087d728c06bd8105e14ad3
4
- data.tar.gz: c4b2a9cb31491c6416c5dbf6d5b3fb6ca207cc9371f74f4c2ec7b594fc2ea699
3
+ metadata.gz: 8972c901b7463acaafc585438ac770f56a3636d6a82685bc875f20363b831089
4
+ data.tar.gz: 850d22ee22e8c82158fd655460c8e6eab91c6f03d13542392a18be38756b6543
5
5
  SHA512:
6
- metadata.gz: 8d678570d5099c8ab0536d50e4acf307b7bacf0d2c7daca2f70ab5342d718cbf2ace4cdfa22ce8500854139cbf4735ea074b653d2e69f729ce993ebf3a5a3df3
7
- data.tar.gz: d029ef1cd3e03e3ca064691e38f3768c7140fcbdc0e6778986d0657abe8c4c0e12277db82e55ddd06bef74cb2c65b5f8caf3eae9ca4a964c56fe660a1eaab6bb
6
+ metadata.gz: 8a11515dafad3e8c39c5fc1734d520612927c91ebdea98eeed913d1fdf4a5cbfbea8ecc993ae60175c068d89c4ac0f917f5918b05bfd5ca1ee2448c3fa734a2c
7
+ data.tar.gz: 41faa7d49f39de485e3372963ea472fd67e2a85b751d5021320705b3dbddccc6462fb75b78f5a57dfc733e5bc5d892f87cabd853c4ffb1773735d62afeb21ec4
@@ -25,6 +25,8 @@ module Katalyst
25
25
  if item.save
26
26
  render :update, locals: { editor:, item:, previous: @container.items.build(type: item.type) }
27
27
  else
28
+ store_attachments(item)
29
+
28
30
  render_editor status: :unprocessable_entity
29
31
  end
30
32
  end
@@ -38,6 +40,8 @@ module Katalyst
38
40
 
39
41
  render locals: { editor:, item:, previous: }
40
42
  else
43
+ store_attachments(item)
44
+
41
45
  render_editor status: :unprocessable_entity
42
46
  end
43
47
  end
@@ -78,6 +82,24 @@ module Katalyst
78
82
  def render_editor(**)
79
83
  render(:edit, locals: { item_editor: editor.item_editor(item:) }, **)
80
84
  end
85
+
86
+ # Ensure that any attachments are stored before the item is returned to
87
+ # the editor, so that uploads are not lost if the item is invalid.
88
+ #
89
+ # This mimics the behaviour of direct uploads without requiring the JS
90
+ # integration.
91
+ def store_attachments(item)
92
+ item.attachment_changes.each_value do |change|
93
+ case change
94
+ when ActiveStorage::Attached::Changes::CreateOne
95
+ change.upload
96
+ change.blob.save!
97
+ when ActiveStorage::Attached::Changes::CreateMany
98
+ change.upload
99
+ change.blobs.each(&:save!)
100
+ end
101
+ end
102
+ end
81
103
  end
82
104
  end
83
105
  end
@@ -4,6 +4,11 @@
4
4
 
5
5
  <div class="field">
6
6
  <%= form.label :image %>
7
+ <% if (image = form.object.image).attached? %>
8
+ <%= image.filename %>
9
+ <br>
10
+ <%= form.hidden_field :image, value: form.object.image.signed_id %>
11
+ <% end %>
7
12
  <%= form.file_field :image %>
8
13
  </div>
9
14
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katalyst-content
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katalyst Interactive