Commit 79e54ca1 authored by Wesley Sandra's avatar Wesley Sandra Committed by Wesley Sandra
Browse files

Issue #3189155 by weseze: Wrongly showing 'all languages' on all fields on...

Issue #3189155 by weseze: Wrongly showing 'all languages'  on all fields on paragraphs in translated language
parent 9c8a9b2d
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

namespace Drupal\paragraphs_asymmetric_translation_widgets\Plugin\Field\FieldWidget;

use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element;
use Drupal\paragraphs\Plugin\Field\FieldWidget\ParagraphsWidget;

/**
@@ -15,6 +18,26 @@ class ParagraphsAsymmetricWidget extends ParagraphsWidget {
  protected function allowReferenceChanges() {
    return parent::allowReferenceChanges() || $this->fieldDefinition->isTranslatable();
  }

  /**
   * {@inheritdoc}
   */
  public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
    dpm('waldo');
    $element = parent::formElement($items, $delta, $element, $form, $form_state);

    // Remove all translatability clues, it makes no sense when running async.
    foreach (Element::children($element['subform']) as $field) {
      if (isset($element['subform'][$field]['widget']['#after_build']) && is_array($element['subform'][$field]['widget']['#after_build'])) {
        foreach ($element['subform'][$field]['widget']['#after_build'] as $index => $after_build) {
          if (in_array('addTranslatabilityClue', $after_build, TRUE)) {
            unset($element['subform'][$field]['widget']['#after_build'][$index]);
          }
        }
      }
    }

    return $element;
  }

}