web-interface.assets.bb8c8232-6119.23231fc83bcf991086a5.js.map Maven / Gradle / Ivy
{"version":3,"file":"bb8c8232-6119.23231fc83bcf991086a5.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/EventDefinitionSummary.css","webpack://graylog-web-interface/./src/components/common/MarkdownEditor/PreviewModal.tsx","webpack://graylog-web-interface/./src/components/common/MarkdownEditor/Preview.tsx","webpack://graylog-web-interface/./src/components/common/MarkdownEditor/EditorModal.tsx","webpack://graylog-web-interface/./src/components/common/MarkdownEditor/Editor.tsx","webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/event-definitions/constants.ts","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/EventDefinitionValidationSummary.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/EventDefinitionSummary.css?9f94","webpack://graylog-web-interface/./src/components/event-definitions/event-definition-form/EventDefinitionSummary.tsx","webpack://graylog-web-interface/./src/components/events/EventsPageNavigation.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.xZzz7avfOImN5wyTQXue dl dl {\n padding-left: 10px;\n margin-bottom: 5px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/event-definitions/event-definition-form/EventDefinitionSummary.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,kBAAkB;IAClB,kBAAkB;AACtB\",\"sourcesContent\":[\":local(.eventSummary) dl dl {\\n padding-left: 10px;\\n margin-bottom: 5px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"eventSummary\": `xZzz7avfOImN5wyTQXue`\n};\nexport default ___CSS_LOADER_EXPORT___;\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 * as React from 'react';\nimport ReactDom from 'react-dom';\nimport styled from 'styled-components';\n\nimport { Button } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nimport Preview from './Preview';\n\nconst Backdrop = styled.div`\n position: fixed;\n display: flex;\n flex-direction: column;\n align-items: center;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1051;\n\n background-color: rgba(0, 0, 0, 0.5);\n`;\n\nconst Content = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 600px;\n height: 65vh;\n top: 10vh;\n padding: 16px;\n\n background-color: ${({ theme }) => theme.colors.global.contentBackground};\n border: 1px solid ${({ theme }) => theme.colors.input.border};\n border-radius: 8px;\n`;\n\nconst CloseIcon = styled(Icon)`\n margin-left: auto;\n cursor: pointer;\n color: ${({ theme }) => theme.colors.input.placeholder};\n\n &:hover {\n color: ${({ theme }) => theme.colors.global.textDefault};\n }\n`;\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n align-items: stretch;\n justify-content: stretch;\n gap: 1rem;\n\n editor-body {\n flex-grow: 1;\n }\n`;\n\ntype Props = {\n value: string;\n show: boolean;\n onClose: () => void;\n}\n\nfunction PreviewModal({ value, show, onClose }: Props) {\n const [height, setHeight] = React.useState(0);\n\n React.useEffect(() => {\n const contentHeight = document.getElementById('preview-body')?.scrollHeight;\n setHeight(contentHeight);\n }, [show]);\n\n const Component = React.useMemo(() => (show ? (\n onClose()}>\n e.stopPropagation()}>\n \n Markdown Preview
\n onClose()} />\n
\n \n \n \n
\n \n \n ) : null), [show, value, height, onClose]);\n\n return <>{ReactDom.createPortal(Component, document.body)}>;\n}\n\nexport default PreviewModal;\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 * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Markdown, Icon } from 'components/common';\n\nimport PreviewModal from './PreviewModal';\n\nconst Container = styled.div<{ $height?: number, $noBackground?: boolean, $noBorder?: boolean }>`\n position: relative;\n padding: 8px 0;\n background-color: ${({ theme, $noBackground }) => ($noBackground ? 'transparent' : theme.colors.global.contentBackground)};\n ${({ $noBorder }) => (!$noBorder && css`border: 1px solid ${({ theme }) => theme.colors.input.border};`)}\n border-radius: 4px;\n flex-grow: 1;\n overflow: hidden;\n\n height: ${({ $height }) => ($height ? `${$height}px` : 'auto')};\n min-height: 100px;\n`;\n\nconst ExpandIcon = styled(Icon)`\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 8px 16px;\n cursor: pointer;\n color: ${({ theme }) => theme.colors.input.placeholder};\n z-index: 10;\n\n &:hover {\n color: ${({ theme }) => theme.colors.global.textDefault};\n }\n`;\n\nconst MarkdownStyles = styled.div`\n overflow-y: auto;\n overflow-x: hidden;\n height: 100%;\n padding: 0 8px;\n\n container-type: inline-size;\n\n & > div {\n & > h1, & > h2, & > h3, & > h4, & > h5, & > h6 {\n margin-bottom: 8px;\n }\n\n & ul, & ol {\n padding-left: 1.5rem;\n margin: 8px 0;\n\n & > li {\n padding: 4px 0;\n }\n }\n\n & ul {\n list-style-type: disc;\n }\n\n & p {\n white-space: pre-wrap;\n margin: 8px 0;\n }\n\n & table {\n border-collapse: collapse;\n border-spacing: 0;\n margin: 8px 0;\n\n & th, & td {\n border: 1px solid ${({ theme }) => theme.colors.input.border};\n padding: 4px 8px;\n }\n }\n }\n`;\n\ntype Props = {\n value: string;\n height?: number;\n show: boolean;\n withFullView?: boolean;\n noBackground?: boolean;\n noBorder?: boolean;\n};\n\nfunction Preview({ value, height, show, withFullView, noBackground, noBorder }: Props) {\n const [fullView, setFullView] = React.useState(false);\n\n return show && (\n \n \n \n \n {withFullView && setFullView(true)} />}\n setFullView(false)} />\n \n );\n}\n\nPreview.defaultProps = {\n withFullView: false,\n noBackground: false,\n noBorder: false,\n height: undefined,\n};\n\nexport default Preview;\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 * as React from 'react';\nimport ReactDom from 'react-dom';\nimport styled from 'styled-components';\n\nimport { Button } from 'components/bootstrap';\nimport { Icon, SourceCodeEditor } from 'components/common';\n\nimport Preview from './Preview';\n\nconst Backdrop = styled.div`\n position: fixed;\n display: flex;\n flex-direction: column;\n align-items: center;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1051;\n\n background-color: rgba(0, 0, 0, 0.5);\n`;\n\nconst Content = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 75vw;\n max-width: 1000px;\n height: 65vh;\n top: 10vh;\n padding: 16px;\n\n background-color: ${({ theme }) => theme.colors.global.contentBackground};\n border: 1px solid ${({ theme }) => theme.colors.input.border};\n border-radius: 8px;\n`;\n\nconst CloseIcon = styled(Icon)`\n margin-left: auto;\n cursor: pointer;\n color: ${({ theme }) => theme.colors.input.placeholder};\n\n &:hover {\n color: ${({ theme }) => theme.colors.global.textDefault};\n }\n`;\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n align-items: stretch;\n justify-content: stretch;\n gap: 1rem;\n\n editor-body {\n flex-grow: 1;\n }\n`;\n\nconst EditorWrapper = styled.div`\n .ace_editor {\n border: 1px solid ${({ theme }) => theme.colors.input.border} !important;\n }\n`;\n\ntype Props = {\n value: string;\n readOnly?: boolean;\n show: boolean;\n onChange: (newValue: string) => void;\n onClose: () => void;\n onDone?: (newValue?: string) => void;\n}\n\nfunction EditorModal({ value, readOnly, onChange, show, onClose, onDone }: Props) {\n const [height, setHeight] = React.useState(0);\n const [localValue, setLocalValue] = React.useState(value);\n\n React.useEffect(() => {\n const contentHeight = document.getElementById('editor-body')?.scrollHeight;\n setHeight(contentHeight);\n }, []);\n\n React.useEffect(() => setLocalValue(value), [value]);\n\n const handleOnChange = React.useCallback((newValue: string) => {\n setLocalValue(newValue);\n onChange(newValue);\n }, [onChange]);\n\n const handleOnDone = React.useCallback(() => {\n if (onDone) onDone(localValue);\n onClose();\n }, [localValue, onClose, onDone]);\n\n const Component = React.useMemo(() => (\n show ? (\n onClose()}>\n e.stopPropagation()}>\n \n Markdown Editor
\n onClose()} />\n
\n \n {height > 0 && (\n <>\n \n {/* @ts-ignore */}\n \n \n \n \n \n >\n )}\n
\n \n \n \n
\n \n \n ) : null\n ), [show, height, localValue, readOnly, onClose, handleOnDone, handleOnChange]);\n\n return <>{ReactDom.createPortal(Component, document.body)}>;\n}\n\nEditorModal.defaultProps = {\n readOnly: false,\n onDone: undefined,\n};\n\nexport default EditorModal;\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 * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { SourceCodeEditor, Icon } from 'components/common';\n\nimport Preview from './Preview';\nimport EditorModal from './EditorModal';\n\nconst TabsRow = styled.div`\n position: relative;\n bottom: -1px;\n display: flex;\n flex-direction: row;\n align-items: flex-end;\n gap: 5px;\n padding: 0 8px;\n z-index: 1;\n`;\n\nconst Tab = styled.div<{ $active?: boolean }>`\n padding: 4px 8px;\n border: none;\n border-bottom: 1px solid ${({ theme }) => theme.colors.input.border};\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n background-color: ${({ theme }) => theme.colors.global.contentBackground};\n color: ${({ theme, $active }) => ($active ? theme.colors.global.textDefault : theme.colors.input.placeholder)};\n cursor: pointer;\n\n ${({ $active }) => $active && css`\n border: 1px solid ${({ theme }) => theme.colors.input.border};\n border-bottom-color: ${({ theme }) => theme.colors.global.contentBackground};\n `}\n`;\n\nconst EditorStyles = styled.div`\n & .ace_editor {\n border-color: ${({ theme }) => theme.colors.input.border} !important;\n }\n\n & .ace_cursor {\n border-color: ${({ theme }) => theme.colors.global.textDefault};\n }\n`;\n\nconst ExpandIcon = styled(Icon)`\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 8px;\n cursor: pointer;\n color: ${({ theme }) => theme.colors.input.placeholder};\n z-index: 10;\n\n &:hover {\n color: ${({ theme }) => theme.colors.global.textDefault};\n }\n`;\n\ntype Props = {\n id?: string;\n value: string;\n height: number;\n readOnly?: boolean;\n onChange: (note: string) => void;\n onFullMode?: (fullMode: boolean) => void;\n}\n\nfunction Editor({ id, value, height, readOnly, onChange, onFullMode }: Props) {\n const [localValue, setLocalValue] = React.useState(value);\n const [showPreview, setShowPreview] = React.useState(false);\n const [fullView, setFullView] = React.useState(false);\n\n React.useEffect(() => setLocalValue(value), [value]);\n\n const handleOnFullMode = (fullMode: boolean) => {\n setFullView(fullMode);\n if (onFullMode) onFullMode(fullMode);\n };\n\n const handleOnChange = (newValue: string) => {\n setLocalValue(newValue);\n onChange(newValue);\n };\n\n return (\n <>\n \n \n setShowPreview(false)}>Edit \n setShowPreview(true)}>Preview \n \n {!showPreview && (\n \n \n \n )}\n \n handleOnFullMode(true)} />\n \n {fullView && (\n handleOnFullMode(false)} />\n )}\n >\n );\n}\n\nEditor.defaultProps = {\n id: undefined,\n readOnly: false,\n onFullMode: undefined,\n};\n\nexport default Editor;\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 * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { LinkContainer } from 'components/common/router';\nimport { IfPermitted } from 'components/common';\nimport NavItemStateIndicator, {\n hoverIndicatorStyles,\n activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nconst Container = styled(ButtonToolbar)`\n margin-bottom: 10px;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => css`\n font-family: ${theme.fonts.family.navigation};\n font-size: ${theme.fonts.size.navigation};\n color: ${theme.colors.variant.darker.default};\n \n &:hover,\n &:focus {\n background: inherit;\n text-decoration: none;\n }\n\n &:hover {\n color: inherit;\n ${hoverIndicatorStyles(theme)}\n }\n\n &.active {\n color: ${theme.colors.global.textDefault};\n\n ${activeIndicatorStyles(theme)}\n\n &:hover,\n &:focus {\n ${activeIndicatorStyles(theme)}\n }\n`);\n\nStyledButton.displayName = 'Button';\n\ntype Props = {\n /**\n * List of nav items. Define permissions, if the item should only be displayed for users with specific permissions.\n * By default, an item is active if the current URL starts with the item URL.\n * If you only want to display an item as active only when its path matches exactly, set `exactPathMatch` to true.\n */\n items: Array<{\n title: string,\n path: string,\n permissions?: string | Array\n exactPathMatch?: boolean,\n }>\n}\n\n/**\n * Simple tab navigation to allow navigating to subareas of a page.\n */\nconst PageNavigation = ({ items }: Props) => (\n \n {items.map(({ path, title, permissions, exactPathMatch }) => {\n if (!path) {\n return null;\n }\n\n return (\n \n \n \n \n {title}\n \n \n \n \n );\n })}\n \n);\n\nexport default PageNavigation;\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 type { Sort } from 'stores/PaginationTypes';\n\nexport const SYSTEM_EVENT_DEFINITION_TYPE = 'system-notifications-v1';\n\nexport const ENTITY_TABLE_ID = 'event_definitions';\nexport const DEFAULT_LAYOUT = {\n pageSize: 20,\n sort: { attributeId: 'title', direction: 'asc' } as Sort,\n displayedColumns: ['title', 'description', 'priority', 'scheduling', 'status', 'matched_at'],\n columnsOrder: ['title', 'description', 'priority', 'matched_at', 'status', 'scheduling'],\n};\n\nexport const ADDITIONAL_ATTRIBUTES = [\n { id: 'scheduling', title: 'Scheduling', sortable: false },\n { id: 'matched_at', title: 'Last Matched', sortable: true },\n];\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';\n\nimport { Alert, Col, Row } from 'components/bootstrap';\n\nimport commonStyles from '../common/commonStyles.css';\n\ntype Props = {\n validation: {\n errors: {\n [name: string]: any\n }\n },\n}\n\nconst EventDefinitionValidationSummary = ({ validation }: Props) => {\n const fieldsWithErrors = Object.keys(validation.errors);\n\n if (fieldsWithErrors.length === 0) {\n return null;\n }\n\n return (\n \n \n \n Please correct the following errors before saving this Event Definition:
\n \n {fieldsWithErrors.map((field) => validation.errors[field].map((error) => {\n const effectiveError = (field === 'config' ? error.replace('config', 'condition') : error);\n\n return - {effectiveError}
;\n }))}\n
\n \n \n
\n );\n};\n\nEventDefinitionValidationSummary.propTypes = {\n validation: PropTypes.object,\n};\n\nEventDefinitionValidationSummary.defaultProps = {\n validation: {\n errors: [],\n },\n};\n\nexport default EventDefinitionValidationSummary;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./EventDefinitionSummary.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./EventDefinitionSummary.css\";\n export default content && content.locals ? content.locals : undefined;\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 * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport upperFirst from 'lodash/upperFirst';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\nimport moment from 'moment';\n\nimport 'moment-duration-format';\nimport { defaultCompare as naturalSort } from 'logic/DefaultCompare';\nimport { MarkdownPreview } from 'components/common/MarkdownEditor';\nimport { Alert, Col, Row } from 'components/bootstrap';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport EventDefinitionPriorityEnum from 'logic/alerts/EventDefinitionPriorityEnum';\nimport type User from 'logic/users/User';\n\nimport EventDefinitionValidationSummary from './EventDefinitionValidationSummary';\nimport styles from './EventDefinitionSummary.css';\n\nimport type { EventDefinition } from '../event-definitions-types';\nimport commonStyles from '../common/commonStyles.css';\nimport { SYSTEM_EVENT_DEFINITION_TYPE } from '../constants';\n\ntype Props = {\n eventDefinition: Omit,\n notifications: Array,\n validation: {\n errors: {\n title?: string,\n }\n },\n currentUser: User,\n}\n\nconst EventDefinitionSummary = ({ eventDefinition, notifications, validation, currentUser }: Props) => {\n const [showValidation, setShowValidation] = useState(false);\n\n useEffect(() => {\n const flipShowValidation = () => {\n if (!showValidation) {\n setShowValidation(true);\n }\n };\n\n flipShowValidation();\n }, [showValidation, setShowValidation]);\n\n const renderDetails = () => (\n <>\n Details
\n \n - Title
\n - {eventDefinition.title || 'No title given'}
\n - Description
\n - {eventDefinition.description || 'No description given'}
\n - Priority
\n - {upperFirst(EventDefinitionPriorityEnum.properties[eventDefinition.priority].name)}
\n - Remediation Steps
\n - \n
\n \n
\n >\n );\n\n const getPlugin = (name, type) => {\n if (type === undefined) {\n return {};\n }\n\n return PluginStore.exports(name).find((edt) => edt.type === type) || {};\n };\n\n const renderCondition = (config) => {\n const conditionPlugin = getPlugin('eventDefinitionTypes', config.type);\n const component = (conditionPlugin.summaryComponent\n ? React.createElement(conditionPlugin.summaryComponent, {\n config,\n currentUser,\n })\n : Condition plugin {config.type} does not provide a summary.
\n );\n\n return (\n <>\n {conditionPlugin.displayName || config.type}
\n {component}\n >\n );\n };\n\n const renderField = (fieldName, config, keys) => {\n if (!config.providers || config.providers.length === 0) {\n return No field value provider configured.;\n }\n\n const provider = config.providers[0] || {};\n const fieldProviderPlugin = getPlugin('fieldValueProviders', provider.type);\n\n return (fieldProviderPlugin.summaryComponent\n ? React.createElement(fieldProviderPlugin.summaryComponent, {\n fieldName,\n config,\n keys: keys,\n key: fieldName,\n currentUser,\n })\n : Provider plugin {provider.type} does not provide a summary.
\n );\n };\n\n const renderFieldList = (fieldNames, fields, keys) => (\n <>\n \n - Keys
\n - {keys.length > 0 ? keys.join(', ') : 'No Keys configured for Events based on this Definition.'}
\n
\n {fieldNames.sort(naturalSort).map((fieldName) => renderField(fieldName, fields[fieldName], keys))}\n >\n );\n\n const renderFields = (fields, keys) => {\n const fieldNames = Object.keys(fields);\n\n return (\n <>\n Fields
\n {fieldNames.length === 0\n ? No Fields configured for Events based on this Definition.
\n : renderFieldList(fieldNames, fields, keys)}\n >\n );\n };\n\n const renderNotification = (definitionNotification) => {\n const notification = notifications.find((n) => n.id === definitionNotification.notification_id);\n\n let content;\n\n if (notification) {\n const notificationPlugin = getPlugin('eventNotificationTypes', notification.config.type);\n\n content = (notificationPlugin.summaryComponent\n ? React.createElement(notificationPlugin.summaryComponent, {\n type: notificationPlugin.displayName,\n notification: notification,\n definitionNotification: definitionNotification,\n })\n : Notification plugin {notification.config.type} does not provide a summary.
\n );\n } else {\n content = (\n \n Could not find information for Notification {definitionNotification.notification_id}.\n
\n );\n }\n\n return (\n \n {content}\n \n );\n };\n\n const renderNotificationSettings = (notificationSettings) => {\n const formattedDuration = moment.duration(notificationSettings.grace_period_ms)\n .format('d [days] h [hours] m [minutes] s [seconds]', { trim: 'all' });\n\n const formattedGracePeriod = (notificationSettings.grace_period_ms\n ? `Grace Period is set to ${formattedDuration}`\n : 'Grace Period is disabled');\n\n const formattedBacklogSize = (notificationSettings.backlog_size\n ? `Notifications will include ${notificationSettings.backlog_size} messages`\n : 'Notifications will not include any messages.');\n\n return (\n <>\n Settings
\n \n - {formattedGracePeriod}
\n - {formattedBacklogSize}
\n
\n >\n );\n };\n\n const renderNotifications = (definitionNotifications, notificationSettings) => {\n const effectiveDefinitionNotifications = definitionNotifications\n .filter((n) => isPermitted(currentUser.permissions, `eventnotifications:read:${n.notification_id}`));\n const notificationsWithMissingPermissions = definitionNotifications\n .filter((n) => !effectiveDefinitionNotifications.map((nObj) => nObj.notification_id).includes(n.notification_id));\n const warning = notificationsWithMissingPermissions.length > 0\n ? (\n \n Missing Notifications Permissions for:
\n {notificationsWithMissingPermissions.map((n) => n.notification_id).join(', ')}\n \n )\n : null;\n\n return (\n <>\n Notifications
\n \n {warning}\n
\n {effectiveDefinitionNotifications.length === 0 && notificationsWithMissingPermissions.length <= 0\n ? This Event is not configured to trigger any Notifications.
\n : (\n <>\n {renderNotificationSettings(notificationSettings)}\n {definitionNotifications.map(renderNotification)}\n >\n )}\n >\n );\n };\n\n const isSystemEventDefinition = eventDefinition.config.type === SYSTEM_EVENT_DEFINITION_TYPE;\n\n return (\n \n \n Event Summary
\n {showValidation && }\n \n \n {renderDetails()}\n \n\n {!isSystemEventDefinition && (\n \n {renderCondition(eventDefinition.config)}\n \n )}\n
\n \n {!isSystemEventDefinition && (\n \n {renderFields(eventDefinition.field_spec, eventDefinition.key_spec)}\n \n )}\n \n {renderNotifications(eventDefinition.notifications, eventDefinition.notification_settings)}\n \n
\n \n
\n );\n};\n\nEventDefinitionSummary.propTypes = {\n eventDefinition: PropTypes.object.isRequired,\n notifications: PropTypes.array.isRequired,\n validation: PropTypes.object,\n currentUser: PropTypes.object.isRequired,\n};\n\nEventDefinitionSummary.defaultProps = {\n validation: undefined,\n};\n\nexport default EventDefinitionSummary;\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 * as React from 'react';\n\nimport PageNavigation from 'components/common/PageNavigation';\nimport Routes from 'routing/Routes';\nimport { Row } from 'components/bootstrap';\n\nconst NAV_ITEMS = [\n { title: 'Alerts & Events', path: Routes.ALERTS.LIST, exactPathMatch: true },\n { title: 'Event Definitions', path: Routes.ALERTS.DEFINITIONS.LIST },\n { title: 'Notifications', path: Routes.ALERTS.NOTIFICATIONS.LIST },\n];\n\nconst EventsPageNavigation = () => (\n \n \n
\n);\n\nexport default EventsPageNavigation;\n"],"names":["___CSS_LOADER_EXPORT___","module","Backdrop","Content","theme","CloseIcon","Row","PreviewModal","value","show","onClose","height","setHeight","contentHeight","Component","e","Container","$noBackground","$noBorder","$height","ExpandIcon","MarkdownStyles","Preview","withFullView","noBackground","noBorder","fullView","setFullView","EditorWrapper","EditorModal","readOnly","onChange","onDone","localValue","setLocalValue","handleOnChange","newValue","handleOnDone","TabsRow","Tab","$active","EditorStyles","Editor","id","onFullMode","showPreview","setShowPreview","handleOnFullMode","fullMode","StyledButton","items","path","title","permissions","exactPathMatch","SYSTEM_EVENT_DEFINITION_TYPE","ENTITY_TABLE_ID","DEFAULT_LAYOUT","ADDITIONAL_ATTRIBUTES","EventDefinitionValidationSummary","validation","fieldsWithErrors","commonStyles","field","error","effectiveError","options","update","eventDefinition","notifications","currentUser","showValidation","setShowValidation","renderDetails","EventDefinitionPriorityEnum","getPlugin","name","type","edt","renderCondition","config","conditionPlugin","component","renderField","fieldName","keys","provider","fieldProviderPlugin","renderFieldList","fieldNames","fields","renderFields","renderNotification","definitionNotification","notification","n","content","notificationPlugin","renderNotificationSettings","notificationSettings","formattedDuration","formattedGracePeriod","formattedBacklogSize","renderNotifications","definitionNotifications","effectiveDefinitionNotifications","notificationsWithMissingPermissions","nObj","warning","isSystemEventDefinition","NAV_ITEMS"],"sourceRoot":""}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy