diff --git a/components/actors/merge.vue b/components/actors/merge.vue
index cb26b08..2dad31e 100644
--- a/components/actors/merge.vue
+++ b/components/actors/merge.vue
@@ -17,6 +17,7 @@ const emit = defineEmits(['close', 'merged']);
const targetActor = ref(null);
const actorInput = ref(null);
+const comment = ref(null);
const actorQuery = ref('');
const actorResults = ref([]);
const submitted = ref(false);
@@ -51,7 +52,9 @@ function getActorNames() {
async function merge() {
submitted.value = true;
- await post(`/actors/${targetActor.value.id}/merge/${props.actors.map((actor) => actor.id).join(',')}`, null, {
+ await post(`/actors/${targetActor.value.id}/merge/${props.actors.map((actor) => actor.id).join(',')}`, {
+ comment: comment.value || null,
+ }, {
successFeedback: `Merged ${getActorNames()} into ${targetActor.value.name}`,
errorFeedback: `Failed to merge ${getActorNames()} into ${targetActor.value.name}`,
appendErrorMessage: true,
@@ -173,6 +176,13 @@ onMounted(() => {
+
+
@@ -216,6 +226,10 @@ onMounted(() => {
.input {
width: 100%;
+
+ &.comment {
+ flex-basis: auto;
+ }
}
.path {
diff --git a/src/actors.js b/src/actors.js
index b125ba3..5406646 100644
--- a/src/actors.js
+++ b/src/actors.js
@@ -809,7 +809,7 @@ export async function createActor(newActor, context, reqUser) {
return curateActor(actorEntry);
}
-export async function mergeActors(targetActorId, sourceActorIds, reqUser) {
+export async function mergeActors(targetActorId, sourceActorIds, comment, reqUser) {
if (!verifyAbility(reqUser, 'actor', 'merge')) {
throw new HttpError('You are not permitted to merge actors', 403);
}
@@ -981,6 +981,7 @@ export async function mergeActors(targetActorId, sourceActorIds, reqUser) {
base: baseTargetActor,
deltas: targetDeltas,
}),
+ comment,
reviewed_by: reqUser.id,
reviewed_at: knex.fn.now(),
applied_at: knex.fn.now(),
@@ -1009,6 +1010,7 @@ export async function mergeActors(targetActorId, sourceActorIds, reqUser) {
base: baseSourceActor,
deltas: targetDeltas,
}),
+ comment,
reviewed_by: reqUser.id,
reviewed_at: knex.fn.now(),
applied_at: knex.fn.now(),
diff --git a/src/web/actors.js b/src/web/actors.js
index 3241736..d5badf8 100644
--- a/src/web/actors.js
+++ b/src/web/actors.js
@@ -192,7 +192,12 @@ export async function createActorApi(req, res) {
}
export async function mergeActorsApi(req, res) {
- const result = await mergeActors(Number(req.params.targetActorId), req.params.sourceActorIds.split(',').map((actorId) => Number(actorId)), req.user);
+ const result = await mergeActors(
+ Number(req.params.targetActorId),
+ req.params.sourceActorIds.split(',').map((actorId) => Number(actorId)),
+ req.body.comment,
+ req.user,
+ );
res.send(result);
}