Răsfoiți Sursa

Merge branch 'Tentoe-boardimportbug' into devel

Fixed Members do not get included on board import from Wekan.
Thanks to Tentoe ! Closes #1255
Lauri Ojansivu 7 ani în urmă
părinte
comite
d3d73e9cdd
2 a modificat fișierele cu 25 adăugiri și 29 ștergeri
  1. 5 1
      CHANGELOG.md
  2. 20 28
      models/wekanCreator.js

+ 5 - 1
CHANGELOG.md

@@ -5,7 +5,11 @@ This release adds the following new features:
 * [Permit editing WIP limit](https://github.com/wekan/wekan/pull/1312);
 * [Image attachment resize on smaller screens and swipebox](https://github.com/wekan/wekan/pull/1315).
 
-Thanks to GitHub users brooksbecton, nztqa and ocdtrekkie for their contributions.
+and fixes the following bugs:
+
+* [Members do not get included on board import from Wekan](https://github.com/wekan/wekan/pull/1316).
+
+Thanks to GitHub users brooksbecton, nztqa, ocdtrekkie and Tentoe for their contributions.
 
 # v0.51 2017-10-25 Wekan release
 

+ 20 - 28
models/wekanCreator.js

@@ -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,