Version 1
[yaffs-website] / web / core / modules / system / tests / modules / batch_test / src / Form / BatchTestChainedForm.php
diff --git a/web/core/modules/system/tests/modules/batch_test/src/Form/BatchTestChainedForm.php b/web/core/modules/system/tests/modules/batch_test/src/Form/BatchTestChainedForm.php
new file mode 100644 (file)
index 0000000..fe2d02c
--- /dev/null
@@ -0,0 +1,107 @@
+<?php
+
+namespace Drupal\batch_test\Form;
+
+use Drupal\Core\Form\FormBase;
+use Drupal\Core\Form\FormStateInterface;
+
+/**
+ * Generate form of id batch_test_chained_form.
+ */
+class BatchTestChainedForm extends FormBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'batch_test_chained_form';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    // This value is used to test that $form_state persists through batched
+    // submit handlers.
+    $form['value'] = [
+      '#type' => 'textfield',
+      '#title' => 'Value',
+      '#default_value' => 1,
+    ];
+    $form['submit'] = [
+      '#type' => 'submit',
+      '#value' => 'Submit',
+    ];
+    $form['#submit'] = [
+      'Drupal\batch_test\Form\BatchTestChainedForm::batchTestChainedFormSubmit1',
+      'Drupal\batch_test\Form\BatchTestChainedForm::batchTestChainedFormSubmit2',
+      'Drupal\batch_test\Form\BatchTestChainedForm::batchTestChainedFormSubmit3',
+      'Drupal\batch_test\Form\BatchTestChainedForm::batchTestChainedFormSubmit4',
+    ];
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+  }
+
+  /**
+   * Form submission handler #1 for batch_test_chained_form
+   */
+  public static function batchTestChainedFormSubmit1($form, FormStateInterface $form_state) {
+    batch_test_stack(NULL, TRUE);
+
+    batch_test_stack('submit handler 1');
+    batch_test_stack('value = ' . $form_state->getValue('value'));
+
+    $value = &$form_state->getValue('value');
+    $value++;
+    batch_set(_batch_test_batch_1());
+
+    $form_state->setRedirect('batch_test.redirect');
+  }
+
+  /**
+   * Form submission handler #2 for batch_test_chained_form
+   */
+  public static function batchTestChainedFormSubmit2($form, FormStateInterface $form_state) {
+    batch_test_stack('submit handler 2');
+    batch_test_stack('value = ' . $form_state->getValue('value'));
+
+    $value = &$form_state->getValue('value');
+    $value++;
+    batch_set(_batch_test_batch_2());
+
+    $form_state->setRedirect('batch_test.redirect');
+  }
+
+  /**
+   * Form submission handler #3 for batch_test_chained_form
+   */
+  public static function batchTestChainedFormSubmit3($form, FormStateInterface $form_state) {
+    batch_test_stack('submit handler 3');
+    batch_test_stack('value = ' . $form_state->getValue('value'));
+
+    $value = &$form_state->getValue('value');
+    $value++;
+
+    $form_state->setRedirect('batch_test.redirect');
+  }
+
+  /**
+   * Form submission handler #4 for batch_test_chained_form
+   */
+  public static function batchTestChainedFormSubmit4($form, FormStateInterface $form_state) {
+    batch_test_stack('submit handler 4');
+    batch_test_stack('value = ' . $form_state->getValue('value'));
+
+    $value = &$form_state->getValue('value');
+    $value++;
+    batch_set(_batch_test_batch_3());
+
+    $form_state->setRedirect('batch_test.redirect');
+  }
+
+}