public function DirectoryDeleteForm::submitModalAjax in Media Directories 3.x
Same name and namespace in other branches
- 8 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()
File
- modules/
media_directories_ui/ src/ Form/ DirectoryDeleteForm.php, line 102
Class
Namespace
Drupal\media_directories_ui\FormCode
public function submitModalAjax(array &$form, FormStateInterface $form_state) {
$response = new AjaxResponse();
$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 CloseDialogCommand('#media-dialog'));
$response
->addCommand(new RefreshDirectoryTree($parent_id));
return $response;
}