Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
web-interface.assets.d5f85445-63.a49ba8ace624afae35ed.js.map Maven / Gradle / Ivy
{"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"],"names":["EventNotificationsActions","CombinedProvider","get","CurrentUserStore","isPermitted","PermissionsMixin","EditEventDefinitionPage","notification","undefined","this","props","params","currentUser","permissions","definitionId","notificationId","then","setState","error","status","history","push","Routes","ALERTS","NOTIFICATIONS","LIST","state","route","NOTFOUND","title","page","DocsHelper","PAGES","text","to","bsStyle","DEFINITIONS","className","md","action","React","Component","PropTypes","object","isRequired","connect","EventNotificationForm","event","onSubmit","preventDefault","name","target","onChange","FormsUtils","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","id","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"],"mappings":"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","file":"d5f85445-63.a49ba8ace624afae35ed.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { LinkContainer } from 'react-router-bootstrap';\n\nimport { ButtonToolbar, Col, Row, Button } from 'components/graylog';\nimport { DocumentTitle, IfPermitted, PageHeader, Spinner } from 'components/common';\nimport DocumentationLink from 'components/support/DocumentationLink';\n\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';\n\nimport EventNotificationFormContainer from 'components/event-notifications/event-notification-form/EventNotificationFormContainer';\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 route: PropTypes.object.isRequired,\n };\n\n state = {\n notification: undefined,\n };\n\n componentDidMount() {\n const { params, currentUser } = this.props;\n\n if (isPermitted(currentUser.permissions, `eventnotifications:edit:${params.definitionId}`)) {\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, route } = this.props;\n\n if (!isPermitted(currentUser.permissions, `eventnotifications:edit:${params.definitionId}`)) {\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 Alerts & Events \n \n \n \n Event Definitions \n \n \n \n \n Notifications \n \n \n \n \n\n \n \n \n \n
\n \n \n );\n }\n}\n\nexport default connect(EditEventDefinitionPage, {\n currentUser: CurrentUserStore,\n},\n({ currentUser }) => ({ currentUser: currentUser.currentUser }));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { PluginStore } from 'graylog-web-plugin/plugin';\nimport { Alert, Button, ButtonToolbar, Col, ControlLabel, FormControl, FormGroup, HelpBlock, Row } from 'components/graylog';\nimport { Select, Spinner } from 'components/common';\nimport { Input } from 'components/bootstrap';\n\nimport FormsUtils 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 event.preventDefault();\n\n onSubmit(notification);\n };\n\n handleChange = (event) => {\n const { name } = event.target;\n const { onChange } = this.props;\n onChange(name, FormsUtils.getValueFromInput(event.target));\n };\n\n handleConfigChange = (nextConfig) => {\n const { onChange } = this.props;\n onChange('config', nextConfig);\n };\n\n getNotificationPlugin = (type) => {\n if (type === undefined) {\n return {};\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 this.handleConfigChange({ ...defaultConfig, type: nextType });\n };\n\n handleTestTrigger = () => {\n const { notification, onTest } = this.props;\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 );\n }\n}\n\nexport default EventNotificationForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport lodash from 'lodash';\n\nimport { ConfirmLeaveDialog } from 'components/common';\nimport history from 'util/History';\nimport Routes from 'routing/Routes';\n\nimport CombinedProvider from 'injection/CombinedProvider';\n\nimport EventNotificationForm from './EventNotificationForm';\n\n// Import built-in Event Notification Types\nimport {} from '../event-notification-types';\n\nconst { EventNotificationsActions } = CombinedProvider.get('EventNotifications');\n\nconst initialValidation = {\n errors: {},\n};\n\nconst initialTestResult = {\n isLoading: false,\n};\n\nclass EventNotificationFormContainer extends React.Component {\n static propTypes = {\n action: PropTypes.oneOf(['create', 'edit']),\n notification: PropTypes.object,\n /** Controls whether the form should be embedded into another one, and submitted/cancel externally */\n embedded: PropTypes.bool,\n /** Controls the ID of the form, so it can be controlled externally */\n formId: PropTypes.string,\n /** Route needed for ConfirmLeaveDialog to work. This is not needed when embedded in another form. */\n route: PropTypes.object,\n onSubmit: PropTypes.func,\n };\n\n static defaultProps = {\n action: 'edit',\n notification: {\n title: '',\n description: '',\n config: {},\n },\n embedded: false,\n formId: undefined,\n route: undefined,\n onSubmit: () => {},\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n notification: props.notification,\n validation: initialValidation,\n testResult: initialTestResult,\n isDirty: false,\n };\n }\n\n componentWillUnmount() {\n // Test request may take a while to return a result, cancel the promise before leaving the page.\n if (this.testPromise) {\n this.testPromise.cancel();\n }\n }\n\n handleChange = (key, value) => {\n const { notification } = this.state;\n const nextNotification = lodash.cloneDeep(notification);\n nextNotification[key] = value;\n this.setState({ notification: nextNotification, isDirty: true, testResult: initialTestResult });\n };\n\n handleCancel = () => {\n history.push(Routes.ALERTS.NOTIFICATIONS.LIST);\n };\n\n handleSubmit = () => {\n const { action, embedded, onSubmit } = this.props;\n const { notification } = this.state;\n\n let promise;\n if (action === 'create') {\n promise = EventNotificationsActions.create(notification);\n promise.then(\n () => {\n this.setState({ isDirty: false }, () => {\n if (!embedded) {\n history.push(Routes.ALERTS.NOTIFICATIONS.LIST);\n }\n });\n },\n (errorResponse) => {\n const { body } = errorResponse.additional;\n if (errorResponse.status === 400 && body && body.failed) {\n this.setState({ validation: body });\n }\n },\n );\n } else {\n promise = EventNotificationsActions.update(notification.id, notification);\n promise.then(\n () => {\n this.setState({ isDirty: false }, () => {\n if (!embedded) {\n history.push(Routes.ALERTS.NOTIFICATIONS.LIST);\n }\n });\n },\n (errorResponse) => {\n const { body } = errorResponse.additional;\n if (errorResponse.status === 400 && body && body.failed) {\n this.setState({ validation: body });\n }\n },\n );\n }\n\n onSubmit(promise);\n };\n\n handleTest = () => {\n const { notification } = this.state;\n this.setState({ testResult: { isLoading: true }, validation: initialValidation });\n const testResult = lodash.clone(initialTestResult);\n\n this.testPromise = EventNotificationsActions.test(notification);\n this.testPromise\n .then(\n (response) => {\n testResult.error = false;\n testResult.message = 'Notification was executed successfully.';\n return response;\n },\n (errorResponse) => {\n testResult.error = true;\n const { body } = errorResponse.additional;\n if (errorResponse.status === 400 && body && body.failed) {\n testResult.message = 'Validation failed, please correct any errors in the form before continuing.';\n this.setState({ validation: body });\n } else {\n testResult.message = errorResponse.responseMessage || 'Unknown error, please check your Graylog server logs.';\n }\n },\n )\n .finally(() => {\n this.setState({ testResult: testResult });\n this.testPromise = undefined;\n });\n };\n\n render() {\n const { action, embedded, formId, route } = this.props;\n const { notification, validation, testResult, isDirty } = this.state;\n\n return (\n <>\n {!embedded && isDirty && (\n \n )}\n \n >\n );\n }\n}\n\nexport default EventNotificationFormContainer;\n"],"sourceRoot":""}