123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace Drupal\Core\Ajax;
- use Drupal\Core\Form\FormStateInterface;
- /**
- * Provides a helper to for submitting an AJAX form.
- *
- * @internal
- */
- trait AjaxFormHelperTrait {
- use AjaxHelperTrait;
- /**
- * Submit form dialog #ajax callback.
- *
- * @param array $form
- * An associative array containing the structure of the form.
- * @param \Drupal\Core\Form\FormStateInterface $form_state
- * The current state of the form.
- *
- * @return \Drupal\Core\Ajax\AjaxResponse
- * An AJAX response that display validation error messages or represents a
- * successful submission.
- */
- public function ajaxSubmit(array &$form, FormStateInterface $form_state) {
- if ($form_state->hasAnyErrors()) {
- $form['status_messages'] = [
- '#type' => 'status_messages',
- '#weight' => -1000,
- ];
- $form['#sorted'] = FALSE;
- $response = new AjaxResponse();
- $response->addCommand(new ReplaceCommand('[data-drupal-selector="' . $form['#attributes']['data-drupal-selector'] . '"]', $form));
- }
- else {
- $response = $this->successfulAjaxSubmit($form, $form_state);
- }
- return $response;
- }
- /**
- * Allows the form to respond to a successful AJAX submission.
- *
- * @param array $form
- * An associative array containing the structure of the form.
- * @param \Drupal\Core\Form\FormStateInterface $form_state
- * The current state of the form.
- *
- * @return \Drupal\Core\Ajax\AjaxResponse
- * An AJAX response.
- */
- abstract protected function successfulAjaxSubmit(array $form, FormStateInterface $form_state);
- }
|