diff --git a/core/modules/field/modules/text/lib/Drupal/text/Tests/TextTranslationTest.php b/core/modules/field/modules/text/lib/Drupal/text/Tests/TextTranslationTest.php
index 1e2a13d..0ac151f 100644
--- a/core/modules/field/modules/text/lib/Drupal/text/Tests/TextTranslationTest.php
+++ b/core/modules/field/modules/text/lib/Drupal/text/Tests/TextTranslationTest.php
@@ -90,7 +90,7 @@ function testTextField() {
*/
function testTextFieldFormatted() {
// Make node body multiple.
- $edit = array('field[container][cardinality]' => -1);
+ $edit = array('field[cardinality]' => -1);
$this->drupalPost('admin/structure/types/manage/article/fields/body', $edit, t('Save settings'));
$this->drupalGet('node/add/article');
$this->assertFieldByXPath("//input[@name='body_add_more']", t('Add another item'), 'Body field cardinality set to multiple.');
diff --git a/core/modules/field_ui/field_ui.admin.inc b/core/modules/field_ui/field_ui.admin.inc
index d919eed..45b4fc5 100644
--- a/core/modules/field_ui/field_ui.admin.inc
+++ b/core/modules/field_ui/field_ui.admin.inc
@@ -923,22 +923,24 @@ function field_ui_field_edit_form($form, &$form_state, $instance) {
}
$cardinality = $field['cardinality'];
- $form['field']['container'] = array(
+ $form['field']['cardinality'] = array(
// We can't use the container element because it doesn't support the title
// or description properties.
'#type' => 'item',
+ // Reset #parents to 'field', so the additional container does not appear.
+ '#parents' => array('field'),
'#field_prefix' => '
',
'#field_suffix' => '
',
'#title' => t('Number of values'),
'#description' => $description,
);
- $form['field']['container']['cardinality'] = array(
+ $form['field']['cardinality']['cardinality'] = array(
'#type' => 'select',
'#options' => array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + drupal_map_assoc(range(1, 5)) + array('other' => t('More')),
'#default_value' => ($cardinality < 6) ? $cardinality : 'other',
);
// @todo Convert when http://drupal.org/node/1207060 gets in.
- $form['field']['container']['cardinality_other'] = array(
+ $form['field']['cardinality']['cardinality_other'] = array(
'#type' => 'number',
'#default_value' => $cardinality > 5 ? $cardinality : 6,
'#min' => 1,
@@ -946,7 +948,7 @@ function field_ui_field_edit_form($form, &$form_state, $instance) {
'#title_display' => 'invisible',
'#states' => array(
'visible' => array(
- ':input[name="field[container][cardinality]"]' => array('value' => 'other'),
+ ':input[name="field[cardinality]"]' => array('value' => 'other'),
),
),
);
@@ -1060,10 +1062,15 @@ function field_ui_field_edit_form_validate($form, &$form_state) {
$entity = $form['#entity'];
// Validate field cardinality.
- $cardinality = $form_state['values']['field']['container']['cardinality'];
- $cardinality_other = $form_state['values']['field']['container']['cardinality_other'];
- if ($cardinality == 'other' && empty($cardinality_other)) {
- form_error($form['field']['container']['cardinality_other'], t('Number of values is required.'));
+ $cardinality = &$form_state['values']['field']['cardinality'];
+ $cardinality_other = &$form_state['values']['field']['cardinality_other'];
+ if ($cardinality == 'other') {
+ if (empty($cardinality_other)) {
+ form_error($form['field']['cardinality_other'], t('Number of values is required.'));
+ }
+ else {
+ $cardinality = $cardinality_other;
+ }
}
if (isset($form['instance']['default_value_widget'])) {
@@ -1106,15 +1113,6 @@ function field_ui_field_edit_form_submit($form, &$form_state) {
$field = $form['#field'];
$entity = $form['#entity'];
- // Save field cardinality.
- $cardinality = $form_state['values']['field']['container']['cardinality'];
- $cardinality_other = $form_state['values']['field']['container']['cardinality_other'];
- if ($cardinality == 'other') {
- $cardinality = $cardinality_other;
- }
- $form_state['values']['field']['cardinality'] = $cardinality;
- unset($form_state['values']['field']['container']);
-
// Merge incoming values into the field.
$field = array_merge($field, $form_state['values']['field']);
try {
diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageFieldsTest.php b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageFieldsTest.php
index e9c4be2..bdac792 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageFieldsTest.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageFieldsTest.php
@@ -175,8 +175,8 @@ function cardinalitySettings() {
// Assert the cardinality other field cannot be empty when cardinality is
// set to other.
$edit = array(
- 'field[container][cardinality]' => 'other',
- 'field[container][cardinality_other]' => '',
+ 'field[cardinality]' => 'other',
+ 'field[cardinality_other]' => '',
);
$this->drupalPost($field_edit_path, $edit, t('Save settings'));
$this->assertText('Number of values is required.');
@@ -184,26 +184,26 @@ function cardinalitySettings() {
// Assert the cardinality field is set to 'Other' when the value is greater
// than 5.
$edit = array(
- 'field[container][cardinality]' => 'other',
- 'field[container][cardinality_other]' => 16,
+ 'field[cardinality]' => 'other',
+ 'field[cardinality_other]' => 16,
);
$this->drupalPost($field_edit_path, $edit, t('Save settings'));
$this->assertText('Saved Body configuration.');
$this->drupalGet($field_edit_path);
- $this->assertFieldByXPath("//select[@name='field[container][cardinality]']", 'other');
- $this->assertFieldByXPath("//input[@name='field[container][cardinality_other]']", 16);
+ $this->assertFieldByXPath("//select[@name='field[cardinality]']", 'other');
+ $this->assertFieldByXPath("//input[@name='field[cardinality_other]']", 16);
// Assert the cardinality other field is set back to 6 after changing the
// cardinality to less than 6.
$edit = array(
- 'field[container][cardinality]' => 3,
- 'field[container][cardinality_other]' => 16,
+ 'field[cardinality]' => 3,
+ 'field[cardinality_other]' => 16,
);
$this->drupalPost($field_edit_path, $edit, t('Save settings'));
$this->assertText('Saved Body configuration.');
$this->drupalGet($field_edit_path);
- $this->assertFieldByXPath("//select[@name='field[container][cardinality]']", 3);
- $this->assertFieldByXPath("//input[@name='field[container][cardinality_other]']", 6);
+ $this->assertFieldByXPath("//select[@name='field[cardinality]']", 3);
+ $this->assertFieldByXPath("//input[@name='field[cardinality_other]']", 6);
}
/**