diff --git a/application/forms/EventRuleConfigElements/ConfigProvider.php b/application/forms/EventRuleConfigElements/ConfigProvider.php deleted file mode 100644 index 93ca37653..000000000 --- a/application/forms/EventRuleConfigElements/ConfigProvider.php +++ /dev/null @@ -1,35 +0,0 @@ -provider = $provider; - } - - protected function registerAttributeCallbacks(Attributes $attributes): void - { - $attributes->registerAttributeCallback('provider', null, $this->setProvider(...)); - - parent::registerAttributeCallbacks($attributes); - } -} diff --git a/application/forms/EventRuleConfigElements/Escalation.php b/application/forms/EventRuleConfigElements/Escalation.php index a981e00d9..bd8eaf479 100644 --- a/application/forms/EventRuleConfigElements/Escalation.php +++ b/application/forms/EventRuleConfigElements/Escalation.php @@ -9,6 +9,7 @@ use ipl\Html\FormElement\FieldsetElement; use ipl\Html\FormElement\SubmitButtonElement; use ipl\Html\HtmlElement; +use ipl\Stdlib\Option; use ipl\Web\Widget\Icon; /** @@ -22,16 +23,17 @@ */ class Escalation extends FieldsetElement { - use ConfigProvider { - registerAttributeCallbacks as protected baseRegisterAttributeCallbacks; - } - protected $defaultAttributes = ['class' => 'escalation']; + /** @var ?ConfigProviderInterface The config provider */ + #[Option(required: true)] + protected ?ConfigProviderInterface $provider = null; + /** @var ?SubmitButtonElement The button to remove this escalation */ protected ?SubmitButtonElement $removeButton = null; /** @var bool Whether the escalation can be triggered immediately */ + #[Option] protected bool $immediate = false; /** @@ -46,18 +48,6 @@ public function setRemoveButton(SubmitButtonElement $removeButton): void $this->removeButton = $removeButton; } - /** - * Set whether the escalation can be triggered immediately - * - * @param bool $immediate - * - * @return void - */ - public function setImmediate(bool $immediate): void - { - $this->immediate = $immediate; - } - /** * Prepare the escalation for display * @@ -163,11 +153,4 @@ protected function assemble(): void $this->addElement('hidden', 'id'); } - - protected function registerAttributeCallbacks(Attributes $attributes): void - { - $attributes->registerAttributeCallback('immediate', null, $this->setImmediate(...)); - - $this->baseRegisterAttributeCallbacks($attributes); - } } diff --git a/application/forms/EventRuleConfigElements/EscalationRecipient.php b/application/forms/EventRuleConfigElements/EscalationRecipient.php index 5001ea39a..4c0c6211e 100644 --- a/application/forms/EventRuleConfigElements/EscalationRecipient.php +++ b/application/forms/EventRuleConfigElements/EscalationRecipient.php @@ -9,6 +9,7 @@ use ipl\Html\FormElement\FieldsetElement; use ipl\Html\FormElement\SubmitButtonElement; use ipl\Html\HtmlElement; +use ipl\Stdlib\Option; use ipl\Web\Widget\Icon; /** @@ -27,10 +28,12 @@ */ class EscalationRecipient extends FieldsetElement { - use ConfigProvider; - protected $defaultAttributes = ['class' => 'escalation-recipient']; + /** @var ?ConfigProviderInterface The config provider */ + #[Option(required: true)] + protected ?ConfigProviderInterface $provider = null; + /** @var ?SubmitButtonElement The button to remove this recipient */ protected ?SubmitButtonElement $removeButton = null; diff --git a/application/forms/EventRuleConfigElements/EscalationRecipients.php b/application/forms/EventRuleConfigElements/EscalationRecipients.php index b6c087aac..7af9f4e02 100644 --- a/application/forms/EventRuleConfigElements/EscalationRecipients.php +++ b/application/forms/EventRuleConfigElements/EscalationRecipients.php @@ -10,6 +10,7 @@ use ipl\Html\FormElement\FieldsetElement; use ipl\Html\FormElement\SubmitButtonElement; use ipl\Html\HtmlElement; +use ipl\Stdlib\Option; use ipl\Web\Widget\Icon; /** @@ -17,11 +18,14 @@ */ class EscalationRecipients extends FieldsetElement { - use ConfigProvider; use DynamicElements; protected $defaultAttributes = ['class' => 'escalation-recipients']; + /** @var ?ConfigProviderInterface The config provider */ + #[Option(required: true)] + protected ?ConfigProviderInterface $provider = null; + protected function createAddButton(): SubmitButtonElement { /** @var SubmitButtonElement $button */ diff --git a/application/forms/EventRuleConfigElements/Escalations.php b/application/forms/EventRuleConfigElements/Escalations.php index f3defd278..d5b95e567 100644 --- a/application/forms/EventRuleConfigElements/Escalations.php +++ b/application/forms/EventRuleConfigElements/Escalations.php @@ -10,6 +10,7 @@ use ipl\Html\FormElement\FieldsetElement; use ipl\Html\FormElement\SubmitButtonElement; use ipl\Html\HtmlElement; +use ipl\Stdlib\Option; use ipl\Web\Widget\Icon; /** @@ -17,11 +18,14 @@ */ class Escalations extends FieldsetElement { - use ConfigProvider; use DynamicElements; protected $defaultAttributes = ['class' => 'escalations']; + /** @var ?ConfigProviderInterface The config provider */ + #[Option(required: true)] + protected ?ConfigProviderInterface $provider = null; + protected function createAddButton(): SubmitButtonElement { /** @var SubmitButtonElement $button */