|
|
|
@ -527,7 +527,11 @@ BlazeComponent.extendComponent({ |
|
|
|
|
this.isCardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-card-template'); |
|
|
|
|
this.isListTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-list-template'); |
|
|
|
|
this.isSwimlaneTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-open-add-swimlane-menu'); |
|
|
|
|
this.isTemplateSearch = this.isCardTemplateSearch || this.isListTemplateSearch || this.isSwimlaneTemplateSearch; |
|
|
|
|
this.isBoardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-add-board'); |
|
|
|
|
this.isTemplateSearch = this.isCardTemplateSearch || |
|
|
|
|
this.isListTemplateSearch || |
|
|
|
|
this.isSwimlaneTemplateSearch || |
|
|
|
|
this.isBoardTemplateSearch; |
|
|
|
|
let board = {}; |
|
|
|
|
if (this.isTemplateSearch) { |
|
|
|
|
board = Boards.findOne(Meteor.user().profile.templatesBoardId); |
|
|
|
@ -548,23 +552,26 @@ BlazeComponent.extendComponent({ |
|
|
|
|
subManager.subscribe('board', boardId); |
|
|
|
|
this.selectedBoardId = new ReactiveVar(boardId); |
|
|
|
|
|
|
|
|
|
this.boardId = Session.get('currentBoard'); |
|
|
|
|
// In order to get current board info
|
|
|
|
|
subManager.subscribe('board', this.boardId); |
|
|
|
|
// List where to insert card
|
|
|
|
|
const list = $(Popup._getTopStack().openerElement).closest('.js-list'); |
|
|
|
|
this.listId = Blaze.getData(list[0])._id; |
|
|
|
|
// Swimlane where to insert card
|
|
|
|
|
const swimlane = $(Popup._getTopStack().openerElement).parents('.js-swimlane'); |
|
|
|
|
this.swimlaneId = ''; |
|
|
|
|
if (Meteor.user().profile.boardView === 'board-view-swimlanes') |
|
|
|
|
this.swimlaneId = Blaze.getData(swimlane[0])._id; |
|
|
|
|
else |
|
|
|
|
this.swimlaneId = Swimlanes.findOne({boardId: this.boardId})._id; |
|
|
|
|
if (!this.isBoardTemplateSearch) { |
|
|
|
|
this.boardId = Session.get('currentBoard'); |
|
|
|
|
// In order to get current board info
|
|
|
|
|
subManager.subscribe('board', this.boardId); |
|
|
|
|
this.swimlaneId = ''; |
|
|
|
|
// Swimlane where to insert card
|
|
|
|
|
const swimlane = $(Popup._getTopStack().openerElement).parents('.js-swimlane'); |
|
|
|
|
if (Meteor.user().profile.boardView === 'board-view-swimlanes') |
|
|
|
|
this.swimlaneId = Blaze.getData(swimlane[0])._id; |
|
|
|
|
else |
|
|
|
|
this.swimlaneId = Swimlanes.findOne({boardId: this.boardId})._id; |
|
|
|
|
// List where to insert card
|
|
|
|
|
const list = $(Popup._getTopStack().openerElement).closest('.js-list'); |
|
|
|
|
this.listId = Blaze.getData(list[0])._id; |
|
|
|
|
} |
|
|
|
|
this.term = new ReactiveVar(''); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
boards() { |
|
|
|
|
console.log('booom'); |
|
|
|
|
const boards = Boards.find({ |
|
|
|
|
archived: false, |
|
|
|
|
'members.userId': Meteor.userId(), |
|
|
|
@ -587,6 +594,12 @@ BlazeComponent.extendComponent({ |
|
|
|
|
return board.searchLists(this.term.get()); |
|
|
|
|
} else if (this.isSwimlaneTemplateSearch) { |
|
|
|
|
return board.searchSwimlanes(this.term.get()); |
|
|
|
|
} else if (this.isBoardTemplateSearch) { |
|
|
|
|
const boards = board.searchBoards(this.term.get()); |
|
|
|
|
boards.forEach((board) => { |
|
|
|
|
subManager.subscribe('board', board.linkedId); |
|
|
|
|
}); |
|
|
|
|
return boards; |
|
|
|
|
} else { |
|
|
|
|
return []; |
|
|
|
|
} |
|
|
|
@ -605,11 +618,11 @@ BlazeComponent.extendComponent({ |
|
|
|
|
'click .js-minicard'(evt) { |
|
|
|
|
// 0. Common
|
|
|
|
|
const element = Blaze.getData(evt.currentTarget); |
|
|
|
|
element.boardId = this.boardId; |
|
|
|
|
let _id = ''; |
|
|
|
|
if (!this.isTemplateSearch || this.isCardTemplateSearch) { |
|
|
|
|
// Card insertion
|
|
|
|
|
// 1. Common
|
|
|
|
|
element.boardId = this.boardId; |
|
|
|
|
element.listId = this.listId; |
|
|
|
|
element.swimlaneId = this.swimlaneId; |
|
|
|
|
element.sort = Lists.findOne(this.listId).cards().count(); |
|
|
|
@ -620,7 +633,7 @@ BlazeComponent.extendComponent({ |
|
|
|
|
_id = element.copy(); |
|
|
|
|
// 1.B Linked card
|
|
|
|
|
} else { |
|
|
|
|
element._id = null; |
|
|
|
|
delete element._id; |
|
|
|
|
element.type = 'cardType-linkedCard'; |
|
|
|
|
element.linkedId = element.linkedId || element._id; |
|
|
|
|
_id = Cards.insert(element); |
|
|
|
@ -628,14 +641,22 @@ BlazeComponent.extendComponent({ |
|
|
|
|
Filter.addException(_id); |
|
|
|
|
// List insertion
|
|
|
|
|
} else if (this.isListTemplateSearch) { |
|
|
|
|
element.boardId = this.boardId; |
|
|
|
|
element.sort = Swimlanes.findOne(this.swimlaneId).lists().count(); |
|
|
|
|
element.type = 'list'; |
|
|
|
|
element.swimlaneId = ''; |
|
|
|
|
_id = element.copy(this.swimlaneId); |
|
|
|
|
} else if (this.isSwimlaneTemplateSearch) { |
|
|
|
|
element.boardId = this.boardId; |
|
|
|
|
element.sort = Boards.findOne(this.boardId).swimlanes().count(); |
|
|
|
|
element.type = 'swimlalne'; |
|
|
|
|
_id = element.copy(); |
|
|
|
|
} else if (this.isBoardTemplateSearch) { |
|
|
|
|
board = Boards.findOne(element.linkedId); |
|
|
|
|
board.sort = Boards.find({archived: false}).count(); |
|
|
|
|
board.type = 'board'; |
|
|
|
|
delete board.slug; |
|
|
|
|
delete board.members; |
|
|
|
|
_id = board.copy(); |
|
|
|
|
} |
|
|
|
|
Popup.close(); |
|
|
|
|
}, |
|
|
|
|