Commit 4229a76b authored by alexpott's avatar alexpott

Issue #2575535 by bighappyface, heykarthikwithu, rodrigoaguilera,...

Issue #2575535 by bighappyface, heykarthikwithu, rodrigoaguilera, prasad_gogate:  Custom language settings configuration is not saved when you have a language selector enabled for any content
parent 37500c9a
<?php
namespace Drupal\content_translation\Tests;
use Drupal\Tests\BrowserTestBase;
/**
* Test disabling content translation module.
*
* @group content_translation
*/
class ContentTranslationDisableSettingTest extends BrowserTestBase {
/**
* {@inheritdoc}
*/
public static $modules = [
'content_translation',
'menu_link_content',
'language',
];
/**
* Tests that entity schemas are up-to-date after enabling translation.
*/
public function testDisableSetting() {
// Define selectors.
$group_checkbox = 'entity_types[menu_link_content]';
$translatable_checkbox = 'settings[menu_link_content][menu_link_content][translatable]';
$language_alterable = 'settings[menu_link_content][menu_link_content][settings][language][language_alterable]';
$user = $this->drupalCreateUser([
'administer site configuration',
'administer content translation',
'create content translations',
'administer languages',
]);
$this->drupalLogin($user);
$assert = $this->assertSession();
$this->drupalGet('admin/config/regional/content-language');
$assert->checkboxNotChecked('entity_types[menu_link_content]');
$edit = [
$group_checkbox => TRUE,
$translatable_checkbox => TRUE,
$language_alterable => TRUE,
];
$this->submitForm($edit, t('Save configuration'));
$assert->pageTextContains(t('Settings successfully updated.'));
$assert->checkboxChecked($group_checkbox);
$edit = [
$group_checkbox => FALSE,
$translatable_checkbox => TRUE,
$language_alterable => TRUE,
];
$this->submitForm($edit, t('Save configuration'));
$assert->pageTextContains(t('Settings successfully updated.'));
$assert->checkboxNotChecked($group_checkbox);
}
}
......@@ -143,9 +143,13 @@ public function buildForm(array $form, FormStateInterface $form_state) {
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$entity_types = $form_state->getValue('entity_types');
foreach ($form_state->getValue('settings') as $entity_type => $entity_settings) {
foreach ($entity_settings as $bundle => $bundle_settings) {
$config = ContentLanguageSettings::loadByEntityTypeBundle($entity_type, $bundle);
if (empty($entity_types[$entity_type])) {
$bundle_settings['settings']['language']['language_alterable'] = FALSE;
}
$config->setDefaultLangcode($bundle_settings['settings']['language']['langcode'])
->setLanguageAlterable($bundle_settings['settings']['language']['language_alterable'])
->save();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment