summaryrefslogtreecommitdiffstats
path: root/models/wekanCreator.js
diff options
context:
space:
mode:
authorGhassen Rjab <rjab.ghassen@gmail.com>2017-07-15 22:10:46 +0100
committerGhassen Rjab <rjab.ghassen@gmail.com>2017-07-15 22:10:46 +0100
commit81e0d4e38203ec683aeac96e8fe7cb040170575b (patch)
tree71789a575a5c60f95b9ba9b8a7eba96fdec757c4 /models/wekanCreator.js
parent52619ef622a4257001516cb63acd66af02832ff4 (diff)
downloadwekan-81e0d4e38203ec683aeac96e8fe7cb040170575b.tar.gz
wekan-81e0d4e38203ec683aeac96e8fe7cb040170575b.tar.bz2
wekan-81e0d4e38203ec683aeac96e8fe7cb040170575b.zip
Export and import attachents as base64 encoded files
Diffstat (limited to 'models/wekanCreator.js')
-rw-r--r--models/wekanCreator.js49
1 files changed, 34 insertions, 15 deletions
diff --git a/models/wekanCreator.js b/models/wekanCreator.js
index b91b875a..ae2097cc 100644
--- a/models/wekanCreator.js
+++ b/models/wekanCreator.js
@@ -303,21 +303,40 @@ export class WekanCreator {
// - the template then tries to display the url to the attachment which causes other errors
// so we make it server only, and let UI catch up once it is done, forget about latency comp.
if(Meteor.isServer) {
- file.attachData(att.url, function (error) {
- file.boardId = boardId;
- file.cardId = cardId;
- if (error) {
- throw(error);
- } else {
- const wekanAtt = Attachments.insert(file, () => {
- // we do nothing
- });
- //
- if(wekanCoverId === att._id) {
- Cards.direct.update(cardId, { $set: {coverId: wekanAtt._id}});
+ if (att.url) {
+ file.attachData(att.url, function (error) {
+ file.boardId = boardId;
+ file.cardId = cardId;
+ if (error) {
+ throw(error);
+ } else {
+ const wekanAtt = Attachments.insert(file, () => {
+ // we do nothing
+ });
+ //
+ if(wekanCoverId === att._id) {
+ Cards.direct.update(cardId, { $set: {coverId: wekanAtt._id}});
+ }
}
- }
- });
+ });
+ } else if (att.file) {
+ file.attachData(new Buffer(att.file, 'base64'), {type: att.type}, (error) => {
+ file.name(att.name);
+ file.boardId = boardId;
+ file.cardId = cardId;
+ if (error) {
+ throw(error);
+ } else {
+ const wekanAtt = Attachments.insert(file, () => {
+ // we do nothing
+ });
+ //
+ if(wekanCoverId === att._id) {
+ Cards.direct.update(cardId, { $set: {coverId: wekanAtt._id}});
+ }
+ }
+ });
+ }
}
// todo XXX set cover - if need be
});
@@ -406,7 +425,7 @@ export class WekanCreator {
const wekanAttachment = wekanBoard.attachments.filter((attachment) => {
return attachment._id === activity.attachmentId;
})[0];
- if(wekanAttachment.url) {
+ if(wekanAttachment.url || wekanAttachment.file) {
// we cannot actually create the Wekan attachment, because we don't yet
// have the cards to attach it to, so we store it in the instance variable.
const wekanCardId = activity.cardId;