Attaching multiple contacts to an activity in afform dies if one in the middle is missing
Hit an issue today with trying to assign multiple contacts to an activity with an afform.
Example afform:
<af-form ctrl="afform">
<af-entity data="{source_contact_id: 'user_contact_id', activity_type_id: '1', **target_contact_id: ['Individual1', 'Individual2', 'Organization1']**}" type="Activity" name="Activity1" label="Activity 1" actions="{create: true, update: true}" security="RBAC" />
<af-entity data="{contact_type: 'Individual', source: 'Meeting Log'}" type="Contact" name="Individual1" label="Chair" actions="{create: true, update: true}" security="RBAC" />
<af-entity data="{contact_type: 'Individual', source: 'Meeting Log'}" type="Contact" name="Individual2" label="Minute Taker" actions="{create: true, update: true}" security="RBAC" />
<af-entity data="{contact_type: 'Organization', source: 'Meeting Log'}" type="Contact" name="Organization1" label="Host Organisation" actions="{create: true, update: true}" security="RBAC" />
<button class="af-button btn btn-primary" crm-icon="fa-check" ng-click="afform.submit()" ng-if="afform.showSubmitButton">Submit</button>
<fieldset af-fieldset="Activity1" class="af-container" af-title="Meeting">
<af-field name="subject" />
</fieldset>
<fieldset af-fieldset="Individual1" class="af-container" af-title="Chair">
<div class="af-container">
<div class="af-container af-layout-inline">
<af-field name="first_name" />
<af-field name="last_name" />
</div>
</div>
</fieldset>
<fieldset af-fieldset="Individual2" class="af-container" af-title="Minute Taker">
<div class="af-container">
<div class="af-container af-layout-inline">
<af-field name="first_name" />
<af-field name="last_name" />
</div>
</div>
</fieldset>
<fieldset af-fieldset="Organization1" class="af-container" af-title="Host Organisation">
<af-field name="organization_name" />
</fieldset>
</af-form>
```
Fill in all the contacts and you get an activity with 3 contacts.
If you skip Individual2 (Minute Taker), however... what happens? The Activity, Individual1 and the Organisation are created, but only Individual1 is linked to the Activity...
Think the issue is with the splicing here https://github.com/civicrm/civicrm-core/blob/1880f9bdfe20be6e1d0a47a74c2b480b6f27e055/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php#L355 - patch incoming :slight_smile: