{"ast":null,"code":"var _jsxFileName = \"C:\\\\laragon\\\\www\\\\iot.mksolusi\\\\DriverOPCDA\\\\frontend\\\\src\\\\components\\\\pages\\\\TagGroups\\\\TagGroupFormEdit.jsx\";\nimport React from \"react\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport { Grid, Box, MenuItem } from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport { withRouter } from \"react-router-dom\";\nimport { ValidatorForm, TextValidator, SelectValidator } from \"react-material-ui-form-validator\";\nimport TagGroupServices from \"./TagGroupServicesClass\";\nimport socketIOClient from \"socket.io-client\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst ENDPOINT = process.env.REACT_APP_BASE_URL;\nvar socket = {};\nconst tagGroupServ = new TagGroupServices();\n\nconst useStyles = theme => ({\n  root: {\n    \"& .MuiTextField-root\": {\n      margin: theme.spacing(1),\n      width: \"90%\"\n    }\n  },\n  gridColor: {\n    background: \"white\"\n  },\n  button: {\n    marginTop: theme.spacing(1),\n    color: \"#ffffff\",\n    background: theme.palette.success.main,\n    \"&:hover\": {\n      backgroundColor: theme.palette.success.dark,\n      borderColor: theme.palette.success.light,\n      boxShadow: \"none\"\n    }\n  },\n  buttonGetServer: {\n    marginTop: theme.spacing(1),\n    color: \"#ffffff\",\n    background: theme.palette.primary.main,\n    \"&:hover\": {\n      backgroundColor: theme.palette.primary.dark,\n      borderColor: theme.palette.primary.light,\n      boxShadow: \"none\"\n    }\n  },\n  form: {\n    background: \"white\"\n  },\n  textField: {\n    width: \"100%\",\n    marginTop: 10\n  },\n  selectField: {\n    width: \"100%\",\n    marginTop: 20\n  }\n});\n\nclass TagGroupFormEdit extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      tagGroup: {\n        TagGroupName: \"\",\n        TagTableName: \"\",\n        TagGroupServer: \"\",\n        Description: \"\",\n        Status: false\n      },\n      servers: [[]]\n    };\n\n    this.handleChange = event => {\n      const {\n        tagGroup\n      } = this.state;\n      tagGroup[event.target.name] = event.target.value;\n      this.setState({\n        tagGroup\n      });\n    };\n\n    this.handleSubmit = async () => {\n      const {\n        tagGroup\n      } = this.state;\n      const paramInsert = {\n        TagGroupName: tagGroup.TagGroupName,\n        TagTableName: tagGroup.TagTableName,\n        TagGroupServer: tagGroup.TagGroupServer,\n        Description: tagGroup.Description,\n        Status: tagGroup.Status\n      };\n      const resp = await tagGroupServ.update(this.props.match.params.id, paramInsert); // save role data\n\n      if (resp.success) {\n        alert(resp.message);\n        this.onSuccess();\n      } else {\n        alert(resp.message);\n      }\n    };\n\n    this.find = async id => {\n      const resp = await tagGroupServ.findOne(id);\n      const {\n        tagGroup\n      } = this.state;\n\n      for (const key in resp.data) {\n        const element = resp.data[key];\n        tagGroup[key] = element;\n      }\n\n      console.log(tagGroup);\n      this.setState({\n        tagGroup\n      });\n      var servers = this.state.servers.concat(tagGroup.TagGroupServer);\n      this.setState({\n        servers\n      });\n      console.log(this.state);\n    };\n\n    this.onSuccess = this.onSuccess.bind(this);\n  }\n\n  onSuccess(e) {\n    this.props.history.push(\"/opc/tag-groups\");\n  }\n\n  componentDidMount() {\n    this.find(this.props.match.params.id);\n    socket = socketIOClient(ENDPOINT);\n    console.log(this._isMounted);\n\n    if (this._isMounted !== true) {\n      if (socket) socket.on(\"toClientServers\", data => {\n        console.log(\"GET SERVERS\");\n        console.log(data);\n        this.setState({\n          servers: data\n        });\n      });\n      this._isMounted = true;\n    }\n  }\n\n  componentWillUnmount() {\n    this._isMounted = false;\n    socket.removeAllListeners(\"toClientServers\");\n    console.log(\"UNMOUNT\");\n  }\n\n  async getServers() {\n    await tagGroupServ.getServers();\n    let resp = await tagGroupServ.getServers();\n    let srvrs = [];\n    srvrs.push(resp);\n    console.log(srvrs);\n    this.setState({\n      servers: srvrs\n    });\n  }\n\n  render() {\n    const {\n      classes\n    } = this.props;\n    const {\n      tagGroup\n    } = this.state;\n    return /*#__PURE__*/_jsxDEV(Grid, {\n      container: true,\n      spacing: 1,\n      children: /*#__PURE__*/_jsxDEV(Grid, {\n        item: true,\n        lg: 5,\n        xs: 12,\n        children: /*#__PURE__*/_jsxDEV(Box, {\n          p: 3,\n          boxShadow: 3,\n          className: classes.form,\n          children: /*#__PURE__*/_jsxDEV(ValidatorForm, {\n            ref: \"form\",\n            onSubmit: this.handleSubmit,\n            onError: errors => console.log(errors),\n            children: [/*#__PURE__*/_jsxDEV(TextValidator, {\n              label: \"Tag Group Name\",\n              onChange: this.handleChange,\n              name: \"TagGroupName\",\n              value: tagGroup.TagGroupName,\n              validators: [\"required\"],\n              errorMessages: [\"this field is required\"],\n              className: classes.textField\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 168,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(SelectValidator, {\n              id: \"demo-simple-select-helper\",\n              value: tagGroup.TagGroupServer,\n              onChange: this.handleChange,\n              validators: [\"required\"],\n              errorMessages: [\"this field is required\"],\n              className: classes.selectField,\n              name: \"TagGroupServer\",\n              children: this.state.servers[0].map((server, i) => /*#__PURE__*/_jsxDEV(MenuItem, {\n                value: server,\n                children: server\n              }, i, false, {\n                fileName: _jsxFileName,\n                lineNumber: 188,\n                columnNumber: 19\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 178,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              type: \"button\",\n              onClick: e => {\n                this.getServers();\n              },\n              size: \"small\",\n              className: classes.buttonGetServer,\n              children: \"Get Servers\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 193,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(TextValidator, {\n              label: \"Tag Table Name\",\n              onChange: this.handleChange,\n              name: \"TagTableName\",\n              value: tagGroup.TagTableName,\n              validators: [\"required\"],\n              errorMessages: [\"this field is required\"],\n              className: classes.textField\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 204,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(TextValidator, {\n              label: \"Description\",\n              onChange: this.handleChange,\n              name: \"Description\",\n              value: tagGroup.Description,\n              className: classes.textField\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 213,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(SelectValidator, {\n              id: \"demo-simple-select-helper\",\n              value: tagGroup.Status,\n              onChange: this.handleChange,\n              validators: [\"required\"],\n              errorMessages: [\"this field is required\"],\n              className: classes.selectField,\n              name: \"Status\",\n              children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n                value: \"\",\n                children: /*#__PURE__*/_jsxDEV(\"em\", {\n                  children: \"None\"\n                }, void 0, false, {\n                  fileName: _jsxFileName,\n                  lineNumber: 231,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 230,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n                value: true,\n                children: \"ON\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 234,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n                value: false,\n                children: \"OFF\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 235,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 221,\n              columnNumber: 15\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              type: \"submit\",\n              className: classes.button,\n              children: \"Submit\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 238,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 163,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 162,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 161,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 160,\n      columnNumber: 7\n    }, this);\n  }\n\n}\n\nexport default withRouter(withStyles(useStyles)(TagGroupFormEdit));","map":{"version":3,"sources":["C:/laragon/www/iot.mksolusi/DriverOPCDA/frontend/src/components/pages/TagGroups/TagGroupFormEdit.jsx"],"names":["React","withStyles","Grid","Box","MenuItem","Button","withRouter","ValidatorForm","TextValidator","SelectValidator","TagGroupServices","socketIOClient","ENDPOINT","process","env","REACT_APP_BASE_URL","socket","tagGroupServ","useStyles","theme","root","margin","spacing","width","gridColor","background","button","marginTop","color","palette","success","main","backgroundColor","dark","borderColor","light","boxShadow","buttonGetServer","primary","form","textField","selectField","TagGroupFormEdit","Component","constructor","props","state","tagGroup","TagGroupName","TagTableName","TagGroupServer","Description","Status","servers","handleChange","event","target","name","value","setState","handleSubmit","paramInsert","resp","update","match","params","id","alert","message","onSuccess","find","findOne","key","data","element","console","log","concat","bind","e","history","push","componentDidMount","_isMounted","on","componentWillUnmount","removeAllListeners","getServers","srvrs","render","classes","errors","map","server","i"],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { Grid, Box, MenuItem } from \"@material-ui/core\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nimport {\r\n  ValidatorForm,\r\n  TextValidator,\r\n  SelectValidator,\r\n} from \"react-material-ui-form-validator\";\r\n\r\nimport TagGroupServices from \"./TagGroupServicesClass\";\r\nimport socketIOClient from \"socket.io-client\";\r\nconst ENDPOINT = process.env.REACT_APP_BASE_URL;\r\nvar socket = {};\r\nconst tagGroupServ = new TagGroupServices();\r\n\r\nconst useStyles = (theme) => ({\r\n  root: {\r\n    \"& .MuiTextField-root\": {\r\n      margin: theme.spacing(1),\r\n      width: \"90%\",\r\n    },\r\n  },\r\n  gridColor: {\r\n    background: \"white\",\r\n  },\r\n  button: {\r\n    marginTop: theme.spacing(1),\r\n    color: \"#ffffff\",\r\n    background: theme.palette.success.main,\r\n    \"&:hover\": {\r\n      backgroundColor: theme.palette.success.dark,\r\n      borderColor: theme.palette.success.light,\r\n      boxShadow: \"none\",\r\n    },\r\n  },\r\n  buttonGetServer: {\r\n    marginTop: theme.spacing(1),\r\n    color: \"#ffffff\",\r\n    background: theme.palette.primary.main,\r\n    \"&:hover\": {\r\n      backgroundColor: theme.palette.primary.dark,\r\n      borderColor: theme.palette.primary.light,\r\n      boxShadow: \"none\",\r\n    },\r\n  },\r\n  form: {\r\n    background: \"white\",\r\n  },\r\n  textField: {\r\n    width: \"100%\",\r\n    marginTop: 10,\r\n  },\r\n  selectField: {\r\n    width: \"100%\",\r\n    marginTop: 20,\r\n  },\r\n});\r\nclass TagGroupFormEdit extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.onSuccess = this.onSuccess.bind(this);\r\n  }\r\n  state = {\r\n    tagGroup: {\r\n      TagGroupName: \"\",\r\n      TagTableName: \"\",\r\n      TagGroupServer: \"\",\r\n      Description: \"\",\r\n      Status: false,\r\n    },\r\n    servers: [[]],\r\n  };\r\n\r\n  onSuccess(e) {\r\n    this.props.history.push(\"/opc/tag-groups\");\r\n  }\r\n\r\n  handleChange = (event) => {\r\n    const { tagGroup } = this.state;\r\n    tagGroup[event.target.name] = event.target.value;\r\n    this.setState({ tagGroup });\r\n  };\r\n\r\n  handleSubmit = async () => {\r\n    const { tagGroup } = this.state;\r\n    const paramInsert = {\r\n      TagGroupName: tagGroup.TagGroupName,\r\n      TagTableName: tagGroup.TagTableName,\r\n      TagGroupServer: tagGroup.TagGroupServer,\r\n      Description: tagGroup.Description,\r\n      Status: tagGroup.Status,\r\n    };\r\n\r\n    const resp = await tagGroupServ.update(\r\n      this.props.match.params.id,\r\n      paramInsert\r\n    );\r\n    // save role data\r\n    if (resp.success) {\r\n      alert(resp.message);\r\n      this.onSuccess();\r\n    } else {\r\n      alert(resp.message);\r\n    }\r\n  };\r\n  find = async (id) => {\r\n    const resp = await tagGroupServ.findOne(id);\r\n    const { tagGroup } = this.state;\r\n\r\n    for (const key in resp.data) {\r\n      const element = resp.data[key];\r\n      tagGroup[key] = element;\r\n    }\r\n    console.log(tagGroup)\r\n    this.setState({ tagGroup });\r\n    var servers = this.state.servers.concat(tagGroup.TagGroupServer);\r\n    this.setState({ servers });\r\n    console.log(this.state);\r\n  };\r\n\r\n  componentDidMount() {\r\n    this.find(this.props.match.params.id);\r\n    socket = socketIOClient(ENDPOINT);\r\n    console.log(this._isMounted);\r\n    if (this._isMounted !== true) {\r\n      if (socket)\r\n        socket.on(\"toClientServers\", (data) => {\r\n          console.log(\"GET SERVERS\");\r\n          console.log(data);\r\n          this.setState({ servers: data });\r\n        });\r\n      this._isMounted = true;\r\n    }\r\n  }\r\n\r\n\r\n  \r\n\r\n  componentWillUnmount() {\r\n    this._isMounted = false;\r\n    socket.removeAllListeners(\"toClientServers\");\r\n    console.log(\"UNMOUNT\");\r\n  }\r\n  async getServers() {\r\n    await tagGroupServ.getServers();\r\n    let resp = await tagGroupServ.getServers();\r\n    let srvrs = [];\r\n    srvrs.push(resp);\r\n    console.log(srvrs);\r\n    this.setState({ servers: srvrs });\r\n  }\r\n  render() {\r\n    const { classes } = this.props;\r\n    const { tagGroup } = this.state;\r\n\r\n    return (\r\n      <Grid container spacing={1}>\r\n        <Grid item lg={5} xs={12}>\r\n          <Box p={3} boxShadow={3} className={classes.form}>\r\n            <ValidatorForm\r\n              ref=\"form\"\r\n              onSubmit={this.handleSubmit}\r\n              onError={(errors) => console.log(errors)}\r\n            >\r\n              <TextValidator\r\n                label=\"Tag Group Name\"\r\n                onChange={this.handleChange}\r\n                name=\"TagGroupName\"\r\n                value={tagGroup.TagGroupName}\r\n                validators={[\"required\"]}\r\n                errorMessages={[\"this field is required\"]}\r\n                className={classes.textField}\r\n              />\r\n\r\n              <SelectValidator\r\n                id=\"demo-simple-select-helper\"\r\n                value={tagGroup.TagGroupServer}\r\n                onChange={this.handleChange}\r\n                validators={[\"required\"]}\r\n                errorMessages={[\"this field is required\"]}\r\n                className={classes.selectField}\r\n                name=\"TagGroupServer\"\r\n              >\r\n                {this.state.servers[0].map((server, i) => (\r\n                  <MenuItem key={i} value={server}>\r\n                    {server}\r\n                  </MenuItem>\r\n                ))}\r\n              </SelectValidator>\r\n              <Button\r\n                type=\"button\"\r\n                onClick={(e) => {\r\n                  this.getServers();\r\n                }}\r\n                size=\"small\"\r\n                className={classes.buttonGetServer}\r\n              >\r\n                Get Servers\r\n              </Button>\r\n\r\n              <TextValidator\r\n                label=\"Tag Table Name\"\r\n                onChange={this.handleChange}\r\n                name=\"TagTableName\"\r\n                value={tagGroup.TagTableName}\r\n                validators={[\"required\"]}\r\n                errorMessages={[\"this field is required\"]}\r\n                className={classes.textField}\r\n              />\r\n              <TextValidator\r\n                label=\"Description\"\r\n                onChange={this.handleChange}\r\n                name=\"Description\"\r\n                value={tagGroup.Description}\r\n                className={classes.textField}\r\n              />\r\n\r\n              <SelectValidator\r\n                id=\"demo-simple-select-helper\"\r\n                value={tagGroup.Status}\r\n                onChange={this.handleChange}\r\n                validators={[\"required\"]}\r\n                errorMessages={[\"this field is required\"]}\r\n                className={classes.selectField}\r\n                name=\"Status\"\r\n              >\r\n                <MenuItem value=\"\">\r\n                  <em>None</em>\r\n                </MenuItem>\r\n\r\n                <MenuItem value={true}>ON</MenuItem>\r\n                <MenuItem value={false}>OFF</MenuItem>\r\n              </SelectValidator>\r\n\r\n              <Button type=\"submit\" className={classes.button}>\r\n                Submit\r\n              </Button>\r\n            </ValidatorForm>\r\n          </Box>\r\n        </Grid>\r\n      </Grid>\r\n    );\r\n  }\r\n}\r\n\r\nexport default withRouter(withStyles(useStyles)(TagGroupFormEdit));\r\n"]},"metadata":{},"sourceType":"module"}