Verified Commit 22c7a860 authored by Dave Long's avatar Dave Long
Browse files

fix: #3387100 Missing config schema for core.base_field_override.*.*.*...

fix: #3387100 Missing config schema for core.base_field_override.*.*.* third_party_settings.content_translation

By: grimreaper
By: smustgrave
By: heddn
By: bbrala
By: bbu23
By: codebymikey
By: alexpott
By: penyaskito
parent ec24cbda
Loading
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
# Schema for the Content Translation module.

field.field.*.*.*.third_party.content_translation:
content_translation_field_third_party_settings:
  type: mapping
  label: 'Content translation field settings'
  mapping:
@@ -11,6 +11,12 @@ field.field.*.*.*.third_party.content_translation:
        type: string
        label: 'Field column for which to synchronize translations'

core.base_field_override.*.*.*.third_party.content_translation:
  type: content_translation_field_third_party_settings

field.field.*.*.*.third_party.content_translation:
  type: content_translation_field_third_party_settings

language.content_settings.*.*.third_party.content_translation:
  type: mapping
  label: 'Content translation content settings'
+21 −0
Original line number Diff line number Diff line
<?php

/**
 * @file
 * Post update functions for Content Translation.
 */

use Drupal\Core\Config\Entity\ConfigEntityUpdater;
use Drupal\Core\Field\FieldConfigInterface;

/**
 * Update content_translated configuration for base_field_override entities.
 */
function content_translation_post_update_resave_base_field_overrides(array &$sandbox): void {
  /** @var \Drupal\Core\Config\Entity\ConfigEntityUpdater $config_updater */
  $config_updater = \Drupal::classResolver(ConfigEntityUpdater::class);
  $config_updater->update($sandbox, 'base_field_override', function (FieldConfigInterface $field) {
    // Resave base field overrides that have content translation enabled.
    return (bool) $field->getThirdPartySettings('content_translation');
  }, TRUE);
}
+4 −0
Original line number Diff line number Diff line
@@ -58,6 +58,10 @@ public function testBaseFieldSyncOptionsVisibleOnFirstLoad(): void {
    $assert_session->elementExists('css', 'input[name="settings[media][' . $media_type->id() . '][columns][thumbnail][file]"]');
    $assert_session->elementExists('css', 'input[name="settings[media][' . $media_type->id() . '][columns][thumbnail][alt]"]');
    $assert_session->elementExists('css', 'input[name="settings[media][' . $media_type->id() . '][columns][thumbnail][title]"]');

    // Ensure the form can be saved without config schema errors.
    $this->getSession()->getPage()->pressButton('Save configuration');
    $this->assertSession()->pageTextContains('Settings successfully updated.');
  }

}