1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-18 20:59:44 +02:00

Add dropzone for attachment, paste attachment from clipboard

This commit is contained in:
Maksim Eltyshev 2020-04-28 19:46:55 +05:00
parent 693602698b
commit d264382fda
24 changed files with 576 additions and 253 deletions

View file

@ -60,7 +60,7 @@ module.exports = {
dirname: file.extra.dirname,
filename: file.filename,
isImage: file.extra.isImage,
name: file.filename,
name: file.extra.name,
},
inputs.requestId,
this.req,

View file

@ -3,6 +3,7 @@ const path = require('path');
const util = require('util');
const stream = require('stream');
const streamToArray = require('stream-to-array');
const filenamify = require('filenamify');
const { v4: uuid } = require('uuid');
const sharp = require('sharp');
@ -33,10 +34,13 @@ module.exports = {
try {
const dirname = uuid();
// FIXME: https://github.com/sindresorhus/filenamify/issues/13
const filename = filenamify(file.filename);
const rootPath = path.join(sails.config.custom.attachmentsPath, dirname);
fs.mkdirSync(rootPath);
await writeFile(path.join(rootPath, file.filename), buffer);
await writeFile(path.join(rootPath, filename), buffer);
const image = sharp(buffer);
let imageMetadata;
@ -68,8 +72,12 @@ module.exports = {
file.extra = {
dirname,
isImage: !!imageMetadata,
name: file.filename,
};
// eslint-disable-next-line no-param-reassign
file.filename = filename;
return done();
} catch (error) {
return done(error);

View file

@ -2386,6 +2386,21 @@
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
},
"filename-reserved-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
"integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik="
},
"filenamify": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.1.0.tgz",
"integrity": "sha512-KQV/uJDI9VQgN7sHH1Zbk6+42cD6mnQ2HONzkXUfPJ+K2FC8GZ1dpewbbHw0Sz8Tf5k3EVdHVayM4DoAwWlmtg==",
"requires": {
"filename-reserved-regex": "^2.0.0",
"strip-outer": "^1.0.1",
"trim-repeated": "^1.0.0"
}
},
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@ -6450,6 +6465,14 @@
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
},
"strip-outer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
"integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
"requires": {
"escape-string-regexp": "^1.0.2"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@ -6674,6 +6697,14 @@
}
}
},
"trim-repeated": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
"integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
"requires": {
"escape-string-regexp": "^1.0.2"
}
},
"tslib": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",

View file

@ -42,6 +42,7 @@
"bcrypt": "^4.0.1",
"dotenv": "^8.2.0",
"dotenv-cli": "^3.1.0",
"filenamify": "^4.1.0",
"jsonwebtoken": "^8.5.1",
"knex": "^0.20.13",
"lodash": "^4.17.15",