diff --git a/.gitignore b/.gitignore index c64fb5c1b..d5cd22cf2 100644 --- a/.gitignore +++ b/.gitignore @@ -94,3 +94,13 @@ yarn-debug.log* .vscode .claude/settings.local.json .cursor + +bin/ +local/ +cache/ +gems/ +specifications/ +extensions/ +build_info/ +bin +.pnpm-store/ diff --git a/app/javascript/dashboard/api/captain/document.js b/app/javascript/dashboard/api/captain/document.js index dc22b0c32..a4ec6b23e 100644 --- a/app/javascript/dashboard/api/captain/document.js +++ b/app/javascript/dashboard/api/captain/document.js @@ -15,6 +15,14 @@ class CaptainDocument extends ApiClient { }, }); } + + uploadPdf(formData) { + return axios.post(`${this.url}/upload_pdf`, formData, { + headers: { + 'Content-Type': 'multipart/form-data', + }, + }); + } } export default new CaptainDocument(); diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue b/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue index 7db74f523..e48631b38 100644 --- a/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue +++ b/app/javascript/dashboard/components-next/captain/pageComponents/document/CreateDocumentDialog.vue @@ -18,12 +18,29 @@ const i18nKey = 'CAPTAIN.DOCUMENTS.CREATE'; const handleSubmit = async newDocument => { try { - await store.dispatch('captainDocuments/create', newDocument); - useAlert(t(`${i18nKey}.SUCCESS_MESSAGE`)); + if (newDocument.type === 'pdf') { + // Handle PDF upload + const formData = new FormData(); + formData.append('pdf_document', newDocument.pdf_document); + formData.append('assistant_id', newDocument.assistant_id); + + await store.dispatch('captainDocuments/uploadPdf', formData); + useAlert('PDF uploaded successfully! Processing will begin shortly.'); + } else { + // Handle URL creation + await store.dispatch('captainDocuments/create', { + document: { + external_link: newDocument.external_link, + assistant_id: newDocument.assistant_id, + }, + }); + useAlert('Document created successfully!'); + } dialogRef.value.close(); } catch (error) { const errorMessage = - error?.response?.message || t(`${i18nKey}.ERROR_MESSAGE`); + error?.response?.data?.message || + 'Failed to create document. Please try again.'; useAlert(errorMessage); } }; @@ -42,8 +59,8 @@ defineExpose({ dialogRef });