|
|
|
@ -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.listTitle, boardId }); |
|
|
|
|
listId = list._id; |
|
|
|
|
list = Lists.findOne({ |
|
|
|
|
title: action.listName, |
|
|
|
|
boardId: action.boardId, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
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(); |
|
|
|
|
if (list === undefined) { |
|
|
|
|
listId = ''; |
|
|
|
|
} else { |
|
|
|
|
list = Lists.findOne({ title: action.listTitle, boardId }); |
|
|
|
|
listId = list._id; |
|
|
|
|
} |
|
|
|
|
const maxOrder = _.max( |
|
|
|
|
list.cardsUnfiltered(card.swimlaneId).map(c => c.sort), |
|
|
|
|
); |
|
|
|
|
card.move(boardId, card.swimlaneId, listId, maxOrder + 1); |
|
|
|
|
|
|
|
|
|
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 { |
|
|
|
|
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); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (action.actionType === 'sendEmail') { |
|
|
|
|
const to = action.emailTo; |
|
|
|
|