summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2020-01-23 16:10:27 +0200
committerLauri Ojansivu <x@xet7.org>2020-01-23 16:10:27 +0200
commitd8c09369ebb08401678d0647b132b9fa6f2bc548 (patch)
tree81b63e0b2acd2f58183434ae6543c0c3a03b7579
parentc610ba0976e202464593563ca225eef02ac10a46 (diff)
parent6ef532d18740acd1e9427e79b6c74d3ca6d5ea11 (diff)
downloadwekan-d8c09369ebb08401678d0647b132b9fa6f2bc548.tar.gz
wekan-d8c09369ebb08401678d0647b132b9fa6f2bc548.tar.bz2
wekan-d8c09369ebb08401678d0647b132b9fa6f2bc548.zip
Merge branch 'izadpoor-hotfix-export-board'
-rw-r--r--models/export.js18
1 files changed, 12 insertions, 6 deletions
diff --git a/models/export.js b/models/export.js
index cd72a6a4..339123c8 100644
--- a/models/export.js
+++ b/models/export.js
@@ -24,7 +24,6 @@ if (Meteor.isServer) {
JsonRoutes.add('get', '/api/boards/:boardId/export', function(req, res) {
const boardId = req.params.boardId;
let user = null;
-
const loginToken = req.query.authToken;
if (loginToken) {
const hashToken = Accounts._hashLoginToken(loginToken);
@@ -35,7 +34,6 @@ if (Meteor.isServer) {
Authentication.checkUserId(req.userId);
user = Users.findOne({ _id: req.userId, isAdmin: true });
}
-
const exporter = new Exporter(boardId);
if (exporter.canExport(user)) {
JsonRoutes.sendResult(res, {
@@ -137,8 +135,11 @@ export class Exporter {
// [Old] for attachments we only export IDs and absolute url to original doc
// [New] Encode attachment to base64
+
const getBase64Data = function(doc, callback) {
- let buffer = Buffer.from(0);
+ let buffer = Buffer.allocUnsafe(0);
+ buffer.fill(0);
+
// callback has the form function (err, res) {}
const tmpFile = path.join(
os.tmpdir(),
@@ -149,14 +150,16 @@ export class Exporter {
readStream.on('data', function(chunk) {
buffer = Buffer.concat([buffer, chunk]);
});
+
readStream.on('error', function(err) {
- callback(err, null);
+ callback(null, null);
});
readStream.on('end', function() {
// done
fs.unlink(tmpFile, () => {
//ignored
});
+
callback(null, buffer.toString('base64'));
});
readStream.pipe(tmpWriteable);
@@ -165,11 +168,14 @@ export class Exporter {
result.attachments = Attachments.find(byBoard)
.fetch()
.map(attachment => {
+ let filebase64 = null;
+ filebase64 = getBase64DataSync(attachment);
+
return {
_id: attachment._id,
cardId: attachment.cardId,
- // url: FlowRouter.url(attachment.url()),
- file: getBase64DataSync(attachment),
+ //url: FlowRouter.url(attachment.url()),
+ file: filebase64,
name: attachment.original.name,
type: attachment.original.type,
};