diff --git a/src/views/MapMonitoring/index.js b/src/views/MapMonitoring/index.js
index aaa61b5..9b558dd 100644
--- a/src/views/MapMonitoring/index.js
+++ b/src/views/MapMonitoring/index.js
@@ -15,7 +15,7 @@ import "react-loader-spinner/dist/loader/css/react-spinner-loader.css";
import { ToastContainer, toast } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";
import './MapMonitoring.css';
-import { BASE_SIMPRO_LUMEN_IMAGE, PROYEK_SEARCH } from '../../const/ApiConst';
+import { BASE_SIMPRO_LUMEN_IMAGE_COMPANY } from '../../const/ApiConst';
import DEFAULT_USER_ICON from '../../assets/img/avatars/user.png';
import pinRouteStart from '../../assets/img/map/pin_route_green.png';
import pinRouteEnd from '../../assets/img/map/pin_route_red.png';
@@ -27,8 +27,9 @@ import 'leaflet-control-geocoder/dist/Control.Geocoder.css'
import 'leaflet-control-geocoder/dist/Control.Geocoder.js'
import moment from 'moment';
import axios from "../../const/interceptorApi";
+
const MapMonitoring = ({ ...props }) => {
- let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name='', hierarchy=[], user_name='';
+ let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name='', hierarchy=[], user_name='', configApp={};
if (props && props.role_id && props.user_id) {
role_id = props.role_id;
user_id = props.user_id;
@@ -40,6 +41,7 @@ const MapMonitoring = ({ ...props }) => {
isLogin = props.isLogin;
hierarchy = props.hierarchy;
user_name = props.user_name;
+ configApp = props.configApp;
}
const HEADER = {
headers: {
@@ -223,7 +225,7 @@ const MapMonitoring = ({ ...props }) => {
const pointToLayerUserPoints = (feature, latlng) => {
let imgSrc = DEFAULT_USER_ICON;
if (feature && feature.properties && feature.properties.image && feature.properties.image !== '') {
- imgSrc = `${BASE_SIMPRO_LUMEN_IMAGE}/${feature.properties.image}`
+ imgSrc = `${BASE_SIMPRO_LUMEN_IMAGE_COMPANY(feature.properties.image, JSON.parse(configApp).company_name, moment(feature.properties.created_at).format('YYYY-MM'))}`
}
let img = ``
let logoMarker = L.divIcon({
diff --git a/src/views/Report/k3/DialogForm.js b/src/views/Report/k3/DialogForm.js
index 95640d7..492cf0f 100644
--- a/src/views/Report/k3/DialogForm.js
+++ b/src/views/Report/k3/DialogForm.js
@@ -1,84 +1,86 @@
-import React, { Component } from 'react'
-import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
-import { Button, Form, FormGroup, Label, Input } from 'reactstrap';
-import { Image, Col, Row } from 'antd';
-import 'antd/dist/antd.css';
-import { BASE_SIMPRO_LUMEN_IMAGE } from '../../../const/ApiConst.js';
-export default class DialogForm extends Component {
- constructor(props) {
- super(props)
- this.state = {
- id: 0,
- url:"",
- ready:false,
- isParentClick: false,
- }
- }
-
- async componentDidMount(){
- this.props.showDialog(this.showDialog);
- }
-
- async componentDidUpdate (){
- if(this.state.isParentClick===true){
- this.setState({ready:false})
- const { dataImage } = this.props
- this.setState({
- url:dataImage,
- },() => {
- this.setState({ready:true});
- });
- this.setState({isParentClick:false});
- }
- }
-
-
- showDialog = () => {
- this.setState({ isParentClick : true });
- }
-
- handleCancel = () => {
- this.setState({ready:false})
- this.props.closeDialog('cancel', 'none')
- }
-
- renderForm = () => {
- const { dataImage } = this.props;
- return(
-
-
-
- {
- dataImage && dataImage.length > 0 && dataImage.map((item, idx) =>
-
-
-
- )
- }
-
-
- { !dataImage || (dataImage && dataImage.length < 1) && No image available
}
-
-
- )
- }
-
- render() {
- return (
-
- Lihat Foto Laporan K3
-
- {this.state.ready ?
- this.renderForm()
- : null}
-
-
-
-
-
- )
- }
-}
+import React, { Component } from 'react'
+import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
+import { Button, Form, FormGroup, Label, Input } from 'reactstrap';
+import { Image, Col, Row } from 'antd';
+import 'antd/dist/antd.css';
+import { BASE_SIMPRO_LUMEN_IMAGE_COMPANY } from '../../../const/ApiConst.js';
+import moment from 'moment';
+
+export default class DialogForm extends Component {
+ constructor(props) {
+ super(props)
+ this.state = {
+ id: 0,
+ url:"",
+ ready:false,
+ isParentClick: false,
+ }
+ }
+
+ async componentDidMount(){
+ this.props.showDialog(this.showDialog);
+ }
+
+ async componentDidUpdate (){
+ if(this.state.isParentClick===true){
+ this.setState({ready:false})
+ const { dataImage } = this.props
+ this.setState({
+ url:dataImage,
+ },() => {
+ this.setState({ready:true});
+ });
+ this.setState({isParentClick:false});
+ }
+ }
+
+
+ showDialog = () => {
+ this.setState({ isParentClick : true });
+ }
+
+ handleCancel = () => {
+ this.setState({ready:false})
+ this.props.closeDialog('cancel', 'none')
+ }
+
+ renderForm = () => {
+ const { dataImage, companyName } = this.props;
+ return(
+
+
+
+ {
+ dataImage && dataImage.length > 0 && dataImage.map((item, idx) =>
+
+
+
+ )
+ }
+
+
+ { !dataImage || (dataImage && dataImage.length < 1) && No image available
}
+
+
+ )
+ }
+
+ render() {
+ return (
+
+ Lihat Foto Laporan K3
+
+ {this.state.ready ?
+ this.renderForm()
+ : null}
+
+
+
+
+
+ )
+ }
+}
diff --git a/src/views/Report/k3/index.js b/src/views/Report/k3/index.js
index 4fdc769..a9821de 100644
--- a/src/views/Report/k3/index.js
+++ b/src/views/Report/k3/index.js
@@ -9,7 +9,7 @@ import { NotificationContainer, NotificationManager } from 'react-notifications'
import { Pagination, Tooltip } from 'antd';
import { DatePicker, Select } from 'antd';
import * as XLSX from 'xlsx';
-import { PRESENSI_SEARCH, PROYEK_SEARCH, USERPROYEK_SEARCH, K3_SEARCH, SIMPRO_BASE_IMAGE } from '../../../const/ApiConst.js';
+import { PROYEK_SEARCH, K3_SEARCH } from '../../../const/ApiConst.js';
import { withTranslation } from 'react-i18next';
const { RangePicker } = DatePicker;
const { Option } = Select
@@ -26,7 +26,7 @@ const LENGTH_DATA = 10
class index extends Component {
constructor(props) {
- let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name = '', hierarchy = [], user_name = '';
+ let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name = '', hierarchy = [], user_name = '', configApp={};
if (props && props.role_id && props.user_id) {
role_id = props.role_id;
user_id = props.user_id;
@@ -38,6 +38,7 @@ class index extends Component {
isLogin = props.isLogin;
hierarchy = props.hierarchy;
user_name = props.user_name;
+ configApp = props.configApp;
}
super(props)
this.config = {
@@ -77,6 +78,7 @@ class index extends Component {
finishSetupOption: false,
company_id: company_id,
role_name: role_name,
+ companyName: JSON.parse(configApp).company_name,
role_id: role_id,
hierarchy: hierarchy
}
@@ -583,6 +585,7 @@ class index extends Component {
closeDialog={this.handleCloseDialog}
toggleDialog={() => this.toggleAddDialog}
dataImage={this.state.dataImage}
+ companyName={this.state.companyName}
showDialog={showDialog => this.showChildDialog = showDialog}
/>
diff --git a/src/views/SimproV2/CreatedProyek/DialogFormProyek.js b/src/views/SimproV2/CreatedProyek/DialogFormProyek.js
index bb4feaa..22834f2 100644
--- a/src/views/SimproV2/CreatedProyek/DialogFormProyek.js
+++ b/src/views/SimproV2/CreatedProyek/DialogFormProyek.js
@@ -281,7 +281,7 @@ const DialogFormProyek = ({
currency_symbol: currencySymbol,
currency_code: currencyCode,
currency_name: currencyName,
- company_id: role_name != "Super Admin" ? parseInt(company_id) : parseInt(scompany_id)
+ company_id: role_name !== "Super Admin" ? parseInt(company_id) : parseInt(scompany_id)
};
data.projectCharter = { checklist, issue, potentialRisks, participants, milestones, approval };
data.imageStructureOrg = organization ? organization : null;
@@ -312,7 +312,7 @@ const DialogFormProyek = ({
currency_symbol: currencySymbol,
currency_code: currencyCode,
currency_name: currencyName,
- company_id: role_name != "Super Admin" ? parseInt(company_id) : parseInt(scompany_id)
+ company_id: role_name !== "Super Admin" ? parseInt(company_id) : parseInt(scompany_id)
};
data.projectCharter = { checklist, issue, potentialRisks, participants, milestones, approval };
data.imageStructureOrg = organization ? organization : null;
diff --git a/src/views/SimproV2/CreatedProyek/ImportActivity/index.js b/src/views/SimproV2/CreatedProyek/ImportActivity/index.js
index 3826b17..54de9bd 100644
--- a/src/views/SimproV2/CreatedProyek/ImportActivity/index.js
+++ b/src/views/SimproV2/CreatedProyek/ImportActivity/index.js
@@ -150,9 +150,6 @@ const ImportActivity = ({ params }) => {
setLoading(false)
NotificationManager.error('file harus dalam format .xlsx', 'Failed');
}
- // else{
- // errorHandler()
- // }
return false
}
@@ -234,7 +231,7 @@ const ImportActivity = ({ params }) => {
const saveHandler = async (e) => {
setIsMovePage(true);
-
+ setLoading(true);
let url = window.location.href;
let urlSplitted = url.split('/')
const ganttId = urlSplitted[5]
@@ -254,9 +251,9 @@ const ImportActivity = ({ params }) => {
if (result.data.code == 200) {
const timestamp = Date.now();
const newTimestamp = timestamp + 60000;
- window.location = urlSplitted[0] + '//' + urlSplitted[2] + `/#/projects/` + ganttId + '/' + result.data.projectId + '/' + newTimestamp + '/gantt'
setLoading(false)
- }else{
+ window.location = urlSplitted[0] + '//' + urlSplitted[2] + `/#/projects/` + ganttId + '/' + result.data.projectId + '/' + newTimestamp + '/gantt'
+ } else {
setLoading(false)
}
setLoading(false)
diff --git a/src/views/SimproV2/CreatedProyek/index.js b/src/views/SimproV2/CreatedProyek/index.js
index e5f9a50..7a73855 100644
--- a/src/views/SimproV2/CreatedProyek/index.js
+++ b/src/views/SimproV2/CreatedProyek/index.js
@@ -203,12 +203,15 @@ const CreatedProyek = ({ params, ...props }) => {
handleGetPhaseProject();
handleGetDivisions();
handleGetDataPm();
- if(role_name === 'Super Admin') {
- getDataProyekCompany();
- }
}
}, [openDialogProyek]);
+ useEffect(() => {
+ if(role_name === 'Super Admin') {
+ getDataProyekCompany();
+ }
+ },[])
+
useEffect(() => {
if (parseInt(role_id) === 44) {
getDataProyekByCustomer()
@@ -435,7 +438,7 @@ const CreatedProyek = ({ params, ...props }) => {
{ name: "company_id", logic_operator: "like", value: parseInt(company_id), operator: "AND" }
);
}
- if (role_name !== 'Super Admin' && all_project === 'null') {
+ if (role_name !== 'Super Admin' && all_project === 'false' || role_name !== 'Super Admin' && all_project === 'null') {
payload.columns.push(
{ name: "created_by_id", logic_operator: "IN", value: [JSON.parse(hierarchy)], operator: "AND" }
);
@@ -1932,7 +1935,7 @@ const CreatedProyek = ({ params, ...props }) => {
dataDivisions={dataDivisions}
dataPM={dataPm}
projectImage={image}
- company_id={companyId}
+ company_id={company_id}
role_name={role_name}
companyList={companyList}
token={token}
diff --git a/src/views/SimproV2/Presence/DialogFoto.js b/src/views/SimproV2/Presence/DialogFoto.js
index 680a0cf..c654aa4 100644
--- a/src/views/SimproV2/Presence/DialogFoto.js
+++ b/src/views/SimproV2/Presence/DialogFoto.js
@@ -1,59 +1,64 @@
-import React, { useEffect, useState } from 'react'
-import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
-import { Button } from 'reactstrap';
-import { Image } from 'antd'
-import { BASE_SIMPRO_LUMEN_IMAGE } from '../../../const/ApiConst';
-import 'antd/dist/antd.css';
-import { useTranslation } from 'react-i18next';
-
-
-const DialogFoto = ({ openDialog, closeDialog, toggleDialog, dataImage }) => {
-
- const [urlImage, setUrlImage] = useState("")
- const [dataReady, setDataReady] = useState(false)
- const [hrName, setHrName] = useState(false)
- const { t } = useTranslation()
- useEffect(() => {
- if (dataImage && dataImage != null) {
- setUrlImage(dataImage.url);
- setHrName(dataImage.name);
- setDataReady(true)
- }
- }, [dataImage])
-
- useEffect(() => {
- if (!openDialog) {
- setUrlImage("")
- setHrName("")
- setDataReady(false)
- }
- }, [openDialog])
-
- const renderModalBody = () => {
- return (
-
- )
- }
-
- return (
-
- {t('imageCheck')} | {t('nameHR')} {hrName}
-
- {dataReady ? renderModalBody() : null}
-
-
-
-
-
- )
-
-}
-
-export default DialogFoto;
\ No newline at end of file
+import React, { useEffect, useState } from 'react'
+import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
+import { Button } from 'reactstrap';
+import { Image } from 'antd'
+import { BASE_SIMPRO_LUMEN_IMAGE_COMPANY } from '../../../const/ApiConst';
+import 'antd/dist/antd.css';
+import { useTranslation } from 'react-i18next';
+import moment from 'moment';
+
+const DialogFoto = ({ openDialog, closeDialog, toggleDialog, dataImage, configApp, role_name }) => {
+
+ const [urlImage, setUrlImage] = useState("")
+ const [dateImage, setDateImage] = useState("")
+ const [companyName, setCompanyName] = useState("")
+ const [dataReady, setDataReady] = useState(false)
+ const [hrName, setHrName] = useState(false)
+ const { t } = useTranslation()
+
+ useEffect(() => {
+ if (dataImage && dataImage != null) {
+ setCompanyName(role_name !== "Super Admin" ? JSON.parse(configApp).company_name : "undifined");
+ setUrlImage(dataImage.url);
+ setDateImage(dataImage.date);
+ setHrName(dataImage.name);
+ setDataReady(true)
+ }
+ }, [dataImage])
+
+ useEffect(() => {
+ if (!openDialog) {
+ setUrlImage("")
+ setHrName("")
+ setDataReady(false)
+ }
+ }, [openDialog])
+
+ const renderModalBody = () => {
+ return (
+
+ )
+ }
+
+ return (
+
+ {t('imageCheck')} | {t('nameHR')} {hrName}
+
+ {dataReady ? renderModalBody() : null}
+
+
+
+
+
+ )
+
+}
+
+export default DialogFoto;
diff --git a/src/views/SimproV2/Presence/index.js b/src/views/SimproV2/Presence/index.js
index 5f1a592..93bb6fe 100644
--- a/src/views/SimproV2/Presence/index.js
+++ b/src/views/SimproV2/Presence/index.js
@@ -12,7 +12,7 @@ import { useTranslation } from 'react-i18next';
const { RangePicker } = DatePicker;
const Index = ({ params, ...props }) => {
- let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name = '', hierarchy = [], user_name = '';
+ let role_id = 0, user_id = 0, isLogin = false, token = '', company_id = 0, all_project = null, role_name = '', hierarchy = [], user_name = '', configApp = {};
if (props && props.role_id && props.user_id) {
role_id = props.role_id;
user_id = props.user_id;
@@ -24,6 +24,7 @@ const Index = ({ params, ...props }) => {
isLogin = props.isLogin;
hierarchy = props.hierarchy;
user_name = props.user_name;
+ configApp = props.configApp;
}
const [dataTable, setDatatable] = useState([])
@@ -129,7 +130,8 @@ const Index = ({ params, ...props }) => {
let dataRes = result.data.data
let dataImage = {
name,
- url: dataRes.image
+ url: dataRes.image,
+ date: dataRes.created_at
}
await setDataImage(dataImage)
setOpenImage(true)
@@ -321,6 +323,8 @@ const Index = ({ params, ...props }) => {
closeDialog={closeDialogImage}
toggleDialog={toggleDialogImage}
dataImage={dataImage}
+ configApp={configApp}
+ role_name={role_name}
/>