|
@@ -1,4 +1,4 @@
|
|
|
-const DateString = Match.Where(function(dateAsString) {
|
|
|
+const DateString = Match.Where(function (dateAsString) {
|
|
|
check(dateAsString, String);
|
|
|
return moment(dateAsString, moment.ISO_8601).isValid();
|
|
|
});
|
|
@@ -285,6 +285,29 @@ export class TrelloCreator {
|
|
|
cardToCreate.members = wekanMembers;
|
|
|
}
|
|
|
}
|
|
|
+ // add vote
|
|
|
+ if (card.idMembersVoted) {
|
|
|
+ // Trello only know's positive votes
|
|
|
+ const positiveVotes = [];
|
|
|
+ card.idMembersVoted.forEach(trelloId => {
|
|
|
+ if (this.members[trelloId]) {
|
|
|
+ const wekanId = this.members[trelloId];
|
|
|
+ // we may map multiple Trello members to the same wekan user
|
|
|
+ // in which case we risk adding the same user multiple times
|
|
|
+ if (!positiveVotes.find(wId => wId === wekanId)) {
|
|
|
+ positiveVotes.push(wekanId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ })
|
|
|
+ if (positiveVotes.length > 0) {
|
|
|
+ cardToCreate.vote = {
|
|
|
+ question: cardToCreate.title,
|
|
|
+ positive: positiveVotes,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// insert card
|
|
|
const cardId = Cards.direct.insert(cardToCreate);
|
|
|
// keep track of Trello id => Wekan id
|
|
@@ -345,7 +368,7 @@ export class TrelloCreator {
|
|
|
// so we make it server only, and let UI catch up once it is done, forget about latency comp.
|
|
|
const self = this;
|
|
|
if (Meteor.isServer) {
|
|
|
- file.attachData(att.url, function(error) {
|
|
|
+ file.attachData(att.url, function (error) {
|
|
|
file.boardId = boardId;
|
|
|
file.cardId = cardId;
|
|
|
file.userId = self._user(att.idMemberCreator);
|