From 8a7c2d0874ed58bf5a6dbc2aa7cb58b5cca028ab Mon Sep 17 00:00:00 2001 From: mb Date: Wed, 1 Dec 2021 10:42:56 +0100 Subject: [PATCH 1/2] [#46800] Adding MaestroWebformInherit to os2forms_forloeb.module --- os2forms_forloeb.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os2forms_forloeb.module b/os2forms_forloeb.module index 45345e1..23d650a 100644 --- a/os2forms_forloeb.module +++ b/os2forms_forloeb.module @@ -200,7 +200,7 @@ function os2forms_forloeb_form_alter(&$form, FormStateInterface $form_state, $fo if ($isMaestro && $queueID) { $templateTask = MaestroEngine::getTemplateTaskByQueueID($queueID); // We only care about Maestro Webform Multiple tasks. - if ($templateTask && $templateTask['tasktype'] == 'MaestroWebformMultiple') { + if ($templateTask && ($templateTask['tasktype'] == 'MaestroWebformMultiple' || $templateTask['tasktype'] == 'MaestroWebformInherit')) { $storage = $form_state->getStorage(); if ($storage && array_key_exists('form_display', $storage)) { $webformTypes = \Drupal::entityTypeManager()->getStorage('node_type')->loadMultiple(); From 11085fc09cddef8fca9f7b0a810369a47250f8f0 Mon Sep 17 00:00:00 2001 From: mb Date: Mon, 6 Dec 2021 14:52:37 +0100 Subject: [PATCH 2/2] [#46800] Added function that returns array of custom task-types and cleaned logic of if-statement --- os2forms_forloeb.module | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/os2forms_forloeb.module b/os2forms_forloeb.module index 23d650a..7205006 100644 --- a/os2forms_forloeb.module +++ b/os2forms_forloeb.module @@ -185,12 +185,21 @@ function os2forms_forloeb_spv_fetch_entity_username($uniqueWebformIdentifier, $w return $username; } +/** + * Returns array of custom task-types for OS2forms + * + */ +function os2forms_forloeb_get_custom_task_types() { + return ['MaestroWebformMultiple', 'MaestroWebformInherit']; +} + /** * Implements hook_form_alter() for MaestroWebformMultiple task type. * * This has been copied from * maestro/maestro_webform/maestro_webform.module with a minimal but * necessary change. See https://www.drupal.org/project/maestro/issues/3243510 + * When that issue has been fixed, this hook implementation can be safely deleted. * */ function os2forms_forloeb_form_alter(&$form, FormStateInterface $form_state, $form_id) { @@ -199,8 +208,10 @@ function os2forms_forloeb_form_alter(&$form, FormStateInterface $form_state, $fo // Both these keys need to exist. if ($isMaestro && $queueID) { $templateTask = MaestroEngine::getTemplateTaskByQueueID($queueID); - // We only care about Maestro Webform Multiple tasks. - if ($templateTask && ($templateTask['tasktype'] == 'MaestroWebformMultiple' || $templateTask['tasktype'] == 'MaestroWebformInherit')) { + // Get array of custom task-types + $os2forms_forloeb_custom_task_types = os2forms_forloeb_get_custom_task_types(); + // We only care about custom Task-types defined in os2forms_forloeb_get_custom_task_types() + if ($templateTask && in_array($templateTask['tasktype'], $os2forms_forloeb_custom_task_types)) { $storage = $form_state->getStorage(); if ($storage && array_key_exists('form_display', $storage)) { $webformTypes = \Drupal::entityTypeManager()->getStorage('node_type')->loadMultiple();