fix copy campaign copying too many values

Signed-off-by: Ronni Skansing <rskansing@gmail.com>
This commit is contained in:
Ronni Skansing
2025-10-21 17:34:36 +02:00
parent 43bba415ad
commit ef5c477a4b
+36 -19
View File
@@ -868,17 +868,23 @@
name: copyMode ? `${campaign.name} (Copy)` : campaign.name,
sortField: sortField.byValue(campaign.sortField),
sortOrder: sortOrder.byValue(campaign.sortOrder),
sendStartAt: campaign.sendStartAt,
sendEndAt: campaign.sendEndAt,
scheduledStartAt: campaign.sendStartAt
? local_yyyy_mm_dd(new Date(campaign.sendStartAt))
: null,
scheduledEndAt: campaign.sendEndAt ? local_yyyy_mm_dd(new Date(campaign.sendEndAt)) : null,
constraintWeekDays: weekDayBinaryToAvailable(campaign.constraintWeekDays),
contraintStartTime: utcTimeToLocal(campaign.constraintStartTime),
contraintEndTime: utcTimeToLocal(campaign.constraintEndTime),
closeAt: campaign.closeAt,
anonymizeAt: campaign.anonymizeAt,
sendStartAt: copyMode ? null : campaign.sendStartAt,
sendEndAt: copyMode ? null : campaign.sendEndAt,
scheduledStartAt: copyMode
? null
: campaign.sendStartAt
? local_yyyy_mm_dd(new Date(campaign.sendStartAt))
: null,
scheduledEndAt: copyMode
? null
: campaign.sendEndAt
? local_yyyy_mm_dd(new Date(campaign.sendEndAt))
: null,
constraintWeekDays: copyMode ? [] : weekDayBinaryToAvailable(campaign.constraintWeekDays),
contraintStartTime: copyMode ? null : utcTimeToLocal(campaign.constraintStartTime),
contraintEndTime: copyMode ? null : utcTimeToLocal(campaign.constraintEndTime),
closeAt: copyMode ? null : campaign.closeAt,
anonymizeAt: copyMode ? null : campaign.anonymizeAt,
saveSubmittedData: campaign.saveSubmittedData,
isAnonymous: campaign.isAnonymous,
isTest: campaign.isTest,
@@ -886,19 +892,30 @@
webhookValue: webhookMap.byKey(campaign.webhookID)
};
formValues.recipientGroups = campaign.recipientGroupIDs.map((id) =>
recipientGroupMap.byKey(id)
);
formValues.selectedCount = formValues.recipientGroups.reduce((acc, label) => {
const id = recipientGroupMap.byValue(label);
const group = recipientGroupsByID[id];
return acc + group.recipientCount;
}, 0);
if (copyMode) {
// reset recipient groups when copying
formValues.recipientGroups = [];
formValues.selectedCount = 0;
} else {
formValues.recipientGroups = campaign.recipientGroupIDs.map((id) =>
recipientGroupMap.byKey(id)
);
formValues.selectedCount = formValues.recipientGroups.reduce((acc, label) => {
const id = recipientGroupMap.byValue(label);
const group = recipientGroupsByID[id];
return acc + group.recipientCount;
}, 0);
}
if (!formValues.sendStartAt && !formValues.sendEndAt) {
scheduleType = 'self-managed';
}
// reset schedule type to basic when copying since delivery times are cleared
if (copyMode) {
scheduleType = 'basic';
}
if (campaign.allowDeny.length > 0) {
allowDenyType = campaign.allowDeny[0].allowed ? 'allow' : 'deny';
} else {