Skip to content

Commit

Permalink
Merge pull request #15116 from eileenmcnaughton/import_website
Browse files Browse the repository at this point in the history
[Ref] [Import] Use processor to determine website type, location type, test
  • Loading branch information
seamuslee001 authored Aug 23, 2019
2 parents 4dedb6d + c8cbc32 commit 20664a1
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 13 deletions.
20 changes: 8 additions & 12 deletions CRM/Contact/Import/Form/MapField.php
Original file line number Diff line number Diff line change
Expand Up @@ -209,13 +209,11 @@ public function buildQuickForm() {
else {
$savedMapping = $this->get('savedMapping');

list($mappingName, $mappingContactType, $mappingLocation, $mappingPhoneType, $mappingImProvider, $mappingRelation, $mappingOperator, $mappingValue, $mappingWebsiteType) = CRM_Core_BAO_Mapping::getMappingFields($savedMapping, TRUE);
list($mappingName, $mappingContactType, $mappingLocation, $mappingPhoneType, $mappingImProvider, $mappingRelation) = CRM_Core_BAO_Mapping::getMappingFields($savedMapping, TRUE);

//get loaded Mapping Fields
$mappingName = CRM_Utils_Array::value(1, $mappingName);
$mappingLocation = CRM_Utils_Array::value(1, $mappingLocation);
$mappingRelation = CRM_Utils_Array::value(1, $mappingRelation);
$mappingWebsiteType = CRM_Utils_Array::value(1, $mappingWebsiteType);

$this->assign('loadedMapping', $savedMapping);
$this->set('loadedMapping', $savedMapping);
Expand Down Expand Up @@ -407,7 +405,7 @@ public function buildQuickForm() {
$sel = &$this->addElement('hierselect', "mapper[$i]", ts('Mapper for Field %1', [1 => $i]), NULL);

if ($this->get('savedMapping')) {
list($defaults, $js) = $this->loadSavedMapping($processor, $mappingName, $i, $mappingRelation, $mappingWebsiteType, $mappingLocation, $defaults, $js, $hasColumnNames, $dataPatterns, $columnPatterns);
list($defaults, $js) = $this->loadSavedMapping($processor, $mappingName, $i, $mappingRelation, $defaults, $js, $hasColumnNames, $dataPatterns, $columnPatterns);
}
else {
$js .= "swapOptions($formName, 'mapper[$i]', 0, 3, 'hs_mapper_0_');\n";
Expand Down Expand Up @@ -849,9 +847,7 @@ protected function saveMappingField($mapperKeys, array $saveMapping, string $cTy
* @param \CRM_Import_ImportProcessor $processor
* @param $mappingName
* @param int $i
* @param $mappingRelation
* @param $mappingWebsiteType
* @param $mappingLocation
* @param array $mappingRelation
* @param array $defaults
* @param string $js
* @param bool $hasColumnNames
Expand All @@ -861,7 +857,7 @@ protected function saveMappingField($mapperKeys, array $saveMapping, string $cTy
* @return array
* @throws \CiviCRM_API3_Exception
*/
public function loadSavedMapping($processor, $mappingName, $i, $mappingRelation, $mappingWebsiteType, $mappingLocation, $defaults, $js, $hasColumnNames, $dataPatterns, $columnPatterns) {
public function loadSavedMapping($processor, $mappingName, $i, $mappingRelation, $defaults, $js, $hasColumnNames, $dataPatterns, $columnPatterns) {
$jsSet = FALSE;
$formName = $processor->getFormName();
if (isset($mappingName[$i])) {
Expand Down Expand Up @@ -899,8 +895,8 @@ public function loadSavedMapping($processor, $mappingName, $i, $mappingRelation,
}

$contactDetails = strtolower(str_replace(" ", "_", $mappingName[$i]));
$websiteTypeId = isset($mappingWebsiteType[$i]) ? $mappingWebsiteType[$i] : NULL;
$locationId = isset($mappingLocation[$i]) ? $mappingLocation[$i] : 0;
$websiteTypeId = $processor->getWebsiteTypeID($i);
$locationId = $processor->getLocationTypeID($i);
$phoneType = $processor->getPhoneTypeID($i);
$imProvider = $processor->getIMProviderID($i);

Expand Down Expand Up @@ -941,8 +937,8 @@ public function loadSavedMapping($processor, $mappingName, $i, $mappingRelation,
}
else {
$mappingHeader = array_keys((array) $this->_mapperFields, $mappingName[$i]);
$websiteTypeId = isset($mappingWebsiteType[$i]) ? $mappingWebsiteType[$i] : NULL;
$locationId = isset($mappingLocation[$i]) ? $mappingLocation[$i] : 0;
$websiteTypeId = $processor->getWebsiteTypeID($i);
$locationId = $processor->getLocationTypeID($i);
$phoneType = $processor->getPhoneTypeID($i);
$imProvider = $processor->getIMProviderID($i);

Expand Down
8 changes: 7 additions & 1 deletion tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,12 @@ public function mapFieldDataProvider() {
['name' => 'Phone', 'contact_type' => 'Individual', 'column_number' => 0, 'im_provider_id' => 1, 'location_type_id' => 2],
"document.forms.MapField['mapper[0][3]'].style.display = 'none';\n",
],
[
['name' => 'Website', 'contact_type' => 'Individual', 'column_number' => 0, 'website_type_id'],
"document.forms.MapField['mapper[0][1]'].style.display = 'none';
document.forms.MapField['mapper[0][2]'].style.display = 'none';
document.forms.MapField['mapper[0][3]'].style.display = 'none';\n",
],
];
}

Expand Down Expand Up @@ -336,7 +342,7 @@ protected function loadSavedMapping($form, $mappingID, $columnNumber) {
$processor->setFormName('document.forms.MapField');
$processor->setMetadata($this->getContactImportMetadata());

$return = $form->loadSavedMapping($processor, $mappingName, $columnNumber, $mappingRelation, $mappingWebsiteType, $mappingLocation, $defaults, $js, $hasColumnNames, $dataPatterns, $columnPatterns);
$return = $form->loadSavedMapping($processor, $mappingName, $columnNumber, $mappingRelation, $defaults, $js, $hasColumnNames, $dataPatterns, $columnPatterns);
return ['defaults' => $return[0], 'js' => $return[1]];
}

Expand Down

0 comments on commit 20664a1

Please sign in to comment.