*/
protected $wrapperId;
+ /**
+ * {@inheritdoc}
+ */
+ public static function defaultSettings() {
+ return [
+ 'link_to_entity' => FALSE,
+ ] + parent::defaultSettings();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function settingsForm(array $form, FormStateInterface $form_state) {
+ $elements = parent::settingsForm($form, $form_state);
+
+ $elements['link_to_entity'] = [
+ '#type' => 'checkbox',
+ '#title' => $this->t('Link label to the referenced entity'),
+ '#default_value' => $this->getSetting('link'),
+ ];
+
+ return $elements;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function settingsSummary() {
+ $summary = parent::settingsSummary();
+
+ $settings = $this->getSettings();
+ if (!empty($settings['link_to_entity'])) {
+ $summary[] = $this->t('Link to the referenced entity');
+ }
+
+ return $summary;
+ }
+
/**
* {@inheritdoc}
*/
$referenced_entities = $items->referencedEntities();
if (isset($referenced_entities[$delta])) {
- $entity_label = EntityAutocomplete::getEntityLabels([$referenced_entities[$delta]]);
+ if ($this->getSetting('link_to_entity') && !$referenced_entities[$delta]->isNew()) {
+ $entity_label = $referenced_entities[$delta]->toLink()->toString();
+ }
+ else {
+ $entity_label = $referenced_entities[$delta]->label();
+ }
$id_prefix = implode('-', array_merge($parents, [$field_name, $delta]));
$element += [
$submitted_values = NestedArray::getValue($form_state->getValues(), array_slice($button['#parents'], 0, -2));
// Check submitted values for empty items.
- $new_values = array();
+ $new_values = [];
foreach ($submitted_values as $delta => $submitted_value) {
if ($delta !== 'add_more' && (isset($submitted_value['target_id']) || isset($submitted_value['entity']))) {
$new_values[] = $submitted_value;