All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.57e33c6c-18.11b9f72925818240e61d.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.2
Show newest version
{"version":3,"sources":["webpack:///./src/components/support/SmallSupportLink.tsx","webpack:///./src/components/streamrules/StreamRule.jsx","webpack:///./src/components/streamrules/StreamRuleList.jsx","webpack:///./src/components/streamrules/HumanReadableStreamRule.jsx","webpack:///./src/components/streamrules/StreamRuleForm.tsx"],"names":["Description","styled","div","IconStack","theme","css","colors","global","textAlt","textDefault","Content","p","SmallSupportLink","children","className","name","type","propTypes","PropTypes","node","isRequired","string","defaultProps","undefined","CombinedProvider","get","InputsStore","InputsActions","StreamRulesStore","StoreProvider","getStore","ActionButtonsWrap","span","StreamRule","matchData","permissions","stream","streamRule","streamRuleTypes","onSubmit","onDelete","useState","showStreamRuleForm","setShowStreamRuleForm","inputs","useStore","useEffect","list","_onEdit","event","preventDefault","_onDelete","window","confirm","remove","id","UserNotification","success","actionItems","isPermitted","bsStyle","bsSize","onClick","description","listGroupStyle","isEmpty","rules","HumanReadableStreamRule","StreamRuleForm","onClose","title","streamRuleId","data","update","shape","matches","bool","object","func","array","StreamRuleList","streamRules","length","props","map","key","this","_formatStreamRules","componentClass","React","Component","filter","streamRuleType","String","inputId","find","input","MATCH_INPUT","_findInput","value","FIELD_PRESENCE_RULE_TYPE","EMPTY_TAG","field","_getTypeForInteger","negation","inverted","longDesc","long_desc","ALWAYS_MATCH_RULE_TYPE","_formatRuleField","_formatRuleValue","state","PLACEHOLDER_INPUT","setState","error","currentStreamRule","_validateMatchInput","short_desc","updatedStreamRule","target","FormsUtils","help","required","label","data-testid","onChange","handleChange","_formatInputOptions","defaultValue","autoFocus","ruleTypes","_formatStreamRuleType","fieldBox","valueBox","show","onCancel","onModalClose","onSubmitForm","_onSubmit","submitButtonText","formProps","md","checked","href","Version","getMajorAndMinorVersion","rel","page","DocsHelper","PAGES","STREAMS","text","connect"],"mappings":"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","file":"57e33c6c-18.11b9f72925818240e61d.js","sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Icon } from 'components/common';\n\ntype Props = {\n  children: React.ReactNode,\n  className?: string,\n};\n\nconst Description = styled.div`\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n`;\n\nconst IconStack = styled.div(({ theme }) => css`\n  position: relative;\n  min-width: 2.5em;\n  \n  .fa-stack-1x {\n    color: ${theme.colors.global.textAlt};\n  }\n  \n  .fa-stack-2x {\n    color: ${theme.colors.global.textDefault};\n  }\n`);\n\nconst Content = styled.p`\n  font-weight: bold;\n  margin: 0;\n`;\n\nconst SmallSupportLink = ({ children, className }: Props) => {\n  return (\n    \n      \n        \n        \n      \n\n      \n        {children}\n      \n    \n  );\n};\n\nSmallSupportLink.propTypes = {\n  children: PropTypes.node.isRequired,\n  className: PropTypes.string,\n};\n\nSmallSupportLink.defaultProps = {\n  className: undefined,\n};\n\nexport default SmallSupportLink;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { isEmpty } from 'lodash';\nimport styled from 'styled-components';\n\nimport { useStore } from 'stores/connect';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport { Icon } from 'components/common';\nimport { Button, ListGroupItem } from 'components/graylog';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport StreamRuleForm from 'components/streamrules/StreamRuleForm';\nimport HumanReadableStreamRule from 'components/streamrules/HumanReadableStreamRule';\nimport StoreProvider from 'injection/StoreProvider';\nimport UserNotification from 'util/UserNotification';\n\nconst { InputsStore, InputsActions } = CombinedProvider.get('Inputs');\n\nconst StreamRulesStore = StoreProvider.getStore('StreamRules');\n\nconst ActionButtonsWrap = styled.span`\n  margin-right: 6px;\n`;\n\nconst StreamRule = ({ matchData, permissions, stream, streamRule, streamRuleTypes, onSubmit, onDelete }) => {\n  const [showStreamRuleForm, setShowStreamRuleForm] = useState(false);\n  const { inputs } = useStore(InputsStore);\n\n  useEffect(() => {\n    InputsActions.list();\n  }, []);\n\n  const _onEdit = (event) => {\n    event.preventDefault();\n    setShowStreamRuleForm(true);\n  };\n\n  const _onDelete = (event) => {\n    event.preventDefault();\n\n    /* TODO: Replace with custom confirmation dialog */\n    // eslint-disable-next-line no-alert\n    if (window.confirm('Do you really want to delete this stream rule?')) {\n      StreamRulesStore.remove(stream.id, streamRule.id, () => {\n        if (onDelete) {\n          onDelete(streamRule.id);\n        }\n\n        UserNotification.success('Stream rule has been successfully deleted.', 'Success');\n      });\n    }\n  };\n\n  const _onSubmit = (streamRuleId, data) => {\n    StreamRulesStore.update(stream.id, streamRuleId, data, () => {\n      if (onSubmit) {\n        onSubmit(streamRuleId, data);\n      }\n\n      UserNotification.success('Stream rule has been successfully updated.', 'Success');\n    });\n  };\n\n  const _formatActionItems = () => {\n    return (\n      \n        \n        \n      \n    );\n  };\n\n  const matchDataStyle = () => (matchData.rules[streamRule.id] ? 'success' : 'danger');\n  const actionItems = isPermitted(permissions, [`streams:edit:${stream.id}`]) ? _formatActionItems() : null;\n  const description = streamRule.description ? {' '}({streamRule.description}) : null;\n  const listGroupStyle = !isEmpty(matchData) ? matchDataStyle() : null;\n\n  return (\n    \n      {actionItems}\n      \n      {showStreamRuleForm && (\n         setShowStreamRuleForm(false)}\n                        streamRuleTypes={streamRuleTypes}\n                        title=\"Edit Stream Rule\"\n                        onSubmit={_onSubmit} />\n      )}\n      {description}\n    \n  );\n};\n\nStreamRule.propTypes = {\n  matchData: PropTypes.shape({\n    matches: PropTypes.bool,\n    rules: PropTypes.object,\n  }),\n  onDelete: PropTypes.func,\n  onSubmit: PropTypes.func,\n  permissions: PropTypes.array.isRequired,\n  stream: PropTypes.object.isRequired,\n  streamRule: PropTypes.object.isRequired,\n  streamRuleTypes: PropTypes.array.isRequired,\n};\n\nStreamRule.defaultProps = {\n  matchData: {},\n  onSubmit: () => {},\n  onDelete: () => {},\n};\n\nexport default StreamRule;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport StreamRule from 'components/streamrules/StreamRule';\nimport { Spinner } from 'components/common';\nimport { ListGroup, ListGroupItem } from 'components/graylog';\n\nclass StreamRuleList extends React.Component {\n  static propTypes = {\n    matchData: PropTypes.shape({\n      matches: PropTypes.bool,\n      rules: PropTypes.object,\n    }),\n    onSubmit: PropTypes.func,\n    onDelete: PropTypes.func,\n    permissions: PropTypes.array.isRequired,\n    stream: PropTypes.object.isRequired,\n    streamRuleTypes: PropTypes.array.isRequired,\n  };\n\n  static defaultProps = {\n    matchData: {},\n    onSubmit: () => {},\n    onDelete: () => {},\n  }\n\n  _formatStreamRules = (streamRules) => {\n    if (streamRules && streamRules.length > 0) {\n      const {\n        matchData,\n        onDelete,\n        onSubmit,\n        permissions,\n        stream,\n        streamRuleTypes,\n      } = this.props;\n\n      return streamRules.map((streamRule) => (\n        \n      ));\n    }\n\n    return No rules defined.;\n  };\n\n  render() {\n    const { stream } = this.props;\n\n    if (stream) {\n      const streamRules = this._formatStreamRules(stream.rules);\n\n      return (\n        \n          {streamRules}\n        \n      );\n    }\n\n    return ;\n  }\n}\n\nexport default StreamRuleList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nclass HumanReadableStreamRule extends React.Component {\n  EMPTY_TAG = '';\n\n  FIELD_PRESENCE_RULE_TYPE = 5;\n\n  ALWAYS_MATCH_RULE_TYPE = 7;\n\n  MATCH_INPUT = 8;\n\n  _getTypeForInteger = (type, streamRuleTypes) => {\n    if (streamRuleTypes) {\n      return streamRuleTypes.filter((streamRuleType) => {\n        return String(streamRuleType.id) === String(type);\n      })[0];\n    }\n\n    return undefined;\n  };\n\n  _findInput = (inputId) => {\n    const { inputs } = this.props;\n\n    return inputs.find((input) => input.id === inputId);\n  }\n\n  _formatRuleValue = (streamRule) => {\n    if (String(streamRule.type) === String(this.MATCH_INPUT)) {\n      const input = this._findInput(streamRule.value);\n\n      if (input) {\n        return `${input.title} (${input.name}: ${input.id})`;\n      }\n\n      return `: ${streamRule.value})`;\n    }\n\n    if (String(streamRule.type) !== String(this.FIELD_PRESENCE_RULE_TYPE)) {\n      if (streamRule.value) {\n        return streamRule.value;\n      }\n\n      return this.EMPTY_TAG;\n    }\n\n    return null;\n  };\n\n  _formatRuleField = (streamRule) => {\n    if (streamRule.field) {\n      return streamRule.field;\n    }\n\n    if (String(streamRule.type) === String(this.MATCH_INPUT)) {\n      return 'gl_source_input';\n    }\n\n    return this.EMPTY_TAG;\n  };\n\n  render() {\n    const { streamRule, streamRuleTypes } = this.props;\n    const streamRuleType = this._getTypeForInteger(streamRule.type, streamRuleTypes);\n    const negation = (streamRule.inverted ? 'not ' : null);\n    const longDesc = (streamRuleType ? streamRuleType.long_desc : null);\n\n    if (String(streamRule.type) === String(this.ALWAYS_MATCH_RULE_TYPE)) {\n      return (\n        Rule always matches\n      );\n    }\n\n    return (\n      \n        {this._formatRuleField(streamRule)} must {negation}{longDesc} {this._formatRuleValue(streamRule)}\n      \n    );\n  }\n}\n\nHumanReadableStreamRule.propTypes = {\n  streamRule: PropTypes.object.isRequired,\n  streamRuleTypes: PropTypes.array.isRequired,\n  inputs: PropTypes.array,\n};\n\nHumanReadableStreamRule.defaultProps = {\n  inputs: [],\n};\n\nexport default HumanReadableStreamRule;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Col, Well } from 'components/graylog';\nimport { BootstrapModalForm, Input } from 'components/bootstrap';\nimport { Icon, TypeAheadFieldInput } from 'components/common';\nimport { DocumentationLink } from 'components/support';\nimport HumanReadableStreamRule from 'components/streamrules//HumanReadableStreamRule';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport connect from 'stores/connect';\nimport DocsHelper from 'util/DocsHelper';\nimport Version from 'util/Version';\nimport * as FormsUtils from 'util/FormsUtils';\nimport { Store } from 'stores/StoreTypes';\n\nconst { InputsStore, InputsActions } = CombinedProvider.get('Inputs');\n\ntype StreamRule = {\n  type: number,\n  field: string,\n  value: string,\n  id?: string,\n  inverted: boolean,\n  description: string,\n};\n\ntype StreamRuleType = {\n  id: number,\n  short_desc: string,\n  long_desc: string,\n  name: string,\n};\n\ntype Props = {\n  onSubmit: (streamRuleId: string | undefined | null, currentStreamRule: StreamRule) => void,\n  streamRule: StreamRule,\n  streamRuleTypes: Array,\n  title: string,\n  inputs: Array,\n  onClose: () => void,\n};\n\ntype State = {\n  streamRule: StreamRule,\n  error: string,\n};\n\nclass StreamRuleForm extends React.Component {\n  static defaultProps = {\n    // eslint-disable-next-line react/default-props-match-prop-types\n    streamRule: { field: '', type: 1, value: '', inverted: false, description: '' },\n    // eslint-disable-next-line react/default-props-match-prop-types\n    inputs: [],\n    onClose: () => {},\n  };\n\n  static propTypes = {\n    onSubmit: PropTypes.func.isRequired,\n    streamRuleTypes: PropTypes.array.isRequired,\n    title: PropTypes.string.isRequired,\n    onClose: PropTypes.func,\n  };\n\n  FIELD_PRESENCE_RULE_TYPE = 5;\n\n  ALWAYS_MATCH_RULE_TYPE = 7;\n\n  MATCH_INPUT = 8;\n\n  PLACEHOLDER_INPUT = 0;\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      streamRule: props.streamRule,\n      error: '',\n    };\n  }\n\n  componentDidMount() {\n    InputsActions.list();\n  }\n\n  _validateMatchInput = () => {\n    const { streamRule: { value } } = this.state;\n\n    if (String(value) === String(this.PLACEHOLDER_INPUT)) {\n      this.setState({ error: 'Please choose an input' });\n\n      return false;\n    }\n\n    this.setState({ error: '' });\n\n    return true;\n  };\n\n  _onSubmit = () => {\n    const { streamRule: currentStreamRule } = this.state;\n    const { type } = currentStreamRule;\n    const { streamRule, onSubmit } = this.props;\n    const { onClose } = this.props;\n\n    if (type === this.ALWAYS_MATCH_RULE_TYPE) {\n      currentStreamRule.field = '';\n      this.setState({ streamRule: currentStreamRule });\n    }\n\n    if (type === this.FIELD_PRESENCE_RULE_TYPE || type === this.ALWAYS_MATCH_RULE_TYPE) {\n      currentStreamRule.value = '';\n      this.setState({ streamRule: currentStreamRule });\n    }\n\n    if (String(type) === String(this.MATCH_INPUT)) {\n      if (!this._validateMatchInput()) {\n        return;\n      }\n    }\n\n    onSubmit(streamRule.id, currentStreamRule);\n    onClose();\n  };\n\n  _formatStreamRuleType = (streamRuleType) => (\n    \n  );\n\n  handleChange = (event) => {\n    const { streamRule } = this.state;\n    const updatedStreamRule = { ...streamRule };\n\n    updatedStreamRule[event.target.name] = FormsUtils.getValueFromInput(event.target);\n\n    if (event.target.name === 'type' && String(updatedStreamRule.type) === String(this.MATCH_INPUT)) {\n      updatedStreamRule.value = String(this.PLACEHOLDER_INPUT);\n    }\n\n    this.setState({ streamRule: updatedStreamRule });\n  };\n\n  _formatInputOptions = (input) => (\n    \n  );\n\n  valueBox = () => {\n    const { streamRule: { value, type }, error } = this.state;\n    const { inputs } = this.props;\n\n    switch (String(type)) {\n      case String(this.FIELD_PRESENCE_RULE_TYPE):\n      case String(this.ALWAYS_MATCH_RULE_TYPE):\n        return '';\n\n      case String(this.MATCH_INPUT): {\n        const bsStyle = error && error.length > 0 ? 'error' : undefined;\n\n        return (\n          \n            \n            {inputs.map(this._formatInputOptions)}\n          \n        );\n      }\n\n      default:\n        return ;\n    }\n  };\n\n  fieldBox = () => {\n    const { streamRule: { field, type } } = this.state;\n\n    switch (String(type)) {\n      case String(this.ALWAYS_MATCH_RULE_TYPE):\n      case String(this.MATCH_INPUT):\n        return '';\n      default:\n        return ;\n    }\n  };\n\n  render() {\n    const { streamRule } = this.state;\n    const { type, inverted, description } = streamRule;\n    const { streamRuleTypes: ruleTypes, title, onClose, inputs } = this.props;\n\n    const streamRuleTypes = ruleTypes.map(this._formatStreamRuleType);\n    const fieldBox = this.fieldBox();\n    const valueBox = this.valueBox();\n\n    return (\n      \n        
\n \n {fieldBox}\n \n {streamRuleTypes}\n \n {valueBox}\n \n\n \n\n

\n Result:\n {' '}\n \n

\n \n \n \n The server will try to convert to strings or numbers based on the matcher type as well as it can.\n\n

\n  \n Take a look at the matcher code on GitHub\n \n

\n Regular expressions use Java syntax. } />\n
\n \n
\n
\n );\n }\n}\n\ntype InputsStoreState = {\n inputs: Array;\n};\n\nexport default connect(StreamRuleForm,\n { inputs: InputsStore as Store },\n ({ inputs }) => ({ inputs: inputs.inputs }));\n"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy