You are here

public function ViewsBulkOperationsController::updateSelection in Views Bulk Operations (VBO) 8.2

Same name and namespace in other branches
  1. 8.3 src/Controller/ViewsBulkOperationsController.php \Drupal\views_bulk_operations\Controller\ViewsBulkOperationsController::updateSelection()
  2. 4.0.x src/Controller/ViewsBulkOperationsController.php \Drupal\views_bulk_operations\Controller\ViewsBulkOperationsController::updateSelection()

AJAX callback to update selection (multipage).

Parameters

string $view_id: The current view ID.

string $display_id: The display ID of the current view.

\Symfony\Component\HttpFoundation\Request $request: The request object.

1 string reference to 'ViewsBulkOperationsController::updateSelection'
views_bulk_operations.routing.yml in ./views_bulk_operations.routing.yml
views_bulk_operations.routing.yml

File

src/Controller/ViewsBulkOperationsController.php, line 97

Class

ViewsBulkOperationsController
Defines VBO controller class.

Namespace

Drupal\views_bulk_operations\Controller

Code

public function updateSelection($view_id, $display_id, Request $request) {
  $view_data = $this
    ->getTempstoreData($view_id, $display_id);
  if (empty($view_data)) {
    throw new NotFoundHttpException();
  }
  $list = $request->request
    ->get('list');
  $op = $request->request
    ->get('op', 'add');
  $change = 0;
  if ($op === 'add') {
    foreach ($list as $bulkFormKey => $label) {
      if (!isset($view_data['list'][$bulkFormKey])) {
        $view_data['list'][$bulkFormKey] = $this
          ->getListItem($bulkFormKey, $label);
        $change++;
      }
    }
  }
  elseif ($op === 'remove') {
    foreach ($list as $bulkFormKey => $label) {
      if (isset($view_data['list'][$bulkFormKey])) {
        unset($view_data['list'][$bulkFormKey]);
        $change--;
      }
    }
  }
  $this
    ->setTempstoreData($view_data);
  $response = new AjaxResponse();
  $response
    ->setData([
    'change' => $change,
  ]);
  return $response;
}