base_editing_bootstrap 1.10.0 → 1.11.0
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/CHANGELOG.md +8 -0
- data/README.md +10 -5
- data/app/helpers/utilities/form_helper.rb +11 -3
- data/app/views/base_editing/_form.html.erb +1 -9
- data/app/views/base_editing/_form_full_components.html.erb +14 -0
- data/app/views/base_editing/form_field/_accept_has_one_nested_field.html.erb +4 -0
- data/lib/base_editing_bootstrap/VERSION +1 -1
- metadata +5 -3
- /data/app/views/base_editing/form_field/{_accept_nested_field.html.erb → _accept_has_many_nested_field.html.erb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a94db145cbc0c8225a28489ba2c163a53d576e6baae96e294fc3b9d1db7e606
|
4
|
+
data.tar.gz: 5e7f937da0131bb04457475ccaf2885a524faf002ec4917200957e6481bdccf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3f4e4df8738595c80519a96149dddced30cbb21cbffb3b606cc3d7f90c30ba7c1eff81d00fcaf763759be06d738a906c4d37af7ba67d16668e3bf8b1537522b
|
7
|
+
data.tar.gz: 7e2f175ed20a1cc3e80f5f23c3c66b9bc0fd7ebf32b6acecb1a7e06876a39c401e878c1318bf761c64b52ec65c597979a95c5e07c9196682f0bf5f561a4ffc61
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
|
3
3
|
|
4
4
|
- - -
|
5
|
+
## 1.11.0 - 2025-09-15
|
6
|
+
#### Bug Fixes
|
7
|
+
- Simplify gem push command in cog.toml - (ab70061) - Marino Bonetti
|
8
|
+
#### Features
|
9
|
+
- Add nested_attributes for has_one - (d76422c) - Marino Bonetti
|
10
|
+
|
11
|
+
- - -
|
12
|
+
|
5
13
|
## 1.10.0 - 2025-09-12
|
6
14
|
#### Features
|
7
15
|
- Automatic Nested attributes - (dad38de) - Marino Bonetti
|
data/README.md
CHANGED
@@ -210,9 +210,13 @@ Utilizzo per modello base, in questo esempio prendiamo come modello Post come es
|
|
210
210
|
Di default questo metodo utilizza il semplice #to_s
|
211
211
|
Ha anche un metodo per il valore da utilizzare come chiave, di default viene dedotto dalla reflection
|
212
212
|
come anche il nome della classe da utilizzare come sorgente dei dati della collection
|
213
|
-
-
|
214
|
-
|
215
|
-
|
213
|
+
- accept_nested_attributes
|
214
|
+
- has_many => _accept_has_many_nested_field.html.erb
|
215
|
+
Questo partial renderizza una tabella per i campi associati al modello.
|
216
|
+
Più informazioni nelle note per il [nested attributes](#nested-attributes)
|
217
|
+
- has_one => _accept_has_one_nested_field.html.erb
|
218
|
+
Questo partial renderizza una nested form che si comporta come una form normale renderizzando i vari campi del
|
219
|
+
nested attraverso quanto elencato nella policy dell'oggetto padre.
|
216
220
|
- Default/String => _base.html.erb
|
217
221
|
|
218
222
|
In futuro si prevede di aggiungere automatismi per renderizzare senza
|
@@ -238,8 +242,9 @@ di [Rails](https://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/Cla
|
|
238
242
|
Note:
|
239
243
|
|
240
244
|
- Nelle policy bisogna definire come campo da editare il nome della relazione/nested_attribute
|
241
|
-
- Nella policy bisogna inoltre definire per i permitted_attributes anche
|
242
|
-
`XXXXX_attributes => [Array attributi da editare] + [:id,:_destroy]`
|
245
|
+
- Nella policy bisogna inoltre definire per i permitted_attributes anche:
|
246
|
+
- nel caso di has_many: `XXXXX_attributes => [Array attributi da editare] + [:id,:_destroy]`
|
247
|
+
- nel caso di has_one: `XXXXX_attributes => [Array attributi da editare]`
|
243
248
|
- Il permitted _destroy vale solamente nel caso in cui si definisca nei nested_attributes che debba essere cancellabile.
|
244
249
|
- I campi visualizzati del modello sono presi dalla relativa policy.
|
245
250
|
|
@@ -34,10 +34,18 @@ module Utilities
|
|
34
34
|
locals[:foreign_key] = reflection.foreign_key
|
35
35
|
elsif form.object.class.respond_to?(:nested_attributes_options) &&
|
36
36
|
form.object.class.nested_attributes_options.key?(field.to_sym)
|
37
|
-
type= :nested_attributes
|
38
|
-
generic_field = "accept_nested_field"
|
37
|
+
type = :nested_attributes
|
39
38
|
reflection = form.object.class.reflect_on_association(field.to_s)
|
40
|
-
|
39
|
+
case reflection
|
40
|
+
when ActiveRecord::Reflection::HasManyReflection
|
41
|
+
locals[:new_object] = reflection.klass.new(reflection.foreign_key => form.object)
|
42
|
+
generic_field = "accept_has_many_nested_field"
|
43
|
+
when ActiveRecord::Reflection::HasOneReflection
|
44
|
+
form.object.send(:"build_#{field}") unless form.object.send(field).present?
|
45
|
+
generic_field = "accept_has_one_nested_field"
|
46
|
+
else
|
47
|
+
raise "Unknown reflection for nested attributes #{field}->#{reflection.class}"
|
48
|
+
end
|
41
49
|
else
|
42
50
|
if form.object.class.respond_to?(:type_for_attribute)
|
43
51
|
type = form.object.class.type_for_attribute(field).type
|
@@ -1,15 +1,7 @@
|
|
1
1
|
<%= render layout: "form_container" do %>
|
2
2
|
<%= form_for @object, builder: form_builder do |form| %>
|
3
3
|
|
4
|
-
<%= render
|
5
|
-
<%= render partial: "form_field_header", locals: {form:} %>
|
6
|
-
<%= render partial: "form_base_errors", locals: {form:} if form.object.errors.key?(:base) %>
|
7
|
-
<%= render layout: "form_fields_container" do %>
|
8
|
-
<%= render collection: form_attributes(form.object),
|
9
|
-
layout: "form_field_container",
|
10
|
-
partial: "form_field", locals: {form:} %>
|
11
|
-
<% end %>
|
12
|
-
<% end %>
|
4
|
+
<%= render partial: "form_full_components", locals: {form: form} %>
|
13
5
|
|
14
6
|
<%= render layout: "form_footer_container" do %>
|
15
7
|
<%= render partial: "form_footer", locals: {form: form} %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%#
|
2
|
+
Questo partial è il raggruppamento di tutti gli elementi tranne il footer del form.
|
3
|
+
Serve per riutilizzarlo anche nel nested attributes come base per costruire tutti gli elementi
|
4
|
+
%>
|
5
|
+
<%# locals: (form:) -%>
|
6
|
+
<%= render layout: "form_body_container" do %>
|
7
|
+
<%= render partial: "form_field_header", locals: {form:} %>
|
8
|
+
<%= render partial: "form_base_errors", locals: {form:} if form.object.errors.key?(:base) %>
|
9
|
+
<%= render layout: "form_fields_container" do %>
|
10
|
+
<%= render collection: form_attributes(form.object),
|
11
|
+
layout: "form_field_container",
|
12
|
+
partial: "form_field", locals: {form:} %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.11.0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: base_editing_bootstrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marino Bonetti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-09-
|
11
|
+
date: 2025-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -346,6 +346,7 @@ files:
|
|
346
346
|
- app/views/base_editing/_form_fields_container.html.erb
|
347
347
|
- app/views/base_editing/_form_footer.html.erb
|
348
348
|
- app/views/base_editing/_form_footer_container.html.erb
|
349
|
+
- app/views/base_editing/_form_full_components.html.erb
|
349
350
|
- app/views/base_editing/_index_body.html.erb
|
350
351
|
- app/views/base_editing/_index_main_buttons.html.erb
|
351
352
|
- app/views/base_editing/_index_title_header.html.erb
|
@@ -364,7 +365,8 @@ files:
|
|
364
365
|
- app/views/base_editing/cell_field/_enum.html.erb
|
365
366
|
- app/views/base_editing/cell_field/_timestamps.html.erb
|
366
367
|
- app/views/base_editing/edit.html.erb
|
367
|
-
- app/views/base_editing/form_field/
|
368
|
+
- app/views/base_editing/form_field/_accept_has_many_nested_field.html.erb
|
369
|
+
- app/views/base_editing/form_field/_accept_has_one_nested_field.html.erb
|
368
370
|
- app/views/base_editing/form_field/_base.html.erb
|
369
371
|
- app/views/base_editing/form_field/_belongs_to_select.html.erb
|
370
372
|
- app/views/base_editing/form_field/_boolean.html.erb
|
File without changes
|