* @throws \CRM_Core_Exception
*/
public function getImportEntities() : array {
- $softCreditTypes = ContributionSoft::getFields()
- ->setLoadOptions(['id', 'name', 'label', 'description'])
+ $softCreditTypes = ContributionSoft::getFields(FALSE)
+ ->setLoadOptions(['id', 'name', 'label', 'description', 'is_default'])
->addWhere('name', '=', 'soft_credit_type_id')
->selectRowCount()
->addSelect('options')->execute()->first()['options'];
+ $defaultSoftCreditTypeID = NULL;
foreach ($softCreditTypes as &$softCreditType) {
+ if (empty($defaultSoftCreditTypeID) || $softCreditType['is_default']) {
+ $defaultSoftCreditTypeID = $softCreditType['id'];
+ }
$softCreditType['text'] = $softCreditType['label'];
}
'is_contact' => TRUE,
'is_required' => FALSE,
'actions' => array_merge([['id' => 'ignore', 'text' => ts('Do not import')]], $this->getActions(['select', 'update', 'save'])),
- 'selected' => ['contact_type' => '', 'soft_credit_type_id' => reset($softCreditTypes)['id'], 'action' => 'ignore'],
+ 'selected' => [
+ 'contact_type' => 'Individual',
+ 'soft_credit_type_id' => $defaultSoftCreditTypeID,
+ 'action' => 'ignore',
+ 'dedupe_rule' => $this->getDedupeRule('Individual')['name'],
+ ],
'default_action' => 'ignore',
'entity_name' => 'SoftCreditContact',
'entity_field_prefix' => 'soft_credit.contact.',
// For now we just hard-code this - mapping to soft_credit a bit undefined - but
// we are mimicking getMappingFieldFromMapperInput on the php layer.
// Could get it from entity_data but .... later.
- entityConfig = {'soft_credit': $scope.userJob.metadata.entity_configuration[selectedEntity].entity.entity_data};
+ entityConfig = {'soft_credit': $scope.userJob.metadata.entity_configuration[selectedEntity]};
}
$scope.userJob.metadata.import_mappings.push({
<div ng-if="entity.entity_data && entity.selected.action !== 'ignore'">
<div ng-repeat="(fieldName, entityField) in entity.entity_data">
<label>
- {{ entityField.title }} <input class="big" crm-ui-select='{data: entityField.options, required : entityField.is_required}' ng-model="entity.selected.entity.entity_data[fieldName]"/>
+ {{ entityField.title }} <input class="big" crm-ui-select='{data: entityField.options, required : entityField.is_required}' ng-model="entity.selected[fieldName]"/>
</label>
</div>
</div>
</div>
<div class="crm-submit-buttons">
- <button class="crm-form-submit cancel crm-button crm-button-type-back crm-button_qf_MapField_back" value="1" type="submit" name="_qf_MapField_back" id="_qf_MapField_back-bottom"><i aria-hidden="true" class="crm-i fa-chevron-left"></i> Previous</button>
- <button ng-click="save($event)" class="crm-form-submit default validate crm-button crm-button-type-next crm-button_qf_MapField_next" value="1" type="submit" name="_qf_MapField_next" id="_qf_MapField_next-bottom"><i aria-hidden="true" class="crm-i fa-check"></i> Continue</button>
- <button class="crm-form-submit cancel crm-button crm-button-type-cancel crm-button_qf_MapField_cancel" value="1" type="submit" name="_qf_MapField_cancel" id="_qf_MapField_cancel-bottom"><i aria-hidden="true" class="crm-i fa-times"></i> Cancel</button>
+ <button class="crm-form-submit cancel crm-button crm-button-type-back crm-button_qf_MapField_back" value="1" type="submit" name="_qf_MapField_back" id="_qf_MapField_back-bottom"><i aria-hidden="true" class="crm-i fa-chevron-left"></i>{{:: ts('Previous') }}</button>
+ <button ng-click="save($event)" class="crm-form-submit default validate crm-button crm-button-type-next crm-button_qf_MapField_next" value="1" type="submit" name="_qf_MapField_next" id="_qf_MapField_next-bottom"><i aria-hidden="true" class="crm-i fa-check"></i>{{:: ts('Continue') }}</button>
+ <button class="crm-form-submit cancel crm-button crm-button-type-cancel crm-button_qf_MapField_cancel" value="1" type="submit" name="_qf_MapField_cancel" id="_qf_MapField_cancel-bottom"><i aria-hidden="true" class="crm-i fa-times"></i>{{:: ts('Cancel') }}</button>
</div>