From b37658f788498187d681a673115bceddeb9b4156 Mon Sep 17 00:00:00 2001 From: L'autre Date: Wed, 6 May 2026 14:08:15 -0400 Subject: [PATCH] Listening to rendered form, add a class to the form if it contains conditions and only attach condition events to forms containing conditions --- .../EventListener/FormActionEventListener.php | 32 +++++++++++++++++++ .../Public/JavaScript/PowermailCondition.js | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 Classes/EventListener/FormActionEventListener.php diff --git a/Classes/EventListener/FormActionEventListener.php b/Classes/EventListener/FormActionEventListener.php new file mode 100644 index 0000000..760aae9 --- /dev/null +++ b/Classes/EventListener/FormActionEventListener.php @@ -0,0 +1,32 @@ +conditionContainerRepository = $conditionContainerRepository; + } + + public function __invoke(FormControllerFormActionEvent $event): void + { + $form = $event->getForm(); + + $conditionContainer = $this->conditionContainerRepository->findOneByForm($form->getUid()); + if ($conditionContainer !== null) { + $form->setCss( $form->getCss() . " withConditions"); + } + } +} diff --git a/Resources/Public/JavaScript/PowermailCondition.js b/Resources/Public/JavaScript/PowermailCondition.js index 7cda3d2..72d9828 100644 --- a/Resources/Public/JavaScript/PowermailCondition.js +++ b/Resources/Public/JavaScript/PowermailCondition.js @@ -340,7 +340,7 @@ class PowermailCondition { // the values get checked properly instead of sendFormValuesToPowermailCond // receiving a practically empty initial form state. window.addEventListener('pageshow', () => { - const forms = document.querySelectorAll('.powermail_form'); + const forms = document.querySelectorAll('.powermail_form.withConditions'); forms.forEach(function(form) { let powermailConditions = new PowermailCondition(form); powermailConditions.initialize();