diff --git a/README.md b/README.md index d3186bf..be2e99b 100644 --- a/README.md +++ b/README.md @@ -216,4 +216,4 @@ $this-addFlash(Everlution\AjaxcomBundle\Flash::SUCCESS, 'Your request has been s - add example for rendering modal - add twig templates for rendering modal - add complex usage example - +- add FormType documentation diff --git a/src/Ajaxcom.php b/src/Ajaxcom.php index 69d4d1f..2afbc90 100644 --- a/src/Ajaxcom.php +++ b/src/Ajaxcom.php @@ -39,8 +39,6 @@ class Ajaxcom private $addBlocks = []; /** @var string[] */ private $removeBlocks = []; - /** @var Callback[] */ - private $callbacks = []; /** @var bool */ private $modal = false; @@ -116,7 +114,9 @@ public function renderAjaxBlock(string $id, array $callbacks = []): self public function addCallback(Callback $callback) { - $this->callbacks[] = $callback; + $callbacks = $this->session->get(self::AJAXCOM_CALLBACKS, []); + $callbacks[] = $callback; + $this->session->set(self::AJAXCOM_CALLBACKS, $callbacks); return $this; } @@ -228,9 +228,12 @@ private function addBlocks(Handler $ajax, string $view, array $parameters): Hand */ private function addCallbacks(Handler $ajax): Handler { - foreach ($this->callbacks as $callback) { + $callbacks = $this->session->get(self::AJAXCOM_CALLBACKS, []); + /** @var Callback $callback */ + foreach ($callbacks as $callback) { $ajax->callback($callback->getFunction(), $callback->getParameters()); } + $this->session->remove(self::AJAXCOM_CALLBACKS); return $ajax; } diff --git a/src/Form/Type/AjaxcomForm.php b/src/Form/Type/AjaxcomForm.php new file mode 100644 index 0000000..bdf4af8 --- /dev/null +++ b/src/Form/Type/AjaxcomForm.php @@ -0,0 +1,28 @@ + + */ +class AjaxcomForm extends AbstractType +{ + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults( + [ + 'attr' => + [ + 'novalidate' => 'novalidate', + 'data-ajaxcom' => '', + ], + ] + ); + } +}