web-interface.assets.bb8c8232-4742.b7d2aac1c94609dffdc7.js.map Maven / Gradle / Ivy
{"version":3,"file":"bb8c8232-4742.b7d2aac1c94609dffdc7.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/stores/codecs/CodecTypesStore.js","webpack://graylog-web-interface/./src/components/messageloaders/RawMessageLoader.tsx","webpack://graylog-web-interface/./src/components/messageloaders/useForwarderMessageLoaders.ts","webpack://graylog-web-interface/./src/components/search/MessageFieldExtractorActions.jsx","webpack://graylog-web-interface/./src/components/search/MessageFieldDescription.jsx","webpack://graylog-web-interface/./src/components/search/MessageField.jsx","webpack://graylog-web-interface/./src/components/search/MessageFields.jsx","webpack://graylog-web-interface/./src/components/search/MessageDetail.jsx","webpack://graylog-web-interface/./src/components/search/MessageShow.jsx","webpack://graylog-web-interface/./src/logic/message/MessageFormatter.js","webpack://graylog-web-interface/./src/stores/messages/MessagesStore.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 Reflux from 'reflux';\n\nimport ApiRoutes from 'routing/ApiRoutes';\nimport fetch from 'logic/rest/FetchProvider';\nimport * as URLUtils from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const CodecTypesActions = singletonActions(\n 'core.CodecTypes',\n () => Reflux.createActions({\n list: { asyncResult: true },\n }),\n);\n\nexport const CodecTypesStore = singletonStore(\n 'core.CodecTypes',\n () => Reflux.createStore({\n listenables: [CodecTypesActions],\n codecTypes: undefined,\n\n getInitialState() {\n return { codecTypes: this.codecTypes };\n },\n\n list() {\n const promise = fetch('GET', URLUtils.qualifyUrl(ApiRoutes.CodecTypesController.list().url));\n\n promise.then(\n (response) => {\n this.codecTypes = response;\n this.trigger(this.getInitialState());\n },\n (error) => {\n UserNotification.error(`Fetching codec types failed with status: ${error}`,\n 'Could not retrieve codec types');\n },\n );\n\n CodecTypesActions.list.promise(promise);\n },\n }),\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 */\n\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport * as Immutable from 'immutable';\nimport type { Subtract } from 'utility-types';\n\nimport { getValueFromInput } from 'util/FormsUtils';\nimport { Select, FormSubmit } from 'components/common';\nimport { Col, Row, Input } from 'components/bootstrap';\nimport { BooleanField, DropdownField, NumberField, TextField } from 'components/configurationforms';\nimport type { ConfigurationFieldValue } from 'components/configurationforms';\nimport connect from 'stores/connect';\nimport type { Message } from 'views/components/messagelist/Types';\nimport useForwarderMessageLoaders from 'components/messageloaders/useForwarderMessageLoaders';\nimport AppConfig from 'util/AppConfig';\nimport { CodecTypesStore, CodecTypesActions } from 'stores/codecs/CodecTypesStore';\nimport { InputsActions, InputsStore } from 'stores/inputs/InputsStore';\nimport { MessagesActions } from 'stores/messages/MessagesStore';\nimport useHistory from 'routing/useHistory';\n\nimport type { Input as InputType, CodecTypes } from './Types';\n\nconst DEFAULT_REMOTE_ADDRESS = '127.0.0.1';\n\ntype InputSelectProps = {\n inputs: Immutable.Map,\n selectedInputId: string | undefined,\n onInputSelect: (selectedInputId: string) => void,\n show: boolean,\n};\n\nconst ServerInputSelect = ({ inputs, selectedInputId, onInputSelect }: Subtract) => {\n const _formatInputSelectOptions = () => {\n if (!inputs) {\n return [{ value: 'none', label: 'Loading inputs...', disabled: true }];\n }\n\n if (inputs.size === 0) {\n return [{ value: 'none', label: 'No inputs available' }];\n }\n\n const formattedInputs = [];\n\n inputs\n .sort((inputA, inputB) => inputA.title.toLowerCase().localeCompare(inputB.title.toLowerCase()))\n .forEach((input, id) => {\n const label = `${id} / ${input.title} / ${input.name}`;\n\n formattedInputs.push({ value: id, label: label });\n });\n\n return formattedInputs;\n };\n\n return (\n Message input (optional)>}\n help=\"Select the message input ID that should be assigned to the parsed message.\">\n \n \n );\n};\n\nconst ForwarderInputSelect = ({ onInputSelect }: Pick) => {\n const { ForwarderInputDropdown } = useForwarderMessageLoaders();\n\n return (\n <>\n \n Select an Input profile from the list below then select an then select an Input.
\n >\n );\n};\n\nconst InputSelect = ({ inputs, selectedInputId, onInputSelect, show }: InputSelectProps) => {\n const { ForwarderInputDropdown } = useForwarderMessageLoaders();\n const [selectedInputType, setSelectedInputType] = useState<'server' | 'forwarder' | undefined>();\n\n if (!show) {\n return null;\n }\n\n if (AppConfig.isCloud()) {\n return ;\n }\n\n return ForwarderInputDropdown ? (\n \n ) : (\n \n );\n};\n\ntype OptionsType = {\n message: string,\n remoteAddress: string,\n codec: string,\n codecConfiguration: {\n [key: string]: string,\n },\n inputId?: string,\n};\n\ntype Props = {\n inputs?: Immutable.Map,\n codecTypes: CodecTypes,\n onMessageLoaded: (message: Message | undefined, option: OptionsType) => void,\n inputIdSelector?: boolean,\n};\n\nconst RawMessageLoader = ({ onMessageLoaded, inputIdSelector, codecTypes, inputs }: Props) => {\n const [loading, setLoading] = useState(false);\n const [message, setMessage] = useState('');\n const [remoteAddress, setRemoteAddress] = useState(DEFAULT_REMOTE_ADDRESS);\n const [codec, setCodec] = useState('');\n const [codecConfiguration, setCodecConfiguration] = useState({});\n const [inputId, setInputId] = useState();\n const history = useHistory();\n\n useEffect(() => {\n CodecTypesActions.list();\n }, []);\n\n useEffect(() => {\n if (inputIdSelector) {\n InputsActions.list();\n }\n }, [inputIdSelector]);\n\n const _loadMessage = (event: React.SyntheticEvent) => {\n event.preventDefault();\n\n setLoading(true);\n const promise = MessagesActions.loadRawMessage(message, remoteAddress, codec, codecConfiguration);\n\n promise.then((loadedMessage) => {\n onMessageLoaded(\n loadedMessage,\n {\n message: message,\n remoteAddress: remoteAddress,\n codec: codec,\n codecConfiguration: codecConfiguration,\n inputId: inputId,\n },\n );\n });\n\n promise.finally(() => setLoading(false));\n };\n\n const _formatSelectOptions = () => {\n if (!codecTypes) {\n return [{ value: 'none', label: 'Loading codec types...', disabled: true }];\n }\n\n const codecTypesIds = Object.keys(codecTypes);\n\n if (codecTypesIds.length === 0) {\n return [{ value: 'none', label: 'No codecs available' }];\n }\n\n return codecTypesIds\n .filter((id) => id !== 'random-http-msg') // Skip Random HTTP codec, as nobody wants to enter a raw random message.\n .map((id) => {\n const { name } = codecTypes[id];\n\n // Add id as label on codecs not having a descriptor name\n return { value: id, label: name === '' ? id : name };\n })\n .sort((codecA, codecB) => codecA.label.toLowerCase().localeCompare(codecB.label.toLowerCase()));\n };\n\n const _onCodecSelect = (selectedCodec: string) => {\n setCodec(selectedCodec);\n setCodecConfiguration({});\n };\n\n const _onInputSelect = (selectedInput: string) => {\n setInputId(selectedInput);\n };\n\n const _onMessageChange = (event: React.SyntheticEvent) => {\n setMessage(getValueFromInput(event.target));\n };\n\n const _onRemoteAddressChange = (event: React.SyntheticEvent) => {\n setRemoteAddress(getValueFromInput(event.target));\n };\n\n const _onCodecConfigurationChange = (field: string, value: ConfigurationFieldValue) => {\n const newConfiguration = { ...codecConfiguration, [field]: value };\n setCodecConfiguration(newConfiguration);\n };\n\n const _formatConfigField = (key: string, configField) => {\n const value = codecConfiguration[key];\n const typeName = 'RawMessageLoader';\n const elementKey = `${typeName}-${key}`;\n\n switch (configField.type) {\n case 'text':\n return (\n \n );\n case 'number':\n return (\n \n );\n case 'boolean':\n return (\n \n );\n case 'dropdown':\n return (\n \n );\n default:\n return null;\n }\n };\n\n const _isSubmitDisabled = !message || !codec || loading;\n\n let codecConfigurationOptions;\n\n if (codecTypes && codec) {\n const currentCodecConfiguration = codecTypes[codec].requested_configuration;\n\n codecConfigurationOptions = Object.keys(currentCodecConfiguration)\n .sort((keyA, keyB) => currentCodecConfiguration[keyA].is_optional - currentCodecConfiguration[keyB].is_optional)\n .map((key) => _formatConfigField(key, currentCodecConfiguration[key]));\n }\n\n return (\n \n \n \n \n
\n );\n};\n\nRawMessageLoader.propTypes = {\n onMessageLoaded: PropTypes.func.isRequired,\n inputIdSelector: PropTypes.bool,\n codecTypes: PropTypes.object,\n inputs: PropTypes.object,\n};\n\nRawMessageLoader.defaultProps = {\n inputIdSelector: false,\n codecTypes: undefined,\n inputs: undefined,\n};\n\nexport default connect(\n // @ts-ignore\n RawMessageLoader,\n { inputs: InputsStore, codecTypes: CodecTypesStore },\n // @ts-ignore\n ({ inputs: { inputs }, codecTypes: { codecTypes } }) => ({ inputs: (inputs ? Immutable.Map(InputsStore.inputsAsMap(inputs)) : undefined), codecTypes }),\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 { PluginStore } from 'graylog-web-plugin/plugin';\n\nconst useForwarderMessageLoaders = () => {\n const messageLoaders = PluginStore.exports('forwarder')?.[0]?.messageLoaders;\n\n return messageLoaders || { ForwarderInputDropdown: undefined };\n};\n\nexport default useForwarderMessageLoaders;\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 { LinkContainer } from 'components/common/router';\nimport { DropdownButton, MenuItem } from 'components/bootstrap';\nimport ExtractorUtils from 'util/ExtractorUtils';\n\nclass MessageFieldExtractorActions extends React.Component {\n static propTypes = {\n fieldName: PropTypes.string.isRequired,\n message: PropTypes.object.isRequired,\n };\n\n UNSAFE_componentWillMount() {\n this._refreshExtractorRoutes(this.props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this._refreshExtractorRoutes(nextProps);\n }\n\n _refreshExtractorRoutes = (props) => {\n this.newExtractorRoutes = ExtractorUtils.getNewExtractorRoutes(props.message.source_node_id,\n props.message.source_input_id,\n props.fieldName,\n props.message.index,\n props.message.id);\n };\n\n _formatExtractorMenuItem = (extractorType) => (\n \n \n \n );\n\n render() {\n const { fieldName, message } = this.props;\n const messageField = message.fields[fieldName];\n\n if (typeof messageField === 'string') {\n return (\n \n \n {ExtractorUtils.EXTRACTOR_TYPES.map((extractorType) => this._formatExtractorMenuItem(extractorType))}\n \n \n );\n }\n\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default MessageFieldExtractorActions;\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';\nimport Immutable from 'immutable';\nimport styled, { css } from 'styled-components';\n\nimport { Alert } from 'components/bootstrap';\nimport { FULL_MESSAGE_FIELD, MESSAGE_FIELD } from 'views/Constants';\n\nconst MessageTerms = styled.span(({ theme }) => css`\n margin-right: 8px;\n font-family: ${theme.fonts.family.monospace};\n`);\n\nclass MessageFieldDescription extends React.Component {\n static propTypes = {\n message: PropTypes.object.isRequired,\n fieldName: PropTypes.string.isRequired,\n renderForDisplay: PropTypes.func.isRequired,\n customFieldActions: PropTypes.node,\n };\n\n static defaultProps = {\n customFieldActions: undefined,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n messageTerms: Immutable.List(),\n };\n }\n\n _shouldShowTerms = () => {\n const { messageTerms } = this.state;\n\n return messageTerms.size !== 0;\n };\n\n _getFormattedTerms = () => {\n const { messageTerms } = this.state;\n\n return messageTerms.map((term) => {term} );\n };\n\n _getFormattedFieldActions = () => {\n const { customFieldActions, fieldName, message } = this.props;\n\n return customFieldActions ? React.cloneElement(customFieldActions, { fieldName, message }) : null;\n };\n\n render() {\n const { fieldName, renderForDisplay } = this.props;\n const className = fieldName === MESSAGE_FIELD || fieldName === FULL_MESSAGE_FIELD ? 'message-field' : '';\n\n return (\n \n {this._getFormattedFieldActions()}\n {renderForDisplay(fieldName)}\n {this._shouldShowTerms()\n && (\n this.setState({ messageTerms: Immutable.Map() })}>\n Field terms: {this._getFormattedTerms()}\n \n )}\n \n );\n }\n}\n\nexport default MessageFieldDescription;\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 { MessageFieldDescription } from 'components/search';\nimport { FULL_MESSAGE_FIELD } from 'views/Constants';\n\nconst SPECIAL_FIELDS = [FULL_MESSAGE_FIELD, 'level'];\n\nconst MessageField = ({ message, value, fieldName, customFieldActions, renderForDisplay }) => {\n const innerValue = SPECIAL_FIELDS.indexOf(fieldName) !== -1 ? message.fields[fieldName] : value;\n\n return (\n \n {fieldName} \n \n \n );\n};\n\nMessageField.propTypes = {\n customFieldActions: PropTypes.node,\n fieldName: PropTypes.string.isRequired,\n message: PropTypes.object.isRequired,\n renderForDisplay: PropTypes.func.isRequired,\n value: PropTypes.any.isRequired,\n};\n\nMessageField.defaultProps = {\n customFieldActions: undefined,\n};\n\nexport default MessageField;\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 { MessageField } from 'components/search';\nimport { MessageDetailsDefinitionList } from 'components/common';\n\nclass MessageFields extends React.Component {\n static propTypes = {\n customFieldActions: PropTypes.node,\n message: PropTypes.object.isRequired,\n renderForDisplay: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n customFieldActions: undefined,\n };\n\n _formatFields = (fields) => Object.keys(fields)\n .sort()\n .map((key) => (\n \n ));\n\n render() {\n const { message } = this.props;\n // eslint-disable-next-line no-unused-vars\n const { _id, ...formatted_fields } = message.fields;\n const formattedFields = message.formatted_fields || formatted_fields;\n const fields = this._formatFields(formattedFields);\n\n return (\n \n {fields}\n \n );\n }\n}\n\nexport default MessageFields;\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';\nimport Immutable from 'immutable';\n\nimport { Link } from 'components/common/router';\nimport { MessageDetailsDefinitionList, ClipboardButton, Icon, Timestamp } from 'components/common';\nimport { Button, ButtonGroup, Col, Label, Row } from 'components/bootstrap';\nimport StreamLink from 'components/streams/StreamLink';\nimport MessageFields from 'components/search/MessageFields';\nimport MessageDetailsTitle from 'components/search/MessageDetailsTitle';\nimport Routes from 'routing/Routes';\nimport AppConfig from 'util/AppConfig';\n\nclass MessageDetail extends React.Component {\n static propTypes = {\n renderForDisplay: PropTypes.func.isRequired,\n inputs: PropTypes.object,\n nodes: PropTypes.object,\n message: PropTypes.object.isRequired,\n streams: PropTypes.object,\n customFieldActions: PropTypes.node,\n };\n\n static defaultProps = {\n inputs: undefined,\n nodes: undefined,\n streams: undefined,\n customFieldActions: undefined,\n };\n\n _inputName = (inputId) => {\n const { inputs } = this.props;\n const input = inputs.get(inputId);\n\n return input ? {input.title} : 'deleted input';\n };\n\n _nodeName = (nodeId) => {\n const { nodes } = this.props;\n const node = nodes.get(nodeId);\n let nodeInformation;\n\n if (node) {\n const nodeURL = Routes.node(nodeId);\n\n const nodeContent = (\n <>\n \n \n {node.short_node_id} / \n {node.hostname}\n >\n );\n\n nodeInformation = AppConfig.isCloud()\n ? nodeContent\n : {nodeContent};\n } else {\n nodeInformation = stopped node;\n }\n\n return nodeInformation;\n };\n\n _formatMessageActions = () => {\n const { message, customFieldActions } = this.props;\n\n if (!customFieldActions) {\n return ;\n }\n\n const messageUrl = message.index ? Routes.message_show(message.index, message.id) : '#';\n\n return (\n \n \n\n \n \n );\n };\n\n _getStreamLinks = (streamIds) => {\n const { streams, message } = this.props;\n\n if (message.streams) {\n return message.streams.map((stream) => ( ));\n }\n\n const _streams = streamIds.map((id) => {\n const stream = streams.get(id);\n\n if (stream !== undefined) {\n return ;\n }\n\n return null;\n });\n\n return _streams;\n };\n\n render() {\n const { renderForDisplay, nodes, message, customFieldActions } = this.props;\n const streamIds = Immutable.Set(message.stream_ids);\n const streamLinks = this._getStreamLinks(streamIds);\n\n // Legacy\n const viaRadio = message.source_radio_id\n ? (\n \n via {this._inputName(message.source_radio_input_id)} on\n radio {this._nodeName(message.source_radio_id)}\n \n )\n : null;\n\n const rawTimestamp = message.fields.timestamp;\n const timestamp = [\n Timestamp ,\n ,\n ];\n\n const receivedBy = message.source_input_id && message.source_node_id && nodes\n ? (\n \n Received by \n \n {this._inputName(message.source_input_id)}{' '}\n on {this._nodeName(message.source_node_id)}\n {viaRadio &&
}\n {viaRadio}\n \n \n )\n : null;\n\n const messageTitle = message.index\n ? (\n \n {message.id}\n \n )\n : {message.id} ;\n\n return (\n \n \n \n {this._formatMessageActions()}\n \n \n \n {messageTitle}\n \n \n
\n \n \n \n {timestamp}\n {receivedBy}\n\n Stored in index \n {message.index ? message.index : 'Message is not stored'} \n\n {streamIds.size > 0 && Routed into streams }\n {streamIds.size > 0\n && (\n \n \n {streamLinks}\n
\n \n )}\n \n \n \n \n \n \n \n
\n \n );\n }\n}\n\nexport default MessageDetail;\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';\nimport Immutable from 'immutable';\n\nimport { Col, Row } from 'components/bootstrap';\nimport StringUtils from 'util/StringUtils';\n\nimport MessageDetail from './MessageDetail';\n\nclass MessageShow extends React.Component {\n static propTypes = {\n message: PropTypes.object.isRequired,\n inputs: PropTypes.object,\n streams: PropTypes.object,\n nodes: PropTypes.object,\n };\n\n static defaultProps = {\n inputs: undefined,\n nodes: undefined,\n streams: undefined,\n };\n\n constructor(props) {\n super(props);\n\n this.state = this._getImmutableProps(props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState(this._getImmutableProps(nextProps));\n }\n\n // eslint-disable-next-line class-methods-use-this\n _getImmutableProps = (props) => ({\n streams: props.streams ? Immutable.Map(props.streams) : props.streams,\n nodes: props.nodes ? Immutable.Map(props.nodes) : props.nodes,\n });\n\n renderForDisplay = (fieldName) => {\n // No highlighting for the message details view.\n const { message } = this.props;\n\n return StringUtils.stringify(message.fields[fieldName]);\n };\n\n render() {\n const { inputs, message } = this.props;\n const { streams, nodes } = this.state;\n\n return (\n \n \n \n \n
\n );\n }\n}\n\nexport default MessageShow;\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 moment from 'moment';\n\nimport MessageFieldsFilter from 'logic/message/MessageFieldsFilter';\n\nconst MessageFormatter = {\n formatMessageSummary(messageSummary) {\n const { message } = messageSummary;\n\n return this.formatMessage(message._id, messageSummary.index, message, message, messageSummary.highlight_ranges, messageSummary.decoration_stats);\n },\n\n formatResultMessage(resultMessage) {\n const { message } = resultMessage;\n\n return this.formatMessage(message.id, resultMessage.index, message, message.fields, resultMessage.highlight_ranges, resultMessage.decoration_stats);\n },\n\n formatMessage(id, index, message, fields, highlightRanges, decorationStats) {\n const filteredFields = MessageFieldsFilter.filterFields(fields);\n\n return {\n id: id,\n timestamp: moment(message.timestamp).unix(),\n filtered_fields: filteredFields,\n formatted_fields: filteredFields,\n fields: fields,\n index: index,\n source_node_id: fields.gl2_source_node,\n source_input_id: fields.gl2_source_input,\n stream_ids: message.streams,\n highlight_ranges: highlightRanges,\n decoration_stats: decorationStats,\n };\n },\n};\n\nexport default MessageFormatter;\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 Reflux from 'reflux';\n\nimport fetch from 'logic/rest/FetchProvider';\nimport MessageFormatter from 'logic/message/MessageFormatter';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport * as URLUtils from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport StringUtils from 'util/StringUtils';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const MessagesActions = singletonActions(\n 'core.Messages',\n () => Reflux.createActions({\n loadMessage: { asyncResult: true },\n fieldTerms: { asyncResult: true },\n loadRawMessage: { asyncResult: true },\n }),\n);\n\nexport const MessagesStore = singletonStore(\n 'core.Messages',\n () => Reflux.createStore({\n listenables: [MessagesActions],\n sourceUrl: '',\n\n getInitialState() {\n return {};\n },\n\n loadMessage(index, messageId) {\n const { url } = ApiRoutes.MessagesController.single(index.trim(), messageId.trim());\n const promise = fetch('GET', URLUtils.qualifyUrl(url))\n .then(\n (response) => MessageFormatter.formatResultMessage(response),\n (errorThrown) => {\n UserNotification.error(`Loading message information failed with status: ${errorThrown}`,\n 'Could not load message information');\n },\n );\n\n MessagesActions.loadMessage.promise(promise);\n },\n\n fieldTerms(index, string) {\n const { url } = ApiRoutes.MessagesController.analyze(index, encodeURIComponent(StringUtils.stringify(string)));\n const promise = fetch('GET', URLUtils.qualifyUrl(url))\n .then(\n (response) => response.tokens,\n (error) => {\n UserNotification.error(`Loading field terms failed with status: ${error}`,\n 'Could not load field terms.');\n },\n );\n\n MessagesActions.fieldTerms.promise(promise);\n },\n\n loadRawMessage(message, remoteAddress, codec, codecConfiguration) {\n const { url } = ApiRoutes.MessagesController.parse();\n const payload = {\n message: message,\n remote_address: remoteAddress,\n codec: codec,\n configuration: codecConfiguration,\n };\n\n const promise = fetch('POST', URLUtils.qualifyUrl(url), payload)\n .then(\n (response) => MessageFormatter.formatResultMessage(response),\n (error) => {\n if (error.additional && error.additional.status === 400) {\n UserNotification.error('Please ensure the selected codec and its configuration are right. '\n + 'Check your server logs for more information.', 'Could not load raw message');\n\n return;\n }\n\n UserNotification.error(`Loading raw message failed with status: ${error}`,\n 'Could not load raw message');\n },\n );\n\n MessagesActions.loadRawMessage.promise(promise);\n },\n }),\n);\n"],"names":["CodecTypesActions","singleton","CodecTypesStore","promise","URLUtils","ApiRoutes","response","error","UserNotification","DEFAULT_REMOTE_ADDRESS","ServerInputSelect","inputs","selectedInputId","onInputSelect","_formatInputSelectOptions","formattedInputs","inputA","inputB","input","id","label","ForwarderInputSelect","ForwarderInputDropdown","useForwarderMessageLoaders","InputSelect","show","selectedInputType","setSelectedInputType","AppConfig","e","RawMessageLoader","onMessageLoaded","inputIdSelector","codecTypes","loading","setLoading","message","setMessage","remoteAddress","setRemoteAddress","codec","setCodec","codecConfiguration","setCodecConfiguration","inputId","setInputId","history","useHistory","_loadMessage","event","loadedMessage","_formatSelectOptions","codecTypesIds","name","codecA","codecB","_onCodecSelect","selectedCodec","_onInputSelect","selectedInput","_onMessageChange","_onRemoteAddressChange","_onCodecConfigurationChange","field","value","newConfiguration","_formatConfigField","key","configField","typeName","elementKey","_isSubmitDisabled","codecConfigurationOptions","currentCodecConfiguration","keyA","keyB","connect","InputsStore","MessageFieldExtractorActions","props","extractorType","nextProps","fieldName","MessageTerms","theme","MessageFieldDescription","messageTerms","term","customFieldActions","renderForDisplay","className","SPECIAL_FIELDS","MessageField","innerValue","MessageFields","fields","_id","formatted_fields","formattedFields","MessageDetail","nodeId","nodes","node","nodeInformation","nodeURL","Routes","nodeContent","messageUrl","streamIds","streams","stream","StreamLink","streamLinks","viaRadio","rawTimestamp","timestamp","receivedBy","messageTitle","MessageDetailsTitle","MessageShow","StringUtils","messageSummary","resultMessage","index","highlightRanges","decorationStats","filteredFields","MessagesActions","MessagesStore","messageId","url","errorThrown","string","payload"],"sourceRoot":""}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy