diff --git a/src/views/SimproV2/CreatedProyek/DialogDocument.js b/src/views/SimproV2/CreatedProyek/DialogDocument.js index dac19ae..6a70a96 100644 --- a/src/views/SimproV2/CreatedProyek/DialogDocument.js +++ b/src/views/SimproV2/CreatedProyek/DialogDocument.js @@ -81,7 +81,7 @@ const DialogDocument = ({ openDialog, closeDialog, toggleDialog, idTask, proyekN setAlertDeleteFolder(true) } - const handleDownload = (id) => { + const handleDownload = (id, file) => { fetch(DOCUMENT_DOWNLOAD(id), { headers: new Headers({ 'Content-Type': 'application/json', @@ -90,11 +90,12 @@ const DialogDocument = ({ openDialog, closeDialog, toggleDialog, idTask, proyekN }) .then(response => { response.blob().then(blob => { - let url = window.URL.createObjectURL(blob); + const url = window.URL.createObjectURL(new Blob([blob])); let a = document.createElement('a'); a.href = url; - a.download = 'Project Documents'; + a.download = file; a.click(); + a.remove(); }); //window.location.href = response.url; }); @@ -156,7 +157,7 @@ const DialogDocument = ({ openDialog, closeDialog, toggleDialog, idTask, proyekN }{" "} {!record.isDir && - + }{" "} {record.isDir && @@ -337,4 +338,4 @@ const DialogDocument = ({ openDialog, closeDialog, toggleDialog, idTask, proyekN } -export default DialogDocument; \ No newline at end of file +export default DialogDocument; diff --git a/src/views/SimproV2/CreatedProyek/DialogGantt.js b/src/views/SimproV2/CreatedProyek/DialogGantt.js index 7341d44..d52819f 100644 --- a/src/views/SimproV2/CreatedProyek/DialogGantt.js +++ b/src/views/SimproV2/CreatedProyek/DialogGantt.js @@ -39,10 +39,6 @@ const DialogGantt = ({ openDialog, closeDialog, toggleDialog, idTask, proyekName } }, [hierarchyId, idTask, openDialog]) - useEffect(() => { - getDataHumanResource(); - }, []) - useEffect(() => { if (!openDialog) { setDataGantt([]); @@ -274,7 +270,6 @@ const DialogGantt = ({ openDialog, closeDialog, toggleDialog, idTask, proyekName { - getDataHumanResource(); - }, []) - useEffect(() => { if (!openDialog) { setDataHierarchy([]); @@ -333,7 +329,6 @@ const DialogHierarchy = ({ openDialog, closeDialog, toggleDialog, idTask, proyek { +const DialogUserGantt = ({ openDialog, closeDialog, toggleDialog, idGantt}) => { const token = localStorage.getItem("token") const HEADER = { headers: { @@ -16,6 +16,7 @@ const DialogUserGantt = ({ openDialog, closeDialog, toggleDialog, idGantt, human } const [id, setId] = useState(0) const [targetKeys, setTargetKeys] = useState([]) + const [humanResource, setHumanResource] = useState([]) const handleCLearData = () => { @@ -26,6 +27,8 @@ const DialogUserGantt = ({ openDialog, closeDialog, toggleDialog, idGantt, human useEffect(() => { if(!openDialog){ handleCLearData() + } else { + getDataHumanResource(); } }, [openDialog]) @@ -35,6 +38,31 @@ const DialogUserGantt = ({ openDialog, closeDialog, toggleDialog, idGantt, human } }, [idGantt]) + const getDataHumanResource = async () => { + const result = await axios + .get(USER_LIST, HEADER) + .then(res => res) + .catch((error) => error.response); + + if (result && result.status == 200) { + setTransferUser(result.data.data); + } else { + + } + } + + const setTransferUser = (data) => { + const finalData = [] + data.map((val, index) => { + let data = { + key: val.id, + title: val.name + } + finalData.push(data) + }); + setHumanResource(finalData) + } + const getUserGantt = async () => { const payload = { "columns": [ @@ -139,4 +167,4 @@ const DialogUserGantt = ({ openDialog, closeDialog, toggleDialog, idGantt, human } -export default DialogUserGantt; \ No newline at end of file +export default DialogUserGantt; diff --git a/src/views/SimproV2/CreatedProyek/index.js b/src/views/SimproV2/CreatedProyek/index.js index 13deced..b2c667e 100644 --- a/src/views/SimproV2/CreatedProyek/index.js +++ b/src/views/SimproV2/CreatedProyek/index.js @@ -133,17 +133,33 @@ const CreatedProyek = ({ params, ...props }) => { const [dataHierarchy, setDataHierarchy] = useState([]); const pageName = params.name; - - useEffect(() => { - // getDataUserResource() - getDataMaterialResource(); - getDataToolsResource(); - handleGetTipeProject(); - handleGetPhaseProject(); - handleGetDivisions(); - handleGetDataPm(); - getDataK3(); - }, []); + + useEffect(() => { + if (openDialogMaterial) { + getDataMaterialResource(); + } + }, [openDialogMaterial]); + + useEffect(() => { + if (openDialogTools) { + getDataToolsResource(); + } + }, [openDialogTools]); + + useEffect(() => { + if (openDialogAssignK3) { + getDataK3(); + } + }, [openDialogAssignK3]); + + useEffect(() => { + if (openDialogProyek) { + handleGetTipeProject(); + handleGetPhaseProject(); + handleGetDivisions(); + handleGetDataPm(); + } + }, [openDialogProyek]) useEffect(() => { getDataProyek(); @@ -307,32 +323,6 @@ const CreatedProyek = ({ params, ...props }) => { } }; - const getdataHierarchy = async (idTask) => { - setLoadHierarchy(true); - const payload = { - columns: [ - { - name: "project_id", - logic_operator: "=", - value: idTask, - operator: "AND", - }, - ], - }; - const result = await axios - .post(HIERARCHY_FTTH_SEARCH, payload, HEADER) - .then((res) => res) - .catch((error) => error.response); - if (result && result.status == 200) { - setDataHierarchy(result.data.data); - setLoadHierarchy(false); - } else { - NotificationManager.error( - `Data gantt project gagal terload silahkan coba lagi!`, - "Failed!!" - ); - } - }; const getDataToolsResource = async () => { const result = await axios .get(TOOLS_RESOURCE_LIST, HEADER) @@ -843,9 +833,28 @@ const CreatedProyek = ({ params, ...props }) => { ["Project Name", "Budget", "Project Type", "PM", "Time Project"], ]; const payload = { - paging: { start: 0, length: -1 }, - joins: [], - orders: { columns: ["id"], ascending: false }, + columns: [ + { + name: "nama", + logic_operator: "ilike", + value: search, + operator: "AND", + }, + ], + joins: [ + { + name: "m_users", + column_join: "pm_id", + column_results: ["name", "username"], + }, + { + name: "m_type_proyek", + column_join: "type_proyek_id", + column_results: ["name", "description"], + }, + // { "name": "subproyeks.m_subproyek", "column_join": "parent_id", "column_results": ["nama", "biaya", "color_progress", "jumlah_pekerja", "pic", "mulai_proyek", "akhir_proyek", "biaya_actual", "persentase_progress_plan", "persentase_progress_actual"] } + ], + orders: { columns: ["id"], ascending: false }, }; const result = await axios @@ -1084,7 +1093,6 @@ const CreatedProyek = ({ params, ...props }) => { { text.type_proyek_id == 9 ?