mirror of
https://github.com/wekan/wekan.git
synced 2026-01-08 02:28:50 +01:00
53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
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;
|
|
},
|
|
});
|