Skip to content
Snippets Groups Projects
Unverified Commit 4734e86a authored by Raf Philtjens's avatar Raf Philtjens Committed by Raf Philtjens
Browse files

Issue #3301062 by rp7: Show error message when selecting a second reference...

Issue #3301062 by rp7: Show error message when selecting a second reference without a first reference
parent c7813a43
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,7 @@ use Drupal\Core\Field\FieldFilteredMarkup;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\Plugin\Field\FieldWidget\EntityReferenceAutocompleteWidget;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
/**
* Provides an autocomplete/select widget for the double_reference field type.
......@@ -72,6 +73,11 @@ class DoubleReferenceAutocompleteSelectWidget extends EntityReferenceAutocomplet
$widget['ar_target_id']['#title_display'] = 'before';
}
$widget['#element_validate'][] = [
static::class,
'validateElement',
];
return $widget;
}
......@@ -111,4 +117,21 @@ class DoubleReferenceAutocompleteSelectWidget extends EntityReferenceAutocomplet
return $options;
}
/**
* Validates the element.
*
* @param array $element
* The form element.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The form state.
*/
public static function validateElement(array $element, FormStateInterface $form_state) {
if (empty($element['target_id']['#value']) && !empty($element['ar_target_id']['#value'])) {
$form_state->setError($element['target_id'], new TranslatableMarkup('%field is required when %ar_field has a value.', [
'%field' => $element['target_id']['#title'],
'%ar_field' => $element['ar_target_id']['#title'],
]));
}
}
}
......@@ -5,6 +5,7 @@ namespace Drupal\double_reference\Plugin\Field\FieldWidget;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\Plugin\Field\FieldWidget\EntityReferenceAutocompleteWidget;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
/**
* Provides an autocomplete widget for the double_reference field type.
......@@ -69,7 +70,29 @@ class DoubleReferenceAutocompleteWidget extends EntityReferenceAutocompleteWidge
$widget['ar_target_id']['#title_display'] = 'before';
}
$widget['#element_validate'][] = [
static::class,
'validateElement',
];
return $widget;
}
/**
* Validates the element.
*
* @param array $element
* The form element.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The form state.
*/
public static function validateElement(array $element, FormStateInterface $form_state) {
if (empty($element['target_id']['#value']) && !empty($element['ar_target_id']['#value'])) {
$form_state->setError($element['target_id'], new TranslatableMarkup('%field is required when %ar_field has a value.', [
'%field' => $element['target_id']['#title'],
'%ar_field' => $element['ar_target_id']['#title'],
]));
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment