lato_cms 3.2.0 → 3.2.1
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 +4 -4
- data/app/assets/javascripts/lato_cms/controllers/lato_cms_media_field_controller.js +5 -1
- data/app/helpers/lato_cms/pages_helper.rb +8 -2
- data/app/views/lato_cms/pages/_repeater_item.html.erb +2 -1
- data/app/views/lato_cms/pages/fields/_file.html.erb +1 -1
- data/app/views/lato_cms/pages/fields/_gallery.html.erb +1 -1
- data/app/views/lato_cms/pages/fields/_image.html.erb +1 -1
- data/app/views/lato_cms/pages/fields/_media_field.html.erb +1 -1
- data/app/views/lato_cms/pages/fields/_video.html.erb +1 -1
- data/lib/lato_cms/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 33e3be18772b49e7523f66ee62e85d74ca3cbdaf6e6b0f9f39e0abeeb48dbea4
|
|
4
|
+
data.tar.gz: e32a97e06e949782083f87f951cba818c9372f17169703eec90cbb741cabba94
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f7ec56fd1e21c2ac94d1c4fee8cac7575f1f09eddc045f64c3f39aa603ad72d07f9f4ed0799edec2b1cc734d8dc690e389f8e374eae4d50436521cd4fd5ad4ac
|
|
7
|
+
data.tar.gz: 217698bd6d223e2abfee2c937cffb2e380b5340b5f60c548600a624bb0ad8d92c689f1e14b188c71c2fd754088c5db4bb568921efa98b7ff9ef33efb7270a182
|
|
@@ -75,8 +75,12 @@ export default class extends Controller {
|
|
|
75
75
|
afterSave (event) {
|
|
76
76
|
if (!event.detail.success) return
|
|
77
77
|
|
|
78
|
+
// Matched on the persisted id only: inside a repeater every item shares the
|
|
79
|
+
// same `field_id` ("poster"), so falling back to it made each item find the
|
|
80
|
+
// first one and repaint itself — hidden input included — with that item's
|
|
81
|
+
// media. The next save then stored it for real.
|
|
78
82
|
const field = (event.detail.data?.fields || []).find(
|
|
79
|
-
f => f.persisted_field_id === this.fieldIdValue
|
|
83
|
+
f => f.persisted_field_id === this.fieldIdValue
|
|
80
84
|
)
|
|
81
85
|
if (!field) return
|
|
82
86
|
|
|
@@ -101,13 +101,19 @@ module LatoCms
|
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
# `persisted_field_id` is the id the field is stored under — the same as
|
|
105
|
+
# `field_id` outside a repeater, `"<item_id>.<field_id>"` inside one. Media
|
|
106
|
+
# fields need it to recognize their own entry in the save response: matching on
|
|
107
|
+
# `field_id` alone would make every item of a repeater find the first one.
|
|
108
|
+
def lato_cms_render_field(field_id:, field_config:, page_field:, input_name_prefix: nil, dom_id_prefix: nil,
|
|
109
|
+
persisted_field_id: nil)
|
|
105
110
|
render resolve_lato_cms_field_partial(field_config),
|
|
106
111
|
field_id: field_id,
|
|
107
112
|
field_config: field_config,
|
|
108
113
|
page_field: page_field,
|
|
109
114
|
input_name_prefix: input_name_prefix,
|
|
110
|
-
dom_id_prefix: dom_id_prefix
|
|
115
|
+
dom_id_prefix: dom_id_prefix,
|
|
116
|
+
persisted_field_id: persisted_field_id.presence || field_id
|
|
111
117
|
rescue ActionView::MissingTemplate => e
|
|
112
118
|
content_tag(:div, class: 'alert alert-danger mb-0') do
|
|
113
119
|
"Field '#{field_id}' render error: #{e.message}"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<% settings = field_config['settings'] || {} %>
|
|
2
2
|
<%= render partial: 'lato_cms/pages/fields/media_field', locals: {
|
|
3
3
|
field_id: field_id, field_config: field_config, page_field: page_field, kind: 'file', multiple: settings['multiple'] == true,
|
|
4
|
-
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix]
|
|
4
|
+
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix], persisted_field_id: local_assigns[:persisted_field_id]
|
|
5
5
|
} %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<%= render partial: 'lato_cms/pages/fields/media_field', locals: {
|
|
2
2
|
field_id: field_id, field_config: field_config, page_field: page_field, kind: 'image', multiple: true,
|
|
3
|
-
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix]
|
|
3
|
+
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix], persisted_field_id: local_assigns[:persisted_field_id]
|
|
4
4
|
} %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<%= render partial: 'lato_cms/pages/fields/media_field', locals: {
|
|
2
2
|
field_id: field_id, field_config: field_config, page_field: page_field, kind: 'image', multiple: false,
|
|
3
|
-
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix]
|
|
3
|
+
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix], persisted_field_id: local_assigns[:persisted_field_id]
|
|
4
4
|
} %>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
data-lato-cms-media-field-multiple-value="<%= multiple %>"
|
|
22
22
|
data-lato-cms-media-field-frame-id-value="<%= frame_id %>"
|
|
23
23
|
data-lato-cms-media-field-hidden-name-value="<%= hidden_name %>"
|
|
24
|
-
data-lato-cms-media-field-field-id-value="<%= field_id %>"
|
|
24
|
+
data-lato-cms-media-field-field-id-value="<%= local_assigns[:persisted_field_id].presence || field_id %>"
|
|
25
25
|
data-field-required="<%= required %>">
|
|
26
26
|
|
|
27
27
|
<div class="lato-cms-media-field__grid mb-2"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<%= render partial: 'lato_cms/pages/fields/media_field', locals: {
|
|
2
2
|
field_id: field_id, field_config: field_config, page_field: page_field, kind: 'video', multiple: false,
|
|
3
|
-
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix]
|
|
3
|
+
input_name_prefix: local_assigns[:input_name_prefix], dom_id_prefix: local_assigns[:dom_id_prefix], persisted_field_id: local_assigns[:persisted_field_id]
|
|
4
4
|
} %>
|
data/lib/lato_cms/version.rb
CHANGED