if ($mappingName[$i] != ts('- do not import -')) {
if ($processor->getRelationshipKey($i)) {
-
- $contactDetails = strtolower(str_replace(" ", "_", $mappingName[$i]));
- $websiteTypeId = $processor->getWebsiteTypeID($i);
- $locationId = $processor->getLocationTypeID($i);
- $phoneType = $processor->getPhoneTypeID($i);
- $imProvider = $processor->getIMProviderID($i);
-
$defaults["mapper[$i]"] = $processor->getSavedQuickformDefaultsForColumn($i);
- if (!$websiteTypeId) {
- if (!$locationId) {
- $js .= "{$formName}['mapper[$i][2]'].style.display = 'none';\n";
- }
- }
- // fix for edge cases, CRM-4954
- if ($contactDetails == 'image_url') {
- $contactDetails = str_replace('url', 'URL', $contactDetails);
- }
-
- if (!$contactDetails) {
- $js .= "{$formName}['mapper[$i][1]'].style.display = 'none';\n";
- }
-
- if ((!$phoneType) && (!$imProvider)) {
- $js .= "{$formName}['mapper[$i][3]'].style.display = 'none';\n";
- }
- //$js .= "{$formName}['mapper[$i][3]'].style.display = 'none';\n";
+ $js = $processor->getQuickFormJSForField($i);
$jsSet = TRUE;
}
else {
*/
public function getQuickFormJSForField($column) {
$columnNumbersToHide = [];
-
- if (!$this->getLocationTypeID($column) && !$this->getWebsiteTypeID($column)) {
- $columnNumbersToHide[] = 1;
+ if ($this->getRelationshipKey($column)) {
+ if (!$this->getWebsiteTypeID($column) && !$this->getLocationTypeID($column)) {
+ $columnNumbersToHide[] = 2;
+ }
+ if (!$this->getFieldName($column)) {
+ $columnNumbersToHide[] = 1;
+ }
+ if (!$this->getPhoneOrIMTypeID($column)) {
+ $columnNumbersToHide[] = 3;
+ }
}
- if (!$this->getPhoneOrIMTypeID($column)) {
- $columnNumbersToHide[] = 2;
+ else {
+ if (!$this->getLocationTypeID($column) && !$this->getWebsiteTypeID($column)) {
+ $columnNumbersToHide[] = 1;
+ }
+ if (!$this->getPhoneOrIMTypeID($column)) {
+ $columnNumbersToHide[] = 2;
+ }
+ $columnNumbersToHide[] = 3;
}
- $columnNumbersToHide[] = 3;
$jsClauses = [];
foreach ($columnNumbersToHide as $columnNumber) {
$jsClauses[] = $this->getFormName() . "['mapper[$column][" . $columnNumber . "]'].style.display = 'none';";
}
- return implode("\n", $jsClauses) . "\n";
+ return empty($jsClauses) ? '' : implode("\n", $jsClauses) . "\n";
}
/**