From eb1f1caa66ffb5c245bbd6ad66f1bc4d90bbaf6f Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Mon, 25 Sep 2017 18:37:12 -0700 Subject: [PATCH] Fixed fieldset field not allowing to properly save when contained within a list (fixes #1225) --- CHANGELOG.md | 1 + .../forms/fields/fieldset/fieldset.html.twig | 36 ++++++++++++------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c78fc70b..83dc7894 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ 1. [](#bugfix) * Fix editor not clickable in list field [#1224](https://github.com/getgrav/grav-plugin-admin/pull/1124) * Updated Google Font URLs to always connect over HTTPS. [#1106](https://github.com/getgrav/grav-plugin-admin/pull/1106) + * Fixed fieldset field not allowing to properly save when contained within a list [#1225](https://github.com/getgrav/grav-plugin-admin/issues/1225) # v1.6.0 ## 09/07/2017 diff --git a/themes/grav/templates/forms/fields/fieldset/fieldset.html.twig b/themes/grav/templates/forms/fields/fieldset/fieldset.html.twig index 0453f6d1..289bae98 100644 --- a/themes/grav/templates/forms/fields/fieldset/fieldset.html.twig +++ b/themes/grav/templates/forms/fields/fieldset/fieldset.html.twig @@ -47,20 +47,32 @@ {% endblock %}#} > - {% block group %} + {% block group %} {% if field.text %} -

{% if grav.twig.twig.filters['tu'] is defined %}{{ field.text|tu }}{% else %}{{ field.text|t }}{% endif %}

- {% endif %} - - {% if field.fields %} - {% for field in field.fields %} - {% if field.type %} - {% set value = field.name ? data.value(field.name) : data.toArray %} - {% include ["forms/fields/#{field.type}/#{field.type}.html.twig", 'forms/fields/text/text.html.twig'] %} +

{% if grav.twig.twig.filters['tu'] is defined %}{{ field.text|tu }}{% else %}{{ field.text|t }}{% endif %} +

{% endif %} - {% endfor %} - {% endif %} - {% endblock %} + + {% if field.fields %} + {%- for childName, child in field.fields -%} + {%- if childName starts with '.' -%} + {%- set childKey = childName|trim('.') -%} + {%- set childName = itemName ~ childName -%} + {%- else %} + {%- set childKey = childName -%} + {%- set childName = childName|replace({'*': key}) -%} + {%- endif %} + {%- set child = child|merge({ name: childName }) -%} + + {% if field.type %} + {%- include [ + "forms/fields/#{child.type}/#{child.type}.html.twig", + 'forms/fields/text/text.html.twig' + ] with { field: child, value: data.value(child.name) } -%} + {% endif %} + {% endfor %} + {% endif %} + {% endblock %} {% endblock %}