public function GeysirModalParagraphDeleteForm::ajaxDelete in Geysir 8
File
- src/
Form/ GeysirModalParagraphDeleteForm.php, line 77
Class
- GeysirModalParagraphDeleteForm
- Functionality to delete a paragraph through a modal.
Namespace
Drupal\geysir\FormCode
public function ajaxDelete(array $form, FormStateInterface $form_state) {
$response = new AjaxResponse();
// Get all necessary data to be able to correctly update the correct
// field on the parent node.
$route_match = $this
->getRouteMatch();
$parent_entity_type = $route_match
->getParameter('parent_entity_type');
$temporary_data = $form_state
->getTemporary();
$parent_entity_revision = isset($temporary_data['parent_entity_revision']) ? $temporary_data['parent_entity_revision'] : $route_match
->getParameter('parent_entity_revision');
$field_name = $route_match
->getParameter('field');
$field_wrapper_id = $route_match
->getParameter('field_wrapper_id');
// Get the parent revision if available, otherwise the parent.
$parent_entity_revision = $this
->getParentRevisionOrParent($parent_entity_type, $parent_entity_revision);
// Refresh the paragraphs field.
$response
->addCommand(new ReplaceCommand('[data-geysir-field-paragraph-field-wrapper=' . $field_wrapper_id . ']', $parent_entity_revision
->get($field_name)
->view('default')));
$response
->addCommand(new CloseModalDialogCommand());
$response
->addCommand(new GeysirReattachBehaviors());
return $response;
}