mirror of
https://github.com/plankanban/planka.git
synced 2025-07-19 13:19:44 +02:00
feat: Log actions when task completion status changes
This commit is contained in:
parent
5d53f44fe8
commit
d5fd2fd33b
6 changed files with 64 additions and 0 deletions
|
@ -143,6 +143,44 @@ const Item = React.memo(({ id }) => {
|
||||||
</Trans>
|
</Trans>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case ActivityTypes.COMPLETE_TASK:
|
||||||
|
contentNode = (
|
||||||
|
<Trans
|
||||||
|
i18nKey="common.userCompletedTaskOnThisCard"
|
||||||
|
values={{
|
||||||
|
user: userName,
|
||||||
|
task: activity.data.task.name,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span className={styles.author}>{userName}</span>
|
||||||
|
<span className={styles.text}>
|
||||||
|
{' completed '}
|
||||||
|
{activity.data.task.name}
|
||||||
|
{' on this card'}
|
||||||
|
</span>
|
||||||
|
</Trans>
|
||||||
|
);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case ActivityTypes.UNCOMPLETE_TASK:
|
||||||
|
contentNode = (
|
||||||
|
<Trans
|
||||||
|
i18nKey="common.userMarkedTaskIncompleteOnThisCard"
|
||||||
|
values={{
|
||||||
|
user: userName,
|
||||||
|
task: activity.data.task.name,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span className={styles.author}>{userName}</span>
|
||||||
|
<span className={styles.text}>
|
||||||
|
{' marked '}
|
||||||
|
{activity.data.task.name}
|
||||||
|
{' incomplete on this card'}
|
||||||
|
</span>
|
||||||
|
</Trans>
|
||||||
|
);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
contentNode = null;
|
contentNode = null;
|
||||||
|
|
|
@ -92,6 +92,8 @@ export const ActivityTypes = {
|
||||||
MOVE_CARD: 'moveCard',
|
MOVE_CARD: 'moveCard',
|
||||||
ADD_MEMBER_TO_CARD: 'addMemberToCard',
|
ADD_MEMBER_TO_CARD: 'addMemberToCard',
|
||||||
REMOVE_MEMBER_FROM_CARD: 'removeMemberFromCard',
|
REMOVE_MEMBER_FROM_CARD: 'removeMemberFromCard',
|
||||||
|
COMPLETE_TASK: 'completeTask',
|
||||||
|
UNCOMPLETE_TASK: 'uncompleteTask',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const NotificationTypes = {
|
export const NotificationTypes = {
|
||||||
|
|
|
@ -289,9 +289,12 @@ export default {
|
||||||
userAddedThisCardToList: '<0>{{user}}</0><1> added this card to {{list}}</1>',
|
userAddedThisCardToList: '<0>{{user}}</0><1> added this card to {{list}}</1>',
|
||||||
userAddedUserToThisCard: '<0>{{actorUser}}</0><1> added {{addedUser}} to this card</1>',
|
userAddedUserToThisCard: '<0>{{actorUser}}</0><1> added {{addedUser}} to this card</1>',
|
||||||
userAddedYouToCard: '{{user}} added you to <2>{{card}}</2>',
|
userAddedYouToCard: '{{user}} added you to <2>{{card}}</2>',
|
||||||
|
userCompletedTaskOnThisCard: '<0>{{user}}</0><1> completed {{task}} on this card</1>',
|
||||||
userJoinedThisCard: `<0>{{user}}</0><1> joined this card</1>`,
|
userJoinedThisCard: `<0>{{user}}</0><1> joined this card</1>`,
|
||||||
userLeftNewCommentToCard: '{{user}} left a new comment «{{comment}}» to <2>{{card}}</2>',
|
userLeftNewCommentToCard: '{{user}} left a new comment «{{comment}}» to <2>{{card}}</2>',
|
||||||
userLeftThisCard: '<0>{{user}}</0><1> left this card</1>',
|
userLeftThisCard: '<0>{{user}}</0><1> left this card</1>',
|
||||||
|
userMarkedTaskIncompleteOnThisCard:
|
||||||
|
'<0>{{user}}</0><1> marked {{task}} incomplete on this card</1>',
|
||||||
userMovedCardFromListToList: '{{user}} moved <2>{{card}}</2> from {{fromList}} to {{toList}}',
|
userMovedCardFromListToList: '{{user}} moved <2>{{card}}</2> from {{fromList}} to {{toList}}',
|
||||||
userMovedThisCardFromListToList:
|
userMovedThisCardFromListToList:
|
||||||
'<0>{{user}}</0><1> moved this card from {{fromList}} to {{toList}}</1>',
|
'<0>{{user}}</0><1> moved this card from {{fromList}} to {{toList}}</1>',
|
||||||
|
|
|
@ -284,9 +284,12 @@ export default {
|
||||||
userAddedThisCardToList: '<0>{{user}}</0><1> added this card to {{list}}</1>',
|
userAddedThisCardToList: '<0>{{user}}</0><1> added this card to {{list}}</1>',
|
||||||
userAddedUserToThisCard: '<0>{{actorUser}}</0><1> added {{addedUser}} to this card</1>',
|
userAddedUserToThisCard: '<0>{{actorUser}}</0><1> added {{addedUser}} to this card</1>',
|
||||||
userAddedYouToCard: '{{user}} added you to <2>{{card}}</2>',
|
userAddedYouToCard: '{{user}} added you to <2>{{card}}</2>',
|
||||||
|
userCompletedTaskOnThisCard: '<0>{{user}}</0><1> completed {{task}} on this card</1>',
|
||||||
userJoinedThisCard: `<0>{{user}}</0><1> joined this card</1>`,
|
userJoinedThisCard: `<0>{{user}}</0><1> joined this card</1>`,
|
||||||
userLeftNewCommentToCard: '{{user}} left a new comment «{{comment}}» to <2>{{card}}</2>',
|
userLeftNewCommentToCard: '{{user}} left a new comment «{{comment}}» to <2>{{card}}</2>',
|
||||||
userLeftThisCard: '<0>{{user}}</0><1> left this card</1>',
|
userLeftThisCard: '<0>{{user}}</0><1> left this card</1>',
|
||||||
|
userMarkedTaskIncompleteOnThisCard:
|
||||||
|
'<0>{{user}}</0><1> marked {{task}} incomplete on this card</1>',
|
||||||
userMovedCardFromListToList: '{{user}} moved <2>{{card}}</2> from {{fromList}} to {{toList}}',
|
userMovedCardFromListToList: '{{user}} moved <2>{{card}}</2> from {{fromList}} to {{toList}}',
|
||||||
userMovedThisCardFromListToList:
|
userMovedThisCardFromListToList:
|
||||||
'<0>{{user}}</0><1> moved this card from {{fromList}} to {{toList}}</1>',
|
'<0>{{user}}</0><1> moved this card from {{fromList}} to {{toList}}</1>',
|
||||||
|
|
|
@ -132,6 +132,22 @@ module.exports = {
|
||||||
}),
|
}),
|
||||||
user: inputs.actorUser,
|
user: inputs.actorUser,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (inputs.record.isCompleted !== task.isCompleted) {
|
||||||
|
await sails.helpers.actions.createOne.with({
|
||||||
|
values: {
|
||||||
|
type: task.isCompleted ? Action.Types.COMPLETE_TASK : Action.Types.UNCOMPLETE_TASK,
|
||||||
|
data: {
|
||||||
|
task: _.pick(task, ['id', 'name']),
|
||||||
|
},
|
||||||
|
user: inputs.actorUser,
|
||||||
|
card: inputs.card,
|
||||||
|
},
|
||||||
|
project: inputs.project,
|
||||||
|
board: inputs.board,
|
||||||
|
list: inputs.list,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
|
|
|
@ -15,6 +15,8 @@ const Types = {
|
||||||
MOVE_CARD: 'moveCard',
|
MOVE_CARD: 'moveCard',
|
||||||
ADD_MEMBER_TO_CARD: 'addMemberToCard',
|
ADD_MEMBER_TO_CARD: 'addMemberToCard',
|
||||||
REMOVE_MEMBER_FROM_CARD: 'removeMemberFromCard',
|
REMOVE_MEMBER_FROM_CARD: 'removeMemberFromCard',
|
||||||
|
COMPLETE_TASK: 'completeTask',
|
||||||
|
UNCOMPLETE_TASK: 'uncompleteTask',
|
||||||
};
|
};
|
||||||
|
|
||||||
const INTERNAL_NOTIFIABLE_TYPES = [Types.MOVE_CARD, Types.ADD_MEMBER_TO_CARD];
|
const INTERNAL_NOTIFIABLE_TYPES = [Types.MOVE_CARD, Types.ADD_MEMBER_TO_CARD];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue