From 7d57ce896baeac74498e8b76b5812ceb6df8b950 Mon Sep 17 00:00:00 2001 From: Xavier Priour Date: Wed, 14 Oct 2015 19:54:40 +0200 Subject: Import single card: create an 'importCard' activity entry --- client/components/activities/activities.jade | 5 +++++ client/components/activities/activities.js | 7 +++++++ i18n/en.i18n.json | 1 + models/import.js | 30 ++++++++++++++++++++-------- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade index 85b1276e..c611ad75 100644 --- a/client/components/activities/activities.jade +++ b/client/components/activities/activities.jade @@ -26,6 +26,9 @@ template(name="boardActivities") if($eq activityType 'createCard') | {{{_ 'activity-added' cardLink boardLabel}}}. + if($eq activityType 'importCard') + | {{{_ 'activity-imported' cardLink boardLabel sourceLink}}}. + if($eq activityType 'archivedCard') | {{{_ 'activity-archived' cardLink}}}. @@ -72,6 +75,8 @@ template(name="cardActivities") +memberName(user=user) if($eq activityType 'createCard') | {{_ 'activity-added' cardLabel list.title}}. + if($eq activityType 'importCard') + | {{{_ 'activity-imported' cardLabel list.title sourceLink}}}. if($eq activityType 'joinMember') if($eq currentUser._id member._id) | {{_ 'activity-joined' cardLabel}}. diff --git a/client/components/activities/activities.js b/client/components/activities/activities.js index 9a1435ef..b80493f7 100644 --- a/client/components/activities/activities.js +++ b/client/components/activities/activities.js @@ -60,6 +60,13 @@ BlazeComponent.extendComponent({ }, card.title)); }, + sourceLink() { + const source = this.currentData().source; + return source && Blaze.toHTML(HTML.A({ + href: source.url, + }, source.system)); + }, + memberLink() { return Blaze.toHTMLWithData(Template.memberName, { user: this.currentData().member(), diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 331d8415..40e21e53 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -7,6 +7,7 @@ "activity-attached": "attached %s to %s", "activity-created": "created %s", "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", "activity-joined": "joined %s", "activity-moved": "moved %s from %s to %s", "activity-on": "on %s", diff --git a/models/import.js b/models/import.js index a4172c0d..a76bbc5f 100644 --- a/models/import.js +++ b/models/import.js @@ -41,16 +41,17 @@ Meteor.methods({ // 3. map all fields for the card to create const dateOfImport = new Date(); const cardToCreate = { - title: trelloCard.name, - description: trelloCard.desc, - listId: list._id, - boardId: list.boardId, - userId: Meteor.userId(), - sort: sortIndex, archived: trelloCard.closed, + boardId: list.boardId, // this is a default date, we'll fetch the actual one from the actions array createdAt: dateOfImport, dateLastActivity: dateOfImport, + description: trelloCard.desc, + listId: list._id, + sort: sortIndex, + title: trelloCard.name, + // XXX use the original user? + userId: Meteor.userId(), }; // 4. find actual creation date @@ -84,7 +85,20 @@ Meteor.methods({ // 6. insert new card into list const cardId = Cards.direct.insert(cardToCreate); - // XXX then add import activity + Activities.direct.insert({ + activityType: 'importCard', + boardId: cardToCreate.boardId, + cardId: cardId, + createdAt: dateOfImport, + listId: cardToCreate.listId, + source: { + id: trelloCard.id, + system: 'Trello', + url: trelloCard.url, + }, + // we attribute the import to current user, not the one from the original card + userId: Meteor.userId(), + }); // 7. parse actions and add comments trelloCard.actions.forEach((currentAction) => { @@ -94,6 +108,7 @@ Meteor.methods({ cardId: cardId, createdAt: currentAction.date, text: currentAction.data.text, + // XXX use the original comment user instead userId: Meteor.userId(), }; const commentId = CardComments.direct.insert(commentToCreate); @@ -106,7 +121,6 @@ Meteor.methods({ userId: commentToCreate.userId, }); } - // XXX add other type of activities? }); return cardId; }, -- cgit v1.2.3-1-g7c22