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

web-interface.assets.325e2d4b-8214.48a77da8079e86789910.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
{"version":3,"file":"325e2d4b-8214.48a77da8079e86789910.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/logic/message/MessageFormatter.js","webpack://graylog-web-interface/./src/pages/ShowMessagePage.tsx","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 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 PropTypes from 'prop-types';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport * as Immutable from 'immutable';\n\nimport DocumentTitle from 'components/common/DocumentTitle';\nimport Spinner from 'components/common/Spinner';\nimport { Col, Row } from 'components/bootstrap';\nimport InteractiveContext from 'views/components/contexts/InteractiveContext';\nimport MessageDetail from 'views/components/messagelist/MessageDetail';\nimport withParams from 'routing/withParams';\nimport type { Stream } from 'views/stores/StreamsStore';\nimport type { Input } from 'components/messageloaders/Types';\nimport useFieldTypes from 'views/logic/fieldtypes/useFieldTypes';\nimport type { Message } from 'views/components/messagelist/Types';\nimport FieldTypesContext from 'views/components/contexts/FieldTypesContext';\nimport WindowDimensionsContextProvider from 'contexts/WindowDimensionsContextProvider';\nimport StreamsStore from 'stores/streams/StreamsStore';\nimport { InputsActions } from 'stores/inputs/InputsStore';\nimport { MessagesActions } from 'stores/messages/MessagesStore';\nimport { NodesActions } from 'stores/nodes/NodesStore';\nimport { isLocalNode } from 'views/hooks/useIsLocalNode';\n\ntype Props = {\n  params: {\n    index: string | undefined | null,\n    messageId: string | undefined | null,\n  },\n};\n\nconst useStreams = () => {\n  const [streams, setStreams] = useState>();\n  const [allStreams, setAllStreams] = useState>();\n\n  useEffect(() => {\n    StreamsStore.listStreams().then((newStreams) => {\n      if (newStreams) {\n        const streamsMap = newStreams.reduce((prev, stream) => ({ ...prev, [stream.id]: stream }), {});\n\n        setStreams(Immutable.Map(streamsMap));\n        setAllStreams(Immutable.List(newStreams));\n      }\n    });\n  }, [setStreams, setAllStreams]);\n\n  return { streams, allStreams };\n};\n\nconst useMessage = (index: string, messageId: string) => {\n  const [message, setMessage] = useState();\n  const [inputs, setInputs] = useState>(Immutable.Map());\n\n  useEffect(() => {\n    const fetchData = async () => {\n      const _message = await MessagesActions.loadMessage(index, messageId);\n      setMessage(_message);\n\n      if (_message.source_input_id && await isLocalNode(_message.fields.gl2_source_node)) {\n        const input = await InputsActions.get(_message.source_input_id);\n\n        if (input) {\n          const newInputs = Immutable.Map({ [input.id]: input });\n\n          setInputs(newInputs);\n        }\n      }\n    };\n\n    fetchData();\n  }, [index, messageId, setMessage, setInputs]);\n\n  return { message, inputs };\n};\n\ntype FieldTypesProviderProps = {\n  children: React.ReactNode,\n  streams: Array,\n  timestamp: string,\n};\n\nconst FieldTypesProvider = ({ streams, timestamp, children }: FieldTypesProviderProps) => {\n  const { data: fieldTypes } = useFieldTypes(streams, { type: 'absolute', from: timestamp, to: timestamp });\n  const types = useMemo(() => {\n    const fieldTypesList = Immutable.List(fieldTypes);\n\n    return ({ all: fieldTypesList, queryFields: Immutable.Map({ query: fieldTypesList }) });\n  }, [fieldTypes]);\n\n  return (\n    \n      {children}\n    \n  );\n};\n\ntype MessageFields = {\n  streams: Array,\n  timestamp: string,\n};\n\nconst ShowMessagePage = ({ params: { index, messageId } }: Props) => {\n  if (!index || !messageId) {\n    throw new Error('index and messageId need to be specified!');\n  }\n\n  const { streams, allStreams } = useStreams();\n  const { message, inputs } = useMessage(index, messageId);\n\n  useEffect(() => { NodesActions.list(); }, []);\n\n  const isLoaded = useMemo(() => (message !== undefined\n    && streams !== undefined\n    && inputs !== undefined\n    && allStreams !== undefined), [message, streams, inputs, allStreams]);\n\n  if (isLoaded) {\n    const { streams: messageStreams, timestamp } = message.fields as MessageFields;\n    const fieldTypesStreams = messageStreams.filter((streamId) => streams.has(streamId));\n\n    return (\n      \n        \n          \n            \n              \n                \n                  \n                \n              \n            \n          \n        \n      \n    );\n  }\n\n  return ;\n};\n\nShowMessagePage.propTypes = {\n  params: PropTypes.exact({\n    index: PropTypes.string.isRequired,\n    messageId: PropTypes.string.isRequired,\n  }).isRequired,\n};\n\nexport default withParams(ShowMessagePage);\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":["formatMessageSummary","messageSummary","message","this","formatMessage","_id","index","highlight_ranges","decoration_stats","formatResultMessage","resultMessage","id","fields","highlightRanges","decorationStats","filteredFields","MessageFieldsFilter","timestamp","moment","unix","filtered_fields","formatted_fields","source_node_id","gl2_source_node","source_input_id","gl2_source_input","stream_ids","streams","FieldTypesProvider","children","data","fieldTypes","useFieldTypes","type","from","to","types","useMemo","fieldTypesList","Immutable","all","queryFields","query","value","ShowMessagePage","params","messageId","Error","allStreams","setStreams","useState","setAllStreams","useEffect","StreamsStore","then","newStreams","streamsMap","reduce","prev","stream","useStreams","inputs","setMessage","setInputs","async","_message","MessagesActions","isLocalNode","input","InputsActions","newInputs","fetchData","useMessage","NodesActions","undefined","messageStreams","fieldTypesStreams","filter","streamId","has","title","className","md","disableSurroundingSearch","propTypes","PropTypes","isRequired","withParams","singletonActions","Reflux","loadMessage","asyncResult","fieldTerms","loadRawMessage","singletonStore","listenables","sourceUrl","getInitialState","url","ApiRoutes","trim","promise","fetch","URLUtils","response","MessageFormatter","errorThrown","UserNotification","string","encodeURIComponent","StringUtils","tokens","error","remoteAddress","codec","codecConfiguration","payload","remote_address","configuration","additional","status"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy