Issue #2434745 by geertvd: Boolean field: On/Off labels are in the "storage" settings but shouldn't be
							parent
							
								
									17e182707b
								
							
						
					
					
						commit
						bbc47f05fc
					
				| 
						 | 
				
			
			@ -582,9 +582,9 @@ field.value.entity_reference:
 | 
			
		|||
 | 
			
		||||
# Schema for the configuration of the Boolean field type.
 | 
			
		||||
 | 
			
		||||
field.storage_settings.boolean:
 | 
			
		||||
  type: mapping
 | 
			
		||||
field.field_settings.boolean:
 | 
			
		||||
  label: 'Boolean settings'
 | 
			
		||||
  type: mapping
 | 
			
		||||
  mapping:
 | 
			
		||||
    on_label:
 | 
			
		||||
      type: string
 | 
			
		||||
| 
						 | 
				
			
			@ -593,10 +593,6 @@ field.storage_settings.boolean:
 | 
			
		|||
      type: string
 | 
			
		||||
      label: 'Off label'
 | 
			
		||||
 | 
			
		||||
field.field_settings.boolean:
 | 
			
		||||
  label: 'Boolean settings'
 | 
			
		||||
  type: mapping
 | 
			
		||||
 | 
			
		||||
field.value.boolean:
 | 
			
		||||
  type: mapping
 | 
			
		||||
  mapping:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,11 +31,11 @@ class BooleanItem extends FieldItemBase implements OptionsProviderInterface {
 | 
			
		|||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public static function defaultStorageSettings() {
 | 
			
		||||
  public static function defaultFieldSettings() {
 | 
			
		||||
    return array(
 | 
			
		||||
      'on_label' => t('On'),
 | 
			
		||||
      'off_label' => t('Off'),
 | 
			
		||||
    ) + parent::defaultStorageSettings();
 | 
			
		||||
    ) + parent::defaultFieldSettings();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +66,9 @@ class BooleanItem extends FieldItemBase implements OptionsProviderInterface {
 | 
			
		|||
  /**
 | 
			
		||||
   * {@inheritdoc}
 | 
			
		||||
   */
 | 
			
		||||
  public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
 | 
			
		||||
  public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
 | 
			
		||||
    $element = array();
 | 
			
		||||
 | 
			
		||||
    $element['on_label'] = array(
 | 
			
		||||
      '#type' => 'textfield',
 | 
			
		||||
      '#title' => $this->t('"On" label'),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,10 +69,6 @@ class BooleanFieldTest extends WebTestBase {
 | 
			
		|||
      'field_name' => $field_name,
 | 
			
		||||
      'entity_type' => 'entity_test',
 | 
			
		||||
      'type' => 'boolean',
 | 
			
		||||
      'settings' => array(
 | 
			
		||||
        'on_label' => $on,
 | 
			
		||||
        'off_label' => $off,
 | 
			
		||||
      ),
 | 
			
		||||
    ));
 | 
			
		||||
    $this->field_storage->save();
 | 
			
		||||
    $this->field = FieldConfig::create(array(
 | 
			
		||||
| 
						 | 
				
			
			@ -81,6 +77,10 @@ class BooleanFieldTest extends WebTestBase {
 | 
			
		|||
      'bundle' => 'entity_test',
 | 
			
		||||
      'label' => $label,
 | 
			
		||||
      'required' => TRUE,
 | 
			
		||||
      'settings' => array(
 | 
			
		||||
        'on_label' => $on,
 | 
			
		||||
        'off_label' => $off,
 | 
			
		||||
      ),
 | 
			
		||||
    ));
 | 
			
		||||
    $this->field->save();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -118,6 +118,16 @@ class BooleanFieldTest extends WebTestBase {
 | 
			
		|||
    $this->setRawContent(drupal_render($content));
 | 
			
		||||
    $this->assertRaw('<div class="field-item">' . $on . '</div>');
 | 
			
		||||
 | 
			
		||||
    // Test if we can change the on label.
 | 
			
		||||
    $on = $this->randomMachineName();
 | 
			
		||||
    $edit = array(
 | 
			
		||||
      'field[settings][on_label]' => $on,
 | 
			
		||||
    );
 | 
			
		||||
    $this->drupalPostForm('entity_test/structure/entity_test/fields/entity_test.entity_test.' . $field_name, $edit, t('Save settings'));
 | 
			
		||||
    // Check if we see the updated labels in the creation form.
 | 
			
		||||
    $this->drupalGet('entity_test/add');
 | 
			
		||||
    $this->assertRaw($on);
 | 
			
		||||
 | 
			
		||||
    // Test the display_label option.
 | 
			
		||||
    entity_get_form_display('entity_test', 'entity_test', 'default')
 | 
			
		||||
      ->setComponent($field_name, array(
 | 
			
		||||
| 
						 | 
				
			
			@ -168,9 +178,9 @@ class BooleanFieldTest extends WebTestBase {
 | 
			
		|||
    );
 | 
			
		||||
 | 
			
		||||
    // Test the boolean field settings.
 | 
			
		||||
    $this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.' . $field_name . '/storage');
 | 
			
		||||
    $this->assertFieldById('edit-field-storage-settings-on-label', $on);
 | 
			
		||||
    $this->assertFieldById('edit-field-storage-settings-off-label', $off);
 | 
			
		||||
    $this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.' . $field_name);
 | 
			
		||||
    $this->assertFieldById('edit-field-settings-on-label', $on);
 | 
			
		||||
    $this->assertFieldById('edit-field-settings-off-label', $off);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,11 +111,11 @@ class BooleanFormatterSettingsTest extends WebTestBase {
 | 
			
		|||
 | 
			
		||||
    foreach ($settings as $values) {
 | 
			
		||||
      // Set up the field settings.
 | 
			
		||||
      $this->drupalGet('admin/structure/types/manage/' . $this->bundle . '/fields/node.' . $this->bundle . '.' . $this->fieldName . '/storage');
 | 
			
		||||
      $this->drupalGet('admin/structure/types/manage/' . $this->bundle . '/fields/node.' . $this->bundle . '.' . $this->fieldName);
 | 
			
		||||
      $this->drupalPostForm(NULL, array(
 | 
			
		||||
        'field_storage[settings][on_label]' => $values[0],
 | 
			
		||||
        'field_storage[settings][off_label]' => $values[1],
 | 
			
		||||
      ), 'Save field settings');
 | 
			
		||||
        'field[settings][on_label]' => $values[0],
 | 
			
		||||
        'field[settings][off_label]' => $values[1],
 | 
			
		||||
      ), 'Save settings');
 | 
			
		||||
 | 
			
		||||
      // Open the Manage Display page and trigger the field settings form.
 | 
			
		||||
      $this->drupalGet('admin/structure/types/manage/' . $this->bundle . '/display');
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,8 @@ default_value:
 | 
			
		|||
  -
 | 
			
		||||
    value: 0
 | 
			
		||||
default_value_callback: ''
 | 
			
		||||
settings: {  }
 | 
			
		||||
settings:
 | 
			
		||||
  on_label: Yes
 | 
			
		||||
  off_label: No
 | 
			
		||||
third_party_settings: {  }
 | 
			
		||||
field_type: boolean
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,9 +7,7 @@ id: taxonomy_term.forum_container
 | 
			
		|||
field_name: forum_container
 | 
			
		||||
entity_type: taxonomy_term
 | 
			
		||||
type: boolean
 | 
			
		||||
settings:
 | 
			
		||||
  on_label: Yes
 | 
			
		||||
  off_label: No
 | 
			
		||||
settings: {  }
 | 
			
		||||
module: core
 | 
			
		||||
locked: true
 | 
			
		||||
cardinality: 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,10 +58,6 @@ class NodeAccessLanguageAwareCombinationTest extends NodeTestBase {
 | 
			
		|||
      'entity_type' => 'node',
 | 
			
		||||
      'type' => 'boolean',
 | 
			
		||||
      'cardinality' => 1,
 | 
			
		||||
      'settings' => array(
 | 
			
		||||
        'on_label' => 'Private',
 | 
			
		||||
        'off_label' => 'Not private',
 | 
			
		||||
      ),
 | 
			
		||||
    ));
 | 
			
		||||
    $field_storage->save();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -71,6 +67,10 @@ class NodeAccessLanguageAwareCombinationTest extends NodeTestBase {
 | 
			
		|||
      'widget' => array(
 | 
			
		||||
        'type' => 'options_buttons',
 | 
			
		||||
      ),
 | 
			
		||||
      'settings' => array(
 | 
			
		||||
        'on_label' => 'Private',
 | 
			
		||||
        'off_label' => 'Not private',
 | 
			
		||||
      ),
 | 
			
		||||
    ))->save();
 | 
			
		||||
 | 
			
		||||
    // After enabling a node access module, the access table has to be rebuild.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,10 +56,6 @@ class NodeAccessLanguageAwareTest extends NodeTestBase {
 | 
			
		|||
      'entity_type' => 'node',
 | 
			
		||||
      'type' => 'boolean',
 | 
			
		||||
      'cardinality' => 1,
 | 
			
		||||
      'settings' => array(
 | 
			
		||||
        'on_label' => 'Private',
 | 
			
		||||
        'off_label' => 'Not private',
 | 
			
		||||
      ),
 | 
			
		||||
    ));
 | 
			
		||||
    $field_storage->save();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -69,6 +65,10 @@ class NodeAccessLanguageAwareTest extends NodeTestBase {
 | 
			
		|||
      'widget' => array(
 | 
			
		||||
        'type' => 'options_buttons',
 | 
			
		||||
      ),
 | 
			
		||||
      'settings' => array(
 | 
			
		||||
        'on_label' => 'Private',
 | 
			
		||||
        'off_label' => 'Not private',
 | 
			
		||||
      ),
 | 
			
		||||
    ))->save();
 | 
			
		||||
 | 
			
		||||
    // After enabling a node access module, the access table has to be rebuild.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue