katalyst-content 2.1.0 → 2.1.2

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: 8049155bd0d6a4679582aa45f971b9cf8cc6248504e55f460c25c116f1f6b577
4
+ data.tar.gz: 5c9e52f70eae3349e8fea0bf0e2cfaa117a4b2727b83e01456146423c6ed794b
5
5
  SHA512:
6
- metadata.gz: 8d678570d5099c8ab0536d50e4acf307b7bacf0d2c7daca2f70ab5342d718cbf2ace4cdfa22ce8500854139cbf4735ea074b653d2e69f729ce993ebf3a5a3df3
7
- data.tar.gz: d029ef1cd3e03e3ca064691e38f3768c7140fcbdc0e6778986d0657abe8c4c0e12277db82e55ddd06bef74cb2c65b5f8caf3eae9ca4a964c56fe660a1eaab6bb
6
+ metadata.gz: 2a07c22615e56c8b55c84c01ce851162c91084130af068f22daff77c0614ed909f173e5b1eaefe8f3112e24c87a7d3ba9babfe12f2a7c667cdfc69dd12151768
7
+ data.tar.gz: 6206169b03510648758311e432dc8fd7b745688e4a96ac37d705614263816f9c61460277a535a7dfae438ca7908a024a5a8d3c18001fe5f643b1b0fab73f2c1e
@@ -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
 
@@ -1,5 +1,5 @@
1
1
  <%= render Kpop::FrameComponent.new do %>
2
- <%= render Kpop::ModalComponent.new(title: item_editor.title) do %>
2
+ <%= render Kpop::ModalComponent.new(title: item_editor.title, layout: "side-panel") do %>
3
3
  <%= render item_editor %>
4
4
  <% end %>
5
5
  <% end %>
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.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katalyst Interactive