From 7109d944fdf6519c51e7c7c5cf11364be7a38c94 Mon Sep 17 00:00:00 2001 From: Wahyu Ramadhan Date: Thu, 9 Feb 2023 16:35:38 +0700 Subject: [PATCH] Download document gantt --- edit-mode/function/ganttActivityUploadDoc.js | 40 ++++++++++++++------ view-mode/function/ganttActivityUploadDoc.js | 40 ++++++++++++++------ 2 files changed, 58 insertions(+), 22 deletions(-) diff --git a/edit-mode/function/ganttActivityUploadDoc.js b/edit-mode/function/ganttActivityUploadDoc.js index 96f70db..a8fa46e 100644 --- a/edit-mode/function/ganttActivityUploadDoc.js +++ b/edit-mode/function/ganttActivityUploadDoc.js @@ -186,7 +186,7 @@ function searchDocuments(activity_id) { columns: [ { data: null, title: "Action", "mRender": function(data, type, row){ - var optContent = ''; + var optContent = ''; optContent += ''; return optContent; } @@ -207,17 +207,35 @@ function searchDocuments(activity_id) { }); } -async function downloadDocument(id) { - console.log('download document', id); - var urlDownload = DOCUMENT_DOWNLOAD_URL(id); - const result = await axiosInstance - .get(DOCUMENT_DOWNLOAD_URL(id)) - .then(res => res) - .catch((error) => error.response); - console.log('downloadDocument', result); - if (result && result.data.code === 200) { +async function downloadDocument(id, name) { + let result; + await fetch(DOCUMENT_DOWNLOAD_URL(id), { + headers: new Headers({ + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }) + }) + .then(response => { + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + result = response; + return response.blob(); + }) + .then(blob => { + let url = window.URL.createObjectURL(blob); + let a = document.createElement('a'); + a.href = url; + a.download = name; + a.click(); + }) + .catch(error => { + console.error(`Error: ${error.message}`); + alert('File not found'); + }); + + if (result && result.status == 200) { $("body").removeClass("loading"); - window.open(urlDownload); } else { $("body").removeClass("loading"); diff --git a/view-mode/function/ganttActivityUploadDoc.js b/view-mode/function/ganttActivityUploadDoc.js index 96f70db..a8fa46e 100644 --- a/view-mode/function/ganttActivityUploadDoc.js +++ b/view-mode/function/ganttActivityUploadDoc.js @@ -186,7 +186,7 @@ function searchDocuments(activity_id) { columns: [ { data: null, title: "Action", "mRender": function(data, type, row){ - var optContent = ''; + var optContent = ''; optContent += ''; return optContent; } @@ -207,17 +207,35 @@ function searchDocuments(activity_id) { }); } -async function downloadDocument(id) { - console.log('download document', id); - var urlDownload = DOCUMENT_DOWNLOAD_URL(id); - const result = await axiosInstance - .get(DOCUMENT_DOWNLOAD_URL(id)) - .then(res => res) - .catch((error) => error.response); - console.log('downloadDocument', result); - if (result && result.data.code === 200) { +async function downloadDocument(id, name) { + let result; + await fetch(DOCUMENT_DOWNLOAD_URL(id), { + headers: new Headers({ + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }) + }) + .then(response => { + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + result = response; + return response.blob(); + }) + .then(blob => { + let url = window.URL.createObjectURL(blob); + let a = document.createElement('a'); + a.href = url; + a.download = name; + a.click(); + }) + .catch(error => { + console.error(`Error: ${error.message}`); + alert('File not found'); + }); + + if (result && result.status == 200) { $("body").removeClass("loading"); - window.open(urlDownload); } else { $("body").removeClass("loading");