summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Priour <xavier.priour@bubblyware.com>2015-10-14 19:54:40 +0200
committerMaxime Quandalle <maxime@quandalle.com>2015-10-14 23:23:16 +0200
commit7d57ce896baeac74498e8b76b5812ceb6df8b950 (patch)
treeb9ee501ebd7ea83dfe9ca98e7c4b5f34e0d1e16b
parent4b99ce2aa2ed94d54f677f94e410d2888aa3491f (diff)
downloadwekan-7d57ce896baeac74498e8b76b5812ceb6df8b950.tar.gz
wekan-7d57ce896baeac74498e8b76b5812ceb6df8b950.tar.bz2
wekan-7d57ce896baeac74498e8b76b5812ceb6df8b950.zip
Import single card: create an 'importCard' activity entry
-rw-r--r--client/components/activities/activities.jade5
-rw-r--r--client/components/activities/activities.js7
-rw-r--r--i18n/en.i18n.json1
-rw-r--r--models/import.js30
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;
},