Commit b94f170f authored by catch's avatar catch
Browse files

Issue #3069578 by danflanagan8, YurkinPark, ayushmishra206, andersen_ti,...

Issue #3069578 by danflanagan8, YurkinPark, ayushmishra206, andersen_ti, waspper, tim.plunkett, Anybody, Regnoy, larowlan: Layout builder doesn't show new "extra fields"
parent 876073f1
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -381,6 +381,12 @@ block.settings.field_block:*:*:*:
    formatter:
      type: field_formatter

block.settings.extra_field_block:*:*:*:
  type: block_settings
  mapping:
    formatter:
      type: field_formatter

# Schema for entity actions.
action.configuration.entity:*:*:
  type: action_configuration_default
+1 −1
Original line number Diff line number Diff line
@@ -535,7 +535,7 @@ private function getSectionComponentForFieldName($field_name) {
    foreach ($this->getSections() as $section) {
      foreach ($section->getComponents() as $component) {
        $plugin = $component->getPlugin();
        if ($plugin instanceof DerivativeInspectionInterface && $plugin->getBaseId() === 'field_block') {
        if ($plugin instanceof DerivativeInspectionInterface && in_array($plugin->getBaseId(), ['field_block', 'extra_field_block'], TRUE)) {
          // FieldBlock derivative IDs are in the format
          // [entity_type]:[bundle]:[field].
          list(, , $field_block_field_name) = explode(PluginBase::DERIVATIVE_SEPARATOR, $plugin->getDerivativeId());
+4 −0
Original line number Diff line number Diff line
@@ -85,6 +85,10 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition
  public function defaultConfiguration() {
    return [
      'label_display' => FALSE,
      'formatter' => [
        'settings' => [],
        'third_party_settings' => [],
      ],
    ];
  }

+11 −0
Original line number Diff line number Diff line
@@ -47,6 +47,12 @@ function layout_builder_test_entity_extra_field_info() {
    'description' => t('Extra description'),
    'weight' => 0,
  ];
  $extra['node']['bundle_with_section_field']['display']['layout_builder_test_2'] = [
    'label' => t('Extra Field 2'),
    'description' => t('Extra Field 2 description'),
    'weight' => 0,
    'visible' => FALSE,
  ];
  return $extra;
}

@@ -59,6 +65,11 @@ function layout_builder_test_node_view(array &$build, EntityInterface $entity, E
      '#markup' => 'Extra, Extra read all about it.',
    ];
  }
  if ($display->getComponent('layout_builder_test_2')) {
    $build['layout_builder_test_2'] = [
      '#markup' => 'Extra Field 2 is hidden by default.',
    ];
  }
}

/**
+17 −0
Original line number Diff line number Diff line
@@ -904,6 +904,23 @@ public function testExtraFields() {

    $this->drupalGet('node');
    $assert_session->linkExists('Read more');

    // Consider an extra field hidden by default. Make sure it's not displayed.
    $this->drupalGet('node/1');
    $assert_session->pageTextNotContains('Extra Field 2 is hidden by default.');

    // View the layout and add the extra field that is not visible by default.
    $this->drupalGet('admin/structure/types/manage/bundle_with_section_field/display/default/layout');
    $assert_session->pageTextNotContains('Extra Field 2');
    $page->clickLink('Add block');
    $page->clickLink('Extra Field 2');
    $page->pressButton('Add block');
    $assert_session->pageTextContains('Extra Field 2');
    $page->pressButton('Save layout');

    // Confirm that the newly added extra field is visible.
    $this->drupalGet('node/1');
    $assert_session->pageTextContains('Extra Field 2 is hidden by default.');
  }

  /**