-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Labels
Milestone
Description
Hello,
the code in Classes/Controller/ConditionController.php in the buildConditionAction methode only works for the pi1 of powermail.
The edit plugin (pi2) doesn't work with powermail_cond:
public function buildConditionAction(): ResponseInterface
{
$requestBody = $this->request->getParsedBody();
if (empty($requestBody['tx_powermail_pi1']['mail']['form'])) {
throw new MissingPowermailParameterException();
}
$powermailArguments = $requestBody['tx_powermail_pi1'];
It would work if the code would be like this:
public function buildConditionAction(): ResponseInterface
{
$requestBody = $this->request->getParsedBody();
if (empty($requestBody['tx_powermail_pi1']['mail']['form']) AND empty($requestBody['tx_powermail_pi2']['mail']['form'])) {
throw new MissingPowermailParameterException();
}
$powermailArguments = $requestBody['tx_powermail_pi1'];
if (empty($powermailArguments)) {
$powermailArguments = $requestBody['tx_powermail_pi2'];
}
The code in Resources/Private/Build/JavaScript/PowermailConditions.js has the same problem:
#getFieldByMarker(fieldMarker) {
let fieldName = 'tx_powermail_pi1[field][' + fieldMarker + ']';
return this.#form.querySelector('[name="' + fieldName + '"]:not([type="hidden"])') ||
this.#form.querySelector('[name="' + fieldName + '[]"]');
};
This could be a fix:
#getFieldByMarker(fieldMarker) {
if (window.location.href.indexOf("tx_powermail_pi2") > -1 ) {
let fieldName = 'tx_powermail_pi2[field][' + fieldMarker + ']';
}
else {
let fieldName = 'tx_powermail_pi1[field][' + fieldMarker + ']';
}
return this.#form.querySelector('[name="' + fieldName + '"]:not([type="hidden"])') ||
this.#form.querySelector('[name="' + fieldName + '[]"]');
};
Best regards,
Tobias Schaefer
Reactions are currently unavailable