Issue #2434745 by geertvd: Boolean field: On/Off labels are in the "storage" settings but shouldn't be

8.0.x
Nathaniel Catchpole 2015-03-04 15:17:04 +00:00
parent 17e182707b
commit bbc47f05fc
8 changed files with 40 additions and 32 deletions

View File

@ -582,9 +582,9 @@ field.value.entity_reference:
# Schema for the configuration of the Boolean field type. # Schema for the configuration of the Boolean field type.
field.storage_settings.boolean: field.field_settings.boolean:
type: mapping
label: 'Boolean settings' label: 'Boolean settings'
type: mapping
mapping: mapping:
on_label: on_label:
type: string type: string
@ -593,10 +593,6 @@ field.storage_settings.boolean:
type: string type: string
label: 'Off label' label: 'Off label'
field.field_settings.boolean:
label: 'Boolean settings'
type: mapping
field.value.boolean: field.value.boolean:
type: mapping type: mapping
mapping: mapping:

View File

@ -31,11 +31,11 @@ class BooleanItem extends FieldItemBase implements OptionsProviderInterface {
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public static function defaultStorageSettings() { public static function defaultFieldSettings() {
return array( return array(
'on_label' => t('On'), 'on_label' => t('On'),
'off_label' => t('Off'), 'off_label' => t('Off'),
) + parent::defaultStorageSettings(); ) + parent::defaultFieldSettings();
} }
/** /**
@ -66,7 +66,9 @@ class BooleanItem extends FieldItemBase implements OptionsProviderInterface {
/** /**
* {@inheritdoc} * {@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( $element['on_label'] = array(
'#type' => 'textfield', '#type' => 'textfield',
'#title' => $this->t('"On" label'), '#title' => $this->t('"On" label'),

View File

@ -69,10 +69,6 @@ class BooleanFieldTest extends WebTestBase {
'field_name' => $field_name, 'field_name' => $field_name,
'entity_type' => 'entity_test', 'entity_type' => 'entity_test',
'type' => 'boolean', 'type' => 'boolean',
'settings' => array(
'on_label' => $on,
'off_label' => $off,
),
)); ));
$this->field_storage->save(); $this->field_storage->save();
$this->field = FieldConfig::create(array( $this->field = FieldConfig::create(array(
@ -81,6 +77,10 @@ class BooleanFieldTest extends WebTestBase {
'bundle' => 'entity_test', 'bundle' => 'entity_test',
'label' => $label, 'label' => $label,
'required' => TRUE, 'required' => TRUE,
'settings' => array(
'on_label' => $on,
'off_label' => $off,
),
)); ));
$this->field->save(); $this->field->save();
@ -118,6 +118,16 @@ class BooleanFieldTest extends WebTestBase {
$this->setRawContent(drupal_render($content)); $this->setRawContent(drupal_render($content));
$this->assertRaw('<div class="field-item">' . $on . '</div>'); $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. // Test the display_label option.
entity_get_form_display('entity_test', 'entity_test', 'default') entity_get_form_display('entity_test', 'entity_test', 'default')
->setComponent($field_name, array( ->setComponent($field_name, array(
@ -168,9 +178,9 @@ class BooleanFieldTest extends WebTestBase {
); );
// Test the boolean field settings. // Test the boolean field settings.
$this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.' . $field_name . '/storage'); $this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.' . $field_name);
$this->assertFieldById('edit-field-storage-settings-on-label', $on); $this->assertFieldById('edit-field-settings-on-label', $on);
$this->assertFieldById('edit-field-storage-settings-off-label', $off); $this->assertFieldById('edit-field-settings-off-label', $off);
} }
} }

View File

@ -111,11 +111,11 @@ class BooleanFormatterSettingsTest extends WebTestBase {
foreach ($settings as $values) { foreach ($settings as $values) {
// Set up the field settings. // 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( $this->drupalPostForm(NULL, array(
'field_storage[settings][on_label]' => $values[0], 'field[settings][on_label]' => $values[0],
'field_storage[settings][off_label]' => $values[1], 'field[settings][off_label]' => $values[1],
), 'Save field settings'); ), 'Save settings');
// Open the Manage Display page and trigger the field settings form. // Open the Manage Display page and trigger the field settings form.
$this->drupalGet('admin/structure/types/manage/' . $this->bundle . '/display'); $this->drupalGet('admin/structure/types/manage/' . $this->bundle . '/display');

View File

@ -16,6 +16,8 @@ default_value:
- -
value: 0 value: 0
default_value_callback: '' default_value_callback: ''
settings: { } settings:
on_label: Yes
off_label: No
third_party_settings: { } third_party_settings: { }
field_type: boolean field_type: boolean

View File

@ -7,9 +7,7 @@ id: taxonomy_term.forum_container
field_name: forum_container field_name: forum_container
entity_type: taxonomy_term entity_type: taxonomy_term
type: boolean type: boolean
settings: settings: { }
on_label: Yes
off_label: No
module: core module: core
locked: true locked: true
cardinality: 1 cardinality: 1

View File

@ -58,10 +58,6 @@ class NodeAccessLanguageAwareCombinationTest extends NodeTestBase {
'entity_type' => 'node', 'entity_type' => 'node',
'type' => 'boolean', 'type' => 'boolean',
'cardinality' => 1, 'cardinality' => 1,
'settings' => array(
'on_label' => 'Private',
'off_label' => 'Not private',
),
)); ));
$field_storage->save(); $field_storage->save();
@ -71,6 +67,10 @@ class NodeAccessLanguageAwareCombinationTest extends NodeTestBase {
'widget' => array( 'widget' => array(
'type' => 'options_buttons', 'type' => 'options_buttons',
), ),
'settings' => array(
'on_label' => 'Private',
'off_label' => 'Not private',
),
))->save(); ))->save();
// After enabling a node access module, the access table has to be rebuild. // After enabling a node access module, the access table has to be rebuild.

View File

@ -56,10 +56,6 @@ class NodeAccessLanguageAwareTest extends NodeTestBase {
'entity_type' => 'node', 'entity_type' => 'node',
'type' => 'boolean', 'type' => 'boolean',
'cardinality' => 1, 'cardinality' => 1,
'settings' => array(
'on_label' => 'Private',
'off_label' => 'Not private',
),
)); ));
$field_storage->save(); $field_storage->save();
@ -69,6 +65,10 @@ class NodeAccessLanguageAwareTest extends NodeTestBase {
'widget' => array( 'widget' => array(
'type' => 'options_buttons', 'type' => 'options_buttons',
), ),
'settings' => array(
'on_label' => 'Private',
'off_label' => 'Not private',
),
))->save(); ))->save();
// After enabling a node access module, the access table has to be rebuild. // After enabling a node access module, the access table has to be rebuild.