From abb57964b953b9d92f4c2a75d2e28c28701fe2bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E9=A1=BA=E5=BC=BA?= Date: Wed, 11 Nov 2020 11:06:26 +0800 Subject: [PATCH] Optimize file uploader (#4716) * optimize file uploader * optimize file uploader * update resumablejs version --- frontend/package-lock.json | 6 ++--- frontend/package.json | 2 +- .../components/file-uploader/file-uploader.js | 24 ++++++++++++------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index cf01488777..54663faa42 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -148,9 +148,9 @@ } }, "@seafile/resumablejs": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@seafile/resumablejs/-/resumablejs-1.1.15.tgz", - "integrity": "sha512-DJPhjBRLENONdDNaaKRckWWtwXvoqfJcRdSk01FbjmZ3DWpbIwebd/vfuB4qJwm0R2j2qzdEVhgxe6wDYS/n9A==" + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@seafile/resumablejs/-/resumablejs-1.1.16.tgz", + "integrity": "sha512-8rBbmAEuuwOAGHYGCtEzpx+bxAcGS+V30otMmhRe7bPAdh4E57RWgCa8x7pkzHGFlY1t5d+ILz1gojvPVMYQig==" }, "@seafile/seafile-calendar": { "version": "0.0.12", diff --git a/frontend/package.json b/frontend/package.json index 205a890545..7ec22d1188 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,7 +5,7 @@ "dependencies": { "@reach/router": "^1.2.0", "@seafile/react-image-lightbox": "0.0.1", - "@seafile/resumablejs": "^1.1.15", + "@seafile/resumablejs": "1.1.16", "@seafile/seafile-calendar": "0.0.12", "@seafile/seafile-editor": "^0.2.84", "MD5": "^1.3.0", diff --git a/frontend/src/components/file-uploader/file-uploader.js b/frontend/src/components/file-uploader/file-uploader.js index a65afbf8c2..ee1f66c5ac 100644 --- a/frontend/src/components/file-uploader/file-uploader.js +++ b/frontend/src/components/file-uploader/file-uploader.js @@ -388,6 +388,18 @@ class FileUploader extends React.Component { this.setState({uploadFileList: uploadFileList}); } + getFileServerErrorMessage = (key) => { + const errorMessage = { + 'File locked by others.': gettext('File locked by others.'), // 403 + 'Invalid filename.': gettext('Invalid filename.'), // 440 + 'File already exists.': gettext('File already exists.'), // 441 + 'File size is too large.': gettext('File size is too large.'), // 442 + 'Out of quota.': gettext('Out of quota.'), // 443 + 'Internal error.': gettext('Internal Server Error'), // 500 + } + return errorMessage[key] || key; + } + onFileError = (resumableFile, message) => { let error = ''; if (!message) { @@ -396,13 +408,7 @@ class FileUploader extends React.Component { // eg: '{"error": "Internal error" \n }' let errorMessage = message.replace(/\n/g, ''); errorMessage = JSON.parse(errorMessage); - error = errorMessage.error; - if (error === 'File locked by others.') { - error = gettext('File is locked by others.'); - } - if (error === 'Internal error.') { - error = gettext('Internal Server Error'); - } + error = this.getFileServerErrorMessage(errorMessage.error); } let uploadFileList = this.state.uploadFileList.map(item => { @@ -489,12 +495,12 @@ class FileUploader extends React.Component { onFileUpload = () => { this.uploadInput.current.removeAttribute('webkitdirectory'); - this.uploadInput.current.click(); + this.uploadInput.current.click(); } onFolderUpload = () => { this.uploadInput.current.setAttribute('webkitdirectory', 'webkitdirectory'); - this.uploadInput.current.click(); + this.uploadInput.current.click(); } onDragStart = () => {