diff --git a/src/views/Master/MasterRoles/DialogMenuRoles.js b/src/views/Master/MasterRoles/DialogMenuRoles.js index 2ed266b..ab8c026 100644 --- a/src/views/Master/MasterRoles/DialogMenuRoles.js +++ b/src/views/Master/MasterRoles/DialogMenuRoles.js @@ -1,6 +1,6 @@ import React, { Component } from 'react' -import { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Table } from 'reactstrap'; -import { Button, Form, FormGroup, Label, Input } from 'reactstrap'; +import { Modal, ModalHeader, ModalBody, ModalFooter, Table } from 'reactstrap'; +import { Button, Form } from 'reactstrap'; import 'antd/dist/antd.css'; import axios from 'axios'; import { MENU_COMPANY_SEARCH } from '../../../const/ApiConst.js'; @@ -34,13 +34,11 @@ export default class DialogMenuRoles extends Component { stateUpdateAll: false, stateDeleteAll: false, allChecked: true, - company_id: props.company_id || null, } } async componentDidMount() { this.props.showDialog(this.showDialog); - this.getAllMenu(); } async componentDidUpdate(prevProps, prevState) { @@ -51,10 +49,8 @@ export default class DialogMenuRoles extends Component { this.setStateUpdate(true); this.setStateCreate(true); this.setStateDelete(true); + this.getAllMenu(); this.setState({ isParentClick: false, id: idRoles }); - // if (prevState.menu == this.state.menu) { - // await this.setStateReadAfterRender(); - // } } } @@ -72,11 +68,9 @@ export default class DialogMenuRoles extends Component { ], "orders": { "columns": ["id"], "ascending": false } } - if (this.state.role_name !== "Super Admin") { - payload.columns.push( - { "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" } - ) - } + payload.columns.push( + { "name": "company_id", "logic_operator": "=", "value": this.props.company_id, "operator": "AND" } + ) const result = await axios .post(MENU_COMPANY_SEARCH, payload, config) .then(res => res) @@ -116,14 +110,6 @@ export default class DialogMenuRoles extends Component { }) } - // setStateReadAfterRender = async () => { - // await new Promise((resolve) => { - // this.setState({}, resolve); - // }); - // // Now you have access to the rendered elements and can update state based on it - // this.setStateRead(true); - // } - setStateCreate = edit => { const stateCreate = []; this.state.menu.map((val) => { @@ -484,7 +470,7 @@ export default class DialogMenuRoles extends Component { }; const renderMenu = (parentId, depth = 0) => { const children = getChildren(parentId); - return children.map((menuItem, index) => { + return children.map((menuItem) => { const currentIndex = menuIdx; menuIdxList[currentIndex] = menuItem.menu_id; menuIdx++ diff --git a/src/views/Master/MasterRoles/index.js b/src/views/Master/MasterRoles/index.js index ff5045f..2578efe 100644 --- a/src/views/Master/MasterRoles/index.js +++ b/src/views/Master/MasterRoles/index.js @@ -43,7 +43,6 @@ class index extends Component { tooltipTambah: false, totalPage: 0, typeDialog: 'Save', - company_id: props.company_id || 0, role_name: props.role_name || '', role_id: props.role_id || 0, user_id: props.user_id || 0, @@ -68,29 +67,27 @@ class index extends Component { render: (text, record) => <> { - checkActMenup('/roles', 'update') ? - this.handleMenuRoles(text.id)}> - : - null - } + checkActMenup('/roles', 'update') ? + this.handleMenuRoles(text)}> + : + null + } - { - checkActMenup('/roles', 'delete') ? - this.handleDelete(text.id)}> - : - null - } + checkActMenup('/roles', 'delete') ? + this.handleDelete(text)}> + : + null + } - { - checkActMenup('/roles', 'update') ? - this.handleEdit(text)}> - : - null - } + checkActMenup('/roles', 'update') ? + this.handleEdit(text)}> + : + null + } , }, @@ -133,7 +130,6 @@ class index extends Component { if (this.state.currentPage !== 1 && this.state.currentPage > 1) { start = (this.state.currentPage * this.state.rowsPerPage) - this.state.rowsPerPage } - const formData = { "paging": { "start": start, "length": this.state.rowsPerPage }, "columns": [], @@ -153,12 +149,9 @@ class index extends Component { } if (this.state.role_name !== "Super Admin") { formData.columns.push( - { "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" }, + { "name": "company_id", "logic_operator": "=", "value": this.props.company_id, "operator": "AND" }, ) } else { - // formData.columns.push( - // { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - // ) formData.joins.push( { "name": "m_company", "column_join": "company_id", "column_results": ["company_name"] } ) @@ -228,7 +221,6 @@ class index extends Component { } saveRole = async (data) => { - const formData = { name: data.name, description: data.description, @@ -247,7 +239,6 @@ class index extends Component { } else { NotificationManager.error(`Data role gagal ditambahkan`, 'Failed!!'); } - } editRole = async (data) => { @@ -272,13 +263,13 @@ class index extends Component { } handleEdit = (data) => { - this.setState({ dataEdit: data }); + this.setState({ dataEdit: data, company_id: data.company_id }); this.handleOpenDialog('Edit'); } - handleDelete = (id) => { - id == '1' ? this.setState({ alertNotDelete: true }) : - this.setState({ alertDelete: true, idDelete: id }); + handleDelete = (data) => { + data.id == '1' ? this.setState({ alertNotDelete: true }) : + this.setState({ alertDelete: true, idDelete: data.id }); } onShowSizeChange = (current, pageSize) => { @@ -317,29 +308,24 @@ class index extends Component { } } - handleMenuRoles = async (id) => { + handleMenuRoles = async (data) => { const formData = { "paging": { "start": 0, "length": -1 }, "columns": [], "joins": [{ "name": "m_menu", "column_join": "menu_id", "column_results": ["parent_id", "name"] }], "orders": { "columns": ["id"], "ascending": false } } - - if (this.state.role_name !== "Super Admin") { - formData.columns.push( - { "name": "role_id", "logic_operator": "=", "value": `${id}`, "operator": "AND" } - ) - } - + formData.columns.push( + { "name": "role_id", "logic_operator": "=", "value": parseInt(data.id), "operator": "AND" } + ) const result = await axios .post(ROLEMENU_SEARCH, formData, this.state.config) .then(res => res) .catch((error) => error.response); if (result && result.data && result.data.code == 200) { - this.setState({ menuRoles: result.data.data, idRoles: id }, () => { + this.setState({ menuRoles: result.data.data, idRoles: data.id, company_id: data.company_id }, () => { this.handleOpenDialogMr(); }); - } else { } } @@ -348,8 +334,7 @@ class index extends Component { if (payloadArray.length > 0) { await this.deleteCurrentRoleMenu(payloadArray[0].roles_id) } - let promises = [] - let result = [] + let dataArr = [] dataArray.map((val, index) => { if (val.read === true) { const formData = { @@ -359,24 +344,22 @@ class index extends Component { read: val.read, update: val.update, delete: val.delete - } - promises.push(axios.post(ROLEMENU_ADD, formData, this.state.config) - .then(res => result.push(res))) + dataArr.push(formData); } - }) - - await Promise.all(promises); - if (result) { - if (result.length > 0) { - if (result[0].data.code === 200) { - this.getDataRoles(); - NotificationManager.success('Data roles berhasil ditambahkan!!', 'Success!!'); - } else { - NotificationManager.error(`${result[0].data.message}`, 'Failed!!'); - } - } - } + }); + + const result = await axios + .post(ROLEMENU_ADD, dataArr, this.state.config) + .then((res) => res) + .catch((err) => err.response); + + if (result && result.data && result.data.code == 200) { + this.getDataRoles(); + NotificationManager.success('Data roles berhasil ditambahkan!!', 'Success!!'); + } else { + NotificationManager.error(`${result.data.message}`, 'Failed!!'); + } } deleteCurrentRoleMenu = async (id) => { @@ -413,12 +396,9 @@ class index extends Component { if (this.state.role_name !== "Super Admin") { formData.columns.push( - { "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" }, + { "name": "company_id", "logic_operator": "=", "value": this.props.company_id, "operator": "AND" }, ) } else { - // formData.columns.push( - // { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - // ) formData.joins.push( { "name": "m_company", "column_join": "company_id", "column_results": ["company_name"] } ) @@ -462,9 +442,7 @@ class index extends Component { } render() { - const { t } = this.props; - const { tooltipTambah, tooltipExport, dialogMenuForm, dataTable, openDialog, currentPage, rowsPerPage, totalPage, search, tooltipEdit, tooltipDelete, tooltipMenu } = this.state - let noSeq = 0; + const { dialogMenuForm, dataTable, openDialog, currentPage, rowsPerPage, totalPage, search } = this.state return (
@@ -524,16 +502,15 @@ class index extends Component { { - checkActMenup('/roles', 'create') ? - - - : - null - } + checkActMenup('/roles', 'create') ? + + : + null + } - +