From 2fb415e85fb4d73bdfea76699b32368e750e6935 Mon Sep 17 00:00:00 2001 From: Jaap Jansma <jaap.jansma@civicoop.org> Date: Thu, 6 Dec 2018 12:12:36 +0100 Subject: [PATCH] Fixed issue with output field handlers --- Civi/DataProcessor/Factory.php | 1 + .../OptionFieldOutputHandler.php | 2 +- .../RawFieldOutputHandler.php | 2 +- .../DataProcessor/Source/MailingJobSource.php | 35 +++++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 Civi/DataProcessor/Source/MailingJobSource.php diff --git a/Civi/DataProcessor/Factory.php b/Civi/DataProcessor/Factory.php index 2dce3a5b..cb292583 100644 --- a/Civi/DataProcessor/Factory.php +++ b/Civi/DataProcessor/Factory.php @@ -107,6 +107,7 @@ class Factory { $this->addDataSource('event', 'Civi\DataProcessor\Source\EventSource', E::ts('Event')); $this->addDataSource('participant', 'Civi\DataProcessor\Source\ParticipantSource', E::ts('Participant')); $this->addDataSource('mailing', 'Civi\DataProcessor\Source\MailingSource', E::ts('Mailing')); + $this->addDataSource('mailing_job', 'Civi\DataProcessor\Source\MailingJobSource', E::ts('Mailing Job')); $this->addOutput('api', 'Civi\DataProcessor\Output\Api', E::ts('API')); $this->addFilter('simple_sql_filter', 'Civi\DataProcessor\FilterHandler\SimpleSqlFilter', E::ts('Simple Filter')); $this->addjoinType('simple_join', 'Civi\DataProcessor\DataFlow\MultipleDataFlows\SimpleJoin', E::ts('Simple Join')); diff --git a/Civi/DataProcessor/FieldOutputHandler/OptionFieldOutputHandler.php b/Civi/DataProcessor/FieldOutputHandler/OptionFieldOutputHandler.php index 35c106a7..f1127df6 100644 --- a/Civi/DataProcessor/FieldOutputHandler/OptionFieldOutputHandler.php +++ b/Civi/DataProcessor/FieldOutputHandler/OptionFieldOutputHandler.php @@ -26,7 +26,7 @@ class OptionFieldOutputHandler extends AbstractFieldOutputHandler { public function __construct(FieldSpecification $inputFieldSpec, SourceInterface $dataSource) { $this->dataSource = $dataSource; $this->inputFieldSpec = $inputFieldSpec; - $this->outputFieldSpecification = $inputFieldSpec; + $this->outputFieldSpecification = clone $inputFieldSpec; $this->outputFieldSpecification->alias = $this->getName(); } diff --git a/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php b/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php index 30fed2b7..424fdf4b 100644 --- a/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php +++ b/Civi/DataProcessor/FieldOutputHandler/RawFieldOutputHandler.php @@ -25,7 +25,7 @@ class RawFieldOutputHandler extends AbstractFieldOutputHandler { public function __construct(FieldSpecification $inputFieldSpec, SourceInterface $dataSource) { $this->dataSource = $dataSource; $this->inputFieldSpec = $inputFieldSpec; - $this->outputFieldSpecification = $inputFieldSpec; + $this->outputFieldSpecification = clone $inputFieldSpec; $this->outputFieldSpecification->alias = $this->getName(); } diff --git a/Civi/DataProcessor/Source/MailingJobSource.php b/Civi/DataProcessor/Source/MailingJobSource.php new file mode 100644 index 00000000..d76e152d --- /dev/null +++ b/Civi/DataProcessor/Source/MailingJobSource.php @@ -0,0 +1,35 @@ +<?php +/** + * @author Jaap Jansma <jaap.jansma@civicoop.org> + * @license AGPL-3.0 + */ + +namespace Civi\DataProcessor\Source; + +use Civi\DataProcessor\DataFlow\SqlTableDataFlow; +use Civi\DataProcessor\DataSpecification\DataSpecification; +use Civi\DataProcessor\DataSpecification\FieldSpecification; + +use CRM_Dataprocessor_ExtensionUtil as E; + +class MailingJobSource extends AbstractCivicrmEntitySource { + + /** + * Returns the entity name + * + * @return String + */ + protected function getEntity() { + return 'MailingJob'; + } + + /** + * Returns the table name of this entity + * + * @return String + */ + protected function getTable() { + return 'civicrm_mailing_job'; + } + +} \ No newline at end of file -- GitLab