You are here

public function DeleteForm::submitForm in Filebrowser 8.2

Same name and namespace in other branches
  1. 3.x src/Form/DeleteForm.php \Drupal\filebrowser\Form\DeleteForm::submitForm()

Parameters

array $form:

FormStateInterface $form_state:

Overrides FormInterface::submitForm

File

src/Form/DeleteForm.php, line 171

Class

DeleteForm

Namespace

Drupal\filebrowser\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  if ($this->error) {

    // Create an AjaxResponse.
    $response = new AjaxResponse();

    // Remove old events
    $response
      ->addCommand(new RemoveCommand('#filebrowser-form-action-error'));
    $response
      ->addCommand(new RemoveCommand('.form-in-slide-down'));

    // Insert event details after event.
    $response
      ->addCommand(new AfterCommand('#form-action-actions-wrapper', $form));

    // $response->addCommand(new AfterCommand('#form-action-actions-wrapper', $html));
    $response
      ->addCommand(new AlertCommand($this
      ->t('You must confirm deletion of selected folders.')));
    $form_state
      ->setResponse($response);
  }
  else {
    foreach ($this->itemsToDelete as $item) {
      $data = unserialize($item['file_data']);
      $success = $this->fileSystem
        ->deleteRecursive($data->uri);
      if ($success) {

        // invalidate the cache for this node
        Cache::invalidateTags([
          'filebrowser:node:' . $this->node
            ->id(),
        ]);
      }
      else {
        \Drupal::messenger()
          ->addWarning($this
          ->t('Unable to delete @file', [
          '@file' => $data->uri,
        ]));
      }
    }
    $route = $this->common
      ->redirectRoute($this->queryFid, $this->node
      ->id());
    if ($this->ajax) {
      $response_url = Url::fromRoute($route['name'], $route['node'], $route['query']);
      $response = new AjaxResponse();
      $response
        ->addCommand(new RedirectCommand($response_url
        ->toString()));
      $form_state
        ->setResponse($response);
    }
    else {
      $form_state
        ->setRedirect($route['name'], $route['node'], $route['query']);
    }
  }
}