|
@@ -42,35 +42,65 @@ RulesHelper = {
|
|
performAction(activity, action) {
|
|
performAction(activity, action) {
|
|
const card = Cards.findOne({ _id: activity.cardId });
|
|
const card = Cards.findOne({ _id: activity.cardId });
|
|
const boardId = activity.boardId;
|
|
const boardId = activity.boardId;
|
|
- if (action.actionType === 'moveCardToTop') {
|
|
|
|
- let listId;
|
|
|
|
|
|
+ if (
|
|
|
|
+ action.actionType === 'moveCardToTop' ||
|
|
|
|
+ action.actionType === 'moveCardToBottom'
|
|
|
|
+ ) {
|
|
let list;
|
|
let list;
|
|
- if (action.listTitle === '*') {
|
|
|
|
- listId = card.listId;
|
|
|
|
|
|
+ let listId;
|
|
|
|
+ if (action.listName === '*') {
|
|
list = card.list();
|
|
list = card.list();
|
|
|
|
+ if (boardId !== action.boardId) {
|
|
|
|
+ list = Lists.findOne({ title: list.title, boardId: action.boardId });
|
|
|
|
+ }
|
|
} else {
|
|
} 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 {
|
|
} else {
|
|
- list = Lists.findOne({ title: action.listTitle, boardId });
|
|
|
|
listId = list._id;
|
|
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') {
|
|
if (action.actionType === 'sendEmail') {
|
|
const to = action.emailTo;
|
|
const to = action.emailTo;
|