public function DirectoryDeleteForm::submitModalAjax in Media Directories 8
Same name and namespace in other branches
- 3.x modules/media_directories_ui/src/Form/DirectoryDeleteForm.php \Drupal\media_directories_ui\Form\DirectoryDeleteForm::submitModalAjax()
- 2.x modules/media_directories_ui/src/Form/DirectoryDeleteForm.php \Drupal\media_directories_ui\Form\DirectoryDeleteForm::submitModalAjax()
Ajax callback when the form is submitted.
File
- modules/
media_directories_ui/ src/ Form/ DirectoryDeleteForm.php, line 125
Class
- DirectoryDeleteForm
- Form to delete a directory.
Namespace
Drupal\media_directories_ui\FormCode
public function submitModalAjax(array &$form, FormStateInterface $form_state) {
$response = new AjaxResponse();
if ($this->directory
->access('delete')) {
$query = $this->entityTypeManager
->getStorage('media')
->getQuery();
$query
->condition('directory', $this->directory
->id());
$media_ids = $query
->execute();
// If directory has any media items, move them into root (remove value).
if (!empty($media_ids)) {
/** @var \Drupal\media\Entity\Media[] $media_items */
$media_items = $this->entityTypeManager
->getStorage('media')
->loadMultiple($media_ids);
foreach ($media_items as $media_item) {
$media_item
->get('directory')
->setValue(NULL);
$media_item
->save();
}
}
$parent_id = (int) $this->directory
->get('parent')->target_id;
// We use -1 as root folder tid.
if ($parent_id === 0) {
$parent_id = -1;
}
$this->directory
->delete();
$response
->addCommand(new CloseModalDialogCommand());
$response
->addCommand(new RefreshDirectoryTree($parent_id));
// $response->addCommand(new AjaxLoadDirectory());
}
return $response;
}