diff --git a/CRM/DataprocessorSearch/Form/AbstractSearch.php b/CRM/DataprocessorSearch/Form/AbstractSearch.php index 95d4a391db0700f73ae5863466607ffc80cf0021..0535e2ab36d173e1d49ae79014fd3ce072332912 100644 --- a/CRM/DataprocessorSearch/Form/AbstractSearch.php +++ b/CRM/DataprocessorSearch/Form/AbstractSearch.php @@ -84,6 +84,19 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce return true; } + /** + * Returns an array with hidden columns + * + * @return array + */ + protected function getHiddenFields() { + $hiddenFields = array(); + if (!$this->isIdFieldVisible()) { + $hiddenFields[] = $this->getIdFieldName(); + } + return $hiddenFields; + } + /** * Returns the url for view of the record action * @@ -278,19 +291,12 @@ abstract class CRM_DataprocessorSearch_Form_AbstractSearch extends CRM_Dataproce */ protected function addColumnHeaders() { $sortFields = array(); - $id_field = $this->getIdFieldName(); - $idFieldVisible = $this->isIdFieldVisible(); + $hiddenFields = $this->getHiddenFields(); $columnHeaders = array(); $sortColumnNr = 1; foreach($this->dataProcessorClass->getDataFlow()->getOutputFieldHandlers() as $outputFieldHandler) { $field = $outputFieldHandler->getOutputFieldSpecification(); - $hiddenField = true; - if ($field->alias != $id_field) { - $hiddenField = false; - } elseif ($field->alias == $id_field && $idFieldVisible) { - $hiddenField = false; - } - if (!$hiddenField) { + if (!in_array($field->alias, $hiddenFields)) { $columnHeaders[$field->alias] = $field->title; $sortFields[$sortColumnNr] = array( 'name' => $field->title, diff --git a/CRM/DataprocessorSearch/Form/CaseSearch.php b/CRM/DataprocessorSearch/Form/CaseSearch.php index 03ad93c77d3add873850cf64f368bbfb7e7ff427..256ab511a1b94d8c6064b8a66e74e63a9d24466d 100644 --- a/CRM/DataprocessorSearch/Form/CaseSearch.php +++ b/CRM/DataprocessorSearch/Form/CaseSearch.php @@ -106,4 +106,30 @@ class CRM_DataprocessorSearch_Form_CaseSearch extends CRM_DataprocessorSearch_Fo return $this->_taskList; } + /** + * Returns whether the ID field is Visible + * + * @return bool + */ + protected function isIdFieldVisible() { + if (isset($this->dataProcessorOutput['configuration']['hide_id_fields']) && $this->dataProcessorOutput['configuration']['hide_id_fields']) { + return false; + } + return true; + } + + /** + * Returns an array with hidden columns + * + * @return array + */ + protected function getHiddenFields() { + $hiddenFields = array(); + if (!$this->isIdFieldVisible()) { + $hiddenFields[] = $this->getIdFieldName(); + $hiddenFields[] = $this->getContactIdFieldName(); + } + return $hiddenFields; + } + } \ No newline at end of file