|
|
|
@ -3,9 +3,8 @@ import { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Table } from 'rea
|
|
|
|
|
import { Button, Form, FormGroup, Label, Input } from 'reactstrap'; |
|
|
|
|
import 'antd/dist/antd.css'; |
|
|
|
|
import axios from 'axios'; |
|
|
|
|
import { MENU_SEARCH } from '../../../const/ApiConst.js'; |
|
|
|
|
import { MENU_COMPANY_SEARCH, MENU_SEARCH } from '../../../const/ApiConst.js'; |
|
|
|
|
import { withTranslation, WithTranslation } from 'react-i18next'; |
|
|
|
|
const BASE_URL = "http://siopas.co.id/custom-php/api/geohr/"; |
|
|
|
|
|
|
|
|
|
const token = window.localStorage.getItem('token'); |
|
|
|
|
|
|
|
|
@ -52,30 +51,61 @@ class DialogMenuRoles extends Component {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getAllMenu = async () => { |
|
|
|
|
const { companyID } = this.props; |
|
|
|
|
const { roleName } = this.props; |
|
|
|
|
if (roleName !== "Super Admin") { |
|
|
|
|
const payload = { |
|
|
|
|
"paging": { "start": 0, "length": -1 }, |
|
|
|
|
"columns": [ |
|
|
|
|
{ "name": "name", "logic_operator": "ilike", "value": "", "operator": "AND" } |
|
|
|
|
], |
|
|
|
|
"joins": [], |
|
|
|
|
"paging": { |
|
|
|
|
"start": 0, |
|
|
|
|
"length": -1 |
|
|
|
|
}, |
|
|
|
|
"columns": [{ |
|
|
|
|
"name": "company_id", |
|
|
|
|
"logic_operator": "=", |
|
|
|
|
"value": companyID, |
|
|
|
|
"operator": "AND" |
|
|
|
|
}], |
|
|
|
|
"joins": [{ |
|
|
|
|
"name": "m_menu", |
|
|
|
|
"column_join": "menu_id", |
|
|
|
|
"column_results": [ |
|
|
|
|
"name" |
|
|
|
|
] |
|
|
|
|
}], |
|
|
|
|
"orders": { "columns": ["id"], "ascending": false } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const result = await axios |
|
|
|
|
.post(MENU_SEARCH, payload, config) |
|
|
|
|
.post(MENU_COMPANY_SEARCH, payload, config) |
|
|
|
|
.then(res => res) |
|
|
|
|
.catch((error) => error.response); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (result && result.data && result.data.code == 200) { |
|
|
|
|
this.setState({ menu: result.data.data }, () => { |
|
|
|
|
this.setStateMenu(false); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
const payload = { |
|
|
|
|
"paging": { |
|
|
|
|
"start": 0, |
|
|
|
|
"length": -1 |
|
|
|
|
}, |
|
|
|
|
"columns": [{ |
|
|
|
|
"name": "name", |
|
|
|
|
"logic_operator": "ilike", |
|
|
|
|
"value": "", |
|
|
|
|
"operator": "AND" |
|
|
|
|
}], |
|
|
|
|
"orders": { "columns": ["id"], "ascending": false } |
|
|
|
|
} |
|
|
|
|
const result = await axios |
|
|
|
|
.post(MENU_SEARCH, payload, config) |
|
|
|
|
.then(res => res) |
|
|
|
|
.catch((error) => error.response); |
|
|
|
|
if (result && result.data && result.data.code == 200) { |
|
|
|
|
this.setState({ menu: result.data.data }); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
setStateMenu = edit => { |
|
|
|
@ -96,13 +126,14 @@ class DialogMenuRoles extends Component {
|
|
|
|
|
let copyStateMenu = [...this.state.stateMenu]; |
|
|
|
|
this.props.menuRoles.map((val, indexMenu) => { |
|
|
|
|
let index = this.getIndexDataMenu(val.menu_id); |
|
|
|
|
console.log("index true", val.menu_id); |
|
|
|
|
console.log('index true', index); |
|
|
|
|
if (index >= 0) { |
|
|
|
|
copyStateMenu[index] = true; |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
this.setState({ stateMenu: [] }, () => { |
|
|
|
|
let check = copyStateMenu.some(this.checkArray); |
|
|
|
|
console.log('icheck', check); |
|
|
|
|
if (check === false) { |
|
|
|
|
this.setState({ allChecked: true, stateMenu: copyStateMenu }) |
|
|
|
|
} else { |
|
|
|
@ -151,11 +182,12 @@ class DialogMenuRoles extends Component {
|
|
|
|
|
|
|
|
|
|
renderForm = () => { |
|
|
|
|
const { menu, stateMenu } = this.state |
|
|
|
|
console.log('stateMenu', stateMenu); |
|
|
|
|
return ( |
|
|
|
|
menu.map((val, index) => { |
|
|
|
|
return ( |
|
|
|
|
<tr key={index}> |
|
|
|
|
<td>{val.name}</td> |
|
|
|
|
<td>{val.join_first_name ?? val.name}</td> |
|
|
|
|
<td><input type="checkbox" onClick={(e) => this.handleChangeCheckbox(e.target.checked, index)} defaultChecked={stateMenu[index]} /></td> |
|
|
|
|
</tr> |
|
|
|
|
) |
|
|
|
|