From 51f1034ac891c9f487c16ecb02734e049a8bc24e Mon Sep 17 00:00:00 2001
From: Jaap Jansma <jaap.jansma@civicoop.org>
Date: Tue, 9 Apr 2019 17:52:39 +0200
Subject: [PATCH] added help text to the search forms

---
 CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php     | 1 +
 .../Form/OutputConfiguration/ActivitySearch.php            | 6 ++++++
 .../Form/OutputConfiguration/ContactSearch.php             | 6 ++++++
 templates/CRM/DataprocessorSearch/Form/ContactSearch.tpl   | 7 +++++++
 .../Form/OutputConfiguration/ActivitySearch.tpl            | 5 +++++
 .../Form/OutputConfiguration/ContactSearch.tpl             | 5 +++++
 templates/CRM/DataprocessorSearch/Form/Search.tpl          | 7 +++++++
 7 files changed, 37 insertions(+)

diff --git a/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php b/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php
index 6c07f8bd..0ec54cff 100644
--- a/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php
+++ b/CRM/Dataprocessor/Form/Output/AbstractUIOutputForm.php
@@ -82,6 +82,7 @@ abstract class CRM_Dataprocessor_Form_Output_AbstractUIOutputForm extends CRM_Co
 
       $output = CRM_Dataprocessor_BAO_Output::getValues(['id' => $dao->output_id]);
       $this->dataProcessorOutput = $output[$dao->output_id];
+      $this->assign('output', $this->dataProcessorOutput);
 
       if (!$this->isConfigurationValid()) {
         throw new \Exception('Invalid configuration found of the data processor "' . $dataProcessorName . '"');
diff --git a/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.php b/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.php
index 8f369bf9..cd422d9e 100644
--- a/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.php
+++ b/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.php
@@ -43,6 +43,8 @@ class CRM_DataprocessorSearch_Form_OutputConfiguration_ActivitySearch extends CR
     ));
     $this->add('select', 'hide_id_field', E::ts('Show Activity ID field'), array(0=>'Activity ID is Visible', 1=> 'Activity ID is hidden'));
 
+    $this->add('wysiwyg', 'help_text', E::ts('Help text for this search'), array('rows' => 6, 'cols' => 80));
+
     // navigation field
     $navigationOptions = $this->navigation->getNavigationOptions();
     if (isset($this->output['configuration']['navigation_id'])) {
@@ -74,6 +76,9 @@ class CRM_DataprocessorSearch_Form_OutputConfiguration_ActivitySearch extends CR
         if (isset($this->output['configuration']['hide_id_field'])) {
           $defaults['hide_id_field'] = $this->output['configuration']['hide_id_field'];
         }
+        if (isset($this->output['configuration']['help_text'])) {
+          $defaults['help_text'] = $this->output['configuration']['help_text'];
+        }
       }
     }
     if (!isset($defaults['permission'])) {
@@ -98,6 +103,7 @@ class CRM_DataprocessorSearch_Form_OutputConfiguration_ActivitySearch extends CR
     $params['configuration']['activity_id_field'] = $values['activity_id_field'];
     $params['configuration']['navigation_parent_path'] = $values['navigation_parent_path'];
     $params['configuration']['hide_id_field'] = $values['hide_id_field'];
+    $params['configuration']['help_text'] = $values['help_text'];
 
     CRM_Dataprocessor_BAO_Output::add($params);
 
diff --git a/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.php b/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.php
index 68c1641a..71530ee1 100644
--- a/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.php
+++ b/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.php
@@ -43,6 +43,8 @@ class CRM_DataprocessorSearch_Form_OutputConfiguration_ContactSearch extends CRM
     ));
     $this->add('select', 'hide_id_field', E::ts('Show Contact ID field'), array(0=>'Contact ID is Visible', 1=> 'Contact ID is hidden'));
 
+    $this->add('wysiwyg', 'help_text', E::ts('Help text for this search'), array('rows' => 6, 'cols' => 80));
+
     // navigation field
     $navigationOptions = $this->navigation->getNavigationOptions();
     if (isset($this->output['configuration']['navigation_id'])) {
@@ -74,6 +76,9 @@ class CRM_DataprocessorSearch_Form_OutputConfiguration_ContactSearch extends CRM
         if (isset($this->output['configuration']['hide_id_field'])) {
           $defaults['hide_id_field'] = $this->output['configuration']['hide_id_field'];
         }
+        if (isset($this->output['configuration']['help_text'])) {
+          $defaults['help_text'] = $this->output['configuration']['help_text'];
+        }
       }
     }
     if (!isset($defaults['permission'])) {
@@ -98,6 +103,7 @@ class CRM_DataprocessorSearch_Form_OutputConfiguration_ContactSearch extends CRM
     $params['configuration']['contact_id_field'] = $values['contact_id_field'];
     $params['configuration']['navigation_parent_path'] = $values['navigation_parent_path'];
     $params['configuration']['hide_id_field'] = $values['hide_id_field'];
+    $params['configuration']['help_text'] = $values['help_text'];
 
     CRM_Dataprocessor_BAO_Output::add($params);
 
diff --git a/templates/CRM/DataprocessorSearch/Form/ContactSearch.tpl b/templates/CRM/DataprocessorSearch/Form/ContactSearch.tpl
index e472dbd8..920407d6 100644
--- a/templates/CRM/DataprocessorSearch/Form/ContactSearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/ContactSearch.tpl
@@ -1,5 +1,12 @@
 {include file="CRM/Dataprocessor/Form/Output/UIOutput/CriteriaForm.tpl"}
 
+{if (isset($output.configuration.help_text))}
+    <div class="help">
+        {$output.configuration.help_text}
+    </div>
+{/if}
+
+
 {include file="CRM/DataprocessorSearch/Form/Debug.tpl"}
 
 {if (isset($rows) && !empty($rows))}
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl
index 435f8e0b..adf7c385 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl
@@ -30,6 +30,11 @@
             <div class="content">{$form.hide_id_field.html}</div>
             <div class="clear"></div>
         </div>
+        <div class="crm-section">
+            <div class="label">{$form.help_text.label}</div>
+            <div class="content">{$form.help_text.html}</div>
+            <div class="clear"></div>
+        </div>
     </div>
 
     <div class="crm-submit-buttons">
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.tpl
index 855b2928..91f8eece 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContactSearch.tpl
@@ -30,6 +30,11 @@
             <div class="content">{$form.hide_id_field.html}</div>
             <div class="clear"></div>
         </div>
+        <div class="crm-section">
+            <div class="label">{$form.help_text.label}</div>
+            <div class="content">{$form.help_text.html}</div>
+            <div class="clear"></div>
+        </div>
     </div>
 
     <div class="crm-submit-buttons">
diff --git a/templates/CRM/DataprocessorSearch/Form/Search.tpl b/templates/CRM/DataprocessorSearch/Form/Search.tpl
index 16d290f2..9288f426 100644
--- a/templates/CRM/DataprocessorSearch/Form/Search.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/Search.tpl
@@ -1,5 +1,12 @@
 {include file="CRM/Dataprocessor/Form/Output/UIOutput/CriteriaForm.tpl"}
 
+{if (isset($output.configuration.help_text))}
+    <div class="help">
+        {$output.configuration.help_text}
+    </div>
+{/if}
+
+
 {include file="CRM/DataprocessorSearch/Form/Debug.tpl"}
 
 {if (isset($rows) && !empty($rows))}
-- 
GitLab