ViewEditForm::submitDuplicateDisplayAsType

public ViewEditForm::submitDuplicateDisplayAsType($form, FormStateInterface $form_state)

Submit handler to Duplicate a display as another display type.

File

core/modules/views_ui/src/ViewEditForm.php, line 849

Class

ViewEditForm
Form controller for the Views edit form.

Namespace

Drupal\views_ui

Code

public function submitDuplicateDisplayAsType($form, FormStateInterface $form_state) {
  /** @var \Drupal\views\ViewEntityInterface $view */
  $view = $this->entity;
  $display_id = $this->displayID;

  // Create the new display.
  $parents = $form_state->getTriggeringElement()['#parents'];
  $display_type = array_pop($parents);

  $new_display_id = $view->duplicateDisplayAsType($display_id, $display_type);

  // By setting the current display the changed marker will appear on the new
  // display.
  $view->getExecutable()->current_display = $new_display_id;
  $view->cacheSet();

  // Redirect to the new display's edit page.
  $form_state->setRedirect('entity.view.edit_display_form', array(
    'view' => $view->id(),
    'display_id' => $new_display_id,
  ));
}
doc_Drupal
2016-10-29 09:54:01
Comments
Leave a Comment

Please login to continue.