--- 2685749-101.patch 2022-02-14 20:57:51.000000000 +0530 +++ 2685749-106.patch 2022-02-14 21:17:58.000000000 +0530 @@ -1,8 +1,8 @@ diff --git a/core/config/schema/core.entity.schema.yml b/core/config/schema/core.entity.schema.yml -index 5603953b1c..6367abb3e5 100644 +index 5603953b1c..314853a78c 100644 --- a/core/config/schema/core.entity.schema.yml +++ b/core/config/schema/core.entity.schema.yml -@@ -261,6 +261,26 @@ field.widget.settings.entity_reference_autocomplete: +@@ -261,6 +261,29 @@ field.widget.settings.entity_reference_autocomplete: type: label label: 'Placeholder' @@ -25,6 +25,9 @@ + replace: + type: string + label: 'A character to replace disallowed characters in the machine name' ++ size: ++ type: integer ++ label: 'Size of the machine name' + field.formatter.settings.boolean: type: mapping @@ -60,10 +63,10 @@ $items->filterEmptyItems(); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/MachineNameWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/MachineNameWidget.php new file mode 100644 -index 0000000000..f454ed7929 +index 0000000000..f2bf3f903e --- /dev/null +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/MachineNameWidget.php -@@ -0,0 +1,231 @@ +@@ -0,0 +1,241 @@ + FALSE, + 'replace_pattern' => '[^a-z0-9_]+', + 'replace' => '_', ++ 'size' => 60, + ] + parent::defaultSettings(); + } + @@ -200,6 +204,13 @@ + '#size' => 1, + '#maxlength' => 1, + ]; ++ $element['size'] = [ ++ '#type' => 'number', ++ '#title' => $this->t('Size of machine name field'), ++ '#default_value' => $this->getSetting('size'), ++ '#required' => TRUE, ++ '#min' => 1, ++ ]; + + return $element; + } @@ -217,6 +228,7 @@ + $summary[] = $this->t('Standalone: @standalone', ['@standalone' => $this->getSetting('standalone') ? $this->t('Yes') : $this->t('No')]); + $summary[] = $this->t('Replace pattern: @replace_pattern', ['@replace_pattern' => $this->getSetting('replace_pattern')]); + $summary[] = $this->t('Replace character: @replace', ['@replace' => $this->getSetting('replace')]); ++ $summary[] = $this->t('Machine name field size: @size', ['@size' => $this->getSetting('size')]); + } + else { + $summary[] = $this->t('Missing configuration.'); @@ -248,6 +260,7 @@ + 'replace' => $this->getSetting('replace'), + ], + '#disabled' => $this->getSetting('disable_on_edit') && !$items->getEntity()->isNew(), ++ '#size' => $this->getSetting('size'), + ]; + + return $element;