Skip to content
Snippets Groups Projects
Commit 0c0a209e authored by christian.wiedemann's avatar christian.wiedemann
Browse files

Merge branch '3517621-2.0.x-add-ui' into '2.0.x'

Add title_display and description display

See merge request !365
parents b2216dcb b27398f9
No related branches found
No related tags found
No related merge requests found
Pipeline #467145 canceled
......@@ -78,6 +78,15 @@ ui_patterns_ui.widget_settings.*:
title:
type: string
label: 'Title'
title_display:
type: string
label: 'Title display'
description:
type: string
label: 'Description'
description_display:
type: string
label: 'Description display'
required:
type: integer
label: 'Widget is required'
......@@ -146,7 +146,9 @@ class UiPComponentFormDisplayForm extends FormElementBase {
$source_contexts = [];
$form_array_parents = $element['#array_parents'];
$configuration['widget_settings'] = $slot_prop_option['widget_settings'] ?? [];
$configuration['widget_settings']['title_display'] = 'before';
if (!isset($configuration['widget_settings']['title_display'])) {
$configuration['widget_settings']['title_display'] = 'before';
}
$source_configuration = SourcePluginBase::buildConfiguration($prop_slot_id, $prop_definition, $configuration, $source_contexts, $form_array_parents);
/** @var \Drupal\ui_patterns\SourcePluginBase $source */
$source = $source_plugin_manager->createInstance($source_id, $source_configuration);
......
......@@ -166,7 +166,12 @@ final class ComponentFormDisplay extends ConfigEntityBase implements ComponentFo
$display_options = $this->getPropSlotOption($prop_id);
$settings = [];
$settings['widget_settings'] = $display_options['widget_settings'] ?? [];
$settings['widget_settings']['title_display'] = 'before';
if (!isset($settings['widget_settings']['title_display'])) {
$settings['widget_settings']['title_display'] = 'before';
}
if (!isset($settings['widget_settings']['description_display'])) {
$settings['widget_settings']['description_display'] = 'after';
}
$configuration = SourcePluginBase::buildConfiguration($prop_id, $prop_definition, $settings, [], []);
$configuration['settings'] = $display_options['source'] ?? [];
return $configuration;
......
......@@ -284,8 +284,10 @@ abstract class SourcePluginBase extends PluginBase implements
'contexts' => $source_contexts,
'settings' => $settings['source'] ?? [],
'widget_settings' => array_merge([
'title_display' => 'hidden',
'title_display' => 'invisible',
'title' => $prop_definition['title'] ?? '',
'description_display' => 'invisible',
'description' => $prop_definition['description'] ?? '',
'required' => $prop_definition["ui_patterns"]["required"] ?? FALSE == TRUE ,
], $widget_settings),
'context_mapping' => $context_mapping,
......@@ -428,6 +430,8 @@ abstract class SourcePluginBase extends PluginBase implements
protected function addRequired(&$form_element): void {
$form_element['#title'] = $this->getConfiguration()['widget_settings']['title'];
$form_element['#title_display'] = $this->getConfiguration()['widget_settings']['title_display'];
$form_element['#description'] = $this->getConfiguration()['widget_settings']['description'];
$form_element['#description_display'] = $this->getConfiguration()['widget_settings']['description_display'];
$form_element['#required'] = $this->getConfiguration()['widget_settings']['required'];
}
......
......@@ -28,7 +28,13 @@ trait WidgetSettingTrait {
* {@inheritdoc}
*/
public function defaultWidgetSettings(): array {
return ['required' => FALSE, 'title' => ''];
return [
'required' => FALSE,
'title' => '',
'title_display' => 'before',
'description' => '',
'description_display' => 'after',
];
}
/**
......@@ -85,6 +91,34 @@ trait WidgetSettingTrait {
'#type' => 'textfield',
'#default_value' => $this->getWidgetSetting('title') ?? '',
],
'title_display' =>
[
'#title' => $this->t('Title display'),
'#type' => 'select',
'#options' => [
'before' => $this->t('Before'),
'after' => $this->t('After'),
'invisible' => $this->t('Invisible'),
],
'#default_value' => $this->getWidgetSetting('title_display') ?? 'after',
],
'description' =>
[
'#title' => $this->t('Description'),
'#type' => 'textfield',
'#default_value' => $this->getWidgetSetting('description') ?? '',
],
'description_display' =>
[
'#title' => $this->t('Description display'),
'#type' => 'select',
'#options' => [
'before' => $this->t('Before'),
'after' => $this->t('After'),
'invisible' => $this->t('Invisible'),
],
'#default_value' => $this->getWidgetSetting('description_display') ?? 'after',
],
];
}
......@@ -101,11 +135,20 @@ trait WidgetSettingTrait {
':type' => $slot_or_prop,
':prop_type' => $prop_type->getPluginId(),
]),
$this->t('Required: :required', [
':required' => $this->getWidgetSetting('required') ? 'true' : 'false',
]),
$this->t('Title: :title', [
':title' => $this->getWidgetSetting('title') ?? $prop_definition['label'],
]),
$this->t('Required: :required', [
':required' => $this->getWidgetSetting('required') ? 'true' : 'false',
$this->t('Title display: :title_display', [
':title_display' => $this->getWidgetSetting('title_display') ?? 'after',
]),
$this->t('Description: :description', [
':description' => $this->getWidgetSetting('description') ?? $prop_definition['description'] ?? '',
]),
$this->t('Description display: :description_display', [
':description_display' => $this->getWidgetSetting('description_display') ?? 'after',
]),
];
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment