diff --git a/frontend/src/pages/user/requests/Home.vue b/frontend/src/pages/user/requests/Home.vue
index a1d730f..ce1104c 100644
--- a/frontend/src/pages/user/requests/Home.vue
+++ b/frontend/src/pages/user/requests/Home.vue
@@ -49,7 +49,8 @@
-
+
+
@@ -147,6 +148,28 @@ export default {
this.mnx_backendErrorHandler(error)
}
)
+ },
+ downloadAttachedFile(request_id, document_id) {
+ WorksapceApi.fetchAttachedFileAsDownload(request_id, document_id).then(response => {
+ // create file link in browser's memory
+ const href = URL.createObjectURL(response.data);
+
+ // create "a" HTML element with href to file & click
+ const link = document.createElement('a');
+ link.href = href;
+ link.setAttribute('download', 'file.pdf'); //or any other extension
+ document.body.appendChild(link);
+ link.click();
+
+ // clean up "a" element & remove ObjectURL
+ document.body.removeChild(link);
+ URL.revokeObjectURL(href); //TODO: navigate to the preview page
+ }).catch((error) => {
+ this.mnx_backendErrorHandler(error)
+ }
+ )
+
+
}
}
}
diff --git a/frontend/src/utils/backend/workspace.js b/frontend/src/utils/backend/workspace.js
index 29af71e..69b3770 100644
--- a/frontend/src/utils/backend/workspace.js
+++ b/frontend/src/utils/backend/workspace.js
@@ -311,12 +311,15 @@ class WorksapceApi {
formData.append('request_id', request_id)
formData.append('file', file)
- const request = backendAxios.post('/api/workspace/request/attach-file-for-request', formData, {
- headers: {
- 'Content-Type': 'multipart/form-data',
- Authorization: `Bearer ${jwt}`
- }
- })
+ const request = backendAxios.post(
+ '/api/workspace/request/attach-file-for-request',
+ formData,
+ {
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ Authorization: `Bearer ${jwt}`
+ }
+ })
return request
}
static fetchAttachedFileAsMediaData(request_id, document_id) {
@@ -334,6 +337,22 @@ class WorksapceApi {
return request
}
+ static fetchAttachedFileAsDownload(request_id, document_id) {
+ let jwt = userUtils.getJwtToken()
+ const request = backendAxios.get(
+ '/api/workspace/request/fetch-attached-file-as-download',
+ {
+ params: {
+ request_id: request_id,
+ document_id: document_id,
+ },
+ responseType: 'blob',
+ headers: { Authorization: `Bearer ${jwt}` }
+ }
+ )
+ return request
+
+ }
}
export { WorksapceApi }