mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 23:40:13 +01:00
parent
70f5326099
commit
4b56bbfe6d
3 changed files with 102 additions and 39 deletions
|
|
@ -42,35 +42,65 @@ RulesHelper = {
|
|||
performAction(activity, action) {
|
||||
const card = Cards.findOne({ _id: activity.cardId });
|
||||
const boardId = activity.boardId;
|
||||
if (action.actionType === 'moveCardToTop') {
|
||||
let listId;
|
||||
if (
|
||||
action.actionType === 'moveCardToTop' ||
|
||||
action.actionType === 'moveCardToBottom'
|
||||
) {
|
||||
let list;
|
||||
if (action.listTitle === '*') {
|
||||
listId = card.listId;
|
||||
let listId;
|
||||
if (action.listName === '*') {
|
||||
list = card.list();
|
||||
if (boardId !== action.boardId) {
|
||||
list = Lists.findOne({ title: list.title, boardId: action.boardId });
|
||||
}
|
||||
} else {
|
||||
list = Lists.findOne({
|
||||
title: action.listName,
|
||||
boardId: action.boardId,
|
||||
});
|
||||
}
|
||||
if (list === undefined) {
|
||||
listId = '';
|
||||
} else {
|
||||
list = Lists.findOne({ title: action.listTitle, boardId });
|
||||
listId = list._id;
|
||||
}
|
||||
const minOrder = _.min(
|
||||
list.cardsUnfiltered(card.swimlaneId).map(c => c.sort),
|
||||
);
|
||||
card.move(boardId, card.swimlaneId, listId, minOrder - 1);
|
||||
}
|
||||
if (action.actionType === 'moveCardToBottom') {
|
||||
let listId;
|
||||
let list;
|
||||
if (action.listTitle === '*') {
|
||||
listId = card.listId;
|
||||
list = card.list();
|
||||
|
||||
let swimlane;
|
||||
let swimlaneId;
|
||||
if (action.swimlaneName === '*') {
|
||||
swimlane = Swimlanes.findOne(card.swimlaneId);
|
||||
if (boardId !== action.boardId) {
|
||||
swimlane = Swimlanes.findOne({
|
||||
title: swimlane.title,
|
||||
boardId: action.boardId,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
list = Lists.findOne({ title: action.listTitle, boardId });
|
||||
listId = list._id;
|
||||
swimlane = Swimlanes.findOne({
|
||||
title: action.swimlaneName,
|
||||
boardId: action.boardId,
|
||||
});
|
||||
}
|
||||
if (swimlane === undefined) {
|
||||
swimlaneId = Swimlanes.findOne({
|
||||
title: 'Default',
|
||||
boardId: action.boardId,
|
||||
})._id;
|
||||
} else {
|
||||
swimlaneId = swimlane._id;
|
||||
}
|
||||
|
||||
if (action.actionType === 'moveCardToTop') {
|
||||
const minOrder = _.min(
|
||||
list.cardsUnfiltered(swimlaneId).map(c => c.sort),
|
||||
);
|
||||
card.move(action.boardId, swimlaneId, listId, minOrder - 1);
|
||||
} else {
|
||||
const maxOrder = _.max(
|
||||
list.cardsUnfiltered(swimlaneId).map(c => c.sort),
|
||||
);
|
||||
card.move(action.boardId, swimlaneId, listId, maxOrder + 1);
|
||||
}
|
||||
const maxOrder = _.max(
|
||||
list.cardsUnfiltered(card.swimlaneId).map(c => c.sort),
|
||||
);
|
||||
card.move(boardId, card.swimlaneId, listId, maxOrder + 1);
|
||||
}
|
||||
if (action.actionType === 'sendEmail') {
|
||||
const to = action.emailTo;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue