diff --git a/core/modules/views/lib/Drupal/views/Tests/UI/DisplayTest.php b/core/modules/views/lib/Drupal/views/Tests/UI/DisplayTest.php index 192cda9..f2acf25 100644 --- a/core/modules/views/lib/Drupal/views/Tests/UI/DisplayTest.php +++ b/core/modules/views/lib/Drupal/views/Tests/UI/DisplayTest.php @@ -167,6 +167,8 @@ public function testCloneDisplay() { $displays = $view->displayHandlers; $this->assertTrue($displays['page_2'], 'The new page display got saved.'); $this->assertTrue($displays['block_1'], 'The new block display got saved.'); + $this->assertEqual($displays['page_2'], 'Page 2', 'The new display title got generated as expected.'); + $this->assertEqual($displays['block_1'], 'Block 1', 'The new display title got generated as expected.'); $this->assertEqual($displays['block_1']->getOption('title'), $random_title, 'The overridden title option from the display got copied into the clone'); $this->assertEqual($displays['block_1']->getOption('css_class'), $random_css, 'The overridden css_class option from the display got copied into the clone'); } diff --git a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php index 5ad0a3a..1133b9a 100644 --- a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php +++ b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php @@ -788,14 +788,17 @@ public function submitCloneDisplayAsType($form, &$form_state) { $display_id = $view->displayID; // Create the new display. - $displays = $view->get('display'); $parents = $form_state['triggering_element']['#parents']; $display_type = array_pop($parents); $new_display_id = $view->addDisplay($display_type); + $displays = $view->get('display'); + + // Let the display title be generated by the addDisplay method but copy + // the rest from the original display. + $display_clone = $displays[$display_id]; + unset($display_clone['display_title']); - // Copy the display options and plugin but leave the title left. - $displays[$new_display_id]['display_options'] = $displays[$display_id]['display_options']; - $displays[$new_display_id]['display_plugin'] = $displays[$display_id]['display_plugin']; + $displays[$new_display_id] += $display_clone; $displays[$new_display_id]['id'] = $new_display_id; $view->set('display', $displays);