ImportRowModifierForm: allow to modify newly...

...created columns deriving from other property modifiers

fixes #13979
This commit is contained in:
Thomas Gelf 2017-01-12 17:26:06 +01:00
parent 8a8c0882df
commit 587c302a84
1 changed files with 12 additions and 3 deletions

View File

@ -7,13 +7,16 @@ use Icinga\Application\Hook;
use Icinga\Exception\ConfigurationError; use Icinga\Exception\ConfigurationError;
use Icinga\Module\Director\Hook\ImportSourceHook; use Icinga\Module\Director\Hook\ImportSourceHook;
use Icinga\Module\Director\Hook\PropertyModifierHook; use Icinga\Module\Director\Hook\PropertyModifierHook;
use Icinga\Module\Director\Import\Import;
use Icinga\Module\Director\Objects\ImportSource; use Icinga\Module\Director\Objects\ImportSource;
use Icinga\Module\Director\Web\Form\DirectorObjectForm; use Icinga\Module\Director\Web\Form\DirectorObjectForm;
class ImportRowModifierForm extends DirectorObjectForm class ImportRowModifierForm extends DirectorObjectForm
{ {
/** @var ImportSource */
protected $source; protected $source;
/** @var ImportSourceHook */
protected $importSource; protected $importSource;
public function setup() public function setup()
@ -85,16 +88,22 @@ class ImportRowModifierForm extends DirectorObjectForm
protected function enumSourceColumns() protected function enumSourceColumns()
{ {
$columns = $this->getImportSource()->listColumns(); $columns = array_merge(
$this->getImportSource()->listColumns(),
$this->source->listModifierTargetProperties()
);
$columns = array_combine($columns, $columns); $columns = array_combine($columns, $columns);
return $columns; return $columns;
} }
protected function getImportSource() protected function getImportSource()
{ {
if ($this->importSource === null) { if ($this->importSource === null) {
$this->importSource = ImportSourceHook::loadByName($this->source->source_name, $this->db); $this->importSource = ImportSourceHook::loadByName(
$this->source->get('source_name'),
$this->db
);
} }
return $this->importSource; return $this->importSource;