public function AnalysisFormHandler::analysisSubmitAjax in Real-time SEO for Drupal 8.2
Ajax Callback for returning entity preview to seo library.
Parameters
array $form: The complete form array.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
\Drupal\Core\Ajax\AjaxResponse The ajax response.
File
- src/Form/ AnalysisFormHandler.php, line 70 
Class
- AnalysisFormHandler
- Base class for yoast_seo_preview form handlers.
Namespace
Drupal\yoast_seo\FormCode
public function analysisSubmitAjax(array &$form, FormStateInterface $form_state) {
  // Prevent firing accidental submissions from entity builder callbacks.
  $form_state
    ->setTemporaryValue('entity_validated', FALSE);
  $preview_entity = $form_state
    ->getFormObject()
    ->buildEntity($form, $form_state);
  $preview_entity->in_preview = TRUE;
  $entity_data = $this->entityAnalyser
    ->createEntityPreview($preview_entity);
  // The current value of the alias field, if any,
  // takes precedence over the entity url.
  $user_input = $form_state
    ->getUserInput();
  if (!empty($user_input['path'][0]['alias'])) {
    $entity_data['url'] = $user_input['path'][0]['alias'];
  }
  // Any form errors were displayed when our form with the analysis was
  // rendered. Any new messages are from form validation. We don't want to
  // leak those to the user because they'll get them during normal submission
  // so we clear them here.
  $this->messenger
    ->deleteAll();
  $response = new AjaxResponse();
  $response
    ->addCommand(new InvokeCommand('body', 'trigger', [
    'updateSeoData',
    $entity_data,
  ]));
  return $response;
}