From 081e68ee4f4edefb39af21567a9ce5dcdbb81c6c Mon Sep 17 00:00:00 2001 From: Joachim Noreiko <joachim@107701.no-reply.drupal.org> Date: Sun, 23 Mar 2025 13:08:27 +0000 Subject: [PATCH 1/6] Restored UI text about default values. --- src/Form/ComponentSectionForm.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Form/ComponentSectionForm.php b/src/Form/ComponentSectionForm.php index 21c8dbd..2a17e37 100644 --- a/src/Form/ComponentSectionForm.php +++ b/src/Form/ComponentSectionForm.php @@ -378,6 +378,10 @@ class ComponentSectionForm extends ComponentFormBase { $element['#required'] = TRUE; } + if ($data->getDefault()) { + $element['#description'] .= ' ' . t("Leave blank for a default value."); + } + $element['#attributes']['data-typed-data-address'] = $data->getAddress(); // dsm($data->getDefault()); -- GitLab From ade7769f531e69d5bee103d2b5aef3ccece13202 Mon Sep 17 00:00:00 2001 From: Joachim Noreiko <joachim@107701.no-reply.drupal.org> Date: Wed, 26 Mar 2025 18:22:10 +0000 Subject: [PATCH 2/6] Restored UI text about textareas. --- src/Form/ComponentSectionForm.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Form/ComponentSectionForm.php b/src/Form/ComponentSectionForm.php index 2a17e37..8644d4b 100644 --- a/src/Form/ComponentSectionForm.php +++ b/src/Form/ComponentSectionForm.php @@ -356,7 +356,7 @@ class ComponentSectionForm extends ComponentFormBase { $element += [ '#type' => 'textarea', '#title' => $data->getLabel(), - '#description' => $data->getDescription(), + '#description' => $data->getDescription() . ' ' . t("Enter one item per line."), '#default_value' => implode("\n", $data->export()), ]; } -- GitLab From 5deefe46299b8c3729db158ea5ed5d5833c86d15 Mon Sep 17 00:00:00 2001 From: Joachim Noreiko <joachim@107701.no-reply.drupal.org> Date: Thu, 27 Mar 2025 13:55:44 +0000 Subject: [PATCH 3/6] Renamed method. --- src/Form/ComponentSectionForm.php | 20 ++++++++++---------- src/Form/ModuleHooksForm.php | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Form/ComponentSectionForm.php b/src/Form/ComponentSectionForm.php index 8644d4b..eb79de5 100644 --- a/src/Form/ComponentSectionForm.php +++ b/src/Form/ComponentSectionForm.php @@ -114,7 +114,7 @@ class ComponentSectionForm extends ComponentFormBase { $form[$component_type]['#tree'] = TRUE; foreach ($component_properties_to_use as $property_name) { - $this->buildFormElement($form[$component_type], $form_state, $component_data->{$property_name}); + $this->buildDataItemFormElement($form[$component_type], $form_state, $component_data->{$property_name}); } // Put the data back into the form state, as the building of the form @@ -163,7 +163,7 @@ class ComponentSectionForm extends ComponentFormBase { * @param \MutableTypedData\Data\DataItem $data * The data item. */ - protected function buildFormElement(&$form, FormStateInterface $form_state, DataItem $data) { + protected function buildDataItemFormElement(&$form, FormStateInterface $form_state, DataItem $data) { $element = []; // Determine whether to handle multiple data as a single element or a set @@ -228,9 +228,9 @@ class ComponentSectionForm extends ComponentFormBase { /** * Builds a form element for data that uses a single element. * - * Helper for buildFormElement(). + * Helper for buildDataItemFormElement(). * - * Note that buildFormElement() is responsible for some attributes of the + * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ protected function buildSingleFormElement(&$form, FormStateInterface $form_state, DataItem $data) { @@ -422,9 +422,9 @@ class ComponentSectionForm extends ComponentFormBase { /** * Builds a multi-valued form element. * - * Helper for buildFormElement(). + * Helper for buildDataItemFormElement(). * - * Note that buildFormElement() is responsible for some attributes of the + * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ protected function buildMultipleDeltaFormElement(&$form, FormStateInterface $form_state, DataItem $data) { @@ -443,7 +443,7 @@ class ComponentSectionForm extends ComponentFormBase { ]; foreach ($data as $delta => $delta_item) { - $this->buildFormElement($element, $form_state, $delta_item); + $this->buildDataItemFormElement($element, $form_state, $delta_item); // Set the label on each delta item to differentiate it from the overall // element label. @@ -526,9 +526,9 @@ class ComponentSectionForm extends ComponentFormBase { /** * Builds a form element with multiple child elements. * - * Helper for buildFormElement(). + * Helper for buildDataItemFormElement(). * - * Note that buildFormElement() is responsible for some attributes of the + * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ protected function buildComplexFormElement(&$form, FormStateInterface $form_state, DataItem $data) { @@ -576,7 +576,7 @@ class ComponentSectionForm extends ComponentFormBase { } foreach ($data as $data_item) { - $this->buildFormElement($element, $form_state, $data_item); + $this->buildDataItemFormElement($element, $form_state, $data_item); } if (!$data->isRequired() && !$data->isEmpty() && !$data->isDelta()) { diff --git a/src/Form/ModuleHooksForm.php b/src/Form/ModuleHooksForm.php index 9022991..801d94c 100644 --- a/src/Form/ModuleHooksForm.php +++ b/src/Form/ModuleHooksForm.php @@ -36,7 +36,7 @@ class ModuleHooksForm extends ComponentSectionForm { $entity_component_data = $this->getComponentDataObject(); if ($entity_component_data->hasProperty('hook_implementation_type')) { - $this->buildFormElement($form, $form_state, $entity_component_data->hook_implementation_type); + $this->buildDataItemFormElement($form, $form_state, $entity_component_data->hook_implementation_type); } $form['filter'] = [ -- GitLab From 5ece9dcf796b8fff8e6a4734ff6118c0ca93a338 Mon Sep 17 00:00:00 2001 From: Joachim Noreiko <joachim@107701.no-reply.drupal.org> Date: Thu, 27 Mar 2025 13:57:53 +0000 Subject: [PATCH 4/6] Added return types. --- src/Form/ComponentSectionForm.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Form/ComponentSectionForm.php b/src/Form/ComponentSectionForm.php index eb79de5..9f6dccc 100644 --- a/src/Form/ComponentSectionForm.php +++ b/src/Form/ComponentSectionForm.php @@ -163,7 +163,7 @@ class ComponentSectionForm extends ComponentFormBase { * @param \MutableTypedData\Data\DataItem $data * The data item. */ - protected function buildDataItemFormElement(&$form, FormStateInterface $form_state, DataItem $data) { + protected function buildDataItemFormElement(&$form, FormStateInterface $form_state, DataItem $data): void { $element = []; // Determine whether to handle multiple data as a single element or a set @@ -233,7 +233,7 @@ class ComponentSectionForm extends ComponentFormBase { * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ - protected function buildSingleFormElement(&$form, FormStateInterface $form_state, DataItem $data) { + protected function buildSingleFormElement(&$form, FormStateInterface $form_state, DataItem $data): array { $element = []; // Case 3A: element with options. @@ -427,7 +427,7 @@ class ComponentSectionForm extends ComponentFormBase { * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ - protected function buildMultipleDeltaFormElement(&$form, FormStateInterface $form_state, DataItem $data) { + protected function buildMultipleDeltaFormElement(&$form, FormStateInterface $form_state, DataItem $data): array { // Set up a wrapper for AJAX. $wrapper_id = Html::getId($data->getAddress() . '-add-more-wrapper'); @@ -531,7 +531,7 @@ class ComponentSectionForm extends ComponentFormBase { * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ - protected function buildComplexFormElement(&$form, FormStateInterface $form_state, DataItem $data) { + protected function buildComplexFormElement(&$form, FormStateInterface $form_state, DataItem $data): array { // Set up a wrapper for AJAX. $wrapper_id = Html::getId($data->getAddress() . '-complex-wrapper'); -- GitLab From 8521f69243dc52b907b1123af4330a43acbf7e28 Mon Sep 17 00:00:00 2001 From: Joachim Noreiko <joachim@107701.no-reply.drupal.org> Date: Thu, 27 Mar 2025 14:09:05 +0000 Subject: [PATCH 5/6] Removed unused parameters. --- src/Form/ComponentSectionForm.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Form/ComponentSectionForm.php b/src/Form/ComponentSectionForm.php index 9f6dccc..4005784 100644 --- a/src/Form/ComponentSectionForm.php +++ b/src/Form/ComponentSectionForm.php @@ -184,15 +184,15 @@ class ComponentSectionForm extends ComponentFormBase { // Case 1: multiple deltas each handled as a separate form element, within // a details wrapper. if ($use_multiple_deltas) { - $element = $this->buildMultipleDeltaFormElement($form, $form_state, $data); + $element = $this->buildMultipleDeltaFormElement($form_state, $data); } // Case 2: complex form element. elseif ($data->getDefinition()->isComplex()) { - $element = $this->buildComplexFormElement($form, $form_state, $data); + $element = $this->buildComplexFormElement($form_state, $data); } // Case 3: single form element. else { - $element = $this->buildSingleFormElement($form, $form_state, $data); + $element = $this->buildSingleFormElement($form_state, $data); } // Special case for hooks in a test module, as otherwise they're totally @@ -233,7 +233,7 @@ class ComponentSectionForm extends ComponentFormBase { * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ - protected function buildSingleFormElement(&$form, FormStateInterface $form_state, DataItem $data): array { + protected function buildSingleFormElement(FormStateInterface $form_state, DataItem $data): array { $element = []; // Case 3A: element with options. @@ -427,7 +427,7 @@ class ComponentSectionForm extends ComponentFormBase { * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ - protected function buildMultipleDeltaFormElement(&$form, FormStateInterface $form_state, DataItem $data): array { + protected function buildMultipleDeltaFormElement(FormStateInterface $form_state, DataItem $data): array { // Set up a wrapper for AJAX. $wrapper_id = Html::getId($data->getAddress() . '-add-more-wrapper'); @@ -531,7 +531,7 @@ class ComponentSectionForm extends ComponentFormBase { * Note that buildDataItemFormElement() is responsible for some attributes of the * element. */ - protected function buildComplexFormElement(&$form, FormStateInterface $form_state, DataItem $data): array { + protected function buildComplexFormElement(FormStateInterface $form_state, DataItem $data): array { // Set up a wrapper for AJAX. $wrapper_id = Html::getId($data->getAddress() . '-complex-wrapper'); -- GitLab From df68ae8d99c41c0e15dee9aeea33a89eb373f9c6 Mon Sep 17 00:00:00 2001 From: ekes <ekes@iskra.net> Date: Fri, 28 Mar 2025 19:03:03 +0100 Subject: [PATCH 6/6] Issue #3478075: Remove the canonical link template. The link template doesn't get a route attached by the route provider. Causing issues with ::getUrl(). --- module_builder.module | 2 +- src/Entity/ModuleBuilderModule.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/module_builder.module b/module_builder.module index b400664..0cfd2bd 100644 --- a/module_builder.module +++ b/module_builder.module @@ -82,7 +82,7 @@ function module_builder_entity_type_build(array &$entity_types) { $entity_type->setFormClass('misc', ModuleMiscForm::class); } - $canonical_template = $entity_type->getLinkTemplate('canonical'); + $canonical_template = $entity_type->getLinkTemplate('edit-form'); foreach ($form_operations as $form_op) { // Allow the entity type to specify a form class. if (empty($entity_type->getFormClass($form_op))) { diff --git a/src/Entity/ModuleBuilderModule.php b/src/Entity/ModuleBuilderModule.php index 6527249..d26ea71 100644 --- a/src/Entity/ModuleBuilderModule.php +++ b/src/Entity/ModuleBuilderModule.php @@ -40,7 +40,6 @@ use Drupal\Core\Config\Entity\ConfigEntityBase; * "data", * }, * links = { - * "canonical" = "/admin/config/development/module_builder/manage/{module_builder_module}", * "collection" = "/admin/config/development/module_builder", * "add-form" = "/admin/config/development/module_builder/add", * "edit-form" = "/admin/config/development/module_builder/manage/{module_builder_module}", -- GitLab