Unverified Commit cbf7b552 authored by alexpott's avatar alexpott
Browse files

Issue #3219340 by lauriii, bnjmnm, mherchel: Vertical tabs with #parents are broken in Claro

parent caf09710
...@@ -26,9 +26,9 @@ public function testVerticalTabs() { ...@@ -26,9 +26,9 @@ public function testVerticalTabs() {
$this->config('system.theme')->set('default', 'claro')->save(); $this->config('system.theme')->set('default', 'claro')->save();
$form = [ $form = [
'#parents' => [], '#parents' => ['parent'],
'#array_parents' => [], '#array_parents' => [],
'#tree' => FALSE, '#tree' => TRUE,
]; ];
$form['vertical_tabs'] = [ $form['vertical_tabs'] = [
...@@ -38,7 +38,7 @@ public function testVerticalTabs() { ...@@ -38,7 +38,7 @@ public function testVerticalTabs() {
$form['vertical_tabs_details'] = [ $form['vertical_tabs_details'] = [
'#type' => 'details', '#type' => 'details',
'#title' => 'Details', '#title' => 'Details',
'#group' => 'vertical_tabs', '#group' => 'parent][vertical_tabs',
]; ];
// Needs to be rendered after the vertical tabs. // Needs to be rendered after the vertical tabs.
...@@ -61,9 +61,9 @@ public function testVerticalTabs() { ...@@ -61,9 +61,9 @@ public function testVerticalTabs() {
// Assert that the vertical tab details has the appropriate class. // Assert that the vertical tab details has the appropriate class.
$this->assertCount(1, $this->cssSelect('.vertical-tabs__items details.vertical-tabs__item')); $this->assertCount(1, $this->cssSelect('.vertical-tabs__items details.vertical-tabs__item'));
// Assert that there is a details element. // Assert that there is a details element.
$this->assertCount(1, $this->cssSelect('#edit-container-details')); $this->assertCount(1, $this->cssSelect('#edit-parent-container-details'));
// Assert that details element doesn't have the vertical tab classes. // Assert that details element doesn't have the vertical tab classes.
$this->assertCount(0, $this->cssSelect('#edit-container-details.vertical-tabs__item')); $this->assertCount(0, $this->cssSelect('#edit-parent-container-details.vertical-tabs__item'));
} }
} }
...@@ -77,13 +77,10 @@ public static function verticalTabs($element) { ...@@ -77,13 +77,10 @@ public static function verticalTabs($element) {
$last_group_with_child_key = NULL; $last_group_with_child_key = NULL;
$last_group_with_child_key_last_child_key = NULL; $last_group_with_child_key_last_child_key = NULL;
// Only iterate through the parents instead of all the group keys. $group_key = implode('][', $element['#parents']);
foreach ($element['#parents'] as $group_key) { // Only check siblings against groups because we are only looking for
// Check parents against groups because we are only looking for group // group elements.
// elements. if (in_array($group_key, $group_keys)) {
if (!in_array($group_key, $group_keys)) {
continue;
}
$children_keys = Element::children($element['group']['#groups'][$group_key], TRUE); $children_keys = Element::children($element['group']['#groups'][$group_key], TRUE);
foreach ($children_keys as $child_key) { foreach ($children_keys as $child_key) {
......
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