1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-24 15:49:46 +02:00

feat: Log action when user is removed from card

This commit is contained in:
Maksim Eltyshev 2025-05-17 22:24:37 +02:00
parent eeb52d19bb
commit 3aedbff5d0
9 changed files with 86 additions and 17 deletions

View file

@ -142,8 +142,8 @@ module.exports = {
user: values.user,
});
if (action.type !== Action.Types.CREATE_CARD) {
if (action.type === Action.Types.ADD_MEMBER_TO_CARD) {
if (Action.INTERNAL_NOTIFIABLE_TYPES.includes(action.type)) {
if (Action.PERSONAL_NOTIFIABLE_TYPES.includes(action.type)) {
if (values.user !== action.data.user.id) {
await sails.helpers.notifications.createOne.with({
values: {
@ -195,23 +195,25 @@ module.exports = {
}),
),
);
}
}
const notificationServices = await NotificationService.qm.getByBoardId(inputs.board.id);
if (Action.EXTERNAL_NOTIFIABLE_TYPES.includes(action.type)) {
const notificationServices = await NotificationService.qm.getByBoardId(inputs.board.id);
if (notificationServices.length > 0) {
const services = notificationServices.map((notificationService) =>
_.pick(notificationService, ['url', 'format']),
);
if (notificationServices.length > 0) {
const services = notificationServices.map((notificationService) =>
_.pick(notificationService, ['url', 'format']),
);
buildAndSendNotifications(
services,
inputs.board,
values.card,
action,
values.user,
sails.helpers.utils.makeTranslator(),
);
}
buildAndSendNotifications(
services,
inputs.board,
values.card,
action,
values.user,
sails.helpers.utils.makeTranslator(),
);
}
}

View file

@ -9,6 +9,10 @@ module.exports = {
type: 'ref',
required: true,
},
user: {
type: 'ref',
required: true,
},
project: {
type: 'ref',
required: true,
@ -52,6 +56,7 @@ module.exports = {
buildData: () => ({
item: cardMembership,
included: {
users: [inputs.user],
projects: [inputs.project],
boards: [inputs.board],
lists: [inputs.list],
@ -75,6 +80,20 @@ module.exports = {
},
});
}
await sails.helpers.actions.createOne.with({
values: {
type: Action.Types.REMOVE_MEMBER_FROM_CARD,
data: {
user: _.pick(inputs.user, ['id', 'name']),
},
user: inputs.actorUser,
card: inputs.card,
},
project: inputs.project,
board: inputs.board,
list: inputs.list,
});
}
return cardMembership;