AddRole.js 50.7 KB
Newer Older
d.arizona's avatar
d.arizona committed
1
import React, { Component } from 'react';
a.bairuha's avatar
a.bairuha committed
2
import { TextField, Divider, Typography, Checkbox, withStyles, Collapse, Snackbar } from '@material-ui/core';
d.arizona's avatar
d.arizona committed
3
import api from '../../../api';
d.arizona's avatar
d.arizona committed
4 5
import AddIcon from '@material-ui/icons/Add';
import RemoveIcon from '@material-ui/icons/Remove';
Deni Rinaldi's avatar
Deni Rinaldi committed
6
import { DatePicker } from "@material-ui/pickers";
d.arizona's avatar
d.arizona committed
7 8
import format from "date-fns/format";
import localeID from "date-fns/locale/id"
d.arizona's avatar
d.arizona committed
9
import * as R from 'ramda'
d.arizona's avatar
d.arizona committed
10
import Images from '../../../assets/Images';
a.bairuha's avatar
a.bairuha committed
11
import MuiAlert from '@material-ui/lab/Alert';
a.bairuha's avatar
a.bairuha committed
12
import Constant from '../../../library/Constant';
d.arizona's avatar
d.arizona committed
13 14 15 16

const CustomCheckbox = withStyles({
    root: {
        color: '#51c6ea',
Deni Rinaldi's avatar
Deni Rinaldi committed
17 18 19 20
        '&$checked': {
            color: '#51c6ea',
        },
        padding: 5
d.arizona's avatar
d.arizona committed
21 22
    },
    checked: {},
Deni Rinaldi's avatar
Deni Rinaldi committed
23
})((props) => <Checkbox color="default" {...props} />);
d.arizona's avatar
d.arizona committed
24

a.bairuha's avatar
a.bairuha committed
25 26 27
const Alert = withStyles({
})((props) => <MuiAlert elevation={6} variant="filled" {...props} />);

d.arizona's avatar
d.arizona committed
28
export default class AddRole extends Component {
Deni Rinaldi's avatar
Deni Rinaldi committed
29

d.arizona's avatar
d.arizona committed
30 31 32 33 34 35 36
    constructor(props) {
        super(props)
        this.state = {
            paramsId: this.props.data,
            tempData: null,
            menuData: null,
            privileges: [],
d.arizona's avatar
d.arizona committed
37 38 39 40 41
            checked: false,
            selectedIndex: 0,
            roleName: '',
            startDate: null,
            endDate: null,
d.arizona's avatar
d.arizona committed
42 43 44 45 46 47 48
            date: new Date(),
            errorRoleName: false,
            errorStartDate: false,
            errorEndDate: false,
            msgErrorRN: '',
            msgErrorSD: '',
            msgErrorED: '',
Deni Rinaldi's avatar
Deni Rinaldi committed
49 50
            application: [],
            setting: [],
a.bairuha's avatar
a.bairuha committed
51 52 53
            alert: false,
            tipeAlert: '',
            messageAlert: ''
d.arizona's avatar
d.arizona committed
54 55 56 57
        }
    }

    handleChecked() {
Deni Rinaldi's avatar
Deni Rinaldi committed
58
        this.setState({ checked: !this.state.checked })
d.arizona's avatar
d.arizona committed
59
    }
Deni Rinaldi's avatar
Deni Rinaldi committed
60

d.arizona's avatar
d.arizona committed
61 62
    componentDidMount() {
        this.getMenu()
a.bairuha's avatar
a.bairuha committed
63 64 65 66
        if (this.props.type === 'edit') {
            //
        } else {
            let date = format(new Date, 'yyyy-MM-dd')
Deni Rinaldi's avatar
Deni Rinaldi committed
67
            // console.log(date);
a.bairuha's avatar
a.bairuha committed
68 69 70 71 72
            this.setState({
                startDate: date,
                endDate: date
            })
        }
d.arizona's avatar
d.arizona committed
73 74
    }

d.arizona's avatar
d.arizona committed
75
    handleChange(e, type) {
d.arizona's avatar
d.arizona committed
76
        let data = this.state
Deni Rinaldi's avatar
Deni Rinaldi committed
77
        let isDate = type !== '' ? true : false
d.arizona's avatar
d.arizona committed
78
        if (isDate && type === 'start_date') {
Deni Rinaldi's avatar
Deni Rinaldi committed
79 80
            this.setState({
                ...data, startDate: format(e, 'yyyy-MM-dd'), endDate: null,
d.arizona's avatar
d.arizona committed
81 82 83 84 85 86 87
                errorRoleName: false,
                errorStartDate: false,
                errorEndDate: false,
                msgErrorRN: '',
                msgErrorSD: '',
                msgErrorED: '',
            })
d.arizona's avatar
d.arizona committed
88
        } else if (isDate && type === 'end_date') {
Deni Rinaldi's avatar
Deni Rinaldi committed
89 90
            this.setState({
                ...data, endDate: format(e, 'yyyy-MM-dd'),
d.arizona's avatar
d.arizona committed
91 92 93 94 95 96 97
                errorRoleName: false,
                errorStartDate: false,
                errorEndDate: false,
                msgErrorRN: '',
                msgErrorSD: '',
                msgErrorED: '',
            })
d.arizona's avatar
d.arizona committed
98
        } else {
Deni Rinaldi's avatar
Deni Rinaldi committed
99 100
            this.setState({
                ...data, [e.target.name]: e.target.value,
d.arizona's avatar
d.arizona committed
101 102 103 104 105 106 107
                errorRoleName: false,
                errorStartDate: false,
                errorEndDate: false,
                msgErrorRN: '',
                msgErrorSD: '',
                msgErrorED: '',
            })
d.arizona's avatar
d.arizona committed
108
        }
Deni Rinaldi's avatar
Deni Rinaldi committed
109

d.arizona's avatar
d.arizona committed
110 111
    }

d.arizona's avatar
d.arizona committed
112 113
    validasi() {
        if (R.isEmpty(this.state.roleName)) {
d.arizona's avatar
d.arizona committed
114
            this.setState({ errorRoleName: true, msgErrorRN: 'Role Cannot be Empty' })
d.arizona's avatar
d.arizona committed
115
        } else if (R.isNil(this.state.startDate)) {
d.arizona's avatar
d.arizona committed
116
            this.setState({ errorStartDate: true, msgErrorSD: 'Valid From Cannot be Empty' })
d.arizona's avatar
d.arizona committed
117
        } else if (R.isNil(this.state.endDate)) {
d.arizona's avatar
d.arizona committed
118
            this.setState({ errorEndDate: true, msgErrorED: 'Valid To Cannot be Empty' })
Deni Rinaldi's avatar
Deni Rinaldi committed
119
        } else if (this.state.privileges.length < 1) {
d.arizona's avatar
d.arizona committed
120
            this.setState({ alert: true, messageAlert: 'You Must Choose the Access Rights', tipeAlert: 'warning' })
d.arizona's avatar
d.arizona committed
121 122 123 124 125 126
        } else {
            this.addRole()
        }
    }

    addRole() {
d.arizona's avatar
d.arizona committed
127 128
        // let startDate = format(this.state.tempData.start_date, 'yyyy-MM-dd')
        // let endDate = format(this.state.tempData.end_date, 'yyyy-MM-dd')
d.arizona's avatar
d.arizona committed
129
        let payload = {
d.arizona's avatar
d.arizona committed
130 131 132 133
            "role_name": this.state.roleName,
            "start_date": this.state.startDate,
            "end_date": this.state.endDate,
            "privileges": this.state.privileges
d.arizona's avatar
d.arizona committed
134
        }
d.arizona's avatar
d.arizona committed
135 136
        // console.log(payload)
        api.create().addRole(payload).then((response) => {
Deni Rinaldi's avatar
Deni Rinaldi committed
137
            // console.log(response)
a.bairuha's avatar
a.bairuha committed
138 139 140 141
            if (response.data) {
                if (response.ok) {
                    if (response.data.status === 'success') {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'success' })
d.arizona's avatar
d.arizona committed
142 143
                        setTimeout(() => {
                            this.props.onClickClose()
syadziy's avatar
syadziy committed
144
                            // this.props.refresh()
d.arizona's avatar
d.arizona committed
145
                            window.location.reload();
d.arizona's avatar
d.arizona committed
146
                        }, 750);
a.bairuha's avatar
a.bairuha committed
147
                    } else {
a.bairuha's avatar
a.bairuha committed
148
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
149
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
a.bairuha's avatar
a.bairuha committed
150 151 152 153 154 155
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
a.bairuha's avatar
a.bairuha committed
156 157 158 159
                    }
                } else {
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
                }
d.arizona's avatar
d.arizona committed
160
            } else {
a.bairuha's avatar
a.bairuha committed
161
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
d.arizona's avatar
d.arizona committed
162 163
            }
        })
d.arizona's avatar
d.arizona committed
164 165
    }

Deni Rinaldi's avatar
Deni Rinaldi committed
166 167 168 169 170 171 172
    parseChildren(val) {
        let data = Object.assign([], val)
        data = data.sort((a, b) => a.menu_id - b.menu_id).map((i) => {
            return {
                menu_id: i.menu_id,
                label: i.menu_name,
                sub_menu: this.parseChildren(i.sub_menu),
d.arizona's avatar
d.arizona committed
173 174
                collapse: false,
                reference: i.reference
Deni Rinaldi's avatar
Deni Rinaldi committed
175 176 177 178 179
            }
        })
        return data
    }

d.arizona's avatar
d.arizona committed
180 181
    getMenu() {
        api.create().getMenu().then((response) => {
a.bairuha's avatar
a.bairuha committed
182 183 184 185 186 187 188 189 190 191 192 193 194 195
            if (response.data) {
                if (response.ok) {
                    if (response.data.status === 'success') {
                        let app = null
                        let set = null
                        response.data.data.map((item) => {
                            if (item.menu_name === "Application") {
                                app = this.parseChildren(item.sub_menu)
                                return app
                            } else {
                                set = this.parseChildren(item.sub_menu)
                                return set
                            }
                        })
Deni Rinaldi's avatar
Deni Rinaldi committed
196
                        // console.log(app)
a.bairuha's avatar
a.bairuha committed
197 198
                        this.setState({ application: app, setting: set, isLoad: true }, () => console.log(this.state.application))
                        // this.setState({ menuData: response.data.data })
Deni Rinaldi's avatar
Deni Rinaldi committed
199
                    } else {
a.bairuha's avatar
a.bairuha committed
200
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
201
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
a.bairuha's avatar
a.bairuha committed
202 203 204 205 206 207
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
Deni Rinaldi's avatar
Deni Rinaldi committed
208
                    }
a.bairuha's avatar
a.bairuha committed
209 210 211
                } else {
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
                }
d.arizona's avatar
d.arizona committed
212
            } else {
a.bairuha's avatar
a.bairuha committed
213
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
d.arizona's avatar
d.arizona committed
214 215 216 217 218
            }
        })
    }

    handleItemChecked(item) {
d.arizona's avatar
d.arizona committed
219
        let indexID = this.state.privileges.findIndex((val) => val.menu_id === item.menu_id)
Deni Rinaldi's avatar
Deni Rinaldi committed
220
        return indexID === -1 ? false : true
d.arizona's avatar
d.arizona committed
221 222 223
    }

    handleItemClick(item) {
d.arizona's avatar
d.arizona committed
224
        let indexID = this.state.privileges.findIndex((val) => val.menu_id === item.menu_id)
d.arizona's avatar
d.arizona committed
225
        let privileges = this.state.privileges
d.arizona's avatar
d.arizona committed
226
        if (indexID === -1) {
d.arizona's avatar
d.arizona committed
227 228
            privileges.push({
                menu_id: item.menu_id,
syadziy's avatar
syadziy committed
229
                button_id: [1, 2, 3, 4, 5]
d.arizona's avatar
d.arizona committed
230
            })
d.arizona's avatar
d.arizona committed
231 232 233 234 235 236
            if (item.sub_menu.length > 0) {
                item.sub_menu.map((items,indexs) => {
                   let indexIDs = this.state.privileges.findIndex((val) => val.menu_id === items.menu_id)
                   if (indexIDs === -1) {
                       privileges.push({
                           menu_id: items.menu_id,
syadziy's avatar
syadziy committed
237
                           button_id: [1,2,3,4,5]
d.arizona's avatar
d.arizona committed
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
                       })
                   }
                })
            }
            if (item.reference !== null && item.reference !== 13 && item.reference !== 1) {
                let indexIDapp = this.state.application.findIndex((val) => val.menu_id === item.reference)
                let indexIDset = this.state.setting.findIndex((val) => val.menu_id === item.reference)
                let indexIDref = this.state.privileges.findIndex((val) => val.menu_id === item.reference)
                let indexIDs = indexIDapp == -1? indexIDset : indexIDapp
                let total = 0
                let array = indexIDapp == -1? this.state.setting : this.state.application

                array[indexIDs].sub_menu.map((items,indexs) => {
                    let indexIDsub = this.state.privileges.findIndex((val) => val.menu_id === items.menu_id)
                    if (indexIDsub !== -1) {
                        total += 1
                    }
                })
                if (indexIDref == -1) {
                    privileges.push({
                        menu_id: item.reference,
syadziy's avatar
syadziy committed
259
                        button_id: [1,2,3,4,5]
d.arizona's avatar
d.arizona committed
260 261 262 263 264 265 266
                    })
                } else {
                    if (total < 1) {
                        privileges.splice(indexIDref, 1)
                    }
                }
            }
d.arizona's avatar
d.arizona committed
267
        } else {
Deni Rinaldi's avatar
Deni Rinaldi committed
268
            privileges.splice(indexID, 1)
d.arizona's avatar
d.arizona committed
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
            if (item.sub_menu.length > 0) {
                item.sub_menu.map((items,indexs) => {
                    let indexIDs = this.state.privileges.findIndex((val) => val.menu_id === items.menu_id)
                    privileges.splice(indexIDs, 1)
                })
            }
            if (item.reference !== null && item.reference !== 13 && item.reference !== 1) {
                let indexIDapp = this.state.application.findIndex((val) => val.menu_id === item.reference)
                let indexIDset = this.state.setting.findIndex((val) => val.menu_id === item.reference)
                let indexIDref = this.state.privileges.findIndex((val) => val.menu_id === item.reference)
                let indexIDs = indexIDapp == -1? indexIDset : indexIDapp
                let total = 0
                let array = indexIDapp == -1? this.state.setting : this.state.application

                array[indexIDs].sub_menu.map((items,indexs) => {
                    let indexIDsub = this.state.privileges.findIndex((val) => val.menu_id === items.menu_id)
                    if (indexIDsub !== -1) {
                        total += 1
                    }
                })

                if (indexIDref == -1) {
                    privileges.push({
                        menu_id: item.reference,
syadziy's avatar
syadziy committed
293
                        button_id: [1,2,3,4,5]
d.arizona's avatar
d.arizona committed
294 295 296 297 298 299 300
                    })
                } else {
                    if (total < 1) {
                        privileges.splice(indexIDref, 1)
                    }
                }
            }
d.arizona's avatar
d.arizona committed
301
        }
d.arizona's avatar
d.arizona committed
302
        this.setState({ privileges }, () => {
Deni Rinaldi's avatar
Deni Rinaldi committed
303
            // console.log(this.state.privileges)
d.arizona's avatar
d.arizona committed
304
        })
d.arizona's avatar
d.arizona committed
305 306 307
    }

    handleSubItemChecked(item, index) {
d.arizona's avatar
d.arizona committed
308
        let indexID = this.state.privileges.findIndex((val) => val.menu_id === item.menu_id)
d.arizona's avatar
d.arizona committed
309
        let value = false
d.arizona's avatar
d.arizona committed
310
        if (indexID === -1) {
d.arizona's avatar
d.arizona committed
311 312
            value = false
        } else {
d.arizona's avatar
d.arizona committed
313 314
            let indexButtonID = this.state.privileges[indexID].button_id.findIndex((val) => val === index)
            if (indexButtonID === -1) {
d.arizona's avatar
d.arizona committed
315 316 317 318 319
                value = false
            } else {
                value = true
            }
        }
Deni Rinaldi's avatar
Deni Rinaldi committed
320
        return indexID === -1 ? value : value
d.arizona's avatar
d.arizona committed
321 322 323
    }

    handleSubItemClick(item, index) {
d.arizona's avatar
d.arizona committed
324 325
        let indexID = this.state.privileges.findIndex((val) => val.menu_id === item.menu_id)
        let indexButtonID = this.state.privileges[indexID].button_id.findIndex((val) => val === index)
d.arizona's avatar
d.arizona committed
326 327
        let privileges = this.state.privileges
        let button_id = privileges[indexID].button_id
d.arizona's avatar
d.arizona committed
328
        
d.arizona's avatar
d.arizona committed
329
        if (indexButtonID === -1) {
d.arizona's avatar
d.arizona committed
330
            button_id.push(index)
d.arizona's avatar
d.arizona committed
331 332 333 334
            if (item.sub_menu.length > 0) {
                item.sub_menu.map((items,indexs) => {
                    let subIndexID = privileges.findIndex((val) => val.menu_id === items.menu_id)
                    if (subIndexID === -1) {
Deni Rinaldi's avatar
Deni Rinaldi committed
335
                        // console.log('masuk pa eko', subIndexID)
d.arizona's avatar
d.arizona committed
336 337 338 339 340 341
                        privileges.push({
                            menu_id: items.menu_id,
                            button_id: [index]
                        })
                    } else {
                        let subIndexButtonID = privileges[subIndexID].button_id.findIndex((val) => val === index)
d.arizona's avatar
d.arizona committed
342 343
                        let subButton_id = privileges[subIndexID].button_id
                        if(subIndexButtonID === -1) {
d.arizona's avatar
d.arizona committed
344 345 346 347 348
                            subButton_id.push(index)
                        }
                    }
                })
            }
d.arizona's avatar
d.arizona committed
349 350 351 352 353 354 355 356 357 358 359
            if (item.reference !== null && item.reference !== 13 && item.reference !== 1) { 
                let refIndexID = privileges.findIndex((val) => val.menu_id === item.reference)
                if (refIndexID !== -1) {
                    let refIndexButtonID = privileges[refIndexID].button_id.findIndex((val) => val === index)
                    let refButton_id = privileges[refIndexID].button_id
                    if (refIndexButtonID === -1) {
                        refButton_id.push(index)
                    }
                    privileges[refIndexID].button_id = refButton_id
                }
            }
d.arizona's avatar
d.arizona committed
360
        } else {
Deni Rinaldi's avatar
Deni Rinaldi committed
361
            button_id.splice(indexButtonID, 1)
d.arizona's avatar
d.arizona committed
362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402
            if (item.sub_menu.length > 0) {
                item.sub_menu.map((items,indexs) => {
                    let subIndexID = privileges.findIndex((val) => val.menu_id === items.menu_id)
                    if (subIndexID !== -1) {
                        let subIndexButtonID = privileges[subIndexID].button_id.findIndex((val) => val === index)
                        let subButton_id = privileges[subIndexID].button_id
                        if (subIndexButtonID !== -1) {
                            subButton_id.splice(subIndexButtonID, 1)
                            privileges[subIndexID].button_id = subButton_id
                            if (privileges[subIndexID].button_id.length < 1) {
                                privileges.splice(subIndexID, 1)
                            }
                        }
                    }
                })
            }
            if (item.reference !== null && item.reference !== 13 && item.reference !== 1) { 
                let refIndexID = privileges.findIndex((val) => val.menu_id === item.reference)
                if (refIndexID !== -1) {
                    let refIndexButtonID = privileges[refIndexID].button_id.findIndex((val) => val === index)
                    let refButton_id = privileges[refIndexID].button_id
                    let indexIDapp = this.state.application.findIndex((val) => val.menu_id === item.reference)
                    let indexIDset = this.state.setting.findIndex((val) => val.menu_id === item.reference)
                    let indexIDs = indexIDapp == -1? indexIDset : indexIDapp
                    let array = indexIDapp == -1? this.state.setting : this.state.application
                    let splicer = 0
                    array[indexIDs].sub_menu.map((refItem, refIndex) => {
                        let subIndexID = privileges.findIndex((val) => val.menu_id === refItem.menu_id)
                        if (subIndexID !== -1) {
                            let subIndexButtonID = privileges[subIndexID].button_id.findIndex((val) => val === index)
                            if (subIndexButtonID !== -1) {
                                splicer += 1
                            }                  
                        }
                    })
                    if (refIndexButtonID !== -1 && splicer < 1) {
                        refButton_id.splice(refIndexButtonID, 1)
                    }
                    privileges[refIndexID].button_id = refButton_id
                }
            }
d.arizona's avatar
d.arizona committed
403
        }
d.arizona's avatar
d.arizona committed
404
        privileges[indexID].button_id = button_id.sort((a,b) => a-b)
d.arizona's avatar
d.arizona committed
405
        if (button_id.length === 0) {
Deni Rinaldi's avatar
Deni Rinaldi committed
406
            privileges.splice(indexID, 1)
d.arizona's avatar
d.arizona committed
407
        }
d.arizona's avatar
d.arizona committed
408
        this.setState({ privileges: privileges.sort((a,b) => a.menu_id-b.menu_id) })
d.arizona's avatar
d.arizona committed
409 410
    }

d.arizona's avatar
d.arizona committed
411 412 413 414 415
    handleDate(item) {
        let value = format(item, 'dd MMMM yyyy')
        return value
    }

Deni Rinaldi's avatar
Deni Rinaldi committed
416 417 418 419 420 421 422 423 424 425 426 427 428
    handleCollapse(item) {
        let arr = this.state.application
        let index = arr.findIndex((val) => val.label === item.label)
        arr[index].collapse = !arr[index].collapse
        this.setState({ ...this.state.application, application: arr })
    }

    handleCollapseSetting(item) {
        let arr = this.state.setting
        let index = arr.findIndex((val) => val.label === item.label)
        arr[index].collapse = !arr[index].collapse
        this.setState({ ...this.state.setting, setting: arr })
    }
a.bairuha's avatar
a.bairuha committed
429 430 431 432

    closeAlert() {
      this.setState({ alert: false })
    }
Deni Rinaldi's avatar
Deni Rinaldi committed
433
    
d.arizona's avatar
d.arizona committed
434 435
    render() {
        return (
d.arizona's avatar
d.arizona committed
436
            <div className="test app-popup-show">
a.bairuha's avatar
a.bairuha committed
437 438 439 440 441
                <Snackbar open={this.state.alert} autoHideDuration={6000} onClose={() => this.closeAlert()}>
                    <Alert onClose={() => this.closeAlert()} severity={this.state.tipeAlert}>
                        {this.state.messageAlert}
                    </Alert>
                </Snackbar>
Deni Rinaldi's avatar
Deni Rinaldi committed
442 443
                <div className="popup-content-middle background-white border-radius" style={{ borderRadius: 8 }}>
                    <div className="popup-panel grid grid-2x main-color" style={{ height: 64, borderTopRightRadius: 8, borderTopLeftRadius: 8 }}>
d.arizona's avatar
d.arizona committed
444 445
                        <div className="col-1" style={{ maxWidth: "inherit", display: 'flex', alignItems: 'center' }}>
                            <div className="popup-title">
d.arizona's avatar
d.arizona committed
446
                                <span style={{ color: '#fff', fontSize: 16, fontWeight: 'bold' }}>Create Data</span>
d.arizona's avatar
d.arizona committed
447 448 449 450 451 452 453 454
                            </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()}
                            >
Deni Rinaldi's avatar
Deni Rinaldi committed
455
                                <img src={Images.close} />
d.arizona's avatar
d.arizona committed
456 457 458 459
                            </button>
                        </div>
                    </div>

d.arizona's avatar
d.arizona committed
460
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ padding: 20 }}>
d.arizona's avatar
d.arizona committed
461 462 463 464
                        <div className="column-1">
                            <div className="margin-bottom-20px">
                                <TextField
                                    style={{ width: '100%' }}
d.arizona's avatar
d.arizona committed
465 466 467 468 469
                                    id="id"
                                    label="ID"
                                    disabled
                                    // id="outlined-read-only-input"
                                    variant="filled"
d.arizona's avatar
d.arizona committed
470
                                    value={'-'}
d.arizona's avatar
d.arizona committed
471
                                    onChange={(e) => null}
a.bairuha's avatar
a.bairuha committed
472 473 474 475 476 477 478 479 480 481 482 483 484
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
                                        }
                                    }}
d.arizona's avatar
d.arizona committed
485 486 487 488 489 490 491 492 493 494 495
                                >
                                    {/* {periode.map((option) => (
                                        <MenuItem key={option.value} value={option.value}>
                                            {option.label}
                                        </MenuItem>
                                    ))} */}
                                </TextField>
                            </div>
                        </div>

                        <div className="column-2">
d.arizona's avatar
d.arizona committed
496 497
                            <div className="margin-bottom-20px">
                                <TextField
Deni Rinaldi's avatar
Deni Rinaldi committed
498 499 500 501 502 503 504 505
                                    style={{ width: '100%', marginTop: 7 }}
                                    id="userRole"
                                    name="roleName"
                                    label="User Role"
                                    value={this.state.roleName}
                                    error={this.state.errorRoleName}
                                    helperText={this.state.msgErrorRN}
                                    onChange={(e) => this.handleChange(e, '')}
a.bairuha's avatar
a.bairuha committed
506 507 508 509 510 511 512 513 514 515 516 517 518
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
                                        }
                                    }}
d.arizona's avatar
d.arizona committed
519 520 521 522 523 524 525 526 527 528
                                // defaultValue="Default Value"
                                // helperText="Some important text"
                                />
                            </div>
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
                            <div className="margin-bottom-20px">
d.arizona's avatar
d.arizona committed
529
                                <DatePicker
Deni Rinaldi's avatar
Deni Rinaldi committed
530 531
                                    margin="normal"
                                    id="startDate"
532
                                    label="Valid From"
d.arizona's avatar
d.arizona committed
533
                                    format="dd-MM-yyyy"
Deni Rinaldi's avatar
Deni Rinaldi committed
534 535 536 537 538 539 540
                                    value={this.state.startDate}
                                    error={this.state.errorStartDate}
                                    helperText={this.state.msgErrorSD}
                                    onChange={(e) => this.handleChange(e, 'start_date')}
                                    KeyboardButtonProps={{
                                        'aria-label': 'change date',
                                    }}
a.bairuha's avatar
a.bairuha committed
541 542 543 544 545 546 547 548 549 550 551 552 553
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            color: '#7e8085',
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
Deni Rinaldi's avatar
Deni Rinaldi committed
554 555

                                    style={{ padding: 0, margin: 0, width: '100%' }}
d.arizona's avatar
d.arizona committed
556 557 558 559 560 561
                                />
                            </div>
                        </div>

                        <div className="column-2">
                            <div className="margin-bottom-20px">
d.arizona's avatar
d.arizona committed
562
                                <DatePicker
Deni Rinaldi's avatar
Deni Rinaldi committed
563 564
                                    margin="normal"
                                    id="endDate"
565
                                    label="Valid To"
d.arizona's avatar
d.arizona committed
566
                                    format="dd-MM-yyyy"
Deni Rinaldi's avatar
Deni Rinaldi committed
567 568 569 570 571 572 573 574
                                    value={this.state.endDate}
                                    error={this.state.errorEndDate}
                                    helperText={this.state.msgErrorED}
                                    onChange={(e) => this.handleChange(e, 'end_date')}
                                    minDate={this.state.startDate}
                                    KeyboardButtonProps={{
                                        'aria-label': 'change date',
                                    }}
a.bairuha's avatar
a.bairuha committed
575 576 577 578 579 580 581 582 583 584 585 586 587
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            color: '#7e8085',
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
Deni Rinaldi's avatar
Deni Rinaldi committed
588 589

                                    style={{ padding: 0, margin: 0, width: '100%' }}
d.arizona's avatar
d.arizona committed
590 591 592 593 594 595 596
                                />
                            </div>
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
d.arizona's avatar
d.arizona committed
597 598 599
                            <div className="margin-bottom-20px">
                                <TextField
                                    style={{ width: '100%' }}
d.arizona's avatar
d.arizona committed
600 601 602 603 604
                                    id="status"
                                    label="Status"
                                    disabled
                                    // id="outlined-read-only-input"
                                    variant="filled"
d.arizona's avatar
d.arizona committed
605
                                    value={'Active'}
a.bairuha's avatar
a.bairuha committed
606 607 608 609 610 611 612 613 614 615 616 617 618 619

                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            color: '#7e8085',
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
d.arizona's avatar
d.arizona committed
620 621 622 623 624 625 626 627 628 629
                                >
                                    {/* {periode.map((option) => (
                                        <MenuItem key={option.value} value={option.value}>
                                            {option.label}
                                        </MenuItem>
                                    ))} */}
                                </TextField>
                            </div>
                        </div>
                    </div>
d.arizona's avatar
d.arizona committed
630
                    {/* <div style={{ flexDirection: 'column', display: 'flex', paddingLeft: 20, paddingRight: 20 }}>
a.bairuha's avatar
a.bairuha committed
631 632
                        <Typography style={{ fontSize: 12 }}>{`Dibuat: `}</Typography>
                        <Typography style={{fontSize: 12}}>{`Diubah: `}</Typography>
d.arizona's avatar
d.arizona committed
633
                    </div> */}
Deni Rinaldi's avatar
Deni Rinaldi committed
634 635
                    <Divider style={{ margin: 20 }} />
                    <div style={{ paddingLeft: 20, paddingRight: 20 }}>
d.arizona's avatar
d.arizona committed
636
                        <h5>Access Rights</h5>
Deni Rinaldi's avatar
Deni Rinaldi committed
637
                        <div className="grid grid-2x grid-mobile-none gap-15px padding-top-5px padding-bottom-5px padding-left-10px padding-right-10px " style={{ backgroundColor: '#4b4b4b' }}>
d.arizona's avatar
d.arizona committed
638
                            <div className="column-1">
d.arizona's avatar
d.arizona committed
639
                                <Typography style={{ fontSize: 12, color: 'white' }}>Authorization Module</Typography>
d.arizona's avatar
d.arizona committed
640
                            </div>
syadziy's avatar
syadziy committed
641
                            <div className="column-2 grid grid-5x content-center grid-mobile-none gap-15px">
d.arizona's avatar
d.arizona committed
642
                                <div className="column-1">
d.arizona's avatar
d.arizona committed
643
                                    <Typography style={{ fontSize: 12, color: 'white' }}>View</Typography>
d.arizona's avatar
d.arizona committed
644 645
                                </div>
                                <div className="column-2">
d.arizona's avatar
d.arizona committed
646
                                    <Typography style={{ fontSize: 12, color: 'white' }}>Create</Typography>
d.arizona's avatar
d.arizona committed
647 648
                                </div>
                                <div className="column 3">
d.arizona's avatar
d.arizona committed
649
                                    <Typography style={{ fontSize: 12, color: 'white' }}>Edit</Typography>
d.arizona's avatar
d.arizona committed
650
                                </div>
d.arizona's avatar
d.arizona committed
651 652 653
                                <div className="column 4">
                                    <Typography style={{ fontSize: 12, color: 'white' }}>Delete</Typography>
                                </div>
syadziy's avatar
syadziy committed
654 655 656
                                <div className="column 5">
                                    <Typography style={{ fontSize: 12, color: 'white' }}>Download</Typography>
                                </div>
d.arizona's avatar
d.arizona committed
657 658
                            </div>
                        </div>
Deni Rinaldi's avatar
Deni Rinaldi committed
659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676

                        <div style={{ height: '25vh', overflow: 'scroll' }}>
                            {this.state.application.map((item, index) => {
                                return (
                                    <div>
                                        <div className="grid grid-2x grid-mobile-none gap-15px padding-left-10px padding-right-10px">
                                            <div className="column-1" style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'flex-start', paddingLeft: 8 }}>
                                                {item.sub_menu.length > 0 && <span onClick={() => this.handleCollapse(item)} style={{ marginRight: 2, marginLeft: -22 }}>
                                                    {item.collapse ? <RemoveIcon color={'action'} fontSize={'small'} /> : <AddIcon color={'action'} fontSize={'small'} />}
                                                </span>}
                                                <span>
                                                    <CustomCheckbox
                                                        checked={this.handleItemChecked(item)}
                                                        onChange={() => this.handleItemClick(item)}
                                                    />
                                                </span>
                                                <Typography style={{ fontSize: 12, marginLeft: 5 }}>{item.label}</Typography>
                                            </div>
syadziy's avatar
syadziy committed
677
                                            <div className="column-2 grid grid-5x content-center grid-mobile-none gap-15px margin-left-10px">
Deni Rinaldi's avatar
Deni Rinaldi committed
678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700
                                                <div className="column-1">
                                                    <CustomCheckbox
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 1)}
                                                        onChange={() => this.handleSubItemClick(item, 1)}
                                                    />
                                                </div>
                                                <div className="column-2">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 2)}
                                                        onChange={() => this.handleSubItemClick(item, 2)}
                                                    />
                                                </div>
                                                <div className="column 3">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 3)}
                                                        onChange={() => this.handleSubItemClick(item, 3)}
                                                    />
                                                </div>
d.arizona's avatar
d.arizona committed
701 702 703 704 705 706 707 708
                                                <div className="column 4">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 4)}
                                                        onChange={() => this.handleSubItemClick(item, 4)}
                                                    />
                                                </div>
syadziy's avatar
syadziy committed
709 710 711 712 713 714 715 716
                                                <div className="column 5">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 5)}
                                                        onChange={() => this.handleSubItemClick(item, 5)}
                                                    />
                                                </div>
Deni Rinaldi's avatar
Deni Rinaldi committed
717 718 719 720 721 722 723 724 725 726 727 728 729
                                            </div>
                                        </div>
                                        {item.sub_menu.length > 0 && item.sub_menu.map((items, indexs) => {
                                            return (
                                                <Collapse in={item.collapse} timeout="auto" unmountOnExit>
                                                    <div className="grid grid-2x grid-mobile-none gap-15px padding-left-10px padding-right-10px">
                                                        <div className="column-1" style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', paddingLeft: 30 }}>
                                                            <CustomCheckbox
                                                                checked={this.handleItemChecked(items)}
                                                                onChange={() => this.handleItemClick(items)}
                                                            />
                                                            <Typography style={{ fontSize: 12, maxWidth: '100%', marginLeft: 5 }}>{items.label}</Typography>
                                                        </div>
syadziy's avatar
syadziy committed
730
                                                        <div className="column-2 grid grid-5x content-center grid-mobile-none gap-15px margin-left-10px">
Deni Rinaldi's avatar
Deni Rinaldi committed
731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751
                                                            <div className="column-1">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 1)}
                                                                    onChange={() => this.handleSubItemClick(items, 1)}
                                                                />
                                                            </div>
                                                            <div className="column-2">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 2)}
                                                                    onChange={() => this.handleSubItemClick(items, 2)}
                                                                />
                                                            </div>
                                                            <div className="column 3">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 3)}
                                                                    onChange={() => this.handleSubItemClick(items, 3)}
                                                                />
                                                            </div>
d.arizona's avatar
d.arizona committed
752 753 754 755 756 757 758
                                                            <div className="column 4">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 4)}
                                                                    onChange={() => this.handleSubItemClick(items, 4)}
                                                                />
                                                            </div>
syadziy's avatar
syadziy committed
759 760 761 762 763 764 765
                                                            <div className="column 5">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 5)}
                                                                    onChange={() => this.handleSubItemClick(items, 5)}
                                                                />
                                                            </div>
Deni Rinaldi's avatar
Deni Rinaldi committed
766 767 768 769 770 771 772 773 774
                                                        </div>
                                                    </div>
                                                </Collapse>
                                            )
                                        })}
                                    </div>
                                )
                            })}
                            {this.state.setting.map((item, index) => {
d.arizona's avatar
d.arizona committed
775
                                return (
d.arizona's avatar
d.arizona committed
776
                                    <div>
d.arizona's avatar
d.arizona committed
777
                                        {item.menu_id !== 23 && <div className="grid grid-2x grid-mobile-none gap-15px padding-left-10px padding-right-10px">
Deni Rinaldi's avatar
Deni Rinaldi committed
778 779 780
                                            <div className="column-1" style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'flex-start', paddingLeft: 8 }}>
                                                {item.sub_menu.length > 0 && <span onClick={() => this.handleCollapseSetting(item)} style={{ marginRight: 2, marginLeft: -22 }}>
                                                    {item.collapse ? <RemoveIcon color={'action'} fontSize={'small'} /> : <AddIcon color={'action'} fontSize={'small'} />}
d.arizona's avatar
d.arizona committed
781 782
                                                </span>}
                                                <span>
Deni Rinaldi's avatar
Deni Rinaldi committed
783 784 785 786
                                                    <CustomCheckbox
                                                        checked={this.handleItemChecked(item)}
                                                        onChange={() => this.handleItemClick(item)}
                                                    />
d.arizona's avatar
d.arizona committed
787
                                                </span>
Deni Rinaldi's avatar
Deni Rinaldi committed
788
                                                <Typography style={{ fontSize: 12, marginLeft: 5 }}>{item.label}</Typography>
d.arizona's avatar
d.arizona committed
789
                                            </div>
syadziy's avatar
syadziy committed
790
                                            <div className="column-2 grid grid-5x content-center grid-mobile-none gap-15px margin-left-10px">
d.arizona's avatar
d.arizona committed
791 792 793 794
                                                <div className="column-1">
                                                    <CustomCheckbox
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 1)}
Deni Rinaldi's avatar
Deni Rinaldi committed
795
                                                        onChange={() => this.handleSubItemClick(item, 1)}
d.arizona's avatar
d.arizona committed
796 797 798 799 800 801 802
                                                    />
                                                </div>
                                                <div className="column-2">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 2)}
Deni Rinaldi's avatar
Deni Rinaldi committed
803
                                                        onChange={() => this.handleSubItemClick(item, 2)}
d.arizona's avatar
d.arizona committed
804 805 806 807 808 809 810
                                                    />
                                                </div>
                                                <div className="column 3">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 3)}
Deni Rinaldi's avatar
Deni Rinaldi committed
811
                                                        onChange={() => this.handleSubItemClick(item, 3)}
d.arizona's avatar
d.arizona committed
812 813
                                                    />
                                                </div>
d.arizona's avatar
d.arizona committed
814 815 816 817 818 819 820 821
                                                <div className="column 4">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 4)}
                                                        onChange={() => this.handleSubItemClick(item, 4)}
                                                    />
                                                </div>
syadziy's avatar
syadziy committed
822 823 824 825 826 827 828 829
                                                <div className="column 5">
                                                    <CustomCheckbox
                                                        // disabled
                                                        disabled={!this.handleItemChecked(item)}
                                                        checked={this.handleSubItemChecked(item, 5)}
                                                        onChange={() => this.handleSubItemClick(item, 5)}
                                                    />
                                                </div>
d.arizona's avatar
d.arizona committed
830
                                            </div>
d.arizona's avatar
d.arizona committed
831
                                        </div>}
Deni Rinaldi's avatar
Deni Rinaldi committed
832 833 834
                                        {item.sub_menu.length > 0 && item.sub_menu.map((items, indexs) => {
                                            return (
                                                <Collapse in={item.collapse} timeout="auto" unmountOnExit>
d.arizona's avatar
d.arizona committed
835
                                                    <div className="grid grid-2x grid-mobile-none gap-15px padding-left-10px padding-right-10px">
Deni Rinaldi's avatar
Deni Rinaldi committed
836
                                                        <div className="column-1" style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', paddingLeft: 30 }}>
d.arizona's avatar
d.arizona committed
837 838 839 840
                                                            <CustomCheckbox
                                                                checked={this.handleItemChecked(items)}
                                                                onChange={() => this.handleItemClick(items)}
                                                            />
Deni Rinaldi's avatar
Deni Rinaldi committed
841
                                                            <Typography style={{ fontSize: 12, maxWidth: '100%', marginLeft: 5 }}>{items.label}</Typography>
d.arizona's avatar
d.arizona committed
842
                                                        </div>
syadziy's avatar
syadziy committed
843
                                                        <div className="column-2 grid grid-5x content-center grid-mobile-none gap-15px margin-left-10px">
d.arizona's avatar
d.arizona committed
844 845 846 847
                                                            <div className="column-1">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 1)}
Deni Rinaldi's avatar
Deni Rinaldi committed
848
                                                                    onChange={() => this.handleSubItemClick(items, 1)}
d.arizona's avatar
d.arizona committed
849 850 851 852 853 854
                                                                />
                                                            </div>
                                                            <div className="column-2">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 2)}
Deni Rinaldi's avatar
Deni Rinaldi committed
855
                                                                    onChange={() => this.handleSubItemClick(items, 2)}
d.arizona's avatar
d.arizona committed
856 857 858 859 860 861
                                                                />
                                                            </div>
                                                            <div className="column 3">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 3)}
Deni Rinaldi's avatar
Deni Rinaldi committed
862
                                                                    onChange={() => this.handleSubItemClick(items, 3)}
d.arizona's avatar
d.arizona committed
863 864
                                                                />
                                                            </div>
d.arizona's avatar
d.arizona committed
865 866 867 868 869 870 871
                                                            <div className="column 4">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 4)}
                                                                    onChange={() => this.handleSubItemClick(items, 4)}
                                                                />
                                                            </div>
syadziy's avatar
syadziy committed
872 873 874 875 876 877 878
                                                            <div className="column 5">
                                                                <CustomCheckbox
                                                                    disabled={!this.handleItemChecked(items)}
                                                                    checked={this.handleSubItemChecked(items, 5)}
                                                                    onChange={() => this.handleSubItemClick(items, 5)}
                                                                />
                                                            </div>
d.arizona's avatar
d.arizona committed
879 880 881 882 883
                                                        </div>
                                                    </div>
                                                </Collapse>
                                            )
                                        })}
d.arizona's avatar
d.arizona committed
884 885 886 887
                                    </div>
                                )
                            })}
                        </div>
Deni Rinaldi's avatar
Deni Rinaldi committed
888

d.arizona's avatar
d.arizona committed
889
                    </div>
d.arizona's avatar
d.arizona committed
890 891
                    <div className="border-top grid grid-2x" style={{ height: 56, backgroundColor: '#f5f5f5', paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1" style={{ alignSelf: 'center' }}>
d.arizona's avatar
d.arizona committed
892 893 894 895 896
                            <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' }}>
d.arizona's avatar
d.arizona committed
897
                                    <span style={{ color: '#354960', fontSize: 11 }}>Cancel</span>
d.arizona's avatar
d.arizona committed
898 899
                                </div>
                            </button>
Deni Rinaldi's avatar
Deni Rinaldi committed
900

d.arizona's avatar
d.arizona committed
901
                        </div>
Deni Rinaldi's avatar
Deni Rinaldi committed
902
                        <div className="column-2" style={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
d.arizona's avatar
d.arizona committed
903 904 905
                            <button
                                type="button"
                                onClick={() => this.validasi()}
Deni Rinaldi's avatar
Deni Rinaldi committed
906
                            >
d.arizona's avatar
d.arizona committed
907
                                <div style={{ width: 102, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
d.arizona's avatar
d.arizona committed
908
                                    <span style={{ color: '#fff', fontSize: 11 }}>Save</span>
d.arizona's avatar
d.arizona committed
909 910
                                </div>
                            </button>
d.arizona's avatar
d.arizona committed
911 912 913 914 915 916 917
                        </div>
                    </div>
                </div>
            </div>
        );
    }
}