Browse Source

implement getDefaultSwimline for boards

Nicu Tofan 7 years ago
parent
commit
04745f0c2f

+ 1 - 1
client/components/cards/subtasks.js

@@ -16,7 +16,7 @@ BlazeComponent.extendComponent({
     const crtBoard = Boards.findOne(card.boardId);
     const targetBoard = crtBoard.getDefaultSubtasksBoard();
     const listId = targetBoard.getDefaultSubtasksListId();
-    const swimlaneId = Swimlanes.findOne({boardId: targetBoard._id})._id;
+    const swimlaneId = targetBoard.getDefaultSwimline()._id;
 
     if (title) {
       const _id = Cards.insert({

+ 1 - 1
client/components/lists/listBody.js

@@ -46,7 +46,7 @@ BlazeComponent.extendComponent({
     if (boardView === 'board-view-swimlanes')
       swimlaneId = this.parentComponent().parentComponent().data()._id;
     else if (boardView === 'board-view-lists')
-      swimlaneId = Swimlanes.findOne({boardId})._id;
+      swimlaneId = this.data().board().getDefaultSwimline()._id;
 
     if (title) {
       const _id = Cards.insert({

+ 12 - 0
models/boards.js

@@ -337,6 +337,18 @@ Boards.helpers({
   getDefaultSubtasksList() {
     return Lists.findOne(this.getDefaultSubtasksListId());
   },
+
+  getDefaultSwimline() {
+    let result = Swimlanes.findOne({boardId: this._id});
+    if (result === undefined) {
+      Swimlanes.insert({
+        title: TAPi18n.__('default'),
+        boardId: this._id,
+      });
+      result = Swimlanes.findOne({boardId: this._id});
+    }
+    return result;
+  },
 });
 
 

+ 1 - 9
server/migrations.js

@@ -154,15 +154,7 @@ Migrations.add('add-sort-checklists', () => {
 
 Migrations.add('add-swimlanes', () => {
   Boards.find().forEach((board) => {
-    const swimlane = Swimlanes.findOne({ boardId: board._id });
-    let swimlaneId = '';
-    if (swimlane)
-      swimlaneId = swimlane._id;
-    else
-      swimlaneId = Swimlanes.direct.insert({
-        boardId: board._id,
-        title: 'Default',
-      });
+    const swimlaneId = board.getDefaultSwimline()._id;
 
     Cards.find({ boardId: board._id }).forEach((card) => {
       if (!card.hasOwnProperty('swimlaneId')) {