{"ast":null,"code":"var _jsxFileName = \"C:\\\\laragon\\\\www\\\\itokin\\\\DriverOPCDA\\\\frontend\\\\src\\\\components\\\\pages\\\\TagGroups\\\\TagGroupFormAdd.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;\nconst tagGroupServ = new TagGroupServices();\nvar socket = {};\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 TagGroupFormAdd 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.store(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.onSuccess = this.onSuccess.bind(this);\n    this._isMounted = false;\n    this._servers = [];\n  }\n\n  onSuccess(e) {\n    this.props.history.push(\"/opc/tag-groups\");\n  }\n\n  componentDidMount() {\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    // console.log('ss')\n    let resp = await tagGroupServ.getServers();\n    let srvrs = [];\n    srvrs.push(resp);\n    this.setState({\n      servers: srvrs\n    });\n    console.log(this.state.servers[0]);\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: 152,\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: 171,\n                columnNumber: 19\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 161,\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: 176,\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: 187,\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: 196,\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: 214,\n                  columnNumber: 19\n                }, this)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 213,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n                value: true,\n                children: \"ON\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 217,\n                columnNumber: 17\n              }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n                value: false,\n                children: \"OFF\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 218,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 204,\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: 221,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 147,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 146,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 145,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 144,\n      columnNumber: 7\n    }, this);\n  }\n\n}\n\nexport default withRouter(withStyles(useStyles)(TagGroupFormAdd));","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/src/components/pages/TagGroups/TagGroupFormAdd.jsx"],"names":["React","withStyles","Grid","Box","MenuItem","Button","withRouter","ValidatorForm","TextValidator","SelectValidator","TagGroupServices","socketIOClient","ENDPOINT","process","env","REACT_APP_BASE_URL","tagGroupServ","socket","useStyles","theme","root","margin","spacing","width","gridColor","background","button","marginTop","color","palette","success","main","backgroundColor","dark","borderColor","light","boxShadow","buttonGetServer","primary","form","textField","selectField","TagGroupFormAdd","Component","constructor","props","state","tagGroup","TagGroupName","TagTableName","TagGroupServer","Description","Status","servers","handleChange","event","target","name","value","setState","handleSubmit","paramInsert","resp","store","alert","message","onSuccess","bind","_isMounted","_servers","e","history","push","componentDidMount","console","log","on","data","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\n\r\nimport socketIOClient from \"socket.io-client\";\r\nconst ENDPOINT = process.env.REACT_APP_BASE_URL;\r\n\r\nconst tagGroupServ = new TagGroupServices();\r\nvar socket = {}\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 TagGroupFormAdd extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.onSuccess = this.onSuccess.bind(this);\r\n    this._isMounted = false;\r\n    this._servers = [];\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.store(paramInsert);\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\r\n  componentDidMount() {\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  componentWillUnmount() {\r\n    this._isMounted = false;\r\n    socket.removeAllListeners(\"toClientServers\");\r\n    console.log(\"UNMOUNT\");\r\n  }\r\n\r\n  async getServers() {\r\n    // console.log('ss')\r\n    let resp = await tagGroupServ.getServers();\r\n    let srvrs = []\r\n    srvrs.push(resp)\r\n    this.setState({ servers: srvrs });\r\n    console.log(this.state.servers[0])\r\n  }\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              <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)(TagGroupFormAdd));\r\n"]},"metadata":{},"sourceType":"module"}