You are here

public function GridDialog::submitStep in CKEditor Bootstrap Grid 2.0.x

Submits a step to move on.

Parameters

array $form: The form.

\Drupal\Core\Form\FormStateInterface $form_state: The form state.

Return value

\Drupal\Core\Ajax\AjaxResponse An ajax response.

File

src/Form/GridDialog.php, line 456

Class

GridDialog
Creates a grid dialog form for use in CKEditor.

Namespace

Drupal\ckeditor_bs_grid\Form

Code

public function submitStep(array &$form, FormStateInterface $form_state) {
  $response = new AjaxResponse();

  // Display errors in form, if any.
  if ($form_state
    ->hasAnyErrors()) {
    unset($form['#prefix'], $form['#suffix']);
    $form['status_messages'] = [
      '#type' => 'status_messages',
      '#weight' => -10,
    ];
    $response
      ->addCommand(new HtmlCommand('#bs_grid-dialog-form', $form));
  }
  else {
    $form_state
      ->set('step', $form_state
      ->get('step') === 'select' ? 'layout' : 'advanced');
    $form_state
      ->setRebuild(TRUE);
    $rebuild_form = $this->formBuilder
      ->rebuildForm('ckeditor_bs_grid_dialog', $form_state, $form);
    unset($rebuild_form['#prefix'], $rebuild_form['#suffix']);
    $response
      ->addCommand(new HtmlCommand('#bs_grid-dialog-form', $rebuild_form));
    $response
      ->addCommand(new SetDialogTitleCommand('', $rebuild_form['#title']));
  }
  return $response;
}