summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/activities/comments.js11
-rw-r--r--client/components/cards/attachments.js9
-rw-r--r--models/cards.js22
-rw-r--r--server/publications/boards.js14
4 files changed, 46 insertions, 10 deletions
diff --git a/client/components/activities/comments.js b/client/components/activities/comments.js
index 9b6aedd6..137b6872 100644
--- a/client/components/activities/comments.js
+++ b/client/components/activities/comments.js
@@ -21,11 +21,18 @@ BlazeComponent.extendComponent({
'submit .js-new-comment-form'(evt) {
const input = this.getInput();
const text = input.val().trim();
+ const card = this.currentData();
+ let boardId = card.boardId;
+ let cardId = card._id;
+ if (card.isImportedCard()) {
+ boardId = Cards.findOne(card.importedId).boardId;
+ cardId = card.importedId;
+ }
if (text) {
CardComments.insert({
text,
- boardId: this.currentData().boardId,
- cardId: this.currentData()._id,
+ boardId,
+ cardId,
});
resetCommentInput(input);
Tracker.flush();
diff --git a/client/components/cards/attachments.js b/client/components/cards/attachments.js
index bc7d3979..1a4d5bb6 100644
--- a/client/components/cards/attachments.js
+++ b/client/components/cards/attachments.js
@@ -57,8 +57,13 @@ Template.cardAttachmentsPopup.events({
const card = this;
FS.Utility.eachFile(evt, (f) => {
const file = new FS.File(f);
- file.boardId = card.boardId;
- file.cardId = card._id;
+ if (card.isImportedCard()) {
+ file.boardId = Cards.findOne(card.importedId).boardId;
+ file.cardId = card.importedId;
+ } else {
+ file.boardId = card.boardId;
+ file.cardId = card._id;
+ }
file.userId = Meteor.userId();
const attachment = Attachments.insert(file);
diff --git a/models/cards.js b/models/cards.js
index 9a715ca3..b295a4fe 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -181,19 +181,33 @@ Cards.helpers({
},
isAssigned(memberId) {
- return _.contains(this.members, memberId);
+ return _.contains(this.getMembers(), memberId);
},
activities() {
- return Activities.find({cardId: this._id}, {sort: {createdAt: -1}});
+ if (this.isImportedCard()) {
+ return Activities.find({cardId: this.importedId}, {sort: {createdAt: -1}});
+ } else if (this.isImportedBoard()) {
+ return Activities.find({boardId: this.importedId}, {sort: {createdAt: -1}});
+ } else {
+ return Activities.find({cardId: this._id}, {sort: {createdAt: -1}});
+ }
},
comments() {
- return CardComments.find({cardId: this._id}, {sort: {createdAt: -1}});
+ if (this.isImportedCard()) {
+ return CardComments.find({cardId: this.importedId}, {sort: {createdAt: -1}});
+ } else {
+ return CardComments.find({cardId: this._id}, {sort: {createdAt: -1}});
+ }
},
attachments() {
- return Attachments.find({cardId: this._id}, {sort: {uploadedAt: -1}});
+ if (this.isImportedCard()) {
+ return Attachments.find({cardId: this.importedId}, {sort: {uploadedAt: -1}});
+ } else {
+ return Attachments.find({cardId: this._id}, {sort: {uploadedAt: -1}});
+ }
},
cover() {
diff --git a/server/publications/boards.js b/server/publications/boards.js
index bf75196a..1d95c3d9 100644
--- a/server/publications/boards.js
+++ b/server/publications/boards.js
@@ -99,8 +99,18 @@ Meteor.publishRelations('board', function(boardId) {
// And in the meantime our code below works pretty well -- it's not even a
// hack!
this.cursor(Cards.find({ boardId }), function(cardId, card) {
- this.cursor(Cards.find({_id: card.importedId}));
- this.cursor(Boards.find({_id: card.importedId}));
+ if (card.type === 'cardType-importedCard') {
+ const impCardId = card.importedId;
+ this.cursor(Cards.find({ _id: impCardId }));
+ this.cursor(CardComments.find({ cardId: impCardId }));
+ this.cursor(Activities.find({ cardId: impCardId }));
+ this.cursor(Attachments.find({ cardId: impCardId }));
+ this.cursor(Checklists.find({ cardId: impCardId }));
+ this.cursor(ChecklistItems.find({ cardId: impCardId }));
+ } else if (card.type === 'cardType-importedBoard') {
+ this.cursor(Boards.find({ _id: card.importedId}));
+ }
+ this.cursor(Activities.find({ cardId }));
this.cursor(CardComments.find({ cardId }));
this.cursor(Attachments.find({ cardId }));
this.cursor(Checklists.find({ cardId }));