CRM-8140: Not possible to select fields for export when using Custom Searches
authordeb.monish <monish.deb@jmaconsulting.biz>
Tue, 26 Dec 2017 19:28:54 +0000 (00:58 +0530)
committerdeb.monish <monish.deb@jmaconsulting.biz>
Tue, 26 Dec 2017 19:28:54 +0000 (00:58 +0530)
CRM/Export/Form/Select.php
templates/CRM/Export/Form/Select.tpl

index f1575a8b29afa818469ef4516c05127c38e0dd18..fdf563e372f82863aa833f0d6ce4c45109665aa6 100644 (file)
@@ -70,6 +70,8 @@ class CRM_Export_Form_Select extends CRM_Core_Form {
 
   public $_componentTable;
 
+  public $_customSearchID;
+
   /**
    * Build all the data structures needed to build the form.
    *
@@ -81,13 +83,7 @@ class CRM_Export_Form_Select extends CRM_Core_Form {
     $this->preventAjaxSubmit();
 
     //special case for custom search, directly give option to download csv file
-    $customSearchID = $this->get('customSearchID');
-    if ($customSearchID) {
-      CRM_Export_BAO_Export::exportCustom($this->get('customSearchClass'),
-        $this->get('formValues'),
-        $this->get(CRM_Utils_Sort::SORT_ORDER)
-      );
-    }
+    $this->_customSearchID = $this->get('customSearchID');
 
     $this->_selectAll = FALSE;
     $this->_exportMode = self::CONTACT_EXPORT;
@@ -99,7 +95,11 @@ class CRM_Export_Form_Select extends CRM_Core_Form {
     $isStandalone = $formName == 'CRM_Export_StateMachine_Standalone';
 
     // get the submitted values based on search
-    if ($this->_action == CRM_Core_Action::ADVANCED) {
+    if ($this->_customSearchID) {
+      $values = $this->get('formValues');
+      $this->assign('exportCustomSearchField', TRUE);
+    }
+    elseif ($this->_action == CRM_Core_Action::ADVANCED) {
       $values = $this->controller->exportValues('Advanced');
     }
     elseif ($this->_action == CRM_Core_Action::PROFILE) {
@@ -231,7 +231,7 @@ FROM   {$this->_componentTable}
     $exportOptions = $mergeOptions = $postalMailing = array();
     $exportOptions[] = $this->createElement('radio',
       NULL, NULL,
-      ts('Export PRIMARY fields'),
+      ts('Export %1 fields', array(1 => empty($this->_customSearchID) ? 'PRIMARY' : 'custom search')),
       self::EXPORT_ALL,
       array('onClick' => 'showMappingOption( );')
     );
@@ -396,20 +396,28 @@ FROM   {$this->_componentTable}
     }
 
     if ($exportOption == self::EXPORT_ALL) {
-      CRM_Export_BAO_Export::exportComponents($this->_selectAll,
-        $this->_componentIds,
-        (array) $this->get('queryParams'),
-        $this->get(CRM_Utils_Sort::SORT_ORDER),
-        NULL,
-        $this->get('returnProperties'),
-        $this->_exportMode,
-        $this->_componentClause,
-        $this->_componentTable,
-        $mergeSameAddress,
-        $mergeSameHousehold,
-        $exportParams,
-        $this->get('queryOperator')
-      );
+      if ($this->_customSearchID) {
+        CRM_Export_BAO_Export::exportCustom($this->get('customSearchClass'),
+          $this->get('formValues'),
+          $this->get(CRM_Utils_Sort::SORT_ORDER)
+        );
+      }
+      else {
+        CRM_Export_BAO_Export::exportComponents($this->_selectAll,
+          $this->_componentIds,
+          (array) $this->get('queryParams'),
+          $this->get(CRM_Utils_Sort::SORT_ORDER),
+          NULL,
+          $this->get('returnProperties'),
+          $this->_exportMode,
+          $this->_componentClause,
+          $this->_componentTable,
+          $mergeSameAddress,
+          $mergeSameHousehold,
+          $exportParams,
+          $this->get('queryOperator')
+        );
+      }
     }
 
     //reset map page
index 9eff03d891e83e96eea2b646236eb063baf15ad7..751e4926a7fc253180de3238a25b9d6f97f3c4c9 100644 (file)
@@ -28,7 +28,7 @@
 <div class="crm-block crm-form-block crm-export-form-block">
 
  <div class="help">
-    <p>{ts}<strong>Export PRIMARY fields</strong> provides the most commonly used data values. This includes primary address information, preferred phone and email.{/ts}</p>
+    <p>{ts}<strong>Export {if $exportCustomSearchField}custom search{else}PRIMARY{/if} fields</strong> provides the most commonly used data values. This includes primary address information, preferred phone and email.{/ts}</p>
     <p>{ts}Click <strong>Select fields for export</strong> and then <strong>Continue</strong> to choose a subset of fields for export. This option allows you to export multiple specific locations (Home, Work, etc.) as well as custom data. You can also save your selections as a 'field mapping' so you can use it again later.{/ts}</p>
  </div>