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

web-interface.assets.1255d548-6717.b345b73af9e2e6c4b4ab.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"file":"1255d548-6717.b345b73af9e2e6c4b4ab.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/event-definitions/constants.ts","webpack://graylog-web-interface/./src/components/events/EventsPageNavigation.tsx","webpack://graylog-web-interface/./src/hooks/useScopePermissions.ts","webpack://graylog-web-interface/./src/components/event-definitions/event-definitions/EventDefinitionActions.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definitions/SchedulingCell.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definitions/StatusCell.tsx","webpack://graylog-web-interface/./src/components/event-definitions/event-definitions/BulkActions.tsx","webpack://graylog-web-interface/./src/components/event-definitions/hooks/useEventDefinitions.ts","webpack://graylog-web-interface/./src/components/event-definitions/event-definitions/EventDefinitionsContainer.tsx","webpack://graylog-web-interface/./src/pages/EventDefinitionsPage.tsx"],"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 * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { LinkContainer } from 'components/common/router';\nimport { IfPermitted } from 'components/common';\nimport NavItemStateIndicator, {\n  hoverIndicatorStyles,\n  activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nconst Container = styled(ButtonToolbar)`\n  margin-bottom: 10px;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => css`\n  font-family: ${theme.fonts.family.navigation};\n  font-size: ${theme.fonts.size.navigation};\n\n  &&&& {\n    color: ${theme.colors.variant.darker.default};\n    \n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n\n    > div {\n      &:hover,\n      &:focus {\n        color: ${theme.colors.variant.darker.default};\n      }\n    }\n\n    &:hover {\n      ${hoverIndicatorStyles(theme)}\n    }\n\n    &.active {\n      color: ${theme.colors.global.textDefault};\n\n      ${activeIndicatorStyles(theme)}\n\n      &:hover,\n      &:focus {\n        ${activeIndicatorStyles(theme)}\n      }\n    }\n  }\n`);\n\nStyledButton.displayName = 'Button';\n\ntype Props = {\n  /**\n   * List of nav items. Define permissions, if the item should only be displayed for users with specific permissions.\n   * By default, an item is active if the current URL starts with the item URL.\n   * If you only want to display an item as active only when its path matches exactly, set `exactPathMatch` to true.\n   */\n  items: Array<{\n    title: string,\n    path: string,\n    permissions?: string | Array\n    exactPathMatch?: boolean,\n  }>\n}\n\n/**\n * Simple tab navigation to allow navigating to subareas of a page.\n */\nconst PageNavigation = ({ items }: Props) => (\n  \n    {items.map(({ path, title, permissions, exactPathMatch }) => {\n      if (!path) {\n        return null;\n      }\n\n      return (\n        \n          \n            \n              \n                {title}\n              \n            \n          \n        \n      );\n    })}\n  \n);\n\nexport default PageNavigation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { Sort } from 'stores/PaginationTypes';\n\nexport const SYSTEM_EVENT_DEFINITION_TYPE = 'system-notifications-v1';\n\nexport const ENTITY_TABLE_ID = 'event_definitions';\nexport const DEFAULT_LAYOUT = {\n  pageSize: 20,\n  sort: { attributeId: 'title', direction: 'asc' } as Sort,\n  displayedColumns: ['title', 'description', 'priority', 'scheduling', 'status', 'matched_at'],\n  columnsOrder: ['title', 'description', 'priority', 'matched_at', 'status', 'scheduling'],\n};\n\nexport const ADDITIONAL_ATTRIBUTES = [\n  { id: 'scheduling', title: 'Scheduling', sortable: false },\n  { id: 'matched_at', title: 'Last Matched', sortable: true },\n];\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport PageNavigation from 'components/common/PageNavigation';\nimport Routes from 'routing/Routes';\nimport { Row } from 'components/bootstrap';\n\nconst NAV_ITEMS = [\n  { title: 'Alerts & Events', path: Routes.ALERTS.LIST, exactPathMatch: true },\n  { title: 'Event Definitions', path: Routes.ALERTS.DEFINITIONS.LIST },\n  { title: 'Notifications', path: Routes.ALERTS.NOTIFICATIONS.LIST },\n];\n\nconst EventsPageNavigation = () => (\n  \n    \n  \n);\n\nexport default EventsPageNavigation;\n","/*\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 { useQuery } from '@tanstack/react-query';\n\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport UserNotification from 'util/UserNotification';\nimport type { GenericEntityType } from 'logic/lookup-tables/types';\n\ntype ScopeParams = {\n  is_mutable: boolean,\n}\n\ntype ScopeName = 'DEFAULT' | 'ILLUMINATE';\n\ntype EntityScopeRecord = Record;\n\ntype EntityScopeType = {\n  entity_scopes: EntityScopeRecord,\n};\n\nfunction fetchScopePermissions() {\n  return fetch('GET', qualifyUrl(ApiRoutes.EntityScopeController.getScope().url));\n}\n\nconst useGetPermissionsByScope = (entity: Partial) => {\n  const { data, isLoading, error } = useQuery(\n    ['scope-permissions'],\n    fetchScopePermissions,\n    {\n      onError: () => UserNotification.error(error.message),\n      retry: 1,\n      cacheTime: 1000 * 60 * 60 * 3, // cache for 3 hours\n      staleTime: 1000 * 60 * 60 * 3, // data is valid for 3 hours\n    },\n  );\n\n  const scope = entity?._scope?.toUpperCase() || 'DEFAULT';\n  const permissions: ScopeParams = isLoading ? { is_mutable: false } : data.entity_scopes[scope];\n\n  return {\n    loadingScopePermissions: isLoading,\n    scopePermissions: permissions,\n  };\n};\n\nexport default useGetPermissionsByScope;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useState } from 'react';\n\nimport Routes from 'routing/Routes';\nimport { LinkContainer } from 'components/common/router';\nimport {\n  IfPermitted,\n  ShareButton,\n  ConfirmDialog,\n} from 'components/common';\nimport {\n  ButtonToolbar,\n  MenuItem,\n} from 'components/bootstrap';\nimport useGetPermissionsByScope from 'hooks/useScopePermissions';\nimport { EventDefinitionsActions } from 'stores/event-definitions/EventDefinitionsStore';\nimport EntityShareModal from 'components/permissions/EntityShareModal';\nimport OverlayDropdownButton from 'components/common/OverlayDropdownButton';\nimport { MORE_ACTIONS_TITLE, MORE_ACTIONS_HOVER_TITLE } from 'components/common/EntityDataTable/Constants';\nimport UserNotification from 'util/UserNotification';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nimport type { EventDefinition } from '../event-definitions-types';\n\ntype Props = {\n  eventDefinition: EventDefinition,\n  refetchEventDefinitions: () => void,\n}\n\nconst DIALOG_TYPES = {\n  COPY: 'copy',\n  DELETE: 'delete',\n  DISABLE: 'disable',\n  ENABLE: 'enable',\n};\n\nconst DIALOG_TEXT = {\n  [DIALOG_TYPES.COPY]: {\n    dialogTitle: 'Copy Event Definition',\n    dialogBody: (definitionTitle) => `Are you sure you want to create a copy of \"${definitionTitle}\"?`,\n  },\n  [DIALOG_TYPES.DELETE]: {\n    dialogTitle: 'Delete Event Definition',\n    dialogBody: (definitionTitle) => `Are you sure you want to delete \"${definitionTitle}\"?`,\n  },\n  [DIALOG_TYPES.DISABLE]: {\n    dialogTitle: 'Disable Event Definition',\n    dialogBody: (definitionTitle) => `Are you sure you want to disable \"${definitionTitle}\"?`,\n  },\n  [DIALOG_TYPES.ENABLE]: {\n    dialogTitle: 'Enable Event Definition',\n    dialogBody: (definitionTitle) => `Are you sure you want to enable \"${definitionTitle}\"?`,\n  },\n};\n\nconst EventDefinitionActions = ({ eventDefinition, refetchEventDefinitions }: Props) => {\n  const { scopePermissions } = useGetPermissionsByScope(eventDefinition);\n  const [currentDefinition, setCurrentDefinition] = useState(null);\n  const [showDialog, setShowDialog] = useState(false);\n  const [dialogType, setDialogType] = useState(null);\n  const [showEntityShareModal, setShowEntityShareModal] = useState(false);\n  const { pathname } = useLocation();\n  const sendTelemetry = useSendTelemetry();\n\n  const showActions = (): boolean => scopePermissions?.is_mutable;\n\n  const isSystemEventDefinition = (): boolean => eventDefinition?.config?.type === 'system-notifications-v1';\n\n  const isAggregationEventDefinition = (): boolean => eventDefinition?.config?.type === 'aggregation-v1';\n\n  const updateState = ({ show, type, definition }) => {\n    setShowDialog(show);\n    setDialogType(type);\n\n    setCurrentDefinition(definition);\n  };\n\n  const handleAction = (action, definition) => {\n    switch (action) {\n      case DIALOG_TYPES.COPY:\n        sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.ROW_ACTION_COPY_CLICKED, {\n          app_pathname: getPathnameWithoutId(pathname),\n          app_section: 'event-definition-row',\n          app_action_value: 'copy-menuitem',\n        });\n\n        updateState({ show: true, type: DIALOG_TYPES.COPY, definition });\n\n        break;\n      case DIALOG_TYPES.DELETE:\n        sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.ROW_ACTION_DELETE_CLICKED, {\n          app_pathname: getPathnameWithoutId(pathname),\n          app_section: 'event-definition-row',\n          app_action_value: 'delete-menuitem',\n        });\n\n        updateState({ show: true, type: DIALOG_TYPES.DELETE, definition });\n\n        break;\n      case DIALOG_TYPES.ENABLE:\n        sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.ROW_ACTION_ENABLE_CLICKED, {\n          app_pathname: getPathnameWithoutId(pathname),\n          app_section: 'event-definition-row',\n          app_action_value: 'enable-menuitem',\n        });\n\n        updateState({ show: true, type: DIALOG_TYPES.ENABLE, definition });\n\n        break;\n      case DIALOG_TYPES.DISABLE:\n        sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.ROW_ACTION_DISABLE_CLICKED, {\n          app_pathname: getPathnameWithoutId(pathname),\n          app_section: 'event-definition-row',\n          app_action_value: 'disable-menuitem',\n        });\n\n        updateState({ show: true, type: DIALOG_TYPES.DISABLE, definition });\n\n        break;\n      default:\n        break;\n    }\n  };\n\n  const handleShare = () => {\n    sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.ROW_ACTION_SHARE_CLICKED, {\n      app_pathname: getPathnameWithoutId(pathname),\n      app_section: 'event-definition-list',\n      app_action_value: 'share-button',\n    });\n\n    setShowEntityShareModal(true);\n  };\n\n  const handleClearState = () => {\n    updateState({ show: false, type: null, definition: null });\n    refetchEventDefinitions();\n  };\n\n  const handleConfirm = () => {\n    switch (dialogType) {\n      case 'copy':\n        EventDefinitionsActions.copy(currentDefinition).finally(() => {\n          handleClearState();\n        });\n\n        break;\n      case 'delete':\n        EventDefinitionsActions.delete(currentDefinition).then(\n          () => {\n            UserNotification.success('Event Definition deleted successfully',\n              `Event Definition \"${eventDefinition.title}\" was deleted successfully.`);\n          },\n          (error) => {\n            const errorStatus = error?.additional?.body?.errors?.dependency.join(' ') || error;\n\n            UserNotification.error(`Deleting Event Definition \"${eventDefinition.title}\" failed with status: ${errorStatus}`,\n              'Could not delete Event Definition');\n          },\n        ).finally(() => {\n          handleClearState();\n        });\n\n        break;\n      case 'enable':\n        EventDefinitionsActions.enable(currentDefinition).finally(() => {\n          handleClearState();\n        });\n\n        break;\n      case 'disable':\n        EventDefinitionsActions.disable(currentDefinition).finally(() => {\n          handleClearState();\n        });\n\n        break;\n      default:\n        break;\n    }\n  };\n\n  const isEnabled = eventDefinition?.state === 'ENABLED';\n\n  return (\n    <>\n      \n        \n        \n          {showActions() && (\n            \n              \n                \n                  Edit\n                \n              \n            \n          )}\n          {!isSystemEventDefinition() && (\n             handleAction(DIALOG_TYPES.COPY, eventDefinition)}>Duplicate\n          )}\n          \n           handleAction(isEnabled ? DIALOG_TYPES.DISABLE : DIALOG_TYPES.ENABLE, eventDefinition)}>\n            {isEnabled ? 'Disable' : 'Enable'}\n          \n\n          {showActions() && (\n            \n              \n               handleAction(DIALOG_TYPES.DELETE, eventDefinition)}\n                        data-testid=\"delete-button\">Delete\n              \n            \n          )}\n          {\n            isAggregationEventDefinition() && (\n              <>\n                \n                \n                  \n                    Replay search\n                  \n                \n\n              \n            )\n          }\n        \n      \n      {showDialog && (\n        \n          {DIALOG_TEXT[dialogType].dialogBody(currentDefinition.title)}\n        \n      )}\n      {showEntityShareModal && (\n         setShowEntityShareModal(false)} />\n      )}\n    \n  );\n};\n\nexport default EventDefinitionActions;\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 moment from 'moment';\nimport styled, { css } from 'styled-components';\n\nimport { OverlayTrigger, Icon, Timestamp } from 'components/common';\nimport { Popover, Button } from 'components/bootstrap';\nimport { EventDefinitionsActions } from 'stores/event-definitions/EventDefinitionsStore';\n\nimport type { Scheduler, EventDefinition } from '../event-definitions-types';\n\ntype Props = {\n  definition: EventDefinition,\n};\n\nconst WidePopover = styled(Popover)`\n  max-width: 500px;\n`;\n\nconst DetailTitle = styled.dt`\n  float: left;\n  clear: left;\n`;\n\nconst DetailValue = styled.dd(({ theme }) => css`\n  margin-left: 180px;\n  word-wrap: break-word;\n\n  &:not(:last-child) {\n    border-bottom: 1px solid ${theme.colors.variant.lightest.default};\n    margin-bottom: 5px;\n    padding-bottom: 5px;\n  }\n`);\n\nconst DetailsButton = styled(Button)`\n  padding: 6px 8px;\n`;\n\nconst getTimeRange = (scheduler: Scheduler) => {\n  const from = scheduler?.data?.timerange_from;\n  const to = scheduler?.data?.timerange_to;\n\n  return (\n    <>\n      Next time range:\n        \n    \n  );\n};\n\nconst detailsPopover = (title, scheduler: Scheduler, clearNotifications: () => void) => (\n  \n    
\n Status:\n {scheduler.status}\n {scheduler.triggered_at && (\n <>\n Last execution:\n \n \n )}\n {scheduler.next_time && (\n <>\n Next execution:\n \n \n )}\n {getTimeRange(scheduler)}\n Queued notifications:\n {scheduler.queued_notifications}\n {scheduler.queued_notifications > 0 && (\n \n )}\n \n
\n
\n);\n\nconst SchedulingInfo = ({\n executeEveryMs,\n searchWithinMs,\n scheduler,\n title,\n clearNotifications,\n}:{\n executeEveryMs: number,\n searchWithinMs: number,\n scheduler: Scheduler, title: string,\n clearNotifications: () => void\n}) => {\n const executeEveryFormatted = moment.duration(executeEveryMs)\n .format('d [days] h [hours] m [minutes] s [seconds]', { trim: 'all', usePlural: false });\n const searchWithinFormatted = moment.duration(searchWithinMs)\n .format('d [days] h [hours] m [minutes] s [seconds]', { trim: 'all' });\n\n return (\n <>\n {`Runs every ${executeEveryFormatted}, searching within the last ${searchWithinFormatted}. `}\n \n \n \n \n );\n};\n\nconst SchedulingCell = ({ definition } : Props) => {\n if (!definition?.config?.search_within_ms && !definition?.config?.execute_every_ms) {\n return <>Not Scheduled.;\n }\n\n const clearNotifications = (eventDefinition: EventDefinition) => () => {\n // eslint-disable-next-line no-alert\n if (window.confirm(`Are you sure you want to clear queued notifications for \"${eventDefinition.title}\"?`)) {\n EventDefinitionsActions.clearNotificationQueue(eventDefinition);\n }\n };\n\n const {\n title,\n config: {\n search_within_ms: searchWithinMs,\n execute_every_ms: executeEveryMs,\n },\n scheduler,\n } = definition;\n\n return (\n \n );\n};\n\nexport default SchedulingCell;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { EventDefinitionsActions } from 'stores/event-definitions/EventDefinitionsStore';\nimport { Label, BootstrapModalConfirm } from 'components/bootstrap';\nimport { Icon } from 'components/common';\n\nimport type { EventDefinition } from '../event-definitions-types';\n\nconst StatusLabel = styled(Label)`\n display: inline-flex;\n justify-content: center;\n gap: 4px;\n`;\n\nconst Spacer = styled.div`\n border-left: 1px solid currentColor;\n height: 1em;\n`;\n\nconst _title = (disabled: boolean, disabledChange: boolean, description: string) => {\n if (disabledChange) {\n return description;\n }\n\n return disabled ? 'Enable' : 'Disable';\n};\n\ntype Props ={\n eventDefinition: EventDefinition,\n refetchEventDefinitions: () => void,\n}\n\nconst StatusCell = ({ eventDefinition, refetchEventDefinitions } : Props) => {\n const [showConfirmDisableModal, setShowConfirmDisableModal] = useState(false);\n\n const isEnabled = eventDefinition?.state === 'ENABLED';\n const disableChange = eventDefinition?.config?.type === 'system-notifications-v1';\n const description = isEnabled ? 'enabled' : 'disabled';\n const title = _title(!isEnabled, disableChange, description);\n\n const toggleEventDefinitionStatus = useCallback(async () => {\n if (isEnabled) {\n setShowConfirmDisableModal(true);\n } else {\n await EventDefinitionsActions.enable(eventDefinition);\n await refetchEventDefinitions();\n }\n }, [isEnabled, eventDefinition, refetchEventDefinitions]);\n\n const handleConfirmDisable = useCallback(async () => {\n await EventDefinitionsActions.disable(eventDefinition);\n await refetchEventDefinitions();\n setShowConfirmDisableModal(false);\n }, [eventDefinition, refetchEventDefinitions]);\n\n return (\n <>\n \n {description}\n {!disableChange && (\n <>\n \n \n \n )}\n \n {showConfirmDisableModal && (\n setShowConfirmDisableModal(false)}>\n {`Do you really want to disable event definition '${eventDefinition.title}'?`}\n \n )}\n \n );\n};\n\nexport default StatusCell;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback, useState } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport { ConfirmDialog } from 'components/common';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl, getPathnameWithoutId } from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport { MenuItem } from 'components/bootstrap';\nimport StringUtils from 'util/StringUtils';\nimport BulkActionsDropdown from 'components/common/EntityDataTable/BulkActionsDropdown';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\ntype Props = {\n selectedDefinitionsIds: Array,\n setSelectedEventDefinitionsIds: (definitionIds: Array) => void\n};\nconst ACTION_TYPES = {\n DELETE: 'delete',\n DISABLE: 'disable',\n ENABLE: 'enable',\n};\nconst getDescriptor = (count: number) => StringUtils.pluralize(count, 'event definition', 'event definitions');\n\nconst ACTION_TEXT = {\n [ACTION_TYPES.DELETE]: {\n dialogTitle: 'Delete Event Definitions',\n dialogBody: (count: number) => `Are you sure you want to delete ${count} ${getDescriptor(count)}?`,\n bulkActionUrl: ApiRoutes.EventDefinitionsApiController.bulkDelete().url,\n\n },\n [ACTION_TYPES.DISABLE]: {\n dialogTitle: 'Disable Event Definitions',\n dialogBody: (count: number) => `Are you sure you want to disable ${count} ${getDescriptor(count)}?`,\n bulkActionUrl: ApiRoutes.EventDefinitionsApiController.bulkUnschedule().url,\n },\n [ACTION_TYPES.ENABLE]: {\n dialogTitle: 'Enable Event Definitions',\n dialogBody: (count: number) => `Are you sure you want to enable ${count} ${getDescriptor(count)}?`,\n bulkActionUrl: ApiRoutes.EventDefinitionsApiController.bulkSchedule().url,\n },\n};\n\nconst BulkActions = ({ selectedDefinitionsIds, setSelectedEventDefinitionsIds }: Props) => {\n const queryClient = useQueryClient();\n const [showDialog, setShowDialog] = useState(false);\n const [actionType, setActionType] = useState(null);\n const selectedItemsAmount = selectedDefinitionsIds?.length;\n const { pathname } = useLocation();\n const sendTelemetry = useSendTelemetry();\n const refetchEventDefinitions = useCallback(() => queryClient.invalidateQueries(['eventDefinition', 'overview']), [queryClient]);\n\n const updateState = ({ show, type }) => {\n setShowDialog(show);\n setActionType(type);\n };\n\n const handleAction = (action) => {\n switch (action) {\n case ACTION_TYPES.DELETE:\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.BULK_ACTION_DELETE_CLICKED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-bulk',\n app_action_value: 'delete-menuitem',\n });\n\n updateState({ show: true, type: ACTION_TYPES.DELETE });\n\n break;\n case ACTION_TYPES.ENABLE:\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.BULK_ACTION_ENABLE_CLICKED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-bulk',\n app_action_value: 'enable-menuitem',\n });\n\n updateState({ show: true, type: ACTION_TYPES.ENABLE });\n\n break;\n case ACTION_TYPES.DISABLE:\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.BULK_ACTION_DISABLE_CLICKED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-bulk',\n app_action_value: 'disable-menuitem',\n });\n\n updateState({ show: true, type: ACTION_TYPES.DISABLE });\n\n break;\n default:\n break;\n }\n };\n\n const handleClearState = () => {\n updateState({ show: false, type: null });\n refetchEventDefinitions();\n };\n\n const onAction = useCallback(() => {\n fetch('POST',\n qualifyUrl(ACTION_TEXT[actionType].bulkActionUrl),\n { entity_ids: selectedDefinitionsIds },\n ).then(({ failures }) => {\n if (failures?.length) {\n const notUpdatedDefinitionIds = failures.map(({ entity_id }) => entity_id);\n setSelectedEventDefinitionsIds(notUpdatedDefinitionIds);\n } else {\n setSelectedEventDefinitionsIds([]);\n UserNotification.success(`${selectedItemsAmount} ${getDescriptor(selectedItemsAmount)} ${StringUtils.pluralize(selectedItemsAmount, 'was', 'were')} ${actionType}d successfully.`, 'Success');\n }\n })\n .catch((error) => {\n UserNotification.error(`An error occurred while ${actionType} event definition. ${error}`);\n }).finally(() => {\n refetchEventDefinitions();\n });\n }, [actionType, refetchEventDefinitions, selectedDefinitionsIds, selectedItemsAmount, setSelectedEventDefinitionsIds]);\n\n const handleConfirm = () => {\n onAction();\n setShowDialog(false);\n };\n\n return (\n \n handleAction(ACTION_TYPES.ENABLE)}>Enable\n handleAction(ACTION_TYPES.DISABLE)}>Disable\n handleAction(ACTION_TYPES.DELETE)}>Delete\n {showDialog && (\n \n {ACTION_TEXT[actionType]?.dialogBody(selectedItemsAmount)}\n \n )}\n \n );\n};\n\nexport default BulkActions;\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 { useQuery } from '@tanstack/react-query';\n\nimport UserNotification from 'util/UserNotification';\nimport type { SearchParams } from 'stores/PaginationTypes';\nimport type { EventDefinition } from 'components/event-definitions/event-definitions-types';\nimport { EventDefinitionsStore } from 'stores/event-definitions/EventDefinitionsStore';\n\ntype Options = {\n enabled: boolean,\n}\n\nconst useEventDefinitions = (searchParams: SearchParams, { enabled }: Options = { enabled: true }): {\n data: {\n elements: Array,\n pagination: { total: number }\n attributes: Array<{ id: string, title: string, sortable: boolean }>\n } | undefined,\n refetch: () => void,\n isInitialLoading: boolean,\n} => {\n const { data, refetch, isInitialLoading } = useQuery(\n ['eventDefinition', 'overview', searchParams],\n () => EventDefinitionsStore.searchPaginated(\n searchParams.page,\n searchParams.pageSize,\n searchParams.query,\n { sort: searchParams?.sort.attributeId, order: searchParams?.sort.direction },\n ),\n {\n onError: (errorThrown) => {\n UserNotification.error(`Loading Event Definitions failed with status: ${errorThrown}`,\n 'Could not load Event definition');\n },\n keepPreviousData: true,\n enabled,\n },\n );\n\n return ({\n data,\n refetch,\n isInitialLoading,\n });\n};\n\nexport default useEventDefinitions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\n\nimport { EntityDataTable, NoSearchResult, PaginatedList, QueryHelper, RelativeTime, SearchForm, Spinner } from 'components/common';\nimport type { Sort } from 'stores/PaginationTypes';\nimport usePaginationQueryParameter from 'hooks/usePaginationQueryParameter';\nimport 'components/event-definitions/event-definition-types';\nimport { Link } from 'components/common/router';\nimport Routes from 'routing/Routes';\nimport type { ColumnRenderers } from 'components/common/EntityDataTable';\nimport useTableLayout from 'components/common/EntityDataTable/hooks/useTableLayout';\nimport useUpdateUserLayoutPreferences from 'components/common/EntityDataTable/hooks/useUpdateUserLayoutPreferences';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nimport EventDefinitionActions from './EventDefinitionActions';\nimport SchedulingCell from './SchedulingCell';\nimport StatusCell from './StatusCell';\nimport BulkActions from './BulkActions';\n\nimport type { EventDefinition } from '../event-definitions-types';\nimport useEventDefinitions from '../hooks/useEventDefinitions';\nimport { ENTITY_TABLE_ID, DEFAULT_LAYOUT, ADDITIONAL_ATTRIBUTES } from '../constants';\n\nconst customColumnRenderers = (refetchEventDefinitions: () => void): ColumnRenderers => ({\n attributes: {\n title: {\n renderCell: (title: string, eventDefinition) => (\n {title}\n ),\n },\n matched_at: {\n renderCell: (_matched_at: string, eventDefinition) => (\n eventDefinition.matched_at ? : 'Never'\n ),\n },\n scheduling: {\n renderCell: (_scheduling: string, eventDefinition) => (\n \n ),\n },\n status: {\n renderCell: (_status: string, eventDefinition) => (\n \n ),\n staticWidth: 100,\n },\n priority: {\n staticWidth: 100,\n },\n },\n});\n\nconst EventDefinitionsContainer = () => {\n const [query, setQuery] = useState('');\n const { layoutConfig, isInitialLoading: isLoadingLayoutPreferences } = useTableLayout({\n entityTableId: ENTITY_TABLE_ID,\n defaultPageSize: DEFAULT_LAYOUT.pageSize,\n defaultDisplayedAttributes: DEFAULT_LAYOUT.displayedColumns,\n defaultSort: DEFAULT_LAYOUT.sort,\n });\n const paginationQueryParameter = usePaginationQueryParameter(undefined, 20);\n const { mutate: updateTableLayout } = useUpdateUserLayoutPreferences(ENTITY_TABLE_ID);\n const { data: paginatedEventDefinitions, refetch: refetchEventDefinitions, isInitialLoading: isLoadingEventDefinitions } = useEventDefinitions({\n query,\n page: paginationQueryParameter.page,\n pageSize: layoutConfig.pageSize,\n sort: layoutConfig.sort,\n });\n const columnRenderers = customColumnRenderers(refetchEventDefinitions);\n const columnDefinitions = useMemo(\n () => ([...(paginatedEventDefinitions?.attributes ?? []), ...ADDITIONAL_ATTRIBUTES]),\n [paginatedEventDefinitions?.attributes],\n );\n\n const { pathname } = useLocation();\n const sendTelemetry = useSendTelemetry();\n\n const onSearch = useCallback((newQuery: string) => {\n paginationQueryParameter.resetPage();\n setQuery(newQuery);\n }, [paginationQueryParameter]);\n\n const onReset = useCallback(() => {\n onSearch('');\n }, [onSearch]);\n\n const onColumnsChange = useCallback((displayedAttributes: Array) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.COLUMNS_CHANGED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-list',\n app_action_value: 'columns-select',\n columns: displayedAttributes,\n });\n\n updateTableLayout({ displayedAttributes });\n }, [pathname, sendTelemetry, updateTableLayout]);\n\n const onPageSizeChange = useCallback((newPageSize: number) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.PAGE_SIZE_CHANGED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-list',\n app_action_value: 'page-size-select',\n page_size: newPageSize,\n });\n\n paginationQueryParameter.setPagination({ page: 1, pageSize: newPageSize });\n updateTableLayout({ perPage: newPageSize });\n }, [paginationQueryParameter, pathname, sendTelemetry, updateTableLayout]);\n\n const onSortChange = useCallback((newSort: Sort) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.EVENTDEFINITION_LIST.SORT_CHANGED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'event-definition-list',\n app_action_value: 'sort-select',\n sort: newSort,\n });\n\n paginationQueryParameter.resetPage();\n updateTableLayout({ sort: newSort });\n }, [paginationQueryParameter, pathname, sendTelemetry, updateTableLayout]);\n\n const renderEventDefinitionActions = useCallback((listItem: EventDefinition) => (\n \n ), [refetchEventDefinitions]);\n\n const renderBulkActions = (\n selectedEventDefinitionsIds: Array,\n setSelectedEventDefinitionsIds: (eventDefinitionsId: Array) => void,\n ) => (\n \n );\n\n if (isLoadingLayoutPreferences || isLoadingEventDefinitions) {\n return ;\n }\n\n const { elements, pagination: { total } } = paginatedEventDefinitions;\n\n return (\n \n
\n } />\n
\n
\n {elements?.length === 0 ? (\n No Event Definition has been found\n ) : (\n data={elements}\n visibleColumns={layoutConfig.displayedAttributes}\n columnsOrder={DEFAULT_LAYOUT.columnsOrder}\n onColumnsChange={onColumnsChange}\n onSortChange={onSortChange}\n onPageSizeChange={onPageSizeChange}\n pageSize={layoutConfig.pageSize}\n bulkSelection={{ actions: renderBulkActions }}\n activeSort={layoutConfig.sort}\n actionsCellWidth={160}\n rowActions={renderEventDefinitionActions}\n columnRenderers={columnRenderers}\n columnDefinitions={columnDefinitions}\n entityAttributesAreCamelCase={false} />\n )}\n
\n
\n\n );\n};\n\nexport default EventDefinitionsContainer;\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 { Button, Col, Row } from 'components/bootstrap';\nimport { DocumentTitle, IfPermitted, PageHeader } from 'components/common';\nimport EventDefinitionsContainer from 'components/event-definitions/event-definitions/EventDefinitionsContainer';\nimport Routes from 'routing/Routes';\nimport DocsHelper from 'util/DocsHelper';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport EventsPageNavigation from 'components/events/EventsPageNavigation';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport useHistory from 'routing/useHistory';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nconst EventDefinitionsPage = () => {\n const history = useHistory();\n const { pathname } = useLocation();\n const sendTelemetry = useSendTelemetry();\n\n return (\n \n \n \n \n \n )}\n documentationLink={{\n title: 'Alerts documentation',\n path: DocsHelper.PAGES.ALERTS,\n }}>\n \n Create new Event Definitions that will allow you to search for different Conditions and alert on them.\n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default EventDefinitionsPage;\n"],"names":["Container","StyledButton","theme","items","path","title","permissions","exactPathMatch","SYSTEM_EVENT_DEFINITION_TYPE","ENTITY_TABLE_ID","DEFAULT_LAYOUT","ADDITIONAL_ATTRIBUTES","NAV_ITEMS","fetchScopePermissions","entity","data","isLoading","error","scope","DIALOG_TYPES","DIALOG_TEXT","definitionTitle","eventDefinition","refetchEventDefinitions","scopePermissions","currentDefinition","setCurrentDefinition","showDialog","setShowDialog","dialogType","setDialogType","showEntityShareModal","setShowEntityShareModal","pathname","useLocation","sendTelemetry","useSendTelemetry","showActions","isSystemEventDefinition","isAggregationEventDefinition","updateState","show","type","definition","handleAction","action","handleShare","handleClearState","handleConfirm","UserNotification","errorStatus","isEnabled","OverlayDropdownButton","Routes","EntityShareModal","WidePopover","DetailTitle","DetailValue","DetailsButton","getTimeRange","scheduler","from","to","detailsPopover","clearNotifications","SchedulingInfo","executeEveryMs","searchWithinMs","executeEveryFormatted","searchWithinFormatted","StatusLabel","Spacer","_title","disabled","disabledChange","description","showConfirmDisableModal","setShowConfirmDisableModal","disableChange","toggleEventDefinitionStatus","handleConfirmDisable","ACTION_TYPES","getDescriptor","count","StringUtils","ACTION_TEXT","ApiRoutes","selectedDefinitionsIds","setSelectedEventDefinitionsIds","queryClient","actionType","setActionType","selectedItemsAmount","onAction","failures","notUpdatedDefinitionIds","entity_id","BulkActionsDropdown","searchParams","enabled","refetch","isInitialLoading","EventDefinitionsStore","errorThrown","customColumnRenderers","_matched_at","_scheduling","_status","query","setQuery","layoutConfig","isLoadingLayoutPreferences","useTableLayout","paginationQueryParameter","usePaginationQueryParameter","updateTableLayout","useUpdateUserLayoutPreferences","paginatedEventDefinitions","isLoadingEventDefinitions","columnRenderers","columnDefinitions","onSearch","newQuery","onReset","onColumnsChange","displayedAttributes","onPageSizeChange","newPageSize","onSortChange","newSort","renderEventDefinitionActions","listItem","renderBulkActions","selectedEventDefinitionsIds","elements","total","history","useHistory","EventsPageNavigation","DocsHelper"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy