Skip to content

Commit daf0412

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

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;
@@ -94,19 +95,23 @@ protected function assemble()
9495

9596
$collection = new Collection('reportlet');
9697
$collection->setLabel('Reportlets');
97-
$collection->setAddTrigger('select', 'reportlet', [
98-
'required' => false,
99-
'label' => 'Reportlet',
100-
'options' => [null => 'Please choose'] + $this->listReports(),
101-
'class' => 'autosubmit'
102-
]);
103-
$collection->setRemoveTrigger('submitButton', 'remove_reportlet', [
104-
'label' => new Icon('trash'),
105-
'class' => 'btn-remove-reportlet',
106-
'formnovalidate' => true,
107-
'title' => 'Remove Reportlet'
108-
]);
109-
$collection->on(Collection::ON_LOAD, function ($group, $addElement, $removeElement) {
98+
99+
100+
$collection
101+
->setAddElement('select', 'reportlet', [
102+
'required' => false,
103+
'label' => 'Reportlet',
104+
'options' => [null => 'Please choose'] + $this->listReports(),
105+
'class' => 'autosubmit'
106+
])
107+
->setRemoveElement('submitButton', 'remove_reportlet', [
108+
'label' => new Icon('trash'),
109+
'class' => 'btn-remove-reportlet',
110+
'formnovalidate' => true,
111+
'title' => 'Remove Reportlet'
112+
]);
113+
114+
$collection->onAssembleGroup(function (/** @var Fieldset $group */ $group, $addElement, $removeElement) {
110115
$group->setDefaultElementDecorator(new IcingaFormDecorator());
111116

112117
$this->decorate($addElement);
@@ -115,29 +120,15 @@ protected function assemble()
115120
->registerElement($addElement)
116121
->addHtml($addElement);
117122

123+
$group->registerElement($removeElement);
118124
$addElement->getWrapper()->ensureAssembled()->add($removeElement);
119125

120-
$innerCollection = new Collection('inner');
121-
$innerCollection->setLabel('Inner Collection');
122-
$innerCollection->setAddTrigger('select', 'reportlet', [
123-
'required' => false,
124-
'label' => 'Reportlet',
125-
'options' => [null => 'Please choose'],
126-
'class' => 'autosubmit'
127-
]);
128-
$innerCollection->on(Collection::ON_LOAD, function ($group, $addElement) {
129-
$group->setDefaultElementDecorator(new IcingaFormDecorator());
130-
$group->addElement($addElement);
131-
});
132-
133-
$group->registerElement($innerCollection);
134-
$group->addHtml($innerCollection);
135-
136-
if (isset($items['reportlet']) && ! empty($items['reportlet'])) {
126+
$reportletClass = $group->getPopulatedValue('reportlet');
127+
if (! empty($reportletClass)) {
137128
$config = new Form();
138129

139130
/** @var ReportHook $reportlet */
140-
$reportlet = new $items['reportlet'];
131+
$reportlet = new $reportletClass();
141132
$reportlet->initConfigForm($config);
142133

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

0 commit comments

Comments
 (0)