Commit 3a73dc83 authored by EKSAD's avatar EKSAD

Merge branch 'master' of http://103.44.149.204/d.arizona/tia-dev into riri

parents 479478bf b98fc12c
......@@ -176,6 +176,7 @@ const create = (baseURL = 'https://tia.eksad.com/tia-reporting-dev/public/') =>
// MANAGEMENT DOCUMENT
const getDocumentCategory = () => api.get('document_category/get_all_document_category')
const getAllDocument = (body) => api.post('document/get_all_document', body)
const uploadDocument = (body) => api.post('document/upload_document', body)
// ------
// STEP 3
......@@ -281,7 +282,8 @@ const create = (baseURL = 'https://tia.eksad.com/tia-reporting-dev/public/') =>
deletePerusahaan,
deleteReportItems,
getDocumentCategory,
getAllDocument
getAllDocument,
uploadDocument
}
}
......
......@@ -45,6 +45,7 @@ export default class ApprovalMatrix extends Component {
messageAlert: '',
btncreate: false,
btnedit: false,
btndelete: false,
load: false,
judul: '',
popupDel: false,
......@@ -68,7 +69,7 @@ export default class ApprovalMatrix extends Component {
payload.push({
id: index + 1,
approval_type_name: item[0] === undefined ? "" : item[0],
orders: item[1] === undefined ? "" : item[1],
orders: item[1] === undefined ? null: item[1],
email: item[2] === undefined ? "" : item[2],
// fullname: item[2] === undefined ? "" : item[2],
operator_type_name: item[3] === undefined ? "" : item[3],
......@@ -146,9 +147,9 @@ export default class ApprovalMatrix extends Component {
<div style={{ display: 'flex' }}>
{tableMeta.rowData[7] != null && check > -1 ?
<a data-tip={tableMeta.rowData[7][check].message} data-for="order">
<span style={{ color: check != null && check > -1 ? "red" : 'black' }}>{val === "" ? "Empty" : val}</span>
<span style={{ color: check != null && check > -1 ? "red" : 'black' }}>{val === null ? "Empty" : val}</span>
</a> :
<span style={{ color: check != null && check > -1 ? "red" : 'black' }}>{val === "" ? "Empty" : val}</span>
<span style={{ color: check != null && check > -1 ? "red" : 'black' }}>{val === null ? "Empty" : val}</span>
}
<ReactTooltip border={true} id="order" place="bottom" type="light" effect="solid" />
</div >
......@@ -334,6 +335,7 @@ export default class ApprovalMatrix extends Component {
this.setState({
btncreate: response.data.data.create,
btnedit: response.data.data.edit,
btndelete: response.data.data.delete,
load: true
})
} else {
......@@ -610,8 +612,8 @@ export default class ApprovalMatrix extends Component {
customBodyRender: (val, tableMeta) => {
console.log(tableMeta)
return (
this.state.btnedit && (
<div style={{ display: 'flex' }}>
{this.state.btnedit && <span>
<a data-tip={'Edit'} data-for="edit">
<button
style={{
......@@ -627,6 +629,8 @@ export default class ApprovalMatrix extends Component {
</button>
</a>
<ReactTooltip border={true} id="edit" place="bottom" type="light" effect="solid" />
</span>}
{this.state.btndelete && <span>
<a data-tip={'Delete'} data-for="delete">
<button
style={{
......@@ -641,8 +645,8 @@ export default class ApprovalMatrix extends Component {
</button>
</a>
<ReactTooltip border={true} id="delete" place="bottom" type="light" effect="solid" />
</span>}
</div >
)
);
}
}
......
......@@ -2,6 +2,7 @@ import React, { Component } from 'react'
import MUIDataTable from 'mui-datatables'
import { createMuiTheme, MuiThemeProvider } from '@material-ui/core';
import api from '../../api';
import CreateManagementDoc from './CreateManagementDoc';
var ct = require("../../library/CustomTable");
......@@ -12,7 +13,8 @@ export default class AuditTahunan extends Component {
constructor(props) {
super(props)
this.state = {
dataTable: []
dataTable: [],
visibleCreate: false
}
}
......@@ -50,17 +52,6 @@ export default class AuditTahunan extends Component {
]
return (
<div style={{ width: '100%' }}>
<div style={{ display: 'grid', justifyContent: 'flex-end' }}>
<button
type="button"
onClick={() => null}
style={{ marginRight: 25 }}
>
<div style={{ width: 150, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#fff', fontSize: 11 }}>Add</span>
</div>
</button>
</div>
<div style={{ padding: 25 }}>
<MuiThemeProvider theme={getMuiTheme()}>
<MUIDataTable
......
import React, { Component } from 'react'
import Images from '../../assets/Images'
import { TextField, withStyles, Snackbar } from '@material-ui/core'
import api from '../../api'
import Autocomplete from '@material-ui/lab/Autocomplete'
import Constant from '../../library/Constant'
import { format } from 'date-fns';
import UploadFile from "../../library/Upload";
import { ExcelRenderer } from 'react-excel-renderer';
import * as R from 'ramda'
import MuiAlert from '@material-ui/lab/Alert';
const Alert = withStyles({
})((props) => <MuiAlert elevation={6} variant="filled" {...props} />);
export default class CreateManagementDoc extends Component {
constructor(props) {
super(props)
this.state = {
perusahaan: null,
perusahaanData: null,
getPerusahaan: null,
errorPerusahaan: false,
msgErrorPerusahaan: '',
document: null,
documentData: null,
getDocument: null,
errorDocument: false,
msgErrorDocument: '',
listPeriode: null,
periode: null,
description: '',
errorDesc: false,
msgErrorDesc: '',
file: null,
alert: false,
tipeAlert: '',
messageAlert: '',
fileType: ''
}
}
componentDidMount() {
this.getDataCompany()
this.getDataDocument()
this.getPeriode()
}
getDataCompany() {
api.create().getPerusahaanActive().then((response) => {
if (response.data) {
if (response.data.status == 'success') {
let data = response.data.data
let typeData = data.map((item) => {
return {
company_id: item.company_id,
company_name: item.company_name
}
})
typeData.push({
company_id: 0,
company_name: 'Default'
})
let typeProps = {
options: typeData.sort((a, b) => a.company_id - b.company_id),
getOptionLabel: (option) => option.company_name,
};
this.setState({ perusahaan: typeProps, perusahaanData: response.data.data })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
setTimeout(() => {
localStorage.removeItem(Constant.TOKEN)
window.location.reload();
}, 1000);
}
})
}
} else {
alert(response.problem)
}
})
}
getDataDocument() {
api.create().getDocumentCategory().then(response => {
if (response.data) {
if (response.data.status == 'success') {
let data = response.data.data
let typeData = data.map((item) => {
return {
document_category_id: item.document_category_id,
document_category_name: item.document_category_name
}
})
let typeProps = {
options: typeData.sort((a, b) => a.document_category_id - b.document_category_id),
getOptionLabel: (option) => option.document_category_name,
};
this.setState({ document: typeProps, documentData: response.data.data })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
setTimeout(() => {
localStorage.removeItem(Constant.TOKEN)
window.location.reload();
}, 1000);
}
})
}
} else {
alert(response.problem)
}
})
}
getPeriode() {
api.create().getPeriodeTransaction().then(response => {
let dateNow = new Date
let year = format(dateNow, 'yyyy')
if (response.data) {
if (response.data.status === "success") {
let data = response.data.data
let periodeData = data.map((item) => {
return {
periode: item,
}
})
let defaultProps = {
options: periodeData,
getOptionLabel: (option) => option.periode,
};
let index = data.sort((a, b) => a - b).findIndex((val) => val == year)
this.setState({ listPeriode: defaultProps, periode: index == -1 ? periodeData[0] : periodeData[index] })
}
}
})
}
clearMessage() {
this.setState({
errorPerusahaan: false,
msgErrorPerusahaan: '',
errorDocument: false,
msgErrorDocument: '',
})
}
fileHandler = (event) => {
let fileObj = event
let length = event.name.split(".").length
let fileType = event.name.split(".")[length - 1]
ExcelRenderer(fileObj, (err, resp) => {
console.log(fileType)
if (err) {
console.log(err);
}
else {
this.setState({ file: event, fileType: String(fileType) })
}
})
}
validasi() {
if (R.isNil(this.state.getPerusahaan)) {
this.setState({ errorPerusahaan: true, msgErrorPerusahaan: 'Company Cannot be Empty.' })
} else if (R.isNil(this.state.getDocument)) {
this.setState({ errorDocument: true, msgErrorDocument: 'Category Cannot be Empty.' })
} else if (R.isNil(this.state.file)) {
this.setState({ alert: true, messageAlert: 'File Cannot be Empty.', tipeAlert: 'warning' })
} else {
const formData = new FormData();
formData.append("file", this.state.file);
formData.append("companyId", this.state.getPerusahaan.company_id);
formData.append("documentCategoryId", this.state.getDocument.document_category_id);
formData.append("documentPeriode", this.state.periode.periode);
formData.append("description", this.state.description);
formData.append("extension", this.state.fileType);
this.setState({ formData }, ()=> {
this.createDocument()
})
}
}
createDocument(){
api.create().uploadDocument(this.state.formData).then(response => {
console.log(response)
})
}
closeAlert() {
this.setState({ alert: false })
}
deleteFile(e){
this.setState({ file: null})
}
render() {
return (
<div className="test app-popup-show">
<Snackbar open={this.state.alert} autoHideDuration={6000} onClose={() => this.closeAlert()}>
<Alert onClose={() => this.closeAlert()} severity={this.state.tipeAlert}>
{this.state.messageAlert}
</Alert>
</Snackbar>
<div className="popup-content background-white border-radius" style={{ borderRadius: 8 }}>
<div className="popup-panel grid grid-2x main-color" style={{ height: 64, borderTopRightRadius: 8, borderTopLeftRadius: 8 }}>
<div className="col-1" style={{ maxWidth: "inherit", display: 'flex', alignItems: 'center' }}>
<div className="popup-title">
<span style={{ color: '#fff', fontSize: 16, fontWeight: 'bold' }}>Create</span>
</div>
</div>
<div className="col-2 content-right" style={{ maxWidth: "inherit", alignSelf: 'center' }}>
<button
type="button"
className="btn btn-circle btn-white"
onClick={() => this.props.onClickClose()}
>
<img src={Images.close} />
</button>
</div>
</div>
<div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20, paddingTop: 20 }}>
<div className="column-1">
<div style={{ padding: 10, borderRadius: 5 }}>
<Autocomplete
{...this.state.perusahaan}
debug
id="tipe"
onChange={(event, newInputValue) => this.setState({ getPerusahaan: newInputValue }, () => this.clearMessage())}
renderInput={(params) =>
<TextField {...params}
error={this.state.errorPerusahaan}
helperText={this.state.msgErrorPerusahaan}
InputProps={{ ...params.InputProps, style: { fontSize: 11 } }}
InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }}
label="Company Name" />}
value={this.state.getPerusahaan}
/>
</div>
<div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
<Autocomplete
{...this.state.listPeriode}
id="periode"
onChange={(event, newInputValue) => this.setState({ periode: newInputValue }, () => {
this.clearMessage()
})}
debug
disableClearable
style={{ width: 250 }}
renderInput={(params) =>
<TextField {...params} label="Periode" margin="normal" style={{ marginTop: 7 }}
InputProps={{ ...params.InputProps, style: { fontSize: 11 } }}
InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }}
/>}
value={this.state.periode}
/>
</div>
</div>
<div className="column-2">
<div style={{ padding: 10, borderRadius: 5 }}>
<Autocomplete
{...this.state.document}
debug
id="tipe"
onChange={(event, newInputValue) => this.setState({ getDocument: newInputValue }, () => this.clearMessage())}
renderInput={(params) =>
<TextField {...params}
error={this.state.errorDocument}
helperText={this.state.msgErrorDocument}
InputProps={{ ...params.InputProps, style: { fontSize: 11 } }}
InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }}
label="Category" />}
value={this.state.getDocument}
/>
</div>
</div>
</div>
<div style={{ paddingLeft: 30, paddingRight: 30 }}>
<UploadFile
type={this.state.uploadStatus}
percentage={this.state.percentage}
result={this.state.result}
acceptedFiles={["xls", "xlsx", "pdf", "PDF"]}
intent={"management"}
onHandle={(dt) => {
this.fileHandler(dt)
this.setState({ uploadStatus: 'idle', percentage: '0' })
}}
onDelete={(e) => {
this.deleteFile(e)
}}
onUpload={() => alert('sukses')}
/>
</div>
<div className="margin-top-10px" style={{ paddingLeft: 30, paddingRight: 30, borderRadius: 5, paddingBottom: 20 }}>
<TextField
style={{ width: '100%' }}
id="description"
label="Description"
value={this.state.decription}
inputProps={{
min: 0,
style: {
fontSize: 11
}
}}
InputLabelProps={{
style: {
fontSize: 11,
color: '#7e8085'
}
}}
name="Description"
onChange={(e) => {
this.setState({
description: e.target.value
})
this.clearMessage()
}}
error={this.state.errorDesc}
helperText={this.state.msgErrorDesc}
>
</TextField>
</div>
<div className="border-top grid grid-2x" style={{ height: 56, backgroundColor: '#f5f5f5', paddingLeft: 20, paddingRight: 20 }}>
<div className="column-1" style={{ alignSelf: 'center' }}>
<button
type="button"
onClick={() => this.props.onClickClose()}
>
<div style={{ width: 102, height: 30, border: 'solid 1px #354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#354960', fontSize: 11 }}>Cancel</span>
</div>
</button>
</div>
<div className="column-2" style={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
<button
type="button"
onClick={() => this.validasi()}
>
<div style={{ width: 102, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#fff', fontSize: 11 }}>Save</span>
</div>
</button>
</div>
</div>
</div>
</div>
)
}
}
......@@ -5,6 +5,7 @@ import Images from '../../assets/Images'
import ManualBookTia from './ManualBookTia'
import api from '../../api'
import AuditTahunan from './AuditTahunan'
import CreateManagementDoc from './CreateManagementDoc'
export default class DocumentManagement extends Component {
constructor(props) {
......@@ -47,6 +48,17 @@ export default class DocumentManagement extends Component {
</div>
<div style={{ padding: 20 }}>
<Paper style={{ padding: 20 }}>
<div style={{ display: 'grid', justifyContent: 'flex-end' }}>
<button
type="button"
onClick={() => this.setState({ visibleCreate: true })}
style={{ marginRight: 25 }}
>
<div style={{ width: 150, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#fff', fontSize: 11 }}>Add</span>
</div>
</button>
</div>
<div style={{ display: 'flex' }}>
<Tabs
orientation="vertical"
......@@ -79,6 +91,11 @@ export default class DocumentManagement extends Component {
</Paper>
</div>
{this.state.visibleCreate && (
<CreateManagementDoc
onClickClose={() => this.setState({ visibleCreate: false })}
/>
)}
</div>
)
}
......
......@@ -21,17 +21,6 @@ export default class ManualBookTia extends Component {
]
return (
<div style={{ width: '100%' }}>
<div style={{ display: 'grid', justifyContent: 'flex-end' }}>
<button
type="button"
onClick={() => null}
style={{ marginRight: 25 }}
>
<div style={{ width: 150, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#fff', fontSize: 11 }}>Add</span>
</div>
</button>
</div>
<div style={{ padding: 25 }}>
<MuiThemeProvider theme={getMuiTheme()}>
<MUIDataTable
......
......@@ -58,9 +58,6 @@ export default class CreateParameter extends Component {
componentDidMount() {
if (this.props.type === 'edit') {
this.setState({
getSettingTypeID: this.props.data[0],
})
this.getDetailParameter()
} else {
let date = format(new Date, 'yyyy-MM-dd')
......@@ -85,6 +82,7 @@ export default class CreateParameter extends Component {
getSettingGroupID: response.data.data.setting_group_id,
getCompanyID: data.company_id,
settingType: data.setting_type,
getSettingTypeID: data.setting_type_id
}, () => {
this.getAllGroup()
this.getPerusahaan()
......@@ -169,7 +167,7 @@ export default class CreateParameter extends Component {
options: perusahaanData,
getOptionLabel: (option) => option.company_name,
};
this.setState({ perusahaan: typeProps, perusahaanData: response.data.data, getPerusahaan: index == -1 ? null : perusahaanData[index], msgErrorPerusahaan: index === -1 ? 'Company has been inactive' : "", errorPerusahaan: index === -1 ? true : false })
this.setState({ perusahaan: typeProps, perusahaanData: response.data.data, getPerusahaan: index == -1 ? null : perusahaanData[index], msgErrorPerusahaan: index === -1 ? 'Company has been Inactive' : "", errorPerusahaan: index === -1 ? true : false })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
......@@ -283,7 +281,7 @@ export default class CreateParameter extends Component {
options: typeData,
getOptionLabel: (option) => option.setting_type_name,
};
this.setState({ enableParameter: true, parameter: typeProps, parameterData: response.data.data, getParameter: index == -1 ? typeData[0] : typeData[index] })
this.setState({ enableParameter: true, parameter: typeProps, parameterData: response.data.data, getParameter: index == -1 ? null : typeData[index] })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
......
......@@ -36,6 +36,7 @@ export default class Parameter extends Component {
messageAlert: '',
create: false,
edit: false,
delete: false,
load: false,
judul: ''
}
......@@ -58,6 +59,7 @@ export default class Parameter extends Component {
this.setState({
create: response.data.data.create,
edit: response.data.data.edit,
delete: response.data.data.delete,
load: true
})
} else {
......@@ -682,8 +684,9 @@ export default class Parameter extends Component {
filter: false,
customBodyRender: (val, tableMeta) => {
return (
this.state.edit && (
<div style={{ display: 'flex' }}>
{this.state.edit &&
<span>
<a data-tip={'Edit'} data-for="edit">
<button
style={{
......@@ -699,6 +702,10 @@ export default class Parameter extends Component {
</button>
</a>
<ReactTooltip border={true} id="edit" place="bottom" type="light" effect="solid" />
</span>
}
{this.state.delete &&
<span>
<a data-tip={'Delete'} data-for="delete">
<button
style={{
......@@ -713,8 +720,10 @@ export default class Parameter extends Component {
</button>
</a>
<ReactTooltip border={true} id="delete" place="bottom" type="light" effect="solid" />
</span>
}
</div >
)
);
}
}
......
......@@ -143,7 +143,7 @@ export default class CreatePerusahaan extends Component {
options: perusahaanData,
getOptionLabel: (option) => option.company_name,
};
this.setState({ perusahaan: typeProps, perusahaanData: response.data.data, getPerusahaan: index == -1 ? null : perusahaanData[index] })
this.setState({ perusahaan: typeProps, perusahaanData: response.data.data, getPerusahaan: index == -1 ? null : perusahaanData[index], msgErrorPC: index === -1 ? 'Company has been Inactive' : "", errorPC: index === -1 ? true : false })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
......@@ -183,7 +183,7 @@ export default class CreatePerusahaan extends Component {
options: typeData,
getOptionLabel: (option) => option.business_unit_name,
};
this.setState({ types: typeProps, typeData: response.data.data, getTypes: index == -1 ? null : typeData[index] })
this.setState({ types: typeProps, typeData: response.data.data, getTypes: index == -1 ? null : typeData[index], msgErrorUB: index === -1 ? 'Business Unit has been Inactive' : "", errorUB: index === -1 ? true : false })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
......
......@@ -49,6 +49,7 @@ export default class Perusahaan extends Component {
messageAlert: '',
create: false,
edit: false,
delete: false,
load: false,
judul: '',
rowData: [],
......@@ -281,6 +282,7 @@ export default class Perusahaan extends Component {
this.setState({
create: response.data.data.create,
edit: response.data.data.edit,
delete: response.data.data.delete,
load: true
})
} else {
......@@ -525,8 +527,9 @@ export default class Perusahaan extends Component {
sort: false,
customBodyRender: (val, tableMeta) => {
return (
this.state.edit && (
<div style={{ display: 'flex' }}>
{this.state.edit &&
<span>
<a data-tip={'Edit'} data-for="edit">
<button
style={{
......@@ -546,6 +549,10 @@ export default class Perusahaan extends Component {
</button>
</a>
<ReactTooltip border={true} id="edit" place="bottom" type="light" effect="solid" />
</span>
}
{this.state.delete &&
<span>
<a data-tip={'Delete'} data-for="delete">
<button
style={{
......@@ -566,8 +573,9 @@ export default class Perusahaan extends Component {
</button>
</a>
<ReactTooltip border={true} id="delete" place="bottom" type="light" effect="solid" />
</span>
}
</div>
)
);
}
}
......
......@@ -44,6 +44,7 @@ export default class ReportItems extends Component {
messageAlert: '',
buttonCreate: false,
buttonEdit: false,
buttonDelete: false,
load: false,
judul: '',
reportNameDelete: '',
......@@ -585,6 +586,7 @@ export default class ReportItems extends Component {
this.setState({
buttonCreate: response.data.data.create,
buttonEdit: response.data.data.edit,
buttonDelete: response.data.data.delete,
load: true
})
} else {
......@@ -829,8 +831,9 @@ export default class ReportItems extends Component {
sort: false,
customBodyRender: (val, tableMeta) => {
return (
this.state.buttonEdit && (
<div style={{ display: 'flex' }}>
{this.state.buttonEdit &&
<span>
<a data-tip={'Edit'} data-for="edit">
<button
style={{
......@@ -845,6 +848,10 @@ export default class ReportItems extends Component {
</button>
</a>
<ReactTooltip border={true} id="edit" place="bottom" type="light" effect="solid" />
</span>
}
{this.state.buttonDelete &&
<span>
<a data-tip={'Delete'} data-for="delete">
<button
style={{
......@@ -860,8 +867,9 @@ export default class ReportItems extends Component {
</button>
</a>
<ReactTooltip border={true} id="delete" place="bottom" type="light" effect="solid" />
</span>
}
</div >
)
);
}
}
......
......@@ -45,6 +45,7 @@ export default class UnitBisnis extends Component {
messageAlert: '',
create: false,
edit: false,
delete: false,
load: false,
judul: '',
rowData: [],
......@@ -228,6 +229,7 @@ export default class UnitBisnis extends Component {
this.setState({
create: response.data.data.create,
edit: response.data.data.edit,
delete: response.data.data.delete,
load: true
})
} else {
......@@ -477,8 +479,9 @@ export default class UnitBisnis extends Component {
sort: false,
customBodyRender: (val, tableMeta) => {
return (
this.state.edit && (
<div style={{ display: 'flex' }}>
{this.state.edit &&
<span>
<a data-tip={'Edit'} data-for="edit">
<button
style={{
......@@ -494,6 +497,10 @@ export default class UnitBisnis extends Component {
</button>
</a>
<ReactTooltip border={true} id="edit" place="bottom" type="light" effect="solid" />
</span>
}
{this.state.delete &&
<span>
<a data-tip={'Delete'} data-for="delete">
<button
style={{
......@@ -508,8 +515,9 @@ export default class UnitBisnis extends Component {
</button>
</a>
<ReactTooltip border={true} id="delete" place="bottom" type="light" effect="solid" />
</span>
}
</div >
)
);
}
}
......
......@@ -40,16 +40,23 @@ export default class UserRole extends Component {
messageAlert: '',
buttonCreate: false,
buttonEdit: false,
buttonDelete: false,
load: false,
judul: ''
}
}
componentDidMount() {
this.daskdkas()
this.getUser()
this.getPermission()
}
async daskdkas() {
let res = await localStorage.getItem(Constant.TOKEN)
console.log(res)
}
closeEdit() {
this.setState({ edit: false })
}
......@@ -99,6 +106,7 @@ export default class UserRole extends Component {
this.setState({
buttonCreate: response.data.data.create,
buttonEdit: response.data.data.edit,
buttonDelete: response.data.data.delete,
load: true
})
} else {
......@@ -176,6 +184,26 @@ export default class UserRole extends Component {
let data = this.state.rowData
api.create().deleteUser(data[1]).then((response) => {
this.setState({popupDel: false})
if (response.data) {
if (response.ok) {
if (response.data.status == 'success') {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'success' })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
setTimeout(() => {
localStorage.removeItem(Constant.TOKEN)
window.location.reload();
}, 1000);
}
})
}
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
}
} else {
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
}
this.getUser()
})
}
......@@ -401,6 +429,7 @@ export default class UserRole extends Component {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'success' })
this.getUser()
this.closeEdit()
window.location.reload();
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
......@@ -430,6 +459,7 @@ export default class UserRole extends Component {
if (response.data.status === 'Success') {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'success', add: false })
this.getUser()
window.location.reload();
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
......@@ -467,14 +497,15 @@ export default class UserRole extends Component {
uploadUser() {
api.create().uploadUser(this.state.payload).then(response => {
this.setState({buttonError: false})
console.log(response)
if (response.data) {
if (response.ok) {
if (response.data.status === "success") {
this.getUser()
this.setState({ visibleUser: true, alert: true, messageAlert: response.data.message, tipeAlert: 'success' })
this.setState({ visibleUser: true, alert: true, messageAlert: response.data.message, tipeAlert: 'success', payload: [], rows: [], judul: '' })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning', payload: [], rows: [], judul: '' }, () => {
if (response.data.message.includes("Someone Logged In")) {
setTimeout(() => {
localStorage.removeItem(Constant.TOKEN)
......@@ -484,10 +515,10 @@ export default class UserRole extends Component {
})
}
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error', payload: [], rows: [], judul: '' })
}
} else {
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error', payload: [], rows: [], judul: '' })
}
})
}
......@@ -506,6 +537,8 @@ export default class UserRole extends Component {
<div style={{ display: 'flex' }}>
{/* {tableMeta.rowData[6] === "Active" ? */}
{this.state.buttonEdit && (
<span>
<a data-tip={'Edit'} data-for="edit">
<button
style={{
backgroundColor: 'transparent',
......@@ -517,8 +550,13 @@ export default class UserRole extends Component {
>
<img src={Images.editCopy} />
</button>
</a>
<ReactTooltip border={true} id="edit" place="bottom" type="light" effect="solid" />
</span>
)}
{this.state.buttonEdit && (
{this.state.buttonDelete && (
<span>
<a data-tip={'Delete'} data-for="delete">
<button
style={{
backgroundColor: 'transparent',
......@@ -530,6 +568,9 @@ export default class UserRole extends Component {
>
<img src={Images.delete} />
</button>
</a>
<ReactTooltip border={true} id="delete" place="bottom" type="light" effect="solid" />
</span>
)}
{/* :
null
......@@ -761,7 +802,7 @@ export default class UserRole extends Component {
<div style={{ display: 'flex', width: '100%', placeContent: 'flex-end', padding: 20 }}>
<button
type="button"
onClick={() => this.setState({ visibleUser: true })}
onClick={() => this.setState({ visibleUser: true, payload: [], rows: [], judul: '', buttonError: false })}
style={{ marginRight: 20 }}
>
<div style={{ width: 102, height: 30, border: 'solid 1px #354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
......@@ -799,35 +840,69 @@ export default class UserRole extends Component {
)}
{this.state.popupDel && (
<div className="test app-popup-show">
<div className="popup-content background-white border-radius" style={{ borderRadius: 8, padding: 50 }}>
<div style={{ display: 'flex', justifyContent: 'center' }}>
<img src={Images.failedCopy} />
<div className="popup-content background-white border-radius" style={{ borderRadius: 8 }}>
<div style={{ display: 'flex', justifyContent: 'center', paddingTop: 20 }}>
<img src={Images.failed} />
</div>
<div style={{ display: 'grid', justifyContent: 'center', marginTop: 20 }}>
<span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
Delete {this.state.rowData[2]} ?
<div style={{ display: 'grid', justifyContent: 'center', marginTop: 20, paddingBottom: 20 }}>
<span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold', fontFamily: 'Nunito Sans, sans-serif' }}>
Delete {titleCase(this.state.rowData[2])} ?
</span>
{/* <span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
{`Please try again later.`}
</span> */}
</div>
<div style={{ display: 'flex', justifyContent: 'center', marginTop: 24 }}>
<div className="border-top grid grid-2x" style={{ height: 56, backgroundColor: '#f5f5f5', paddingLeft: 20, paddingRight: 20 }}>
<div className="column-1" style={{ alignSelf: 'center' }}>
<button
className={"btn-save"}
type="button"
onClick={()=> this.setState({popupDel: false})}
>
<span style={{ color: 'white' }}>Cancel</span>
<div style={{ width: 102, height: 30, border: 'solid 1px #354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#354960', fontSize: 11 }}>Cancel</span>
</div>
</button>
</div>
<div className="column-2" style={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
<button
className={"btn-save"}
style={{ marginLeft: 50}}
type="button"
onClick={()=> this.deleteUser()}
>
<span style={{ color: 'white' }}>Delete</span>
<div style={{ width: 102, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#fff', fontSize: 11 }}>Delete</span>
</div>
</button>
</div>
</div>
</div>
</div>
// <div className="test app-popup-show">
// <div className="popup-content background-white border-radius" style={{ borderRadius: 8, padding: 50 }}>
// <div style={{ display: 'flex', justifyContent: 'center' }}>
// <img src={Images.failed} />
// </div>
// <div style={{ display: 'grid', justifyContent: 'center', marginTop: 20 }}>
// <span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
// Delete {titleCase(this.state.rowData[2])} ?
// </span>
// {/* <span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
// {`Please try again later.`}
// </span> */}
// </div>
// <div style={{ display: 'flex', justifyContent: 'center', marginTop: 24 }}>
// <button
// className={"btn-save"}
// onClick={()=> this.setState({popupDel: false})}
// >
// <span style={{ color: 'white' }}>Cancel</span>
// </button>
// <button
// className={"btn-save"}
// style={{ marginLeft: 50}}
// onClick={()=> this.deleteUser()}
// >
// <span style={{ color: 'white' }}>Delete</span>
// </button>
// </div>
// </div>
// </div>
)}
{this.state.popupError && (
<PopUpFailedSave onClickClose={() => this.setState({ popupError: false })} />
......
......@@ -254,7 +254,7 @@ export default class EditUser extends Component {
let index = roleData.findIndex((val) => val.role_id === id)
console.log(index)
this.setState({ listRole: defaultProps, role: index === -1 ? null : roleData[index], msgErrorRN: index === -1 ? 'Role has been inactive' : '', errorRoleName: index === -1 ? true : false })
this.setState({ listRole: defaultProps, role: index === -1 ? null : roleData[index], msgErrorRN: index === -1 ? 'Role has been Inactive' : '', errorRoleName: index === -1 ? true : false })
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
if (response.data.message.includes("Someone Logged In")) {
......
......@@ -36,6 +36,7 @@ class UserRole extends Component {
messageAlert: '',
buttonCreate: false,
buttonEdit: false,
buttonDelete: false,
load: false
}
}
......@@ -98,6 +99,7 @@ class UserRole extends Component {
this.setState({
buttonCreate: response.data.data.create,
buttonEdit: response.data.data.edit,
buttonDelete: response.data.data.delete,
load: true
})
} else {
......@@ -215,7 +217,7 @@ class UserRole extends Component {
</div >
</button>
)}
{this.state.buttonEdit && (
{this.state.buttonDelete && (
<button
style={{
backgroundColor: 'transparent',
......@@ -361,35 +363,69 @@ class UserRole extends Component {
)}
{this.state.popupDel && (
<div className="test app-popup-show">
<div className="popup-content background-white border-radius" style={{ borderRadius: 8, padding: 50 }}>
<div style={{ display: 'flex', justifyContent: 'center' }}>
<img src={Images.failedCopy} />
<div className="popup-content background-white border-radius" style={{ borderRadius: 8 }}>
<div style={{ display: 'flex', justifyContent: 'center', paddingTop: 20 }}>
<img src={Images.failed} />
</div>
<div style={{ display: 'grid', justifyContent: 'center', marginTop: 20 }}>
<span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
Delete {this.state.rowData[2]} ?
<div style={{ display: 'grid', justifyContent: 'center', marginTop: 20, paddingBottom: 20 }}>
<span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold', fontFamily: 'Nunito Sans, sans-serif' }}>
Delete {titleCase(this.state.rowData[2])} ?
</span>
{/* <span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
{`Please try again later.`}
</span> */}
</div>
<div style={{ display: 'flex', justifyContent: 'center', marginTop: 24 }}>
<div className="border-top grid grid-2x" style={{ height: 56, backgroundColor: '#f5f5f5', paddingLeft: 20, paddingRight: 20 }}>
<div className="column-1" style={{ alignSelf: 'center' }}>
<button
className={"btn-save"}
type="button"
onClick={()=> this.setState({popupDel: false})}
>
<span style={{ color: 'white' }}>Cancel</span>
<div style={{ width: 102, height: 30, border: 'solid 1px #354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#354960', fontSize: 11 }}>Cancel</span>
</div>
</button>
</div>
<div className="column-2" style={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
<button
className={"btn-save"}
style={{ marginLeft: 50}}
type="button"
onClick={()=> this.deleteRole()}
>
<span style={{ color: 'white' }}>Delete</span>
<div style={{ width: 102, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
<span style={{ color: '#fff', fontSize: 11 }}>Delete</span>
</div>
</button>
</div>
</div>
</div>
</div>
// <div className="test app-popup-show">
// <div className="popup-content background-white border-radius" style={{ borderRadius: 8, padding: 50 }}>
// <div style={{ display: 'flex', justifyContent: 'center' }}>
// <img src={Images.failed} />
// </div>
// <div style={{ display: 'grid', justifyContent: 'center', marginTop: 20 }}>
// <span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
// Delete {titleCase(this.state.rowData[2])} ?
// </span>
// {/* <span style={{ textAlign: 'center', fontSize: 14, fontWeight: 'bold' }}>
// {`Please try again later.`}
// </span> */}
// </div>
// <div style={{ display: 'flex', justifyContent: 'center', marginTop: 24 }}>
// <button
// className={"btn-save"}
// onClick={()=> this.setState({popupDel: false})}
// >
// <span style={{ color: 'white' }}>Cancel</span>
// </button>
// <button
// className={"btn-save"}
// style={{ marginLeft: 50}}
// onClick={()=> this.deleteRole()}
// >
// <span style={{ color: 'white' }}>Delete</span>
// </button>
// </div>
// </div>
// </div>
)}
</div>
);
......
......@@ -142,6 +142,7 @@ export default class AddRole extends Component {
setTimeout(() => {
this.props.onClickClose()
this.props.refresh()
window.location.reload();
}, 750);
} else {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
......
......@@ -168,6 +168,7 @@ export default class EditRole extends Component {
this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'success' })
setTimeout(() => {
this.props.onClickClose()
window.location.reload();
this.props.refresh()
}, 750);
} else {
......@@ -621,6 +622,9 @@ export default class EditRole extends Component {
<div className="column 3">
<Typography style={{ fontSize: 12, color: 'white' }}>Edit</Typography>
</div>
<div className="column 4">
<Typography style={{ fontSize: 12, color: 'white' }}>Delete</Typography>
</div>
</div>
</div>
......
......@@ -49,7 +49,42 @@ class Upload extends Component {
let length = acceptedFiles[0].name.split(".").length
let fileType = acceptedFiles[0].name.split(".")[length - 1]
formData.append('file', acceptedFiles[0])
console.log(acceptedFiles);
console.log(fileType);
if (this.props.intent === 'management') {
if (acceptedFiles) {
if (this.props.acceptedFiles.includes(fileType)) {
if (this.state.sizeFile < 10000) {
this.setState({
file: acceptedFiles[0],
typeFile: fileType,
nameFile: acceptedFiles[0].name,
sizeFile: (acceptedFiles[0].size / 1000).toFixed(0),
previewVisible: true,
inputVisible: false,
uploadProgress: false,
percentage: '0'
})
this.props.onHandle(acceptedFiles[0])
} else {
this.setState({ alertMessage: 'The file is too large. Allowed maximum size is 10MB', alert: true })
// alert('File Tidak Boleh Lebih Dari 1MB')
}
} else {
this.setState({ alertMessage: 'File extension not allowed.', alert: true })
// alert('File Tidak Mendukung')
}
}
else {
this.setState({
previewVisible: false,
inputVisible: true,
uploadProgress: false,
percentage: '0'
})
this.setState({ alertMessage: "File extension not allowed.", alert: true })
// alert("Unsupported Media Type")
}
} else {
if (acceptedFiles) {
this.setState({
file: acceptedFiles[0],
......@@ -74,14 +109,25 @@ class Upload extends Component {
// alert("Unsupported Media Type")
}
}
}
onRemove = () => {
if (this.props.intent === "management") {
this.setState({
previewVisible: false,
inputVisible: true,
uploadProgress: false,
percentage: '0'
})
this.props.onDelete("delete")
} else {
this.setState({
previewVisible: false,
inputVisible: true,
uploadProgress: false,
percentage: '0'
})
}
}
onUpload = () => {
......@@ -92,12 +138,21 @@ class Upload extends Component {
// console.log(strState);
if (strProps.includes(strState)) {
if (this.props.intent === 'management') {
if (this.state.sizeFile < 10000) {
this.props.onUpload()
} else {
this.setState({ alertMessage: 'The file is too large. Allowed maximum size is 10MB', alert: true })
// alert('File Tidak Boleh Lebih Dari 1MB')
}
} else {
if (this.state.sizeFile < 1000) {
this.props.onUpload()
} else {
this.setState({ alertMessage: 'The file is too large. Allowed maximum size is 1MB', alert: true })
// alert('File Tidak Boleh Lebih Dari 1MB')
}
}
} else {
this.setState({ alertMessage: 'File extension not allowed.', alert: true })
// alert('File Tidak Mendukung')
......@@ -171,7 +226,7 @@ class Upload extends Component {
onClick={this.state.uploadProgress === true ? null : this.onUpload}>
{/*<i className={this.state.iconButtonUpload} />*/}
{this.state.uploadProgress === true
? <i className={'fa fa-1x fa-spinner fa-spin'} /> :
? <i className={'fa fa-1x fa-spinner fa-spin'} /> : this.props.intent === 'management' ? null :
<img src={Images.upload} />}
</button>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment