You are here

public function MaestroTemplateBuilderCanvas::buildForm in Maestro 3.x

Same name and namespace in other branches
  1. 8.2 modules/maestro_template_builder/src/Form/MaestroTemplateBuilderCanvas.php \Drupal\maestro_template_builder\Form\MaestroTemplateBuilderCanvas::buildForm()

Ajax callback for add-new-form button click.

Overrides FormInterface::buildForm

File

modules/maestro_template_builder/src/Form/MaestroTemplateBuilderCanvas.php, line 86

Class

MaestroTemplateBuilderCanvas

Namespace

Drupal\maestro_template_builder\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, $templateMachineName = '') {
  $template = MaestroEngine::getTemplate($templateMachineName);

  // Need to validate this template to ensure that it exists.
  if ($template == NULL) {
    $form = [
      '#title' => $this
        ->t('Error!'),
      '#markup' => $this
        ->t("The template you are attempting to add a task to doesn't exist"),
    ];
    return $form;
  }
  $form = [
    '#title' => $this
      ->t('Change canvas size'),
    '#markup' => '<div id="maestro-template-error" class="messages messages--error"></div>',
  ];
  $form['#prefix'] = '<div id="template-canvas">';
  $form['#suffix'] = '</div>';
  $form['template_machine_name'] = [
    '#type' => 'hidden',
    '#title' => $this
      ->t('machine name of the template'),
    '#default_value' => $templateMachineName,
    '#required' => TRUE,
  ];
  $form['canvas_height'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Height of the canvas in pixels'),
    '#default_value' => $template->canvas_height,
    '#size' => 10,
    '#required' => TRUE,
  ];
  $form['canvas_width'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Width of the canvas in pixels'),
    '#default_value' => $template->canvas_width,
    '#size' => 10,
    '#required' => TRUE,
  ];
  $form['actions'] = [
    '#type' => 'actions',
  ];
  $form['actions']['update'] = [
    '#type' => 'submit',
    '#value' => $this
      ->t('Update Canvas'),
    '#required' => TRUE,
    '#submit' => [],
    '#ajax' => [
      'callback' => '::submitForm',
      'event' => 'click',
    ],
  ];
  $form['actions']['cancel'] = [
    '#type' => 'button',
    '#value' => $this
      ->t('Cancel'),
    '#required' => TRUE,
    '#ajax' => [
      'callback' => [
        $this,
        'cancelForm',
      ],
      'wrapper' => '',
    ],
  ];
  return $form;
}