feat: Support multiple file upload on dashboard (#3748)

Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
This commit is contained in:
Nithin David Thomas 2022-01-25 08:16:58 +05:30 committed by GitHub
parent b304f5a826
commit 8cff690640
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 9 deletions

View file

@ -7,14 +7,16 @@ export const buildCreatePayload = ({
isPrivate,
contentAttributes,
echoId,
file,
files,
ccEmails = '',
bccEmails = '',
}) => {
let payload;
if (file) {
if (files && files.length !== 0) {
payload = new FormData();
payload.append('attachments[]', file, file.name);
files.forEach(file => {
payload.append('attachments[]', file, file.name);
});
if (message) {
payload.append('content', message);
}
@ -46,7 +48,7 @@ class MessageApi extends ApiClient {
private: isPrivate,
contentAttributes,
echo_id: echoId,
file,
files,
ccEmails = '',
bccEmails = '',
}) {
@ -58,7 +60,7 @@ class MessageApi extends ApiClient {
isPrivate,
contentAttributes,
echoId,
file,
files,
ccEmails,
bccEmails,
}),

View file

@ -36,7 +36,7 @@ describe('#ConversationAPI', () => {
echoId: 12,
isPrivate: true,
file: new Blob(['test-content'], { type: 'application/pdf' }),
files: [new Blob(['test-content'], { type: 'application/pdf' })],
});
expect(formPayload).toBeInstanceOf(FormData);
expect(formPayload.get('content')).toEqual('test content');

View file

@ -16,6 +16,7 @@
ref="upload"
:size="4096 * 4096"
:accept="allowedFileTypes"
:multiple="enableMultipleFileUpload"
:drop="true"
:drop-directory="false"
@input-file="onFileUpload"
@ -144,6 +145,10 @@ export default {
type: Boolean,
default: true,
},
enableMultipleFileUpload: {
type: Boolean,
default: true,
},
},
computed: {
isNote() {

View file

@ -72,6 +72,7 @@
:is-format-mode="showRichContentEditor"
:enable-rich-editor="isRichEditorEnabled"
:enter-to-send-enabled="enterToSendEnabled"
:enable-multiple-file-upload="enableMultipleFileUpload"
@toggleEnterToSend="toggleEnterToSend"
/>
</div>
@ -283,6 +284,9 @@ export default {
showReplyHead() {
return !this.isOnPrivateNote && this.isAnEmailChannel;
},
enableMultipleFileUpload() {
return this.isAnEmailChannel || this.isAWebWidgetInbox || this.isAPIInbox;
},
},
watch: {
currentChat(conversation) {
@ -469,7 +473,6 @@ export default {
);
},
getMessagePayload(message) {
const [attachment] = this.attachedFiles;
const messagePayload = {
conversationId: this.currentChat.id,
message,
@ -480,8 +483,11 @@ export default {
messagePayload.contentAttributes = { in_reply_to: this.inReplyTo };
}
if (attachment) {
messagePayload.file = attachment.resource.file;
if (this.attachedFiles && this.attachedFiles.length) {
messagePayload.files = [];
this.attachedFiles.forEach(attachment => {
messagePayload.files.push(attachment.resource.file);
});
}
if (this.ccEmails) {