diff --git a/src/views/Master/MasterRoles/DialogForm.js b/src/views/Master/MasterRoles/DialogForm.js index fab37b4..966c5ee 100644 --- a/src/views/Master/MasterRoles/DialogForm.js +++ b/src/views/Master/MasterRoles/DialogForm.js @@ -5,7 +5,7 @@ import 'antd/dist/antd.css'; import { withTranslation } from 'react-i18next'; import axios from 'axios'; import { Select } from 'antd'; -import { MENU_SEARCH } from '../../../const/ApiConst.js'; +import { MENU_COMPANY_SEARCH, MENU_SEARCH } from '../../../const/ApiConst.js'; const { Option } = Select const token = window.localStorage.getItem('token'); @@ -18,6 +18,7 @@ const config = { } }; + class DialogForm extends Component { constructor(props) { super(props) @@ -29,7 +30,6 @@ class DialogForm extends Component { isParentClick: false, menu: [], selectedMenu: null, - company_id } } @@ -61,21 +61,60 @@ class DialogForm extends Component { } getAllMenu = async () => { - const payload = { - "paging": { "start": 0, "length": -1 }, - "columns": [ - { "name": "name", "logic_operator": "ilike", "value": "", "operator": "AND" } - ], - "joins": [], - "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 }); + const { companyID } = this.props; + const { roleName } = this.props; + if (roleName !== "Super Admin") { + const payload = { + "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_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 }); + } + + } 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 }); + } } + } showDialog = () => { @@ -94,12 +133,13 @@ class DialogForm extends Component { } handleSave = () => { + const { companyID } = this.props; const { id, name, description, selectedMenu, - company_id + } = this.state let data = ''; @@ -111,7 +151,7 @@ class DialogForm extends Component { name, description, selectedMenu, - company_id + company_id: companyID } // console.log('data', data); this.props.closeDialog('save', data); @@ -121,7 +161,7 @@ class DialogForm extends Component { name, description, selectedMenu, - company_id + company_id: companyID } this.props.closeDialog('edit', data); } @@ -166,7 +206,7 @@ class DialogForm extends Component { }}> {this.state.menu.map((item) => ( ))} diff --git a/src/views/Master/MasterRoles/DialogMenuRoles.js b/src/views/Master/MasterRoles/DialogMenuRoles.js index cec1b42..6826a8b 100644 --- a/src/views/Master/MasterRoles/DialogMenuRoles.js +++ b/src/views/Master/MasterRoles/DialogMenuRoles.js @@ -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 payload = { - "paging": { "start": 0, "length": -1 }, - "columns": [ - { "name": "name", "logic_operator": "ilike", "value": "", "operator": "AND" } - ], - "joins": [], - "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 }, () => { - this.setStateMenu(false); - }); + const { companyID } = this.props; + const { roleName } = this.props; + if (roleName !== "Super Admin") { + const payload = { + "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_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 ( - {val.name} + {val.join_first_name ?? val.name} this.handleChangeCheckbox(e.target.checked, index)} defaultChecked={stateMenu[index]} /> ) diff --git a/src/views/Master/MasterRoles/index.js b/src/views/Master/MasterRoles/index.js index 243519f..360b0f3 100644 --- a/src/views/Master/MasterRoles/index.js +++ b/src/views/Master/MasterRoles/index.js @@ -198,7 +198,7 @@ class index extends Component { name: data.name, description: data.description, default_page: data.selectedMenu, - company_id: this.company_id + company_id: data.company_id } const result = await axios.post(ROLE_ADD, formData, this.config) @@ -218,7 +218,8 @@ class index extends Component { const formData = { name: data.name, description: data.description, - default_page: data.selectedMenu + default_page: data.selectedMenu, + company_id: data.company_id } const url = ROLE_EDIT(data.id) const result = await axios.put(url, formData, this.config) @@ -426,6 +427,9 @@ class index extends Component { dataEdit={this.state.dataEdit} showDialog={showDialog => this.showChildDialog = showDialog} dataHs={this.state.dataIdHo} + companyID={this.state.company_id} + roleName={this.state.role_name} + /> this.showMenuRolesDialog = showDialog} menuRoles={this.state.menuRoles} + companyID={this.state.company_id} + roleName={this.state.role_name} /> diff --git a/src/views/SimproV2/CreatedProyek/index.js b/src/views/SimproV2/CreatedProyek/index.js index 5b9f8f6..fb1a538 100644 --- a/src/views/SimproV2/CreatedProyek/index.js +++ b/src/views/SimproV2/CreatedProyek/index.js @@ -306,7 +306,7 @@ const CreatedProyek = ({ params, ...props }) => { const getDataProyek = async () => { let start = 0; let hierarchy = []; - //hierarchy.push(JSON.parse(localStorage.getItem("hierarchy"))); + hierarchy.push(JSON.parse(localStorage.getItem("hierarchy"))); if (currentPage !== 1 && currentPage > 1) { start = currentPage * rowsPerPage - rowsPerPage; } @@ -346,9 +346,8 @@ const CreatedProyek = ({ params, ...props }) => { paging: { start: start, length: rowsPerPage }, }; - if (parseInt(role_id) !== 1) { + if (parseInt(role_id) !== 70) { payload["columns"] = [ - { name: "id", logic_operator: "=", value: proyek_id, operator: "AND" }, { name: "created_by_id", logic_operator: "IN", value: hierarchy, operator: "AND" } ]; }