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.
{"version":3,"sources":["webpack:///./src/components/streams/StreamForm.jsx","webpack:///./src/components/streams/CreateStreamButton.jsx","webpack:///./src/components/streamrules/CollapsibleStreamRuleList.jsx","webpack:///./src/components/streams/StreamThroughput.jsx","webpack:///./src/components/streams/StreamMetaData.jsx","webpack:///./src/components/streams/StreamControls.jsx","webpack:///./src/components/streams/StreamStateBadge.jsx","webpack:///./src/components/streams/Stream.jsx","webpack:///./src/components/streams/StreamList.jsx","webpack:///./src/components/streams/StreamComponent.jsx","webpack:///./src/pages/StreamsPage.jsx"],"names":["IndexSetsActions","CombinedProvider","get","StreamForm","props","setState","_getValuesFromProps","defaultIndexSetId","stream","index_set_id","indexSets","length","defaultIndexSet","find","indexSet","id","title","description","removeMatchesFromDefaultStream","remove_matches_from_default_stream","indexSetId","state","onSubmit","modal","close","_resetValues","list","open","filter","can_be_default","map","value","label","selection","event","change","target","name","FormsUtils","AppConfig","isCloud","help","inputId","placeholder","options","_formatSelectOptions","matchProp","onChange","_onIndexSetSelect","undefined","this","propTitle","BootstrapModalForm","ref","c","onSubmitForm","_onSubmit","submitButtonText","type","required","handleChange","autoFocus","_indexSetSelect","checked","React","Component","PropTypes","func","isRequired","object","string","array","CreateStreamButton","streamForm","bsSize","bsStyle","buttonText","className","onSave","onClick","RuleWrapper","styled","div","CollapsibleStreamRuleList","expanded","permissions","streamRuleTypes","in","timeout","StreamRuleList","propTypes","bool","defaultProps","MetricsStore","StoreProvider","getStore","MetricsActions","ActionsProvider","getActions","StreamThroughput","createReactClass","displayName","streamId","mixins","Reflux","connect","UNSAFE_componentWillMount","addGlobal","_metricName","componentWillUnmount","removeGlobal","_calculateThroughput","Object","keys","metrics","nodeId","metricDefinition","metric","reduce","throughput1","throughput2","render","StreamMetaDataWrapper","StreamMetaData","verbalMatchingType","isDefaultStream","useState","setExpanded","toggleText","is_default","rules","matching_type","plural","singular","key","shape","arrayOf","StartpageStore","StreamControls","user","onDelete","onClone","onQuickAdd","onUpdate","disabled","PermissionsMixin","getDefaultProps","_onDelete","_onEdit","_onClone","cloneForm","_onCloneSubmit","_","_onQuickAdd","_setStartpage","set","pullRight","onSelect","HideOnCloud","href","Routes","stream_outputs","read_only","divider","StreamStateBadge","StreamsStore","StreamRulesStore","StreamListItem","li","theme","css","colors","variant","light","info","ToggleButton","Button","Stream","showStreamRuleForm","showEntityShareModal","window","confirm","remove","response","UserNotification","success","loading","resume","update","cloneStream","pause","streamRuleId","streamRule","create","editRulesLink","manageAlertsLink","toggleStreamLink","isNotEditable","is_editable","defaultStreamTooltip","isPermitted","overlay","placement","useOverlay","to","stream_edit","stream_alerts","isAnyPermitted","_onResume","_onPause","createdFromContentPack","content_pack","streamControls","_onUpdate","_openStreamRuleForm","is","indexSetDetails","entityId","entityType","_openEntityShareModal","stream_search","StreamRuleForm","onClose","_closeStreamRuleForm","_onSaveStreamRule","EntityShareModal","entityTitle","_closeEntityShareModal","StreamsList","ul","StreamList","streams","getInitialState","_formatStream","streamList","StreamComponent","callback","pagination","page","perPage","query","searchPaginated","then","newPage","newPerPage","newPagination","assign","loadData","resetLoadingCallback","count","total","types","unregister","currentUser","onStreamSave","_isLoading","style","marginLeft","Spinner","createStreamButton","noStreams","streamsList","streamListComp","_onPageChange","activePage","totalItems","marginBottom","onSearch","_onSearch","onReset","_onReset","queryHelpComponent","QueryHelper","entityName","useLoadingState","CurrentUserStore","IndexSetsStore","StreamsPage","componentDidMount","_onSave","save","PageHeader","DocumentationLink","DocsHelper","PAGES","STREAMS","text","md"],"mappings":"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","file":"57e33c6c-120.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 PropTypes from 'prop-types';\nimport React from 'react';\n\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport { Input } from 'components/bootstrap';\nimport { Select, Spinner } from 'components/common';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport * as FormsUtils from 'util/FormsUtils';\nimport AppConfig from 'util/AppConfig';\n\nconst { IndexSetsActions } = CombinedProvider.get('IndexSets');\n\nclass StreamForm extends React.Component {\n static propTypes = {\n onSubmit: PropTypes.func.isRequired,\n stream: PropTypes.object,\n title: PropTypes.string.isRequired,\n indexSets: PropTypes.array.isRequired,\n };\n\n static defaultProps = {\n stream: {\n title: '',\n description: '',\n remove_matches_from_default_stream: false,\n },\n };\n\n constructor(props) {\n super(props);\n\n this.state = this._getValuesFromProps(props);\n this.modal = undefined;\n }\n\n _resetValues = () => {\n this.setState(this._getValuesFromProps(this.props));\n };\n\n _getValuesFromProps = (props) => {\n let defaultIndexSetId = props.stream.index_set_id;\n\n if (!defaultIndexSetId && props.indexSets && props.indexSets.length > 0) {\n const defaultIndexSet = props.indexSets.find((indexSet) => indexSet.default);\n\n if (defaultIndexSet) {\n defaultIndexSetId = defaultIndexSet.id;\n }\n }\n\n return {\n title: props.stream.title,\n description: props.stream.description,\n removeMatchesFromDefaultStream: props.stream.remove_matches_from_default_stream,\n indexSetId: defaultIndexSetId,\n };\n };\n\n _onSubmit = () => {\n const { title, description, removeMatchesFromDefaultStream, indexSetId } = this.state;\n const { onSubmit, stream } = this.props;\n\n onSubmit(stream.id,\n {\n title,\n description,\n remove_matches_from_default_stream: removeMatchesFromDefaultStream,\n index_set_id: indexSetId,\n });\n\n this.modal.close();\n };\n\n open = () => {\n this._resetValues();\n IndexSetsActions.list(false);\n this.modal.open();\n };\n\n close = () => {\n this.modal.close();\n };\n\n _formatSelectOptions = () => {\n const { indexSets } = this.props;\n\n return indexSets.filter((indexSet) => indexSet.can_be_default).map((indexSet) => {\n return { value: indexSet.id, label: indexSet.title };\n });\n };\n\n _onIndexSetSelect = (selection) => {\n this.setState({ indexSetId: selection });\n };\n\n handleChange = (event) => {\n const change = {};\n\n change[event.target.name] = FormsUtils.getValueFromInput(event.target);\n this.setState(change);\n };\n\n _indexSetSelect = () => {\n const { indexSetId } = this.state;\n const { indexSets } = this.props;\n\n if (AppConfig.isCloud()) {\n return null;\n }\n\n if (indexSets) {\n return (\n \n \n \n );\n }\n\n return Loading index sets...;\n };\n\n render() {\n const { title, description, removeMatchesFromDefaultStream } = this.state;\n const { title: propTitle } = this.props;\n\n return (\n { this.modal = c; }}\n title={propTitle}\n onSubmitForm={this._onSubmit}\n submitButtonText=\"Save\">\n \n \n {this._indexSetSelect()}\n Remove messages that match this stream from the ‘All messages’ stream which is assigned to every message by default.} />\n \n );\n }\n}\n\nexport default StreamForm;\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 { Button } from 'components/graylog';\nimport StreamForm from 'components/streams/StreamForm';\n\nclass CreateStreamButton extends React.Component {\n static propTypes = {\n buttonText: PropTypes.string,\n bsStyle: PropTypes.string,\n bsSize: PropTypes.string,\n className: PropTypes.string,\n onSave: PropTypes.func.isRequired,\n indexSets: PropTypes.array.isRequired,\n };\n\n static defaultProps = {\n buttonText: 'Create Stream',\n bsSize: undefined,\n bsStyle: undefined,\n className: undefined,\n };\n\n onClick = () => {\n this.streamForm.open();\n };\n\n render() {\n const { bsSize, bsStyle, buttonText, className, indexSets, onSave } = this.props;\n\n return (\n \n \n { this.streamForm = streamForm; }}\n title=\"Creating Stream\"\n indexSets={indexSets}\n onSubmit={onSave} />\n \n );\n }\n}\n\nexport default CreateStreamButton;\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 styled from 'styled-components';\n\nimport { Collapse } from 'components/graylog';\nimport StreamRuleList from 'components/streamrules/StreamRuleList';\n\nconst RuleWrapper = styled.div`\n margin: 12px 0 0;\n`;\n\nconst CollapsibleStreamRuleList = ({ expanded, permissions, stream, streamRuleTypes }) => {\n return (\n \n \n \n \n \n );\n};\n\nCollapsibleStreamRuleList.propTypes = {\n expanded: PropTypes.bool,\n permissions: PropTypes.array.isRequired,\n stream: PropTypes.object.isRequired,\n streamRuleTypes: PropTypes.array.isRequired,\n};\n\nCollapsibleStreamRuleList.defaultProps = {\n expanded: false,\n};\n\nexport default CollapsibleStreamRuleList;\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 createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\nimport { Spinner } from 'components/common';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\nconst StreamThroughput = createReactClass({\n displayName: 'StreamThroughput',\n\n propTypes: {\n streamId: PropTypes.string.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n UNSAFE_componentWillMount() {\n MetricsActions.addGlobal(this._metricName());\n },\n\n componentWillUnmount() {\n MetricsActions.removeGlobal(this._metricName());\n },\n\n _metricName() {\n return `org.graylog2.plugin.streams.Stream.${this.props.streamId}.incomingMessages.1-sec-rate`;\n },\n\n _calculateThroughput() {\n return Object.keys(this.state.metrics)\n .map((nodeId) => {\n const metricDefinition = this.state.metrics[nodeId][this._metricName()];\n\n return metricDefinition !== undefined ? metricDefinition.metric.value : 0;\n })\n .reduce((throughput1, throughput2) => throughput1 + throughput2, 0);\n },\n\n render() {\n if (!this.state.metrics) {\n return ;\n }\n\n return (\n {this._calculateThroughput()} messages/second\n );\n },\n});\n\nexport default StreamThroughput;\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, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport CollapsibleStreamRuleList from 'components/streamrules/CollapsibleStreamRuleList';\nimport { Pluralize } from 'components/common';\nimport { Button } from 'components/graylog';\n\nimport StreamThroughput from './StreamThroughput';\n\nconst StreamMetaDataWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst StreamMetaData = ({ isDefaultStream, stream, streamRuleTypes, permissions }) => {\n let verbalMatchingType;\n const [expanded, setExpanded] = useState(false);\n const toggleText = expanded ? 'Hide' : 'Show';\n\n if (stream.is_default) {\n return 'The default stream contains all messages.';\n }\n\n if (stream.rules.length === 0) {\n return 'No configured rules.';\n }\n\n switch (stream.matching_type) {\n case 'OR': verbalMatchingType = 'at least one'; break;\n default:\n case 'AND': verbalMatchingType = 'all'; break;\n }\n\n const _onHandleToggle = () => {\n setExpanded(!expanded);\n };\n\n return (\n <>\n \n .\n\n \n Must match {verbalMatchingType} of the {stream.rules.length} configured stream \n .\n \n\n {!isDefaultStream && (\n \n )}\n \n\n {!isDefaultStream && (\n \n )}\n >\n );\n};\n\nStreamMetaData.propTypes = {\n isDefaultStream: PropTypes.bool,\n stream: PropTypes.shape({\n id: PropTypes.string,\n is_default: PropTypes.bool,\n rules: PropTypes.array,\n matching_type: PropTypes.string,\n }).isRequired,\n streamRuleTypes: PropTypes.arrayOf(PropTypes.object).isRequired,\n permissions: PropTypes.array.isRequired,\n};\n\nStreamMetaData.defaultProps = {\n isDefaultStream: false,\n};\n\nexport default StreamMetaData;\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// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\n\nimport Routes from 'routing/Routes';\nimport { DropdownButton, MenuItem } from 'components/graylog';\nimport { IfPermitted } from 'components/common';\nimport PermissionsMixin from 'util/PermissionsMixin';\nimport StoreProvider from 'injection/StoreProvider';\nimport HideOnCloud from 'util/conditional/HideOnCloud';\n\nimport StreamForm from './StreamForm';\n\nconst StartpageStore = StoreProvider.getStore('Startpage');\n\nconst StreamControls = createReactClass({\n displayName: 'StreamControls',\n\n propTypes: {\n stream: PropTypes.object.isRequired,\n user: PropTypes.object.isRequired,\n indexSets: PropTypes.array.isRequired,\n onDelete: PropTypes.func.isRequired,\n onClone: PropTypes.func.isRequired,\n onQuickAdd: PropTypes.func.isRequired,\n onUpdate: PropTypes.func.isRequired,\n isDefaultStream: PropTypes.bool,\n disabled: PropTypes.bool,\n },\n\n mixins: [PermissionsMixin],\n\n getDefaultProps() {\n return {\n disabled: false,\n isDefaultStream: false,\n };\n },\n\n _onDelete() {\n const { onDelete, stream } = this.props;\n onDelete(stream);\n },\n\n _onEdit() {\n this.streamForm.open();\n },\n\n _onClone() {\n this.cloneForm.open();\n },\n\n _onCloneSubmit(_, stream) {\n const { onClone, stream: propsStream } = this.props;\n onClone(propsStream.id, stream);\n },\n\n _onQuickAdd() {\n const { onQuickAdd, stream } = this.props;\n onQuickAdd(stream.id);\n },\n\n _setStartpage() {\n const { user, stream } = this.props;\n StartpageStore.set(user.id, 'stream', stream.id);\n },\n\n render() {\n const { stream, disabled, isDefaultStream, user, onUpdate, indexSets } = this.props;\n\n return (\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 { this.streamForm = streamForm; }} title=\"Editing Stream\" onSubmit={onUpdate} stream={stream} indexSets={indexSets} />\n { this.cloneForm = cloneForm; }} title=\"Cloning Stream\" onSubmit={this._onCloneSubmit} indexSets={indexSets} />\n \n );\n },\n});\n\nexport default StreamControls;\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 { Label } from 'components/graylog';\n\nclass StreamStateBadge extends React.Component {\n static propTypes = {\n stream: PropTypes.object.isRequired,\n };\n\n render() {\n if (this.props.stream.is_default) {\n return ;\n }\n\n if (!this.props.stream.disabled) {\n return null;\n }\n\n return ;\n }\n}\n\nexport default StreamStateBadge;\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 styled, { css } from 'styled-components';\n\nimport EntityShareModal from 'components/permissions/EntityShareModal';\nimport { Link, LinkContainer } from 'components/graylog/router';\nimport { Button, Tooltip } from 'components/graylog';\nimport { Icon, OverlayElement, ShareButton } from 'components/common';\nimport StreamRuleForm from 'components/streamrules/StreamRuleForm';\nimport { isAnyPermitted, isPermitted } from 'util/PermissionsMixin';\nimport UserNotification from 'util/UserNotification';\nimport StoreProvider from 'injection/StoreProvider';\nimport Routes from 'routing/Routes';\n\nimport StreamMetaData from './StreamMetaData';\nimport StreamControls from './StreamControls';\nimport StreamStateBadge from './StreamStateBadge';\n\nconst StreamsStore = StoreProvider.getStore('Streams');\nconst StreamRulesStore = StoreProvider.getStore('StreamRules');\n\nconst StreamListItem = styled.li(({ theme }) => css`\n display: block;\n padding: 15px 0;\n\n &:not(:last-child) {\n border-bottom: 1px solid ${theme.colors.variant.light.info};\n }\n\n .stream-data {\n margin-top: 8px;\n\n .stream-actions {\n position: relative;\n float: right;\n right: 0;\n bottom: 20px;\n\n form.action-form {\n display: inline-block;\n }\n\n .btn-delete {\n margin-left: 15px;\n margin-right: 15px;\n\n &.last {\n margin-right: 0;\n }\n }\n }\n }\n\n .stream-description {\n margin-bottom: 3px;\n\n .fa-cube {\n margin-right: 5px;\n }\n }\n`);\n\nconst ToggleButton = styled(Button)`\n min-width: 8.8em;\n`;\n\nclass Stream extends React.Component {\n static propTypes = {\n stream: PropTypes.object.isRequired,\n permissions: PropTypes.arrayOf(PropTypes.string).isRequired,\n streamRuleTypes: PropTypes.array.isRequired,\n user: PropTypes.object.isRequired,\n indexSets: PropTypes.array.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n loading: false,\n showStreamRuleForm: false,\n showEntityShareModal: false,\n };\n }\n\n _closeStreamRuleForm = () => {\n this.setState({ showStreamRuleForm: false });\n };\n\n _openStreamRuleForm = () => {\n this.setState({ showStreamRuleForm: true });\n };\n\n _closeEntityShareModal = () => {\n this.setState({ showEntityShareModal: false });\n };\n\n _openEntityShareModal = () => {\n this.setState({ showEntityShareModal: true });\n };\n\n _onDelete= (stream) => {\n // eslint-disable-next-line no-alert\n if (window.confirm('Do you really want to remove this stream?')) {\n StreamsStore.remove(stream.id, (response) => {\n UserNotification.success(`Stream '${stream.title}' was deleted successfully.`, 'Success');\n\n return response;\n });\n }\n }\n\n _onResume = () => {\n const { stream } = this.props;\n\n this.setState({ loading: true });\n\n StreamsStore.resume(stream.id, (response) => response)\n .finally(() => this.setState({ loading: false }));\n }\n\n _onUpdate = (streamId, stream) => {\n StreamsStore.update(streamId, stream, (response) => {\n UserNotification.success(`Stream '${stream.title}' was updated successfully.`, 'Success');\n\n return response;\n });\n }\n\n _onClone = (streamId, stream) => {\n StreamsStore.cloneStream(streamId, stream, (response) => {\n UserNotification.success(`Stream was successfully cloned as '${stream.title}'.`, 'Success');\n\n return response;\n });\n }\n\n _onPause = () => {\n const { stream } = this.props;\n\n // eslint-disable-next-line no-alert\n if (window.confirm(`Do you really want to pause stream '${stream.title}'?`)) {\n this.setState({ loading: true });\n\n StreamsStore.pause(stream.id, (response) => response)\n .finally(() => this.setState({ loading: false }));\n }\n }\n\n _onSaveStreamRule = (streamRuleId, streamRule) => {\n const { stream } = this.props;\n\n StreamRulesStore.create(stream.id, streamRule, () => UserNotification.success('Stream rule was created successfully.', 'Success'));\n }\n\n render() {\n const { indexSets, stream, permissions, streamRuleTypes, user } = this.props;\n const { loading, showStreamRuleForm, showEntityShareModal } = this.state;\n\n const isDefaultStream = stream.is_default;\n const isNotEditable = !stream.is_editable;\n const defaultStreamTooltip = isDefaultStream\n ? Action not available for the default stream : null;\n\n let editRulesLink;\n let manageAlertsLink;\n\n if (isPermitted(permissions, [`streams:edit:${stream.id}`])) {\n editRulesLink = (\n \n \n \n \n \n );\n\n manageAlertsLink = (\n \n \n \n );\n }\n\n let toggleStreamLink;\n\n if (isAnyPermitted(permissions, [`streams:changestate:${stream.id}`, `streams:edit:${stream.id}`])) {\n if (stream.disabled) {\n toggleStreamLink = (\n \n \n {loading ? 'Starting...' : 'Start Stream'}\n \n \n );\n } else {\n toggleStreamLink = (\n \n \n {loading ? 'Pausing...' : 'Pause Stream'}\n \n \n );\n }\n }\n\n const createdFromContentPack = (stream.content_pack\n ? : null);\n\n const streamControls = (\n \n \n \n );\n\n const indexSet = indexSets.find((is) => is.id === stream.index_set_id) || indexSets.find((is) => is.is_default);\n const indexSetDetails = isPermitted(permissions, ['indexsets:read']) && indexSet ? index set {indexSet.title} : null;\n\n return (\n \n
\n {showStreamRuleForm && (\n \n )}\n {showEntityShareModal && (\n \n )}\n \n );\n }\n}\n\nexport default Stream;\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 createReactClass from 'create-react-class';\nimport styled from 'styled-components';\n\nimport { Alert } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport PermissionsMixin from 'util/PermissionsMixin';\n\nimport Stream from './Stream';\n\nconst StreamsList = styled.ul`\n padding: 0;\n margin: 0;\n`;\n\nconst StreamList = createReactClass({\n displayName: 'StreamList',\n\n propTypes: {\n streams: PropTypes.array.isRequired,\n streamRuleTypes: PropTypes.array.isRequired,\n indexSets: PropTypes.array.isRequired,\n user: PropTypes.object.isRequired,\n permissions: PropTypes.array.isRequired,\n },\n\n mixins: [PermissionsMixin],\n\n getInitialState() {\n return {};\n },\n\n _formatStream(stream) {\n return (\n \n );\n },\n\n render() {\n if (this.props.streams.length > 0) {\n const streamList = this.props.streams.map(this._formatStream);\n\n return (\n \n {streamList}\n \n );\n }\n\n return (\n \n No streams match your search filter.\n \n );\n },\n});\n\nexport default StreamList;\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 { Alert } from 'components/graylog';\nimport { Icon, IfPermitted, PaginatedList, SearchForm } from 'components/common';\nimport StoreProvider from 'injection/StoreProvider';\nimport Spinner from 'components/common/Spinner';\nimport QueryHelper from 'components/common/QueryHelper';\n\nimport StreamList from './StreamList';\nimport CreateStreamButton from './CreateStreamButton';\n\nconst StreamsStore = StoreProvider.getStore('Streams');\nconst StreamRulesStore = StoreProvider.getStore('StreamRules');\n\nclass StreamComponent extends React.Component {\n static propTypes = {\n currentUser: PropTypes.object.isRequired,\n onStreamSave: PropTypes.func.isRequired,\n indexSets: PropTypes.array.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n pagination: {\n page: 1,\n perPage: 10,\n count: 0,\n total: 0,\n query: '',\n },\n };\n }\n\n componentDidMount() {\n this.loadData();\n\n StreamRulesStore.types().then((types) => {\n this.setState({ streamRuleTypes: types });\n });\n\n StreamsStore.onChange(this.loadData);\n StreamRulesStore.onChange(this.loadData);\n }\n\n componentWillUnmount() {\n StreamsStore.unregister(this.loadData);\n StreamRulesStore.unregister(this.loadData);\n }\n\n loadData = (callback) => {\n const { state } = this;\n const { page, perPage, query } = state.pagination;\n\n StreamsStore.searchPaginated(page, perPage, query)\n .then(({ streams, pagination }) => {\n this.setState({\n streams: streams,\n pagination: pagination,\n });\n })\n .then(() => {\n if (callback) {\n callback();\n }\n });\n };\n\n _isLoading = () => {\n const { state } = this;\n\n return !(state.streams && state.streamRuleTypes);\n };\n\n _onPageChange = (newPage, newPerPage) => {\n const { pagination } = this.state;\n const newPagination = Object.assign(pagination, {\n page: newPage,\n perPage: newPerPage,\n });\n\n this.setState({ pagination: newPagination }, this.loadData);\n };\n\n _onSearch = (query, resetLoadingCallback) => {\n const { pagination } = this.state;\n const newPagination = { ...pagination, query: query, page: 1 };\n\n this.setState({ pagination: newPagination }, () => this.loadData(resetLoadingCallback));\n };\n\n _onReset = () => {\n const { pagination } = this.state;\n const newPagination = { ...pagination, query: '', page: 1 };\n\n this.setState({ pagination: newPagination }, this.loadData);\n };\n\n render() {\n const { streams, pagination, streamRuleTypes } = this.state;\n const { currentUser, onStreamSave, indexSets } = this.props;\n\n if (this._isLoading()) {\n return (\n
\n );\n }\n}\n\nexport default StreamComponent;\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 createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport { Row, Col } from 'components/graylog';\nimport CreateStreamButton from 'components/streams/CreateStreamButton';\nimport StreamComponent from 'components/streams/StreamComponent';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport PageHeader from 'components/common/PageHeader';\nimport { DocumentTitle, IfPermitted, Spinner } from 'components/common';\nimport DocsHelper from 'util/DocsHelper';\nimport UserNotification from 'util/UserNotification';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst CurrentUserStore = StoreProvider.getStore('CurrentUser');\nconst StreamsStore = StoreProvider.getStore('Streams');\nconst IndexSetsStore = StoreProvider.getStore('IndexSets');\nconst IndexSetsActions = ActionsProvider.getActions('IndexSets');\n\nconst StreamsPage = createReactClass({\n displayName: 'StreamsPage',\n mixins: [Reflux.connect(CurrentUserStore), Reflux.connect(IndexSetsStore)],\n\n getInitialState() {\n return {\n indexSets: undefined,\n };\n },\n\n componentDidMount() {\n IndexSetsActions.list(false);\n },\n\n _isLoading() {\n return !this.state.currentUser || !this.state.indexSets;\n },\n\n _onSave(_, stream) {\n StreamsStore.save(stream, () => {\n UserNotification.success('Stream has been successfully created.', 'Success');\n });\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n return (\n \n
\n \n \n You can route incoming messages into streams by applying rules against them. Messages matching\n the rules of a stream are routed into it. A message can also be routed into multiple streams.\n \n\n \n Read more about streams in the .\n \n\n \n \n \n \n\n \n