diff --git a/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php b/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php index 146ee97..54018c7 100644 --- a/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php +++ b/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php @@ -190,6 +190,8 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#options' => $countries, '#description' => $this->t('Select the default country for the site.'), '#weight' => 0, + // Use the Select2 library. + '#select2' => TRUE, ); $form['regional_settings']['date_default_timezone'] = array( '#type' => 'select', diff --git a/core/modules/entity_reference/src/Plugin/Field/FieldWidget/AutocompleteWidgetBase.php b/core/modules/entity_reference/src/Plugin/Field/FieldWidget/AutocompleteWidgetBase.php index b392f45..23063fc 100644 --- a/core/modules/entity_reference/src/Plugin/Field/FieldWidget/AutocompleteWidgetBase.php +++ b/core/modules/entity_reference/src/Plugin/Field/FieldWidget/AutocompleteWidgetBase.php @@ -10,6 +10,7 @@ use Drupal\Component\Utility\Tags; use Drupal\Core\Field\EntityReferenceFieldItemListInterface; use Drupal\Core\Field\FieldItemListInterface; +use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\Core\Field\WidgetBase; use Drupal\Core\Form\FormStateInterface; use Drupal\user\EntityOwnerInterface; @@ -87,6 +88,11 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen $autocomplete_route_parameters['entity_id'] = $entity_id; } + $max_selection_size = $this->fieldDefinition->getFieldStorageDefinition()->getCardinality(); + if ($max_selection_size === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) { + $max_selection_size = 0; + } + $element += array( '#type' => 'textfield', '#maxlength' => 1024, @@ -95,6 +101,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen '#autocomplete_route_parameters' => $autocomplete_route_parameters, '#autocomplete_options' => array( 'id_in_text' => TRUE, + 'maximumSelectionSize' => $max_selection_size, ), '#size' => $this->getSetting('size'), '#placeholder' => $this->getSetting('placeholder'), diff --git a/core/modules/node/src/Entity/Node.php b/core/modules/node/src/Entity/Node.php index 4b7671f..fbffc46 100644 --- a/core/modules/node/src/Entity/Node.php +++ b/core/modules/node/src/Entity/Node.php @@ -378,6 +378,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { ->setSetting('handler', 'default') ->setDefaultValueCallback('Drupal\node\Entity\Node::getCurrentUserId') ->setTranslatable(TRUE) +// ->setCardinality(1) ->setDisplayOptions('view', array( 'label' => 'hidden', 'type' => 'author', diff --git a/core/modules/system/src/Form/RegionalForm.php b/core/modules/system/src/Form/RegionalForm.php index 0550370..6e5b630 100644 --- a/core/modules/system/src/Form/RegionalForm.php +++ b/core/modules/system/src/Form/RegionalForm.php @@ -78,6 +78,8 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#default_value' => $system_date->get('country.default'), '#options' => $countries, '#attributes' => array('class' => array('country-detect')), + // Use the Select2 library. + '#select2' => TRUE, ); $form['locale']['date_first_day'] = array( diff --git a/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php b/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php index dd85ed7..ae03524 100644 --- a/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php +++ b/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php @@ -10,6 +10,7 @@ use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldItemListInterface; +use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\Core\Field\WidgetBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; @@ -110,6 +111,12 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen $tags[] = isset($item->entity) ? $item->entity : $this->termStorage->load($item->target_id); } } + + $max_selection_size = $this->fieldDefinition->getFieldStorageDefinition()->getCardinality(); + if ($max_selection_size === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) { + $max_selection_size = 0; + } + $element += array( '#type' => 'textfield', '#default_value' => taxonomy_implode_tags($tags), @@ -118,6 +125,9 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen 'entity_type' => $items->getEntity()->getEntityTypeId(), 'field_name' => $this->fieldDefinition->getName(), ), + '#autocomplete_options' => array( + 'maximumSelectionSize' => $max_selection_size, + ), '#size' => $this->getSetting('size'), '#placeholder' => $this->getSetting('placeholder'), '#maxlength' => 1024,