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

web-interface.assets.57e33c6c-53.11b9f72925818240e61d.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.2
Show newest version
{"version":3,"sources":["webpack:///./src/actions/streams/StreamsActions.jsx","webpack:///./src/components/pipelines/PipelineConnectionsList.tsx","webpack:///./src/stores/streams/StreamsStore.ts","webpack:///./src/stores/PaginationTypes.ts","webpack:///./src/hooks/useLocationSearchPagination.ts","webpack:///./src/components/pipelines/ProcessingTimelineComponent.tsx","webpack:///./src/components/pipelines/CreatePipelineButton.tsx","webpack:///./src/pages/PipelinesOverviewPage.jsx"],"names":["StreamsActions","singletonActions","Reflux","createActions","searchPaginated","asyncResult","listStreams","load","get","remove","pause","resume","cloneStream","update","save","removeOutput","addOutput","testMatch","PipelineConnectionsList","pipeline","connections","streams","streamsFormatter","noConnectionsMessage","streamsUsingPipeline","filter","c","pipeline_ids","includes","id","some","s","stream_id","map","find","sort","s1","s2","naturalSort","title","length","propTypes","PropTypes","object","isRequired","array","func","node","defaultProps","CurrentUserStore","CombinedProvider","StreamsStore","singletonStore","createStore","listenables","callbacks","newPage","newPerPage","newQuery","url","PaginationURL","ApiRoutes","StreamsApiController","paginated","promise","fetch","qualifyUrl","then","response","query","pagination","count","total","page","perPage","per_page","errorThrown","UserNotification","error","result","callback","this","streamId","reload","_emitChange","bind","stream","create","data","outputId","StreamOutputsApiController","add","outputs","message","onChange","push","forEach","unregister","lodash","pull","DEFAULT_PAGINATION","useLocationSearchPagination","defaultPagination","history","useHistory","location","useLocation","useState","parsedPagination","setParsedPagination","isInitialized","setIsInitialized","useEffect","search","parsedSearch","searchPage","searchPerPage","searchQuery","convertToSafePositiveInteger","maybeNumber","parsedNumber","Number","parseInt","isSafeInteger","undefined","parse","ignoreQueryPrefix","setPagination","nextPagination","pathname","stringify","PipelinesActions","PipelineConnectionsStore","PipelineConnectionsActions","StyledPaginatedList","styled","PaginatedList","LoadingSpinner","Spinner","theme","css","fonts","size","h3","Header","div","PipelineStage","$idle","colors","gray","utils","colorLevel","global","contentBackground","PipelineNameTD","td","StreamListTD","PipelineFilter","onSearch","queryWidth","queryHelpComponent","entityName","wrapperClass","onReset","topMargin","_formatConnectedStreams","join","_loadPipelines","setLoading","setPaginatedPipelines","listPaginated","paginatedPipelines","ProcessingTimelineComponent","useStore","setStreams","loading","list","pipelines","Immutable","List","isPaginationReady","handlePaginationChange","searchFilter","text","delay","_deletePipeline","window","confirm","Math","max","activePage","totalItems","className","headers","headerCellFormatter","header","rows","toJS","customFilter","filterKeys","filterLabel","dataRowFormatter","description","stages","key","to","Routes","SYSTEM","PIPELINES","PIPELINE","name","prefix","suffix","stageNumbers","stage","reduce","usedStagesAcc","pipelineStages","Array","from","Set","usedStage","indexOf","_formatStages","bsStyle","bsSize","onClick","CreatePipelineButton","PipelinesOverviewPage","subactions","DocumentationLink","DocsHelper","PAGES","OVERVIEW","RULES","SIMULATOR","md"],"mappings":"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","file":"57e33c6c-53.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 Reflux from 'reflux';\n\nimport { singletonActions } from 'views/logic/singleton';\n\nconst StreamsActions = singletonActions('Streams', () => Reflux.createActions({\n  searchPaginated: { asyncResult: true },\n  listStreams: { asyncResult: true },\n  load: { asyncResult: true },\n  get: { asyncResult: true },\n  remove: { asyncResult: true },\n  pause: { asyncResult: true },\n  resume: { asyncResult: true },\n  cloneStream: { asyncResult: true },\n  update: { asyncResult: true },\n  save: { asyncResult: true },\n  removeOutput: { asyncResult: true },\n  addOutput: { asyncResult: true },\n  testMatch: { asyncResult: true },\n}));\n\nexport default StreamsActions;\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 naturalSort from 'javascript-natural-sort';\n\nimport { PipelineType } from 'stores/pipelines/PipelinesStore';\nimport { PipelineConnectionsType } from 'stores/pipelines/PipelineConnectionsStore';\nimport { Stream } from 'stores/streams/StreamsStore';\n\ntype Props = {\n  pipeline: PipelineType,\n  connections: PipelineConnectionsType[],\n  streams: Stream[],\n  streamsFormatter: (streams: Stream[]) => React.ReactNode,\n  noConnectionsMessage?: React.ReactNode,\n}\n\nconst PipelineConnectionsList = ({ pipeline, connections, streams, streamsFormatter, noConnectionsMessage }: Props) => {\n  const streamsUsingPipeline = connections\n    .filter((c) => c.pipeline_ids && c.pipeline_ids.includes(pipeline.id)) // Get connections for this pipeline\n    .filter((c) => streams.some((s) => s.id === c.stream_id)) // Filter out deleted streams\n    .map((c) => streams.find((s) => s.id === c.stream_id))\n    .sort((s1, s2) => naturalSort(s1.title, s2.title));\n\n  return (\n    \n      {streamsUsingPipeline.length === 0 ? noConnectionsMessage : streamsFormatter(streamsUsingPipeline)}\n    \n  );\n};\n\nPipelineConnectionsList.propTypes = {\n  pipeline: PropTypes.object.isRequired,\n  connections: PropTypes.array.isRequired,\n  streams: PropTypes.array.isRequired,\n  streamsFormatter: PropTypes.func.isRequired,\n  noConnectionsMessage: PropTypes.node,\n};\n\nPipelineConnectionsList.defaultProps = {\n  noConnectionsMessage: 'Pipeline not connected to any streams',\n};\n\nexport default PipelineConnectionsList;\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';\nimport lodash from 'lodash';\n\nimport fetch from 'logic/rest/FetchProvider';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport { qualifyUrl } from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport PaginationURL from 'util/PaginationURL';\nimport StreamsActions from 'actions/streams/StreamsActions';\nimport { singletonStore } from 'views/logic/singleton';\n\nconst { CurrentUserStore } = CombinedProvider.get('CurrentUser');\n\nexport type Stream = {\n  id: string,\n  title: string,\n  description: string,\n  remove_matches_from_default_stream: boolean,\n  isDefaultStream: boolean,\n  creatorUser: string,\n  createdAt: number,\n};\n\ntype StreamRule = {\n  id: string,\n  type: string,\n  value: string,\n  inverted: boolean,\n  stream_id: string,\n  description: string,\n};\n\ntype OutputSummary = {\n  id: string,\n  title: string,\n  type: string,\n  creator_user_id: string,\n  created_at: string,\n  configuration: { [key: string]: string },\n};\n\ntype AlertConditionSummary = {\n  id: string,\n  type: string,\n  creator_user_id: string,\n  created_at: string,\n  parameters: { [key: string]: any },\n  in_grace: boolean | null | undefined,\n  title: string | null | undefined,\n};\n\ntype AlertReceiver = {\n  emails: string[],\n  users: string[],\n};\n\nexport type StreamResponse = {\n  id: string,\n  creator_user_id: string,\n  outputs: OutputSummary[],\n  matching_type: string,\n  description: string,\n  created_at: string,\n  disabled: boolean,\n  rules: StreamRule[],\n  alert_conditions: AlertConditionSummary[],\n  alert_receivers: AlertReceiver\n  title: string,\n  is_default: boolean | null | undefined,\n  is_editable: boolean,\n  remove_matches_from_default_stream: boolean,\n  index_set_id: string,\n}\n\ntype TestMatchResponse = {\n  matches: boolean,\n  rules: any,\n};\n\ntype Callback = {\n  (): void,\n};\n\ntype StreamSummaryResponse = {\n  total: number,\n  streams: Array,\n};\n\ntype PaginatedResponse = {\n  pagination: {\n    count: number,\n    total: number,\n    page: number,\n    per_page: number,\n  },\n  query: string,\n  streams: Array,\n};\n\nconst StreamsStore = singletonStore('Streams', () => Reflux.createStore({\n  listenables: [StreamsActions],\n\n  callbacks: [],\n\n  searchPaginated(newPage, newPerPage, newQuery) {\n    const url = PaginationURL(ApiRoutes.StreamsApiController.paginated().url, newPage, newPerPage, newQuery);\n\n    const promise = fetch('GET', qualifyUrl(url))\n      .then((response: PaginatedResponse) => {\n        const {\n          streams,\n          query,\n          pagination: {\n            count,\n            total,\n            page,\n            per_page: perPage,\n          },\n        } = response;\n\n        return {\n          streams,\n          pagination: {\n            count,\n            total,\n            page,\n            perPage,\n            query,\n          },\n        };\n      })\n      .catch((errorThrown) => {\n        UserNotification.error(`Loading streams failed with status: ${errorThrown}`,\n          'Could not load streams');\n      });\n\n    StreamsActions.searchPaginated.promise(promise);\n\n    return promise;\n  },\n  listStreams() {\n    const url = '/streams';\n\n    const promise = fetch('GET', qualifyUrl(url))\n      .then((result: StreamSummaryResponse) => result.streams)\n      .catch((errorThrown) => {\n        UserNotification.error(`Loading streams failed with status: ${errorThrown}`,\n          'Could not load streams');\n      });\n\n    StreamsActions.listStreams.promise(promise);\n\n    return promise;\n  },\n  load(callback: ((streams: Array) => void)) {\n    this.listStreams()\n      .then((streams) => {\n        callback(streams);\n      });\n  },\n  get(streamId: string, callback: ((stream: Stream) => void)): Promise {\n    const failCallback = (errorThrown) => {\n      UserNotification.error(`Loading Stream failed with status: ${errorThrown}`,\n        'Could not retrieve Stream');\n    };\n\n    const { url } = ApiRoutes.StreamsApiController.get(streamId);\n\n    const promise = fetch('GET', qualifyUrl(url))\n      .then(callback, failCallback);\n\n    StreamsActions.get.promise(promise);\n\n    return promise;\n  },\n  remove(streamId: string, callback: (() => void)) {\n    const failCallback = (errorThrown) => {\n      UserNotification.error(`Removing Stream failed with status: ${errorThrown}`,\n        'Could not remove Stream');\n    };\n\n    const url = qualifyUrl(ApiRoutes.StreamsApiController.delete(streamId).url);\n\n    const promise = fetch('DELETE', url)\n      .then(callback, failCallback)\n      .then(() => CurrentUserStore.reload()\n        .then(this._emitChange.bind(this)));\n\n    StreamsActions.remove.promise(promise);\n\n    return promise;\n  },\n  pause(streamId: string, callback: (() => void)) {\n    const failCallback = (errorThrown) => {\n      UserNotification.error(`Pausing Stream failed with status: ${errorThrown}`,\n        'Could not pause Stream');\n    };\n\n    const url = qualifyUrl(ApiRoutes.StreamsApiController.pause(streamId).url);\n\n    const promise = fetch('POST', url)\n      .then(callback, failCallback)\n      .then((response) => {\n        this._emitChange();\n\n        return response;\n      });\n\n    StreamsActions.pause.promise(promise);\n\n    return promise;\n  },\n  resume(streamId: string, callback: (() => void)) {\n    const failCallback = (errorThrown) => {\n      UserNotification.error(`Resuming Stream failed with status: ${errorThrown}`,\n        'Could not resume Stream');\n    };\n\n    const url = qualifyUrl(ApiRoutes.StreamsApiController.resume(streamId).url);\n\n    const promise = fetch('POST', url)\n      .then(callback, failCallback)\n      .then((response) => {\n        this._emitChange();\n\n        return response;\n      });\n\n    StreamsActions.resume.promise(promise);\n\n    return promise;\n  },\n  save(stream: any, callback: ((streamId: string) => void)) {\n    const failCallback = (errorThrown) => {\n      UserNotification.error(`Saving Stream failed with status: ${errorThrown}`,\n        'Could not save Stream');\n    };\n\n    const url = qualifyUrl(ApiRoutes.StreamsApiController.create().url);\n\n    const promise = fetch('POST', url, stream)\n      .then(callback, failCallback)\n      .then(() => CurrentUserStore.reload()\n        .then(this._emitChange.bind(this)));\n\n    StreamsActions.save.promise(promise);\n\n    return promise;\n  },\n  update(streamId: string, data: any, callback: ((stream: Stream) => void)) {\n    const failCallback = (errorThrown) => {\n      UserNotification.error(`Updating Stream failed with status: ${errorThrown}`,\n        'Could not update Stream');\n    };\n\n    const url = qualifyUrl(ApiRoutes.StreamsApiController.update(streamId).url);\n\n    const promise = fetch('PUT', url, data)\n      .then(callback, failCallback)\n      .then(this._emitChange.bind(this));\n\n    StreamsActions.update.promise(promise);\n\n    return promise;\n  },\n  cloneStream(streamId: string, data: any, callback: ((streamId: string) => void)) {\n    const failCallback = (errorThrown) => {\n      UserNotification.error(`Cloning Stream failed with status: ${errorThrown}`,\n        'Could not clone Stream');\n    };\n\n    const url = qualifyUrl(ApiRoutes.StreamsApiController.cloneStream(streamId).url);\n\n    const promise = fetch('POST', url, data)\n      .then(callback, failCallback)\n      .then(() => CurrentUserStore.reload()\n        .then(this._emitChange.bind(this)));\n\n    StreamsActions.cloneStream.promise(promise);\n\n    return promise;\n  },\n  removeOutput(streamId: string, outputId: string, callback: () => void) {\n    const url = qualifyUrl(ApiRoutes.StreamOutputsApiController.delete(streamId, outputId).url);\n\n    const promise = fetch('DELETE', url)\n      .then(callback, (errorThrown) => {\n        UserNotification.error(`Removing output from stream failed with status: ${errorThrown}`,\n          'Could not remove output from stream');\n      })\n      .then(this._emitChange.bind(this));\n\n    StreamsActions.removeOutput.promise(promise);\n\n    return promise;\n  },\n  addOutput(streamId: string, outputId: string, callback: (response: any) => void) {\n    const url = qualifyUrl(ApiRoutes.StreamOutputsApiController.add(streamId).url);\n\n    const promise = fetch('POST', url, { outputs: [outputId] })\n      .then(callback, (errorThrown) => {\n        UserNotification.error(`Adding output to stream failed with status: ${errorThrown}`,\n          'Could not add output to stream');\n      })\n      .then(this._emitChange.bind(this));\n\n    StreamsActions.addOutput.promise(promise);\n\n    return promise;\n  },\n  testMatch(streamId: string, message: any, callback: (response: TestMatchResponse) => void) {\n    const url = qualifyUrl(ApiRoutes.StreamsApiController.testMatch(streamId).url);\n\n    const promise = fetch('POST', url, message)\n      .then(callback, (error) => {\n        UserNotification.error(`Testing stream rules of stream failed with status: ${error.message}`,\n          'Could not test stream rules of stream');\n      });\n\n    StreamsActions.testMatch.promise(promise);\n\n    return promise;\n  },\n  onChange(callback: Callback) {\n    this.callbacks.push(callback);\n  },\n  _emitChange() {\n    this.callbacks.forEach((callback) => callback());\n  },\n  unregister(callback: Callback) {\n    lodash.pull(this.callbacks, callback);\n  },\n}));\n\nexport { StreamsStore, StreamsActions };\nexport default StreamsStore;\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 Immutable from 'immutable';\nimport { $PropertyType } from 'utility-types';\n\nimport type { AdditionalQueries } from 'util/PaginationURL';\n\nexport type PaginatedResponseType = {\n  count: number,\n  total: number,\n  page: number,\n  per_page: number,\n  query: string | null,\n};\n\nexport type PaginatedListJSON = {\n  page: $PropertyType,\n  per_page: $PropertyType,\n  query: $PropertyType,\n  total: number,\n  count: number,\n};\n\nexport type Pagination = {\n  page: number,\n  perPage: number,\n  query: string,\n  additionalQueries?: AdditionalQueries,\n};\n\nexport type ListPagination = Pagination & {\n  total: number,\n  count: number,\n};\n\nexport const DEFAULT_PAGINATION: Pagination = {\n  page: 1,\n  perPage: 10,\n  query: '',\n};\n\nexport type PaginatedList = {\n  list: Immutable.List,\n  pagination: ListPagination,\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 { useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { parse, stringify } from 'qs';\n\nimport { Pagination } from 'stores/PaginationTypes';\n\ntype UseLocationSearchPaginationType = {\n  isInitialized: boolean,\n  pagination: Pagination,\n  setPagination: (nextPagination: Pagination) => void,\n}\n\nconst useLocationSearchPagination = (defaultPagination: Pagination): UseLocationSearchPaginationType => {\n  const history = useHistory();\n  const location = useLocation();\n  const [parsedPagination, setParsedPagination] = useState(defaultPagination);\n  const [isInitialized, setIsInitialized] = useState(false);\n\n  useEffect(() => {\n    const convertToSafePositiveInteger = (maybeNumber: any): number | undefined => {\n      const parsedNumber = Number.parseInt(maybeNumber, 10);\n\n      return (Number.isSafeInteger(parsedNumber) && parsedNumber > 0) ? parsedNumber : undefined;\n    };\n\n    const parsePaginationFromSearch = (search: string): Pagination => {\n      const parsedSearch = parse(search, { ignoreQueryPrefix: true }) ?? {};\n      const { page: searchPage, perPage: searchPerPage, query: searchQuery } = parsedSearch;\n\n      return {\n        page: convertToSafePositiveInteger(searchPage) ?? defaultPagination.page,\n        perPage: convertToSafePositiveInteger(searchPerPage) ?? defaultPagination.perPage,\n        query: typeof searchQuery === 'string' ? searchQuery : defaultPagination.query,\n      };\n    };\n\n    setParsedPagination(parsePaginationFromSearch(location.search));\n    setIsInitialized(true);\n  }, [location.search, defaultPagination]);\n\n  const setLocationSearchPagination = (nextPagination: Pagination) => {\n    history.push({\n      pathname: location.pathname,\n      search: stringify(nextPagination),\n    });\n  };\n\n  return {\n    isInitialized,\n    pagination: parsedPagination,\n    setPagination: setLocationSearchPagination,\n  };\n};\n\nexport default useLocationSearchPagination;\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, { useEffect, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport naturalSort from 'javascript-natural-sort';\nimport Immutable from 'immutable';\n\nimport { LinkContainer, Link } from 'components/graylog/router';\nimport { Button } from 'components/graylog';\nimport { DataTable, Spinner, PaginatedList, SearchForm, QueryHelper } from 'components/common';\nimport { MetricContainer, CounterRate } from 'components/metrics';\nimport Routes from 'routing/Routes';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport { useStore } from 'stores/connect';\nimport StreamsStore, { Stream } from 'stores/streams/StreamsStore';\nimport { PaginatedPipelines } from 'stores/pipelines/PipelinesStore';\nimport { DEFAULT_PAGINATION } from 'stores/PaginationTypes';\nimport useLocationSearchPagination from 'hooks/useLocationSearchPagination';\n\nimport PipelineConnectionsList from './PipelineConnectionsList';\n\nconst { PipelinesActions } = CombinedProvider.get('Pipelines');\nconst { PipelineConnectionsStore, PipelineConnectionsActions } = CombinedProvider.get('PipelineConnections');\n\nconst StyledPaginatedList = styled(PaginatedList)`\n  .pagination {\n    margin: 0;\n  }\n`;\n\nconst LoadingSpinner = styled(Spinner)(({ theme }) => css`\n  margin-left: 10px;\n  font-size: ${theme.fonts.size.h3};\n`);\n\nconst Header = styled.div`\n  display: flex;\n`;\n\nconst PipelineStage = styled.div<{ $idle?: boolean }>(({ $idle, theme }) => css`\n  border: 1px solid ${theme.colors.gray[$idle ? '50px' : '70px']};\n  border-radius: 4px;\n  display: inline-block;\n  margin-right: 15px;\n  padding: 20px;\n  text-align: center;\n  width: 120px;\n  background-color: ${$idle ? theme.utils.colorLevel(theme.colors.global.contentBackground, 10) : theme.colors.global.contentBackground};\n`);\n\nconst PipelineNameTD = styled.td`\n  max-width: 300px;\n  overflow-x: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  width: 300px;\n`;\n\nconst StreamListTD = styled.td`\n  max-width: 150px;\n  width: 150px;\n  word-wrap: break-word;\n`;\n\nconst PipelineFilter = ({ query, onSearch }: { query: string, onSearch: (query: string) => void }) => (\n  }\n              wrapperClass=\"has-bm\"\n              onReset={() => onSearch('')}\n              topMargin={0} />\n);\n\nconst _formatConnectedStreams = (streams) => {\n  return streams.map((s) => s.title).join(', ');\n};\n\nconst _loadPipelines = (pagination, setLoading, setPaginatedPipelines) => {\n  setLoading(true);\n\n  PipelinesActions.listPaginated(pagination).then((paginatedPipelines) => {\n    setPaginatedPipelines(paginatedPipelines);\n    setLoading(false);\n  });\n};\n\nconst ProcessingTimelineComponent = () => {\n  const { connections } = useStore(PipelineConnectionsStore);\n  const [streams, setStreams] = useState();\n  const [paginatedPipelines, setPaginatedPipelines] = useState();\n  const [loading, setLoading] = useState(false);\n  const { list: pipelines = Immutable.List(), pagination: { total = 0, count = 0 } = {} } = paginatedPipelines || {};\n  const { isInitialized: isPaginationReady, pagination, setPagination } = useLocationSearchPagination(DEFAULT_PAGINATION);\n  const { page, query, perPage } = pagination;\n\n  useEffect(() => {\n    if (isPaginationReady) {\n      _loadPipelines(pagination, setLoading, setPaginatedPipelines);\n      PipelineConnectionsActions.list();\n      StreamsStore.listStreams().then(setStreams);\n    }\n  }, [isPaginationReady, pagination]);\n\n  const isLoading = !pipelines || !streams || !connections;\n\n  if (isLoading) {\n    return ;\n  }\n\n  const handlePaginationChange = (nextPagination) => {\n    setPagination(nextPagination);\n  };\n\n  const searchFilter = (\n    
\n handlePaginationChange({ ...pagination, query: newQuery, page: DEFAULT_PAGINATION.page })} />\n {loading && }\n
\n );\n\n const _headerCellFormatter = (header) => {\n let className;\n\n if (header === 'Actions') {\n className = 'actions';\n }\n\n return {header};\n };\n\n const _formatStages = (pipeline, stages) => {\n const stageNumbers = stages.map((stage) => stage.stage);\n\n return pipelines\n .map(({ stages: pipelineStages }) => pipelineStages.map(({ stage }) => stage))\n .reduce((usedStagesAcc: number[], pipelineStages: number[]) => {\n // Concat stages in a single array removing duplicates\n return Array.from(new Set([...usedStagesAcc, ...pipelineStages]));\n }, [])\n .sort(naturalSort)\n .map((usedStage) => {\n if (stageNumbers.indexOf(usedStage) === -1) {\n return Idle;\n }\n\n return Stage {usedStage};\n });\n };\n\n const _deletePipeline = (pipeline) => {\n return () => {\n // TODO: Replace with ConfirmDialog components\n // eslint-disable-next-line no-alert\n if (window.confirm(`Do you really want to delete pipeline \"${pipeline.title}\"? This action cannot be undone.`)) {\n PipelinesActions.delete(pipeline.id).then(() => {\n if (count > 1) {\n _loadPipelines(pagination, setLoading, setPaginatedPipelines);\n\n return;\n }\n\n setPagination({ page: Math.max(DEFAULT_PAGINATION.page, pagination.page - 1), perPage, query });\n });\n }\n };\n };\n\n const _pipelineFormatter = (pipeline) => {\n const { id, title, description, stages } = pipeline;\n\n return (\n \n \n {title}\n
\n {description}\n
\n \n \n \n
\n \n Not connected} />\n \n {_formatStages(pipeline, stages)}\n \n \n  \n \n \n \n \n \n );\n };\n\n const headers = ['Pipeline', 'Connected to Streams', 'Processing Timeline', 'Actions'];\n\n return (\n
\n handlePaginationChange({ ...pagination, page: newPage, perPage: newPerPage })}\n activePage={page}\n totalItems={total}>\n \n \n
\n );\n};\n\nProcessingTimelineComponent.propTypes = {};\n\nexport default ProcessingTimelineComponent;\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 { LinkContainer } from 'components/graylog/router';\nimport { Button } from 'components/graylog';\nimport Routes from 'routing/Routes';\n\nconst CreatePipelineButton = () => (\n
\n \n \n \n
\n);\n\nexport default CreatePipelineButton;\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';\n\nimport { LinkContainer } from 'components/graylog/router';\nimport { Row, Col, Button } from 'components/graylog';\nimport { DocumentTitle, PageHeader } from 'components/common';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport ProcessingTimelineComponent from 'components/pipelines/ProcessingTimelineComponent';\nimport Routes from 'routing/Routes';\nimport DocsHelper from 'util/DocsHelper';\n\nimport CreatePipelineButton from '../components/pipelines/CreatePipelineButton';\n\nconst PipelinesOverviewPage = () => (\n \n
\n )}>\n \n Pipelines let you transform and process messages coming from streams. Pipelines consist of stages where\n rules are evaluated and applied. Messages can go through one or more stages.\n \n \n Read more about Graylog pipelines in the .\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\nexport default PipelinesOverviewPage;\n"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy