You are here

public function ConfigHandler::remove in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views_ui/src/Form/Ajax/ConfigHandler.php \Drupal\views_ui\Form\Ajax\ConfigHandler::remove()

Submit handler for removing an item from a view.

File

core/modules/views_ui/src/Form/Ajax/ConfigHandler.php, line 263

Class

ConfigHandler
Provides a form for configuring an item in the Views UI.

Namespace

Drupal\views_ui\Form\Ajax

Code

public function remove(&$form, FormStateInterface $form_state) {
  $view = $form_state
    ->get('view');
  $display_id = $form_state
    ->get('display_id');
  $type = $form_state
    ->get('type');
  $id = $form_state
    ->get('id');

  // Store the item back on the view
  list($was_defaulted, $is_defaulted) = $view
    ->getOverrideValues($form, $form_state);
  $executable = $view
    ->getExecutable();

  // If the display selection was changed toggle the override value.
  if ($was_defaulted != $is_defaulted) {
    $display =& $executable->displayHandlers
      ->get($display_id);
    $display
      ->optionsOverride($form, $form_state);
  }
  $executable
    ->removeHandler($display_id, $type, $id);

  // Write to cache
  $view
    ->cacheSet();
}