diff --git a/src/ComponentPluginManager.php b/src/ComponentPluginManager.php index a715c09702636a8bb2800c38385a063f77751e16..f0b9bedaaa1843bc76b2f69ccb7cde81f6872f32 100644 --- a/src/ComponentPluginManager.php +++ b/src/ComponentPluginManager.php @@ -67,12 +67,27 @@ class ComponentPluginManager extends SdcPluginManager implements CategorizingPlu parent::alterDefinitions($definitions); $fallback_prop_type_id = $this->propTypePluginManager->getFallbackPluginId(""); foreach ($definitions as $component_id => $definition) { + $definition["name"] = $definition["name"] ?? $component_id; + $definition = $this->alterSlots($definition); $definition = $this->annotateProps($definition, $fallback_prop_type_id); $definition = $this->resolveTemplatePath($definition); $definitions[$component_id] = $definition; } } + /** + * Alter slots. + */ + protected function alterSlots(array $definition): array { + if (!isset($definition['slots'])) { + return $definition; + } + foreach ($definition['slots'] as $slot_id => $slot) { + $definition['slots'][$slot_id]["title"] = $slot["title"] ?? $slot_id; + } + return $definition; + } + /** * Annotate each prop in a component definition. * @@ -87,6 +102,7 @@ class ComponentPluginManager extends SdcPluginManager implements CategorizingPlu return $definition; } foreach ($definition['props']['properties'] as $prop_id => $prop) { + $definition["title"] = $definition["title"] ?? $prop_id; $prop_type = $this->propTypePluginManager->guessFromSchema($prop); if ($prop_type->getPluginId() === $fallback_prop_type_id) { $prop_type_adapter = $this->prop_type_adapterPluginManager->guessFromSchema($prop); diff --git a/src/Plugin/UiPatterns/Source/SelectWidget.php b/src/Plugin/UiPatterns/Source/SelectWidget.php index abbfda284f19b2af3e721b29b1d6706752789ace..6cfaedf6d377f4cc82c2ef695633d4f2380cc15b 100644 --- a/src/Plugin/UiPatterns/Source/SelectWidget.php +++ b/src/Plugin/UiPatterns/Source/SelectWidget.php @@ -35,12 +35,16 @@ class SelectWidget extends SourcePluginBase { foreach ($this->propDefinition['enum'] as $item) { $options[$item] = $item; } - return [ + $form = [ '#type' => 'select', '#title' => $this->propDefinition['title'], '#default_value' => $this->getConfigurationFormValue(), "#options" => $options, ]; + // With Firefox, autocomplete may override #default_value. + // https://drupal.stackexchange.com/questions/257732/default-value-not-working-in-select-field + $form['#attributes']['autocomplete'] = 'off'; + return $form; } } diff --git a/src/Plugin/UiPatterns/Source/TextfieldWidget.php b/src/Plugin/UiPatterns/Source/TextfieldWidget.php index 684a1c5ef1acfe6d04409f61af0468b900c47db7..cb88e65f4ade723248fab2467b823370f2a75b83 100644 --- a/src/Plugin/UiPatterns/Source/TextfieldWidget.php +++ b/src/Plugin/UiPatterns/Source/TextfieldWidget.php @@ -15,8 +15,7 @@ use Drupal\ui_patterns\SourcePluginBase; * description = @Translation("One-line text field."), * prop_types = { * "string", - * "machine_name", - * "slot" + * "machine_name" * } * ) */ diff --git a/ui_patterns.module b/ui_patterns.module index ff150c1c20d2d86c150e57d6594fa5a386441e23..e4709b87cfd2d72b9e026b7395db1ad58e4c506b 100644 --- a/ui_patterns.module +++ b/ui_patterns.module @@ -43,24 +43,3 @@ function template_preprocess_ui_patterns_actions(&$variables) { $variables['dropdown_actions'] = $element['dropdown_actions']; } } - -/** - * Implements hook_preprocess_HOOK() for field_multiple_value_form(). - */ -function ui_patterns_preprocess_field_multiple_value_form(&$variables) { - // @todo Move header buttons to own column. - /* - if (!empty($variables['table']['#header']) && isset($variables['table']['#rows'][0])) { - // Find paragraph_actions and move to header. - // @see template_preprocess_field_multiple_value_form() - if (is_array($variables['table']['#rows'][0]['data'][1]) && !empty($variables['table']['#rows'][0]['data'][1]['data']['_remove']['#ui_patterns_header'])) { - $variables['table']['#header'][0]['data'] = [ - 'title' => $variables['table']['#header'][0]['data'], - 'button' => $variables['table']['#rows'][0]['data'][1]['_remove']['data'], - ]; - unset($variables['table']['#rows'][0]); - } - } - */ - -}