|
|
|
@ -133,47 +133,39 @@ export class WekanCreator { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// You must call parseActions before calling this one.
|
|
|
|
|
createBoardAndLabels(wekanBoard) { |
|
|
|
|
createBoardAndLabels(boardToImport) { |
|
|
|
|
const boardToCreate = { |
|
|
|
|
archived: wekanBoard.archived, |
|
|
|
|
color: wekanBoard.color, |
|
|
|
|
archived: boardToImport.archived, |
|
|
|
|
color: boardToImport.color, |
|
|
|
|
// very old boards won't have a creation activity so no creation date
|
|
|
|
|
createdAt: this._now(wekanBoard.createdAt), |
|
|
|
|
createdAt: this._now(boardToImport.createdAt), |
|
|
|
|
labels: [], |
|
|
|
|
members: [{ |
|
|
|
|
userId: Meteor.userId(), |
|
|
|
|
isAdmin: true, |
|
|
|
|
wekanId: Meteor.userId(), |
|
|
|
|
isActive: true, |
|
|
|
|
isAdmin: true, |
|
|
|
|
isCommentOnly: false, |
|
|
|
|
}], |
|
|
|
|
// Standalone Export has modifiedAt missing, adding modifiedAt to fix it
|
|
|
|
|
modifiedAt: this._now(wekanBoard.modifiedAt), |
|
|
|
|
permission: wekanBoard.permission, |
|
|
|
|
slug: getSlug(wekanBoard.title) || 'board', |
|
|
|
|
modifiedAt: this._now(boardToImport.modifiedAt), |
|
|
|
|
permission: boardToImport.permission, |
|
|
|
|
slug: getSlug(boardToImport.title) || 'board', |
|
|
|
|
stars: 0, |
|
|
|
|
title: wekanBoard.title, |
|
|
|
|
title: boardToImport.title, |
|
|
|
|
}; |
|
|
|
|
// now add other members
|
|
|
|
|
if(wekanBoard.members) { |
|
|
|
|
wekanBoard.members.forEach((wekanMember) => { |
|
|
|
|
const wekanId = wekanMember.userId; |
|
|
|
|
// do we have a mapping?
|
|
|
|
|
if(this.members[wekanId]) { |
|
|
|
|
const wekanId = this.members[wekanId]; |
|
|
|
|
// do we already have it in our list?
|
|
|
|
|
const wekanMember = boardToCreate.members.find((wekanMember) => wekanMember.userId === wekanId); |
|
|
|
|
if(!wekanMember) { |
|
|
|
|
boardToCreate.members.push({ |
|
|
|
|
userId: wekanId, |
|
|
|
|
isAdmin: wekanMember.isAdmin, |
|
|
|
|
isActive: true, |
|
|
|
|
isCommentOnly: false, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(boardToImport.members) { |
|
|
|
|
boardToImport.members.forEach((wekanMember) => { |
|
|
|
|
// do we already have it in our list?
|
|
|
|
|
if(!boardToCreate.members.some((member) => member.wekanId === wekanMember.wekanId)) |
|
|
|
|
boardToCreate.members.push({ |
|
|
|
|
... wekanMember, |
|
|
|
|
userId: wekanMember.wekanId, |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
wekanBoard.labels.forEach((label) => { |
|
|
|
|
boardToImport.labels.forEach((label) => { |
|
|
|
|
const labelToCreate = { |
|
|
|
|
_id: Random.id(6), |
|
|
|
|
color: label.color, |
|
|
|
@ -192,7 +184,7 @@ export class WekanCreator { |
|
|
|
|
boardId, |
|
|
|
|
createdAt: this._now(), |
|
|
|
|
source: { |
|
|
|
|
id: wekanBoard.id, |
|
|
|
|
id: boardToImport.id, |
|
|
|
|
system: 'Wekan', |
|
|
|
|
}, |
|
|
|
|
// We attribute the import to current user,
|
|
|
|
|