Skip to content

Commit fe63c43

Browse files
author
Timm Ortloff
committed
Remove innerCollection and fix API changes in Collection
1 parent d7edaa8 commit fe63c43

1 file changed

Lines changed: 22 additions & 31 deletions

File tree

library/Reporting/Web/Forms/ReportForm.php

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use ipl\Html\Contract\FormSubmitElement;
1414
use ipl\Html\Form;
1515
use ipl\Html\FormElement\Collection;
16+
use ipl\Html\FormElement\Fieldset;
1617
use ipl\Web\Compat\CompatForm;
1718
use ipl\Web\FormDecorator\IcingaFormDecorator;
1819
use ipl\Web\Widget\Icon;
@@ -84,19 +85,23 @@ protected function assemble()
8485

8586
$collection = new Collection('reportlet');
8687
$collection->setLabel('Reportlets');
87-
$collection->setAddTrigger('select', 'reportlet', [
88-
'required' => false,
89-
'label' => 'Reportlet',
90-
'options' => [null => 'Please choose'] + $this->listReports(),
91-
'class' => 'autosubmit'
92-
]);
93-
$collection->setRemoveTrigger('submitButton', 'remove_reportlet', [
94-
'label' => new Icon('trash'),
95-
'class' => 'btn-remove-reportlet',
96-
'formnovalidate' => true,
97-
'title' => 'Remove Reportlet'
98-
]);
99-
$collection->on(Collection::ON_LOAD, function ($group, $addElement, $removeElement) {
88+
89+
90+
$collection
91+
->setAddElement('select', 'reportlet', [
92+
'required' => false,
93+
'label' => 'Reportlet',
94+
'options' => [null => 'Please choose'] + $this->listReports(),
95+
'class' => 'autosubmit'
96+
])
97+
->setRemoveElement('submitButton', 'remove_reportlet', [
98+
'label' => new Icon('trash'),
99+
'class' => 'btn-remove-reportlet',
100+
'formnovalidate' => true,
101+
'title' => 'Remove Reportlet'
102+
]);
103+
104+
$collection->onAssembleGroup(function (/** @var Fieldset $group */ $group, $addElement, $removeElement) {
100105
$group->setDefaultElementDecorator(new IcingaFormDecorator());
101106

102107
$this->decorate($addElement);
@@ -105,29 +110,15 @@ protected function assemble()
105110
->registerElement($addElement)
106111
->addHtml($addElement);
107112

113+
$group->registerElement($removeElement);
108114
$addElement->getWrapper()->ensureAssembled()->add($removeElement);
109115

110-
$innerCollection = new Collection('inner');
111-
$innerCollection->setLabel('Inner Collection');
112-
$innerCollection->setAddTrigger('select', 'reportlet', [
113-
'required' => false,
114-
'label' => 'Reportlet',
115-
'options' => [null => 'Please choose'],
116-
'class' => 'autosubmit'
117-
]);
118-
$innerCollection->on(Collection::ON_LOAD, function ($group, $addElement) {
119-
$group->setDefaultElementDecorator(new IcingaFormDecorator());
120-
$group->addElement($addElement);
121-
});
122-
123-
$group->registerElement($innerCollection);
124-
$group->addHtml($innerCollection);
125-
126-
if (isset($items['reportlet']) && ! empty($items['reportlet'])) {
116+
$reportletClass = $group->getPopulatedValue('reportlet');
117+
if (! empty($reportletClass)) {
127118
$config = new Form();
128119

129120
/** @var ReportHook $reportlet */
130-
$reportlet = new $items['reportlet'];
121+
$reportlet = new $reportletClass();
131122
$reportlet->initConfigForm($config);
132123

133124
foreach ($config->getElements() as $element) {

0 commit comments

Comments
 (0)