From 05cc3878a6e9ffe2f18b6ecb4e33b0b36dc878ce Mon Sep 17 00:00:00 2001 From: wahyu Date: Wed, 30 Aug 2023 10:23:21 +0700 Subject: [PATCH] update broadcast --- .../Master/MasterBroadcast/DialogDetail.js | 34 +++++++++++-------- .../Master/MasterBroadcast/DialogForm.js | 20 ++++++----- src/views/Master/MasterBroadcast/index.js | 8 ++--- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/src/views/Master/MasterBroadcast/DialogDetail.js b/src/views/Master/MasterBroadcast/DialogDetail.js index 80d73be..0d5165f 100644 --- a/src/views/Master/MasterBroadcast/DialogDetail.js +++ b/src/views/Master/MasterBroadcast/DialogDetail.js @@ -4,10 +4,17 @@ import moment from 'moment'; import { Button, Table, FormFeedback, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap'; import Select from 'react-select'; import axios from 'axios'; -import { BASE_URL_GEOHR_API } from '../../../const/ApiConst'; +import { BASE_SIMPRO_LUMEN, BASE_URL_GEOHR_API } from '../../../const/ApiConst'; import { Transfer } from 'antd'; import { withTranslation } from 'react-i18next'; - +const token = window.localStorage.getItem('token'); +const config = { + headers: + { + Authorization: `Bearer ${token}`, + "Content-type": `application/json` + } +}; const ERROR_TITLE = "judul is required!" const ERROR_MESSAGE = "message is required!" const BASE_URL = "https://oslog.id/geohr-api/"; @@ -42,26 +49,23 @@ class DialogDetail extends Component { getDataDetail = async () => { countError++; - let url = BASE_URL_GEOHR_API + `/broadcast-detail/search?broadcastId=${this.state.id}`; + let url = BASE_SIMPRO_LUMEN + `/broadcast/search`; const payload = { "paging": { "start": 0, "length": 25 }, "orders": { "columns": ["id"], "ascending": true }, "columns": [ - { "name": "status_send", "logic_operator": "ilike", "value": "", "operator": "AND" } - ], - "joins": [ - { "name": "m_broadcast", "column_results": ["title_notif", "message_notif", "description", "status_send"], "column_join": "broadcast_id" } + { "name": "id", "logic_operator": "=", "value": this.state.id, "operator": "AND" } ] } const result = await axios - .post(url, payload) + .post(url, payload, config) .then(res => res) .catch((error) => error.response); console.log('cek data detail', result.data) if (result && result.data && result.data.code === 200) { - if (result.data.data && result.data.data.broadcast_details) { - this.setState({ dataListDetail: result.data.data.broadcast_details }) + if (result.data.data && result.data.data) { + this.setState({ dataListDetail: result.data.data }) } } else { if (countError < 6) { @@ -97,11 +101,11 @@ class DialogDetail extends Component { {this.state.dataListDetail.map((val, index) => { return ( - {val.join.status_send === "" ? "-" : val.status_send} - {val.join.created_date === "" ? "-" : moment(val.created_date).format("YYYY-MM-DD HH:mm:ss")} - {val.join.broadcast_description === "" ? "-" : val.join.broadcast_description} - {val.join.broadcast_title_notif === "" ? "-" : val.join.broadcast_title_notif} - {val.join.broadcast_message_notif === "" ? "-" : val.join.broadcast_message_notif} + {val.status_send === "" ? "-" : val.status_send} + {val.created_at === "" ? "-" : moment(val.created_date).format("DD-MM-YYYY HH:mm:ss")} + {val.description === "" ? "-" : val.description} + {val.title_notif === "" ? "-" : val.title_notif} + {val.message_notif === "" ? "-" : val.message_notif} ) })} diff --git a/src/views/Master/MasterBroadcast/DialogForm.js b/src/views/Master/MasterBroadcast/DialogForm.js index c114a4d..db6298e 100644 --- a/src/views/Master/MasterBroadcast/DialogForm.js +++ b/src/views/Master/MasterBroadcast/DialogForm.js @@ -3,7 +3,7 @@ import React, { Component } from 'react'; import { Button, Form, FormFeedback, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap'; import Select from 'react-select'; import axios from 'axios'; -import { BASE_URL_GEOHR_API2, ROLE_SEARCH, USER_WASPANG } from '../../../const/ApiConst'; +import { BASE_URL_GEOHR_API2, ROLE_SEARCH, USER_WASPANG, USER_LIST } from '../../../const/ApiConst'; import { Transfer } from 'antd'; import { withTranslation } from 'react-i18next'; @@ -137,7 +137,7 @@ class DialogForm extends Component { if (penerima === "all") { idSend = this.state.allEmployeeId; send_to_type = "all"; - } else if (penerima === "division") { + } else if (penerima === "organization") { idSend = this.state.idOrganization; send_to_type = "roles"; } else if (penerima === "karyawan") { @@ -145,9 +145,13 @@ class DialogForm extends Component { send_to_type = "users"; } + if(Array.isArray(idSend)){ idSend = idSend.map(function (e) { return e.toString() }); + } else { + idSend = idSend; + } const data = { title, @@ -186,7 +190,7 @@ class DialogForm extends Component { } setEmployeeOrganization = () => { - let arrEd = this.state.dataEmployee; + let arrEd = this.state.dataEmployee.data; let cek = arrEd.filter(this.filterId) this.setState({ idEmployeeDivision: cek }) @@ -289,14 +293,14 @@ class DialogForm extends Component { "ascending": false } } - + //TODO should use search instead const result = await axios - .post(USER_WASPANG, payload, config) + .get(USER_LIST, config) .then(res => res) .catch((error) => error.response); console.log('test role', result) - if (result && result.data && result.code == "200") { + if (result && result.data && result.status == 200) { this.setState({ dataEmployee: result.data }, () => { this.setDataEmployee(); }); @@ -307,12 +311,12 @@ class DialogForm extends Component { setDataEmployee = () => { const listEmployee = []; const allIdEmployee = []; - this.state.dataEmployee.map((val, index) => { + this.state.dataEmployee.data.map((val, index) => { allIdEmployee.push(val.id); listEmployee.push({ key: val.id, id: val.id, - title: val.join.m_users_name + title: val.name }); }) diff --git a/src/views/Master/MasterBroadcast/index.js b/src/views/Master/MasterBroadcast/index.js index 770be69..36e5193 100644 --- a/src/views/Master/MasterBroadcast/index.js +++ b/src/views/Master/MasterBroadcast/index.js @@ -5,7 +5,7 @@ import React, { Component } from 'react'; import SweetAlert from 'react-bootstrap-sweetalert'; import axios from 'axios'; import moment from 'moment'; -import { API_BROADCAST_SIMPRO, BASE_SIMPRO, BASE_URL_GEOHR_API2 } from '../../../const/ApiConst'; +import { API_BROADCAST_SIMPRO, BASE_SIMPRO, BASE_SIMPRO_LUMEN, BASE_URL_GEOHR_API2 } from '../../../const/ApiConst'; import { Button, Card, CardBody, CardHeader, DropdownItem, DropdownMenu, DropdownToggle, Input, InputGroup, InputGroupButtonDropdown, Table, Row, Col } from 'reactstrap'; import { DatePicker, Pagination } from 'antd'; import { NotificationContainer, NotificationManager } from 'react-notifications'; @@ -85,7 +85,7 @@ class index extends Component { }; getDataBroadcast = async () => { - let url = BASE_SIMPRO + `/broadcast/search`; + let url = BASE_SIMPRO_LUMEN + `/broadcast/search`; const { searchDetail } = this.state let start = 0; @@ -180,7 +180,7 @@ class index extends Component { } saveBroadcast = async (type, data) => { - let url = BASE_SIMPRO + `/broadcast/add`; + let url = BASE_SIMPRO_LUMEN + `/broadcast/add`; const param = { "title_notif": data.title, @@ -205,7 +205,7 @@ class index extends Component { "send_to_type": "users", "message_notif": data.message, "description": data.description, - "send_to_id": data.id.map((id, index) => id) + "send_to_id": data.send_to_type == "users" ? data.id.map((id, index) => id) : null } if (data.send_to_type === "all") {