summaryrefslogtreecommitdiffstats
path: root/models/attachments.js
diff options
context:
space:
mode:
authorRomulus Urakagi Tsai <urakagi@gmail.com>2020-05-14 14:55:54 +0800
committerRomulus Urakagi Tsai <urakagi@gmail.com>2020-05-14 14:55:54 +0800
commit4c5a2fbd1f8ad2f2447235442bf96b893f18a409 (patch)
treeb25338d6f8aed0bf523d31ab0e676ce474271998 /models/attachments.js
parent012ca39a8dc29517aef191e85325f3e5889daf37 (diff)
downloadwekan-4c5a2fbd1f8ad2f2447235442bf96b893f18a409.tar.gz
wekan-4c5a2fbd1f8ad2f2447235442bf96b893f18a409.tar.bz2
wekan-4c5a2fbd1f8ad2f2447235442bf96b893f18a409.zip
Card clone OK
Diffstat (limited to 'models/attachments.js')
-rw-r--r--models/attachments.js35
1 files changed, 33 insertions, 2 deletions
diff --git a/models/attachments.js b/models/attachments.js
index d469f702..1a55cb85 100644
--- a/models/attachments.js
+++ b/models/attachments.js
@@ -1,4 +1,5 @@
import { FilesCollection } from 'meteor/ostrio:files';
+const fs = require('fs');
const collectionName = 'attachments2';
@@ -19,6 +20,36 @@ if (Meteor.isServer) {
// TODO: Permission related
// TODO: Add Activity update
+ Meteor.methods({
+ cloneAttachment(file, overrides) {
+ check(file, Object);
+ check(overrides, Match.Maybe(Object));
+ const path = file.path;
+ const opts = {
+ fileName: file.name,
+ type: file.type,
+ meta: file.meta,
+ userId: file.userId
+ };
+ for (let key in overrides) {
+ if (key === 'meta') {
+ for (let metaKey in overrides.meta) {
+ opts.meta[metaKey] = overrides.meta[metaKey];
+ }
+ } else {
+ opts[key] = overrides[key];
+ }
+ }
+ const buffer = fs.readFileSync(path);
+ Attachments.write(buffer, opts, (err, fileRef) => {
+ if (err) {
+ console.log('Error when cloning record', err);
+ }
+ });
+ return true;
+ }
+ });
+
Meteor.publish(collectionName, function() {
return Attachments.find().cursor;
});
@@ -51,13 +82,13 @@ function onAttachmentUploaded(fileRef) {
} else {
// Don't add activity about adding the attachment as the activity
// be imported and delete source field
- CFSAttachments.update(
+ Attachments.collection.update(
{
_id: fileRef._id,
},
{
$unset: {
- source: '',
+ 'meta.source': '',
},
},
);