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

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

There is a newer version: 6.0.2
Show newest version
{"version":3,"sources":["webpack:///./src/pages/EditEventNotificationPage.jsx","webpack:///./src/components/event-notifications/event-notification-form/EventNotificationForm.jsx","webpack:///./src/components/event-notifications/event-notification-form/EventNotificationFormContainer.jsx","webpack:///./src/components/event-notifications/event-notification-details/EventNotificationActionLinks.jsx"],"names":["EventNotificationsActions","CombinedProvider","get","CurrentUserStore","isPermitted","PermissionsMixin","EditEventDefinitionPage","props","state","notification","undefined","this","params","currentUser","permissions","notificationId","then","setState","error","status","history","push","Routes","ALERTS","NOTIFICATIONS","LIST","NOTFOUND","title","subactions","id","page","DocsHelper","PAGES","text","to","bsStyle","DEFINITIONS","className","md","action","React","Component","PropTypes","object","isRequired","connect","withParams","EventNotificationForm","event","onSubmit","preventDefault","name","target","onChange","getValueFromInput","nextConfig","type","PluginStore","exports","find","n","nextType","defaultConfig","getNotificationPlugin","handleConfigChange","onTest","map","label","displayName","value","embedded","formId","onCancel","validation","testResult","notificationPlugin","config","notificationFormComponent","formComponent","createElement","testButtonText","isLoading","handleSubmit","errors","help","lodash","handleChange","required","description","rows","controlId","validationState","options","formattedEventNotificationTypes","handleTypeChange","clearable","Static","bsSize","disabled","onClick","handleTestTrigger","message","oneOf","shape","bool","string","func","initialValidation","initialTestResult","EventNotificationFormContainer","key","nextNotification","cloneDeep","isDirty","promise","create","errorResponse","body","additional","failed","update","clone","testPromise","test","response","responseMessage","cancel","question","handleCancel","handleTest","EventNotificationActionLinks","show","edit","propTypes"],"mappings":"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","file":"57e33c6c-61.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 React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LinkContainer } from 'components/graylog/router';\nimport { ButtonToolbar, Col, Row, Button } from 'components/graylog';\nimport { DocumentTitle, IfPermitted, PageHeader, Spinner } from 'components/common';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport Routes from 'routing/Routes';\nimport DocsHelper from 'util/DocsHelper';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport connect from 'stores/connect';\nimport PermissionsMixin from 'util/PermissionsMixin';\nimport history from 'util/History';\nimport EventNotificationFormContainer from 'components/event-notifications/event-notification-form/EventNotificationFormContainer';\nimport EventNotificationActionLinks from 'components/event-notifications/event-notification-details/EventNotificationActionLinks';\nimport withParams from 'routing/withParams';\n\nconst { EventNotificationsActions } = CombinedProvider.get('EventNotifications');\nconst { CurrentUserStore } = CombinedProvider.get('CurrentUser');\n\nconst { isPermitted } = PermissionsMixin;\n\nclass EditEventDefinitionPage extends React.Component {\n  static propTypes = {\n    params: PropTypes.object.isRequired,\n    currentUser: PropTypes.object.isRequired,\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      notification: undefined,\n    };\n  }\n\n  componentDidMount() {\n    const { params, currentUser } = this.props;\n\n    if (isPermitted(currentUser.permissions, `eventnotifications:edit:${params.notificationId}`)) {\n      EventNotificationsActions.get(params.notificationId)\n        .then(\n          (notification) => this.setState({ notification: notification }),\n          (error) => {\n            if (error.status === 404) {\n              history.push(Routes.ALERTS.NOTIFICATIONS.LIST);\n            }\n          },\n        );\n    }\n  }\n\n  render() {\n    const { notification } = this.state;\n    const { params, currentUser } = this.props;\n\n    if (!isPermitted(currentUser.permissions, `eventnotifications:edit:${params.notificationId}`)) {\n      history.push(Routes.NOTFOUND);\n    }\n\n    if (!notification) {\n      return (\n        \n          \n            \n              \n            \n          \n        \n      );\n    }\n\n    return (\n      \n        \n          }>\n            \n              Notifications alert you of any configured Event when they occur. Graylog can send Notifications directly\n              to you or to other systems you use for that purpose.\n            \n\n            \n              Graylog's new Alerting system let you define more flexible and powerful rules. Learn more in the{' '}\n              \n            \n\n            \n              \n                \n              \n              \n                \n                  \n                \n              \n              \n                \n                  \n                \n              \n            \n          \n\n          \n            \n              \n            \n          \n        \n      \n    );\n  }\n}\n\nexport default connect(withParams(EditEventDefinitionPage), {\n  currentUser: CurrentUserStore,\n},\n({ currentUser }) => ({ currentUser: currentUser.currentUser }));\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 from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport { Alert, Button, ButtonToolbar, Col, ControlLabel, FormControl, FormGroup, HelpBlock, Row } from 'components/graylog';\nimport { Select, Spinner } from 'components/common';\nimport { Input } from 'components/bootstrap';\nimport { getValueFromInput } from 'util/FormsUtils';\n\nclass EventNotificationForm extends React.Component {\n  static propTypes = {\n    action: PropTypes.oneOf(['create', 'edit']),\n    notification: PropTypes.object.isRequired,\n    validation: PropTypes.object.isRequired,\n    testResult: PropTypes.shape({\n      isLoading: PropTypes.bool,\n      error: PropTypes.bool,\n      message: PropTypes.string,\n    }).isRequired,\n    formId: PropTypes.string,\n    embedded: PropTypes.bool.isRequired,\n    onChange: PropTypes.func.isRequired,\n    onCancel: PropTypes.func.isRequired,\n    onSubmit: PropTypes.func.isRequired,\n    onTest: PropTypes.func.isRequired,\n  };\n\n  static defaultProps = {\n    action: 'edit',\n    formId: undefined,\n  };\n\n  handleSubmit = (event) => {\n    const { notification, onSubmit } = this.props;\n\n    event.preventDefault();\n\n    onSubmit(notification);\n  };\n\n  handleChange = (event) => {\n    const { name } = event.target;\n    const { onChange } = this.props;\n\n    onChange(name, getValueFromInput(event.target));\n  };\n\n  handleConfigChange = (nextConfig) => {\n    const { onChange } = this.props;\n\n    onChange('config', nextConfig);\n  };\n\n  getNotificationPlugin = (type) => {\n    if (type === undefined) {\n      return {};\n    }\n\n    return PluginStore.exports('eventNotificationTypes').find((n) => n.type === type) || {};\n  };\n\n  handleTypeChange = (nextType) => {\n    const notificationPlugin = this.getNotificationPlugin(nextType);\n    const defaultConfig = notificationPlugin.defaultConfig || {};\n\n    this.handleConfigChange({ ...defaultConfig, type: nextType });\n  };\n\n  handleTestTrigger = () => {\n    const { notification, onTest } = this.props;\n\n    onTest(notification);\n  };\n\n  formattedEventNotificationTypes = () => {\n    return PluginStore.exports('eventNotificationTypes')\n      .map((type) => ({ label: type.displayName, value: type.type }));\n  };\n\n  render() {\n    const { action, embedded, formId, notification, onCancel, validation, testResult } = this.props;\n\n    const notificationPlugin = this.getNotificationPlugin(notification.config.type);\n    const notificationFormComponent = notificationPlugin.formComponent\n      ? React.createElement(notificationPlugin.formComponent, {\n        config: notification.config,\n        onChange: this.handleConfigChange,\n        validation: validation,\n      })\n      : null;\n\n    const testButtonText = testResult.isLoading ?  : 'Execute Test Notification';\n\n    return (\n      \n        \n          
\n \n\n Description (Optional)}\n type=\"textarea\"\n help=\"Longer description for this Notification.\"\n value={notification.description}\n onChange={this.handleChange}\n rows={2} />\n\n \n Notification Type\n