Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / entityqueue / src / Plugin / Field / FieldWidget / EntityqueueDragtableWidget.php
index 8be25f4e5c2225119fbb95c28765586725373180..c7aa12f4b7ef78251883d91fce46f94741582ddc 100644 (file)
@@ -31,6 +31,44 @@ class EntityqueueDragtableWidget extends EntityReferenceAutocompleteWidget {
    */
   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}
    */
@@ -40,7 +78,12 @@ class EntityqueueDragtableWidget extends EntityReferenceAutocompleteWidget {
     $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 += [
@@ -169,7 +212,7 @@ class EntityqueueDragtableWidget extends EntityReferenceAutocompleteWidget {
     $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;