diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ddc05ab..4b3adbaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ before starting to add changes. Use example [placed in the end of the page](#exa ## [Unreleased] +- [PR-339](https://github.com/OS2Forms/os2forms/pull/339) + Ensure MaestroInheritTask correctly inherits file-elements. + ## [5.1.0] 2026-06-03 - [PR-326](https://github.com/OS2Forms/os2forms/pull/326) diff --git a/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php b/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php index 9544cee5..b97e8eee 100644 --- a/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php +++ b/modules/os2forms_forloeb/src/Plugin/EngineTasks/MaestroWebformInheritTask.php @@ -8,6 +8,7 @@ use Drupal\maestro_webform\Plugin\EngineTasks\MaestroWebformTask; use Drupal\webform\Entity\Webform; use Drupal\webform\Entity\WebformSubmission; +use Drupal\webform\Plugin\WebformElement\WebformManagedFileBase; use Drupal\webform\Utility\WebformArrayHelper; /** @@ -160,9 +161,15 @@ public static function webformSubmissionFormAlter(array &$form, FormStateInterfa // element information to properly set default element values nested // inside the form. if ($targetWebform = Webform::load($form['#webform_id'] ?? NULL)) { + $elementManager = \Drupal::service('plugin.manager.webform.element'); foreach ($data as $key => $value) { if ($targetElement = $targetWebform->getElement($key)) { if ($element = &NestedArray::getValue($form['elements'], $targetElement['#webform_parents'])) { + // A file element needs its default value as an array. + // @see \Drupal\webform\Plugin\WebformElement\WebformManagedFileBase::setDefaultValue() + if ($elementManager->getElementInstance($element) instanceof WebformManagedFileBase) { + $value = (array) $value; + } $element['#default_value'] = $value; } }