public function EnrollRequestModalForm::submitModalFormAjax in Open Social 10.2.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_event/src/Form/EnrollRequestModalForm.php \Drupal\social_event\Form\EnrollRequestModalForm::submitModalFormAjax()
- 10.3.x modules/social_features/social_event/src/Form/EnrollRequestModalForm.php \Drupal\social_event\Form\EnrollRequestModalForm::submitModalFormAjax()
- 10.0.x modules/social_features/social_event/src/Form/EnrollRequestModalForm.php \Drupal\social_event\Form\EnrollRequestModalForm::submitModalFormAjax()
- 10.1.x modules/social_features/social_event/src/Form/EnrollRequestModalForm.php \Drupal\social_event\Form\EnrollRequestModalForm::submitModalFormAjax()
AJAX callback handler that displays any errors or a success message.
File
- modules/
social_features/ social_event/ src/ Form/ EnrollRequestModalForm.php, line 82
Class
- EnrollRequestModalForm
- SendToDestinationsForm class.
Namespace
Drupal\social_event\FormCode
public function submitModalFormAjax(array $form, FormStateInterface $form_state) {
$response = new AjaxResponse();
if ($form_state
->getErrors()) {
// If there are errors, we can show the form again with the errors in
// the status_messages section.
$form['status_messages'] = [
'#type' => 'status_messages',
'#weight' => -10,
];
$form_state
->setRebuild();
return $response
->addCommand(new OpenModalDialogCommand($this
->t('Request to enroll'), $form, static::getDataDialogOptions()));
}
// Refactor this into a service or helper.
$message = $form_state
->getValue('message');
$current_user = \Drupal::currentUser();
$uid = $current_user
->id();
$nid = $form_state
->getValue('event');
// Default event enrollment field set.
$fields = [
'user_id' => $uid,
'field_event' => $nid,
'field_enrollment_status' => '0',
'field_account' => $uid,
'field_request_or_invite_status' => EventEnrollmentInterface::REQUEST_PENDING,
'field_request_message' => $message,
];
// Create a new enrollment for the event.
$enrollment = EventEnrollment::create($fields);
$enrollment
->save();
// On success leave a message and reload the page.
\Drupal::messenger()
->addStatus(t('Your request has been sent successfully'));
return $response
->addCommand(new CloseDialogCommand());
}