fixed Members do not get included on board import from WeKan #1255

fixed multiple errors where constants were mistakenly overridden.(or
trying to get a property of an object after making sure it doesn't
exits)

renamed wekanBoard Parameter from createBoardAndLabels for clairity

reworked adding admin for imorter
This commit is contained in:
Keven Kurz PC 2017-10-29 16:34:49 +01:00
parent 01507576b1
commit e8cfed1f7b

View file

@ -133,47 +133,35 @@ 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,
isActive: true,
isCommentOnly: false,
}],
members: [],
// 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?
const foundWekanMember = boardToCreate.members.find((member) => member.wekanId === wekanMember.wekanId);
if(!foundWekanMember)
boardToCreate.members.push({
... wekanMember,
userId: wekanMember.wekanId,
...Meteor.userId() === wekanMember.wekanId ? {isAdmin: true} : {}, // make impoter admin
});
});
}
wekanBoard.labels.forEach((label) => {
boardToImport.labels.forEach((label) => {
const labelToCreate = {
_id: Random.id(6),
color: label.color,
@ -192,7 +180,7 @@ export class WekanCreator {
boardId,
createdAt: this._now(),
source: {
id: wekanBoard.id,
id: boardToImport.id,
system: 'Wekan',
},
// We attribute the import to current user,