mirror of https://github.com/wekan/wekan
commit
10c9fc25a9
@ -0,0 +1,53 @@ |
||||
Meteor.methods({ |
||||
moveSwimlane(swimlaneId, toBoardId) { |
||||
check(swimlaneId, String); |
||||
check(toBoardId, String); |
||||
|
||||
const swimlane = Swimlanes.findOne(swimlaneId); |
||||
const fromBoard = Boards.findOne(swimlane.boardId); |
||||
const toBoard = Boards.findOne(toBoardId); |
||||
|
||||
if (swimlane && toBoard) { |
||||
swimlane.lists().forEach(list => { |
||||
const toList = Lists.findOne({ |
||||
boardId: toBoardId, |
||||
title: list.title, |
||||
archived: false, |
||||
}); |
||||
|
||||
let toListId; |
||||
if (toList) { |
||||
toListId = toList._id; |
||||
} else { |
||||
toListId = Lists.insert({ |
||||
title: list.title, |
||||
boardId: toBoardId, |
||||
type: list.type, |
||||
archived: false, |
||||
wipLimit: list.wipLimit, |
||||
}); |
||||
} |
||||
|
||||
Cards.find({ |
||||
listId: list._id, |
||||
swimlaneId, |
||||
}).forEach(card => { |
||||
card.move(toBoardId, swimlaneId, toListId); |
||||
}); |
||||
}); |
||||
|
||||
Swimlanes.update(swimlaneId, { |
||||
$set: { |
||||
boardId: toBoardId, |
||||
}, |
||||
}); |
||||
|
||||
// make sure there is a default swimlane
|
||||
fromBoard.getDefaultSwimline(); |
||||
|
||||
return true; |
||||
} |
||||
|
||||
return false; |
||||
}, |
||||
}); |
Loading…
Reference in new issue