public function ViewEditFormController::getDisplayTab

Returns a renderable array representing the edit page for one display.

2 calls to ViewEditFormController::getDisplayTab()
ViewEditFormController::form in drupal/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
Overrides Drupal\Core\Entity\EntityFormController::form().
ViewEditFormController::rebuildCurrentTab in drupal/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
Regenerate the current tab for AJAX updates.

File

drupal/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php, line 314
Contains Drupal\views_ui\ViewEditFormController.

Class

ViewEditFormController
Form controller for the Views edit form.

Namespace

Drupal\views_ui

Code

public function getDisplayTab($view) {
  $build = array();
  $display_id = $view->displayID;
  $display = $view
    ->get('executable')->displayHandlers[$display_id];

  // If the plugin doesn't exist, display an error message instead of an edit
  // page.
  if (empty($display)) {
    $title = isset($display->display['display_title']) ? $display->display['display_title'] : t('Invalid');

    // @TODO: Improved UX for the case where a plugin is missing.
    $build['#markup'] = t("Error: Display @display refers to a plugin named '@plugin', but that plugin is not available.", array(
      '@display' => $display->display['id'],
      '@plugin' => $display->display['display_plugin'],
    ));
  }
  else {
    $build['details'] = $this
      ->getDisplayDetails($view, $display->display);
  }

  // In AJAX context, ViewUI::rebuildCurrentTab() returns this outside of form
  // context, so hook_form_views_ui_edit_form_alter() is insufficient.
  drupal_alter('views_ui_display_tab', $build, $view, $display_id);
  return $build;
}