From 9f46a765859f170b2593e2af4864d90f4ca9f299 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:22:02 +0700 Subject: [PATCH 01/12] add props --- src/views/Dashboard/DashboardBOD.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/views/Dashboard/DashboardBOD.js b/src/views/Dashboard/DashboardBOD.js index 344faf5..74e64d0 100644 --- a/src/views/Dashboard/DashboardBOD.js +++ b/src/views/Dashboard/DashboardBOD.js @@ -13,8 +13,21 @@ import toRupiah from '@develoka/angka-rupiah-js'; import Icon from '@iconify/react'; import { HealthByBudget, HealthBySchedule } from './Components'; -const DashboardBOD = () => { - const token = localStorage.getItem("token") +const DashboardBOD = (props) => { + let role_id = '', user_id='',isLogin='',token=''; + if (props.location.state && props.location.state.role_id && props.location.state.user_id) { + role_id = props.location.state.role_id; + user_id = props.location.state.user_id; + token = props.location.state.token; + isLogin = props.location.state.isLogin; + console.log('props.location.state success'); + } else { + role_id = localStorage.getItem("role_id"); + user_id = localStorage.getItem("user_id"); + token = localStorage.getItem("token"); + isLogin = localStorage.getItem("isLogin"); + console.error('undefined in props.location.state'); + } const HEADER = { headers: { "Content-Type": "application/json", From 90f432c5ea35c87e217c8940bee7e7b879cbd384 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:28:10 +0700 Subject: [PATCH 02/12] add props after login --- src/views/Pages/Login/Login.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/Pages/Login/Login.js b/src/views/Pages/Login/Login.js index 9c49869..e0c67bf 100644 --- a/src/views/Pages/Login/Login.js +++ b/src/views/Pages/Login/Login.js @@ -159,14 +159,14 @@ class Login extends Component { else { this.props.history.push({ pathname: "/dashboard", - state: { role_id: role_id, user_id: user_id } + state: { role_id: role_id, user_id: user_id, token: token, isLogin: true } }); } if (this.state.defaultPage) { if (role_id === 44) { this.props.history.push({ pathname: this.state.defaultPage, - state: { role_id: role_id, user_id: user_id } + state: { role_id: role_id, user_id: user_id, token: token, isLogin: true } }); } else { this.props.history.push(this.state.defaultPage); @@ -177,7 +177,7 @@ class Login extends Component { else { this.props.history.push({ pathname: "/dashboard", - state: { role_id: role_id, user_id: user_id } + state: { role_id: role_id, user_id: user_id, token: token, isLogin: true } }); } } else { From 426567e4340eeffc54b929288ecef5e64d144c58 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:29:29 +0700 Subject: [PATCH 03/12] add props --- src/views/SimproV2/CreatedProyek/index.js | 25 ++++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/views/SimproV2/CreatedProyek/index.js b/src/views/SimproV2/CreatedProyek/index.js index 726326c..9b85ac1 100644 --- a/src/views/SimproV2/CreatedProyek/index.js +++ b/src/views/SimproV2/CreatedProyek/index.js @@ -93,25 +93,25 @@ import { Icon } from "@iconify/react"; import { Link, useHistory, withRouter } from "react-router-dom"; const url = ""; -// const proyek_id = localStorage.getItem("proyek_id"); -// const role_id = localStorage.getItem("role_id"); -// const user_id = localStorage.getItem("user_id"); const format = "DD-MM-YYYY"; const CreatedProyek = ({ params, ...props }) => { - let role_id = '', user_id='',proyek_id=''; + let role_id = '', user_id='',proyek_id='',isLogin='',token=''; if (props.location.state && props.location.state.role_id && props.location.state.user_id) { role_id = props.location.state.role_id; user_id = props.location.state.user_id; - console.log('role_id:', role_id); + token = props.location.state.token; + isLogin = props.location.state.isLogin; + console.log('props.location.state success'); } else { role_id = localStorage.getItem("role_id"); proyek_id = localStorage.getItem("proyek_id"); user_id = localStorage.getItem("user_id"); - console.error('Role ID is undefined in props.location.state'); + token = localStorage.getItem("token"); + isLogin = localStorage.getItem("isLogin"); + console.error('Undefined in props.location.state'); } const history = useHistory(); - const token = localStorage.getItem("token"); const HEADER = { headers: { "Content-Type": "application/json", @@ -294,9 +294,10 @@ const CreatedProyek = ({ params, ...props }) => { ); return; } else if (result.status == 200 && result.data.data) { - history.push( - `/dashboard-customer/${id}/${result.data.gantt}/1` - ); + history.push({ + pathname: `/dashboard-customer/${id}/${result.data.gantt}/1`, + state: { role_id: role_id, user_id: user_id, token: token, isLogin: true } + }); } }; @@ -1942,6 +1943,10 @@ const CreatedProyek = ({ params, ...props }) => { closeDialog={closeDialogGantt} toggleDialog={toggleDialogGantt} idTask={idTask} + role_id={role_id} + user_id={user_id} + token={token} + isLogin={isLogin} proyekName={proyekName} /> ), From 6485cda231581eb8fc5adaacf6f4befc29ea899c Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:31:01 +0700 Subject: [PATCH 04/12] add props --- .../SimproV2/CreatedProyek/DialogGantt.js | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/views/SimproV2/CreatedProyek/DialogGantt.js b/src/views/SimproV2/CreatedProyek/DialogGantt.js index e2ce30c..5dbb28f 100644 --- a/src/views/SimproV2/CreatedProyek/DialogGantt.js +++ b/src/views/SimproV2/CreatedProyek/DialogGantt.js @@ -13,8 +13,20 @@ import DialogUserGantt from './DialogUserGantt'; import { Link } from 'react-router-dom'; -const DialogGantt = ({ openDialog, closeDialog, toggleDialog, idTask, proyekName, hierarchyId, hierarchyName, openDialogHierarchy }) => { - const token = localStorage.getItem("token") +const DialogGantt = ({ openDialog, closeDialog, toggleDialog, idTask, proyekName, hierarchyId, hierarchyName, openDialogHierarchy, isLogin, token, role_id, user_id }) => { + if (role_id && user_id && token && isLogin) { + role_id = role_id; + user_id = user_id; + token = token; + isLogin = isLogin; + console.log('props.location.state success'); + } else { + role_id = localStorage.getItem("role_id"); + user_id = localStorage.getItem("user_id"); + token = localStorage.getItem("token"); + isLogin = localStorage.getItem("isLogin"); + console.error('Undefined in props.location.state'); + } const HEADER = { headers: { "Content-Type": "application/json", @@ -150,7 +162,15 @@ const DialogGantt = ({ openDialog, closeDialog, toggleDialog, idTask, proyekName {" "} - + {" "} From db582f48082672520d2d071916502437d9d7a49d Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:32:31 +0700 Subject: [PATCH 05/12] add props --- src/views/SimproV2/Gantt/index.js | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/views/SimproV2/Gantt/index.js b/src/views/SimproV2/Gantt/index.js index c1c2dda..b46b34d 100644 --- a/src/views/SimproV2/Gantt/index.js +++ b/src/views/SimproV2/Gantt/index.js @@ -11,18 +11,30 @@ import { Fab, Action } from "react-tiny-fab"; import "react-tiny-fab/dist/styles.css"; import { useHistory } from "react-router-dom"; import GanttFrame from "./GanttFrame"; -const token = localStorage.getItem("token"); -const userId = parseInt(localStorage.getItem("user_id")); -const HEADER = { - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${token}`, - }, -}; let roCount = 0; const Gantt = (props) => { + let role_id = '', userId='',isLogin='',token=''; + if (props.location.state && props.location.state.role_id && props.location.state.user_id) { + role_id = props.location.state.role_id; + userId = props.location.state.user_id; + token = props.location.state.token; + isLogin = props.location.state.isLogin; + console.log('props.location.state success'); + } else { + role_id = localStorage.getItem("role_id"); + userId = localStorage.getItem("user_id"); + token = localStorage.getItem("token"); + isLogin = localStorage.getItem("isLogin"); + console.error('Undefined in props.location.state'); + } + const HEADER = { + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${token}`, + }, + }; const versionGanttId = props.match.params ? props.match.params.id : 0; const idProject = props.match.params.project ? props.match.params.project : 0; const timestamp = props.match.params.timestamp From 018fc431b6771ff9fc0ac35c7c50335b13b31f3a Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:33:03 +0700 Subject: [PATCH 06/12] add props --- src/views/SimproV2/Gantt/GanttFrame.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/views/SimproV2/Gantt/GanttFrame.js b/src/views/SimproV2/Gantt/GanttFrame.js index f175154..51efdde 100644 --- a/src/views/SimproV2/Gantt/GanttFrame.js +++ b/src/views/SimproV2/Gantt/GanttFrame.js @@ -1,16 +1,31 @@ import React, { useEffect, useState } from 'react'; -import { useHistory } from 'react-router-dom'; +import { useHistory, withRouter } from 'react-router-dom'; import { BASE_SIMPRO_LUMEN } from '../../../const/ApiConst'; const GanttFrame = React.memo((props) => { + let role_id = '', user_id='',proyek_id='',isLogin='',token=''; + if (props.location.state && props.location.state.role_id && props.location.state.user_id) { + role_id = props.location.state.role_id; + user_id = props.location.state.user_id; + isLogin = props.location.state.isLogin; + token = props.location.state.token; + console.log('props.location.state success'); + } else { + role_id = localStorage.getItem("role_id"); + proyek_id = localStorage.getItem("proyek_id"); + user_id = localStorage.getItem("user_id"); + isLogin = localStorage.getItem("isLogin"); + token = localStorage.getItem("token"); + console.error('Undefined in props.location.state'); + } const history = useHistory(); - const { versionGanttId, idProject, token, ro, timestamp } = props; - const iframeSrc = `https://adw-gantt.ospro.id/edit-mode/index.html?base_url=${BASE_SIMPRO_LUMEN}&gantt_id=${versionGanttId}&proyek_id=${idProject}&token=${token}&ro=${ro}×tamp=${timestamp}`; + const { versionGanttId, idProject, ro, timestamp } = props; + const iframeSrc = `http://localhost:8444/adw-gantt/edit-mode/index.html?base_url=${BASE_SIMPRO_LUMEN}&gantt_id=${versionGanttId}&proyek_id=${idProject}&token=${token}&ro=${ro}×tamp=${timestamp}&role_id=${role_id}&user_id=${user_id}&isLogin=${isLogin}`; const [batchEntityData, setBatchEntityData] = useState(null); - + useEffect(() => { const handleMessage = (event) => { if (event.data && event.data.batchEntity) { @@ -46,4 +61,4 @@ const GanttFrame = React.memo((props) => { ); }); -export default GanttFrame; +export default withRouter(GanttFrame); From bf26374fa424c59456db0733f980bebd9eae8e43 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:34:17 +0700 Subject: [PATCH 07/12] add props --- src/views/Dashboard/DashboardCustomer.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/views/Dashboard/DashboardCustomer.js b/src/views/Dashboard/DashboardCustomer.js index 63ee536..5928cef 100644 --- a/src/views/Dashboard/DashboardCustomer.js +++ b/src/views/Dashboard/DashboardCustomer.js @@ -25,8 +25,21 @@ const center = { lng: 106.816666 } -const DashboardCustomer = () => { - const token = localStorage.getItem("token") +const DashboardCustomer = (props) => { + let role_id = '', user_id='',isLogin='',token=''; + if (props.location.state && props.location.state.role_id && props.location.state.user_id) { + role_id = props.location.state.role_id; + user_id = props.location.state.user_id; + token = props.location.state.token; + isLogin = props.location.state.isLogin; + console.log('props.location.state success'); + } else { + role_id = localStorage.getItem("role_id"); + user_id = localStorage.getItem("user_id"); + token = localStorage.getItem("token"); + isLogin = localStorage.getItem("isLogin"); + console.error('Undefined in props.location.state'); + } const HEADER = { headers: { "Content-Type": "application/json", @@ -34,7 +47,7 @@ const DashboardCustomer = () => { } } const { PROJECT_ID, GANTT_ID, SCURVE } = useParams(); - const URL_GANTT = `https://adw-gantt.ospro.id/view-mode/index.html?base_url=${BASE_OSPRO}/api&gantt_id=${GANTT_ID}&proyek_id=${PROJECT_ID}&token=${token}&ro=1`; + const URL_GANTT = `http://localhost:8444/adw-gantt/view-mode/index.html?base_url=${BASE_OSPRO}/api&gantt_id=${GANTT_ID}&proyek_id=${PROJECT_ID}&token=${token}&ro=1`; const mapRef = useRef() const [projectName, setProjectName] = useState(""); const [projectManagerName, setProjectManagerName] = useState(''); From 5b15013f06ef74a294145be9f5f89c55b3891c19 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:43:20 +0700 Subject: [PATCH 08/12] update URL_GANTT --- src/views/Dashboard/DashboardCustomer.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/views/Dashboard/DashboardCustomer.js b/src/views/Dashboard/DashboardCustomer.js index 5928cef..7d482e8 100644 --- a/src/views/Dashboard/DashboardCustomer.js +++ b/src/views/Dashboard/DashboardCustomer.js @@ -47,8 +47,7 @@ const DashboardCustomer = (props) => { } } const { PROJECT_ID, GANTT_ID, SCURVE } = useParams(); - const URL_GANTT = `http://localhost:8444/adw-gantt/view-mode/index.html?base_url=${BASE_OSPRO}/api&gantt_id=${GANTT_ID}&proyek_id=${PROJECT_ID}&token=${token}&ro=1`; - const mapRef = useRef() + const URL_GANTT = `https://adw-gantt.ospro.id/view-mode/index.html?base_url=${BASE_OSPRO}/api&gantt_id=${GANTT_ID}&proyek_id=${PROJECT_ID}&token=${token}&ro=1`; const mapRef = useRef() const [projectName, setProjectName] = useState(""); const [projectManagerName, setProjectManagerName] = useState(''); const [customerName, setCustomerName] = useState(""); From 0a4b6e9b44baf263d876d6c4626a38067878a351 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 10:43:57 +0700 Subject: [PATCH 09/12] update url iframeSrc --- src/views/SimproV2/Gantt/GanttFrame.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/views/SimproV2/Gantt/GanttFrame.js b/src/views/SimproV2/Gantt/GanttFrame.js index 51efdde..ec90a85 100644 --- a/src/views/SimproV2/Gantt/GanttFrame.js +++ b/src/views/SimproV2/Gantt/GanttFrame.js @@ -20,8 +20,7 @@ const GanttFrame = React.memo((props) => { } const history = useHistory(); const { versionGanttId, idProject, ro, timestamp } = props; - const iframeSrc = `http://localhost:8444/adw-gantt/edit-mode/index.html?base_url=${BASE_SIMPRO_LUMEN}&gantt_id=${versionGanttId}&proyek_id=${idProject}&token=${token}&ro=${ro}×tamp=${timestamp}&role_id=${role_id}&user_id=${user_id}&isLogin=${isLogin}`; - + const iframeSrc = `https://adw-gantt.ospro.id/edit-mode/index.html?base_url=${BASE_SIMPRO_LUMEN}&gantt_id=${versionGanttId}&proyek_id=${idProject}&token=${token}&ro=${ro}×tamp=${timestamp}`; const [batchEntityData, setBatchEntityData] = useState(null); From 4109188206b3ee570981b6f2c3e8310489c9cfcf Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 11:20:39 +0700 Subject: [PATCH 10/12] add loader --- .../SimproV2/CreatedProyek/DialogHierarchy.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/views/SimproV2/CreatedProyek/DialogHierarchy.js b/src/views/SimproV2/CreatedProyek/DialogHierarchy.js index a6ac1b1..feeedf9 100644 --- a/src/views/SimproV2/CreatedProyek/DialogHierarchy.js +++ b/src/views/SimproV2/CreatedProyek/DialogHierarchy.js @@ -1,7 +1,7 @@ import React, { useEffect, useState, useMemo } from 'react' import { Modal, ModalHeader, ModalBody, } from 'reactstrap'; import { Button } from 'reactstrap'; -import { Space, Table, Tooltip } from 'antd'; +import { Space, Table, Tooltip, Spin } from 'antd'; import 'antd/dist/antd.css'; import moment from 'moment'; import SweetAlert from 'react-bootstrap-sweetalert'; @@ -41,8 +41,10 @@ const DialogHierarchy = ({ openDialog, closeDialog, toggleDialog, idTask, proyek const [idGantt, setIdGantt] = useState(0) const [humanResource, setHumanResource] = useState([]) const { t } = useTranslation(); + const [loading, setLoading] = useState(true); useEffect(() => { if (idTask > 0) { + setLoading(true); getdataHierarchy(); } }, [saveHierarchy, idTask, openDialog, closeDialog, openDialogFormGantt]) @@ -157,7 +159,9 @@ const DialogHierarchy = ({ openDialog, closeDialog, toggleDialog, idTask, proyek if (result && result.status == 200) { const sortedData = _.orderBy(result.data.data, ['name'], ['asc']); setDataHierarchy(sortedData); + setLoading(false); } else { + setLoading(false); NotificationManager.error(`Data gantt project gagal terload silahkan coba lagi!`, 'Failed!!'); } } @@ -285,9 +289,11 @@ const DialogHierarchy = ({ openDialog, closeDialog, toggleDialog, idTask, proyek -
- {RenderTable} -
+ +
+ {RenderTable} +
+
{/* From 77f0b886b3d354dc96df054275e28f7168780c0a Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 11:20:56 +0700 Subject: [PATCH 11/12] update loader --- src/views/SimproV2/CreatedProyek/DialogGantt.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/SimproV2/CreatedProyek/DialogGantt.js b/src/views/SimproV2/CreatedProyek/DialogGantt.js index 5dbb28f..3af6883 100644 --- a/src/views/SimproV2/CreatedProyek/DialogGantt.js +++ b/src/views/SimproV2/CreatedProyek/DialogGantt.js @@ -47,6 +47,7 @@ const DialogGantt = ({ openDialog, closeDialog, toggleDialog, idTask, proyekName useEffect(() => { if (openDialog && hierarchyId > 0 || idTask > 0 && !openDialogHierarchy) { + setLoading(true); getdataGantt(); } if (!openDialog) { From 890483ae7d056336dcae2aa2c64ae1f6b41a0cd0 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Fri, 10 Nov 2023 13:31:58 +0700 Subject: [PATCH 12/12] update dashboard-customer --- src/routes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes.js b/src/routes.js index 85e3523..4df1073 100644 --- a/src/routes.js +++ b/src/routes.js @@ -53,7 +53,7 @@ const routes = [ { path: '/', exact: true, name: 'Home' }, // { path: '/dashboard', name: 'Dashboard', component: Dashboard}, { path: '/dashboard', name: 'DashboardBOD', component: DashboardBOD }, - { path: '/dashboard-customer/:PROJECT_ID/:GANTT_ID', name: 'DashboardCustomer', component: DashboardCustomer }, + // { path: '/dashboard-customer/:PROJECT_ID/:GANTT_ID', name: 'DashboardCustomer', component: DashboardCustomer }, { path: '/dashboard-customer/:PROJECT_ID/:GANTT_ID/:SCURVE', name: 'DashboardCustomer', component: DashboardCustomer }, { path: '/dashboard-project/:PROJECT_ID/:GANTT_ID', exact: true, name: 'Dashboard Project', component: DashboardProject }, { path: '/dashboard-project/:PROJECT_ID/:GANTT_ID/:SCURVE', exact: true, name: 'Dashboard Project', component: DashboardProject },