瀏覽代碼

Fix migrated attachment not readable bug
Remove reduandant files

Romulus Urakagi Tsai 5 年之前
父節點
當前提交
4064f3f406

二進制
atachments/attachments-gAjLYeSrtAneFBdzt-提議者電子郵件(第一波+第二波).xlsx


+ 4 - 1
client/components/cards/attachments.js

@@ -50,7 +50,10 @@ Template.attachmentsGalery.helpers({
     return Attachments.link(this, 'original', '/'); 
   },
   isUploaded() {
-    return !!this.meta.uploaded;
+    return !this.meta.uploading;
+  },
+  isImage() {
+    return !!this.isImage;
   },
 });
 

+ 3 - 1
client/lib/utils.js

@@ -70,7 +70,9 @@ Utils = {
       streams: 'dynamic',
       chunkSize: 'dynamic',
     };
-    settings.meta = {};
+    settings.meta = {
+      uploading: true
+    };
     if (card.isLinkedCard()) {
       settings.meta.boardId = Cards.findOne(card.linkedId).boardId;
       settings.meta.cardId = card.linkedId;

+ 13 - 3
models/attachments.js

@@ -6,7 +6,7 @@ const collectionName = 'attachments2';
 Attachments = new FilesCollection({
   storagePath: storagePath(),
   debug: false, 
-  allowClientCode: true,
+//  allowClientCode: true,
   collectionName: 'attachments2',
   onAfterUpload: onAttachmentUploaded,
   onBeforeRemove: onAttachmentRemoving
@@ -18,7 +18,17 @@ if (Meteor.isServer) {
   });
 
   // TODO: Permission related
-  // TODO: Add Activity update
+  Attachments.allow({
+    insert() {
+      return false;
+    },
+    update() {
+      return true;
+    },
+    remove() {
+      return true;
+    }
+  });
 
   Meteor.methods({
     cloneAttachment(file, overrides) {
@@ -63,7 +73,7 @@ function storagePath(defaultPath) {
 }
 
 function onAttachmentUploaded(fileRef) {
-  Attachments.update({_id:fileRef._id}, {$set: {"meta.uploaded": true}});
+  Attachments.update({_id:fileRef._id}, {$set: {"meta.uploading": false}});
   if (!fileRef.meta.source || fileRef.meta.source !== 'import') {
     // Add activity about adding the attachment
     Activities.insert({

+ 23 - 21
server/migrations.js

@@ -80,7 +80,7 @@ Migrations.add('lowercase-board-permission', () => {
 Migrations.add('change-attachments-type-for-non-images', () => {
   const newTypeForNonImage = 'application/octet-stream';
   Attachments.find().forEach(file => {
-    if (!file.isImage()) {
+    if (!file.isImage) {
       Attachments.update(
         file._id,
         {
@@ -1058,27 +1058,29 @@ Migrations.add('change-attachment-library', () => {
 		const path = `${store}/${file.name()}`;
 		const fd = fs.createWriteStream(path);
 		reader.pipe(fd);
-    let opts = {
-    	fileName: file.name(),
-			type: file.type(),
-      size: file.size(),
-      fileId: file._id,
-			meta: {
-				userId: file.userId,
-				boardId: file.boardId,
-				cardId: file.cardId
-			}
-    };
-		if (file.listId) {
-			opts.meta.listId = file.listId;
-		}
-		if (file.swimlaneId) {
-			opts.meta.swimlaneId = file.swimlaneId;
-		}
-		Attachments.addFile(path, opts, (err, fileRef) => {
-      if (err) {
-        console.log('error when migrating ', fileRef.name, err);
+    reader.on('end', () => {
+      let opts = {
+        fileName: file.name(),
+        type: file.type(),
+        size: file.size(),
+        fileId: file._id,
+        meta: {
+          userId: file.userId,
+          boardId: file.boardId,
+          cardId: file.cardId
+        }
+      };
+      if (file.listId) {
+        opts.meta.listId = file.listId;
       }
+      if (file.swimlaneId) {
+        opts.meta.swimlaneId = file.swimlaneId;
+      }
+      Attachments.addFile(path, opts, (err, fileRef) => {
+        if (err) {
+          console.log('error when migrating', file.name(), err);
+        }
+      });
     });
 	});
 });