@cccsaurora/howler-ui 2.18.0-dev.766 → 2.18.0-dev.771
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/index.d.ts +0 -2
- package/api/index.js +2 -4
- package/api/search/facet/hit.d.ts +3 -1
- package/api/search/facet/index.d.ts +1 -3
- package/api/search/index.d.ts +1 -2
- package/api/search/index.js +1 -2
- package/commons/components/leftnav/LeftNavDrawer.js +1 -1
- package/components/app/App.js +8 -36
- package/components/app/hooks/useMatchers.d.ts +1 -1
- package/components/app/hooks/useMatchers.js +11 -23
- package/components/app/hooks/useMatchers.test.js +22 -22
- package/components/app/hooks/useTitle.js +3 -3
- package/components/app/providers/FavouritesProvider.js +2 -2
- package/components/app/providers/HitProvider.d.ts +22 -0
- package/components/app/providers/{RecordProvider.js → HitProvider.js} +41 -41
- package/components/app/providers/{RecordSearchProvider.d.ts → HitSearchProvider.d.ts} +6 -6
- package/components/app/providers/{RecordSearchProvider.js → HitSearchProvider.js} +17 -12
- package/components/app/providers/{RecordSearchProvider.test.js → HitSearchProvider.test.js} +71 -52
- package/components/app/providers/ModalProvider.d.ts +0 -1
- package/components/app/providers/ParameterProvider.d.ts +2 -9
- package/components/app/providers/ParameterProvider.js +240 -165
- package/components/app/providers/ParameterProvider.test.js +94 -346
- package/components/app/providers/UserListProvider.js +8 -28
- package/components/elements/PluginTypography.d.ts +1 -2
- package/components/elements/PluginTypography.js +2 -3
- package/components/elements/UserList.d.ts +2 -5
- package/components/elements/UserList.js +8 -18
- package/components/elements/addons/search/phrase/Phrase.js +1 -1
- package/components/elements/display/ChipPopper.d.ts +1 -1
- package/components/elements/display/HowlerCard.js +1 -1
- package/components/elements/display/Modal.js +0 -2
- package/components/elements/display/icons/BundleButton.d.ts +6 -0
- package/components/elements/display/icons/BundleButton.js +32 -0
- package/components/elements/hit/HitActions.js +4 -4
- package/components/elements/hit/HitBanner.d.ts +0 -1
- package/components/elements/hit/HitBanner.js +49 -29
- package/components/elements/hit/HitCard.d.ts +0 -2
- package/components/elements/hit/HitCard.js +7 -7
- package/components/elements/{record/RecordComments.d.ts → hit/HitComments.d.ts} +4 -5
- package/components/elements/{record/RecordComments.js → hit/HitComments.js} +28 -29
- package/components/elements/{ObjectDetails.js → hit/HitDetails.js} +17 -17
- package/components/elements/hit/HitLabels.js +2 -2
- package/components/elements/hit/HitLinks.js +1 -1
- package/components/elements/hit/HitOutline.d.ts +0 -1
- package/components/elements/hit/HitOutline.js +3 -3
- package/components/elements/hit/{HitPreview.d.ts → HitQuickSearch.d.ts} +3 -3
- package/components/elements/hit/{HitPreview.js → HitQuickSearch.js} +4 -10
- package/components/elements/hit/HitRelated.d.ts +6 -0
- package/components/elements/hit/HitRelated.js +7 -0
- package/components/elements/hit/HitSummary.d.ts +1 -2
- package/components/elements/hit/HitSummary.js +5 -6
- package/components/elements/{record/RecordWorklog.d.ts → hit/HitWorklog.d.ts} +3 -4
- package/components/elements/{record/RecordWorklog.js → hit/HitWorklog.js} +13 -15
- package/components/elements/hit/aggregate/HitGraph.js +8 -8
- package/components/elements/hit/outlines/DefaultOutline.js +1 -1
- package/components/elements/view/ViewTitle.d.ts +0 -1
- package/components/elements/view/ViewTitle.js +2 -9
- package/components/hooks/useHitActions.d.ts +1 -1
- package/components/hooks/useHitActions.js +4 -4
- package/components/hooks/{useRecordSelection.d.ts → useHitSelection.d.ts} +2 -2
- package/components/hooks/{useRecordSelection.js → useHitSelection.js} +33 -12
- package/components/hooks/useMyPreferences.js +1 -10
- package/components/hooks/useMySearch.js +2 -2
- package/components/hooks/useMySitemap.js +1 -4
- package/components/hooks/useMyTheme.js +2 -9
- package/components/routes/action/edit/ActionEditor.js +2 -2
- package/components/routes/action/view/ActionSearch.js +1 -1
- package/components/routes/advanced/QueryBuilder.js +1 -1
- package/components/routes/advanced/QueryEditor.js +3 -3
- package/components/routes/advanced/historyCompletionProvider.js +3 -3
- package/components/routes/analytics/AnalyticDetails.js +2 -2
- package/components/routes/analytics/AnalyticSearch.js +1 -1
- package/components/routes/dossiers/DossierEditor.js +2 -2
- package/components/routes/dossiers/DossierEditor.test.js +1 -1
- package/components/routes/help/ApiDocumentation.js +1 -1
- package/components/routes/help/BundleDocumentation.d.ts +3 -0
- package/components/routes/help/BundleDocumentation.js +12 -0
- package/components/routes/help/HitBannerDocumentation.js +0 -1
- package/components/routes/help/HitDocumentation.js +3 -1
- package/components/routes/help/markdown/en/bundles.md.js +1 -0
- package/components/routes/help/markdown/fr/bundles.md.js +1 -0
- package/components/routes/hits/search/BundleParentMenu.d.ts +6 -0
- package/components/routes/hits/search/BundleParentMenu.js +32 -0
- package/components/routes/hits/search/BundleScroller.d.ts +2 -0
- package/components/routes/hits/search/BundleScroller.js +6 -0
- package/components/routes/hits/search/{RecordBrowser.js → HitBrowser.js} +9 -9
- package/components/{elements/record/RecordContextMenu.d.ts → routes/hits/search/HitContextMenu.d.ts} +3 -3
- package/components/routes/hits/search/HitContextMenu.js +227 -0
- package/components/{elements/record/RecordContextMenu.test.js → routes/hits/search/HitContextMenu.test.js} +39 -94
- package/components/routes/hits/search/{RecordQuery.d.ts → HitQuery.d.ts} +2 -2
- package/components/routes/hits/search/{RecordQuery.js → HitQuery.js} +6 -6
- package/components/routes/hits/search/InformationPane.d.ts +0 -1
- package/components/routes/hits/search/InformationPane.js +60 -47
- package/components/routes/hits/search/LayoutSettings.js +3 -3
- package/components/routes/hits/search/QuerySettings.js +1 -2
- package/components/routes/hits/search/QuerySettings.test.js +9 -14
- package/components/routes/hits/search/SearchPane.js +49 -26
- package/components/routes/hits/search/ViewLink.js +3 -3
- package/components/routes/hits/search/ViewLink.test.js +8 -8
- package/components/routes/hits/search/grid/AddColumnModal.js +4 -5
- package/components/routes/hits/search/grid/EnhancedCell.d.ts +1 -2
- package/components/routes/hits/search/grid/EnhancedCell.js +2 -2
- package/components/routes/hits/search/grid/HitGrid.js +18 -20
- package/components/routes/hits/search/grid/{RecordRow.d.ts → HitRow.d.ts} +2 -3
- package/components/routes/hits/search/grid/{RecordRow.js → HitRow.js} +8 -10
- package/components/routes/hits/view/HitViewer.js +13 -12
- package/components/routes/home/ViewCard.js +41 -47
- package/components/{elements/MarkdownEditor.js → routes/overviews/OverviewEditor.js} +3 -3
- package/components/routes/overviews/OverviewViewer.js +2 -2
- package/components/routes/views/ViewComposer.js +19 -46
- package/locales/en/translation.json +3 -109
- package/locales/fr/translation.json +3 -107
- package/models/WithMetadata.d.ts +1 -2
- package/models/entities/generated/{ThreatEnrichment.d.ts → Enrichment.d.ts} +1 -1
- package/models/entities/generated/Hit.d.ts +0 -1
- package/models/entities/generated/Howler.d.ts +4 -0
- package/models/entities/generated/Rule.d.ts +10 -2
- package/models/entities/generated/Threat.d.ts +2 -2
- package/models/entities/generated/View.d.ts +0 -1
- package/package.json +3 -21
- package/plugins/clue/components/ClueTypography.js +2 -2
- package/plugins/clue/utils.d.ts +1 -2
- package/tests/mocks.d.ts +1 -11
- package/tests/mocks.js +7 -12
- package/tests/server-handlers.js +1 -6
- package/tests/utils.d.ts +0 -4
- package/tests/utils.js +0 -20
- package/utils/constants.d.ts +3 -4
- package/utils/constants.js +0 -6
- package/utils/hitFunctions.d.ts +1 -2
- package/utils/hitFunctions.js +4 -4
- package/utils/viewUtils.js +0 -3
- package/api/search/case.d.ts +0 -4
- package/api/search/case.js +0 -8
- package/api/v2/case/index.d.ts +0 -8
- package/api/v2/case/index.js +0 -20
- package/api/v2/case/items.d.ts +0 -6
- package/api/v2/case/items.js +0 -18
- package/api/v2/index.d.ts +0 -4
- package/api/v2/index.js +0 -6
- package/api/v2/search/facet.d.ts +0 -3
- package/api/v2/search/facet.js +0 -12
- package/api/v2/search/index.d.ts +0 -5
- package/api/v2/search/index.js +0 -24
- package/components/app/providers/RecordProvider.d.ts +0 -23
- package/components/elements/ContextMenu.d.ts +0 -56
- package/components/elements/ContextMenu.js +0 -109
- package/components/elements/ContextMenu.test.js +0 -215
- package/components/elements/ObjectDetails.d.ts +0 -6
- package/components/elements/case/CaseCard.d.ts +0 -12
- package/components/elements/case/CaseCard.js +0 -42
- package/components/elements/case/CasePreview.d.ts +0 -6
- package/components/elements/case/CasePreview.js +0 -17
- package/components/elements/case/StatusIcon.d.ts +0 -5
- package/components/elements/case/StatusIcon.js +0 -13
- package/components/elements/hit/elements/AnalyticLink.d.ts +0 -9
- package/components/elements/hit/elements/AnalyticLink.js +0 -22
- package/components/elements/hit/related/RelatedRecords.js +0 -63
- package/components/elements/observable/ObservableCard.d.ts +0 -6
- package/components/elements/observable/ObservableCard.js +0 -22
- package/components/elements/observable/ObservablePreview.d.ts +0 -6
- package/components/elements/observable/ObservablePreview.js +0 -12
- package/components/elements/record/RecordContextMenu.js +0 -256
- package/components/elements/record/RecordContextMenu.test.d.ts +0 -1
- package/components/elements/record/RecordRelated.d.ts +0 -7
- package/components/elements/record/RecordRelated.js +0 -34
- package/components/hooks/useRelatedRecords.d.ts +0 -13
- package/components/hooks/useRelatedRecords.js +0 -32
- package/components/routes/cases/CaseViewer.d.ts +0 -2
- package/components/routes/cases/CaseViewer.js +0 -22
- package/components/routes/cases/Cases.d.ts +0 -2
- package/components/routes/cases/Cases.js +0 -148
- package/components/routes/cases/constants.d.ts +0 -6
- package/components/routes/cases/constants.js +0 -6
- package/components/routes/cases/detail/AlertPanel.d.ts +0 -6
- package/components/routes/cases/detail/AlertPanel.js +0 -33
- package/components/routes/cases/detail/CaseAssets.d.ts +0 -11
- package/components/routes/cases/detail/CaseAssets.js +0 -104
- package/components/routes/cases/detail/CaseAssets.test.d.ts +0 -1
- package/components/routes/cases/detail/CaseAssets.test.js +0 -167
- package/components/routes/cases/detail/CaseDashboard.d.ts +0 -7
- package/components/routes/cases/detail/CaseDashboard.js +0 -66
- package/components/routes/cases/detail/CaseDetails.d.ts +0 -6
- package/components/routes/cases/detail/CaseDetails.js +0 -61
- package/components/routes/cases/detail/CaseOverview.d.ts +0 -7
- package/components/routes/cases/detail/CaseOverview.js +0 -43
- package/components/routes/cases/detail/CaseSidebar.d.ts +0 -8
- package/components/routes/cases/detail/CaseSidebar.js +0 -107
- package/components/routes/cases/detail/CaseSidebar.test.d.ts +0 -1
- package/components/routes/cases/detail/CaseSidebar.test.js +0 -246
- package/components/routes/cases/detail/CaseTask.d.ts +0 -11
- package/components/routes/cases/detail/CaseTask.js +0 -57
- package/components/routes/cases/detail/CaseTimeline.d.ts +0 -12
- package/components/routes/cases/detail/CaseTimeline.js +0 -106
- package/components/routes/cases/detail/CaseTimeline.test.d.ts +0 -1
- package/components/routes/cases/detail/CaseTimeline.test.js +0 -320
- package/components/routes/cases/detail/ItemPage.d.ts +0 -6
- package/components/routes/cases/detail/ItemPage.js +0 -99
- package/components/routes/cases/detail/RelatedCasePanel.d.ts +0 -6
- package/components/routes/cases/detail/RelatedCasePanel.js +0 -34
- package/components/routes/cases/detail/TaskPanel.d.ts +0 -7
- package/components/routes/cases/detail/TaskPanel.js +0 -52
- package/components/routes/cases/detail/aggregates/CaseAggregate.d.ts +0 -11
- package/components/routes/cases/detail/aggregates/CaseAggregate.js +0 -24
- package/components/routes/cases/detail/aggregates/SourceAggregate.d.ts +0 -6
- package/components/routes/cases/detail/aggregates/SourceAggregate.js +0 -26
- package/components/routes/cases/detail/assets/Asset.d.ts +0 -14
- package/components/routes/cases/detail/assets/Asset.js +0 -12
- package/components/routes/cases/detail/assets/Asset.test.d.ts +0 -1
- package/components/routes/cases/detail/assets/Asset.test.js +0 -72
- package/components/routes/cases/detail/sidebar/CaseFolder.d.ts +0 -20
- package/components/routes/cases/detail/sidebar/CaseFolder.js +0 -83
- package/components/routes/cases/detail/sidebar/CaseFolder.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/CaseFolder.test.js +0 -295
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.d.ts +0 -34
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +0 -103
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.js +0 -363
- package/components/routes/cases/detail/sidebar/FolderEntry.d.ts +0 -25
- package/components/routes/cases/detail/sidebar/FolderEntry.js +0 -88
- package/components/routes/cases/detail/sidebar/FolderEntry.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/FolderEntry.test.js +0 -206
- package/components/routes/cases/detail/sidebar/RootDropZone.d.ts +0 -5
- package/components/routes/cases/detail/sidebar/RootDropZone.js +0 -33
- package/components/routes/cases/detail/sidebar/types.d.ts +0 -9
- package/components/routes/cases/detail/sidebar/utils.d.ts +0 -3
- package/components/routes/cases/detail/sidebar/utils.js +0 -29
- package/components/routes/cases/detail/sidebar/utils.test.d.ts +0 -1
- package/components/routes/cases/detail/sidebar/utils.test.js +0 -82
- package/components/routes/cases/hooks/useCase.d.ts +0 -13
- package/components/routes/cases/hooks/useCase.js +0 -51
- package/components/routes/cases/modals/AddToCaseModal.d.ts +0 -7
- package/components/routes/cases/modals/AddToCaseModal.js +0 -59
- package/components/routes/cases/modals/AddToCaseModal.test.d.ts +0 -1
- package/components/routes/cases/modals/AddToCaseModal.test.js +0 -313
- package/components/routes/cases/modals/CaseRecordRow.d.ts +0 -9
- package/components/routes/cases/modals/CaseRecordRow.js +0 -15
- package/components/routes/cases/modals/CreateCaseModal.d.ts +0 -7
- package/components/routes/cases/modals/CreateCaseModal.js +0 -55
- package/components/routes/cases/modals/CreateCaseModal.test.d.ts +0 -1
- package/components/routes/cases/modals/CreateCaseModal.test.js +0 -358
- package/components/routes/cases/modals/RenameItemModal.d.ts +0 -9
- package/components/routes/cases/modals/RenameItemModal.js +0 -48
- package/components/routes/cases/modals/ResolveModal.d.ts +0 -7
- package/components/routes/cases/modals/ResolveModal.js +0 -115
- package/components/routes/cases/modals/ResolveModal.test.d.ts +0 -1
- package/components/routes/cases/modals/ResolveModal.test.js +0 -384
- package/components/routes/cases/modals/hooks.d.ts +0 -7
- package/components/routes/cases/modals/hooks.js +0 -44
- package/components/routes/cases/modals/types.d.ts +0 -5
- package/components/routes/cases/search/CaseAssigneeFilter.d.ts +0 -6
- package/components/routes/cases/search/CaseAssigneeFilter.js +0 -33
- package/components/routes/cases/search/CaseAssigneeFilter.test.d.ts +0 -1
- package/components/routes/cases/search/CaseAssigneeFilter.test.js +0 -127
- package/components/routes/cases/search/CaseDateFilter.d.ts +0 -13
- package/components/routes/cases/search/CaseDateFilter.js +0 -26
- package/components/routes/cases/search/CaseDateFilter.test.d.ts +0 -1
- package/components/routes/cases/search/CaseDateFilter.test.js +0 -115
- package/components/routes/cases/search/CaseStatusFilter.d.ts +0 -6
- package/components/routes/cases/search/CaseStatusFilter.js +0 -13
- package/components/routes/cases/search/CaseStatusFilter.test.d.ts +0 -1
- package/components/routes/cases/search/CaseStatusFilter.test.js +0 -86
- package/components/routes/hits/search/shared/IndexPicker.d.ts +0 -2
- package/components/routes/hits/search/shared/IndexPicker.js +0 -20
- package/components/routes/observables/ObservableViewer.d.ts +0 -7
- package/components/routes/observables/ObservableViewer.js +0 -27
- package/models/entities/generated/AttachmentsFile.d.ts +0 -12
- package/models/entities/generated/Case.d.ts +0 -28
- package/models/entities/generated/DestinationOriginal.d.ts +0 -19
- package/models/entities/generated/EmailAttachment.d.ts +0 -8
- package/models/entities/generated/EmailParent.d.ts +0 -19
- package/models/entities/generated/Enrichments.d.ts +0 -7
- package/models/entities/generated/EnrichmentsIndicator.d.ts +0 -21
- package/models/entities/generated/HttpResponse.d.ts +0 -11
- package/models/entities/generated/Item.d.ts +0 -9
- package/models/entities/generated/Observable.d.ts +0 -85
- package/models/entities/generated/ObservableCloud.d.ts +0 -20
- package/models/entities/generated/ObservableDestination.d.ts +0 -23
- package/models/entities/generated/ObservableEmail.d.ts +0 -30
- package/models/entities/generated/ObservableFile.d.ts +0 -36
- package/models/entities/generated/ObservableHowler.d.ts +0 -43
- package/models/entities/generated/ObservableHttp.d.ts +0 -11
- package/models/entities/generated/ObservableObserver.d.ts +0 -21
- package/models/entities/generated/ObservableOrganization.d.ts +0 -7
- package/models/entities/generated/ObservableProcess.d.ts +0 -34
- package/models/entities/generated/ObservableSource.d.ts +0 -23
- package/models/entities/generated/ObservableThreat.d.ts +0 -21
- package/models/entities/generated/ObservableTls.d.ts +0 -12
- package/models/entities/generated/ObserverIngress.d.ts +0 -9
- package/models/entities/generated/Task.d.ts +0 -10
- package/utils/typeUtils.d.ts +0 -7
- package/utils/typeUtils.js +0 -27
- /package/components/app/providers/{RecordSearchProvider.test.d.ts → HitSearchProvider.test.d.ts} +0 -0
- /package/components/elements/hit/{related/RelatedRecords.d.ts → HitDetails.d.ts} +0 -0
- /package/components/routes/hits/search/{RecordBrowser.d.ts → HitBrowser.d.ts} +0 -0
- /package/components/{elements/ContextMenu.test.d.ts → routes/hits/search/HitContextMenu.test.d.ts} +0 -0
- /package/components/{elements/MarkdownEditor.d.ts → routes/overviews/OverviewEditor.d.ts} +0 -0
|
@@ -4,11 +4,10 @@ import { useTranslation } from 'react-i18next';
|
|
|
4
4
|
import { HelpOutline, Save } from '@mui/icons-material';
|
|
5
5
|
import { Alert, Checkbox, CircularProgress, LinearProgress, Stack, TextField, ToggleButton, ToggleButtonGroup, Tooltip, Typography } from '@mui/material';
|
|
6
6
|
import api from '@cccsaurora/howler-ui/api';
|
|
7
|
-
import {} from '@cccsaurora/howler-ui/api/search';
|
|
8
7
|
import AppListEmpty from '@cccsaurora/howler-ui/commons/components/display/AppListEmpty';
|
|
9
8
|
import PageCenter from '@cccsaurora/howler-ui/commons/components/pages/PageCenter';
|
|
9
|
+
import { HitContext } from '@cccsaurora/howler-ui/components/app/providers/HitProvider';
|
|
10
10
|
import { ParameterContext } from '@cccsaurora/howler-ui/components/app/providers/ParameterProvider';
|
|
11
|
-
import { RecordContext } from '@cccsaurora/howler-ui/components/app/providers/RecordProvider';
|
|
12
11
|
import { ViewContext } from '@cccsaurora/howler-ui/components/app/providers/ViewProvider';
|
|
13
12
|
import CustomButton from '@cccsaurora/howler-ui/components/elements/addons/buttons/CustomButton';
|
|
14
13
|
import FlexPort from '@cccsaurora/howler-ui/components/elements/addons/layout/FlexPort';
|
|
@@ -18,7 +17,6 @@ import VSBoxHeader from '@cccsaurora/howler-ui/components/elements/addons/layout
|
|
|
18
17
|
import SearchTotal from '@cccsaurora/howler-ui/components/elements/addons/search/SearchTotal';
|
|
19
18
|
import HitCard from '@cccsaurora/howler-ui/components/elements/hit/HitCard';
|
|
20
19
|
import { HitLayout } from '@cccsaurora/howler-ui/components/elements/hit/HitLayout';
|
|
21
|
-
import ObservableCard from '@cccsaurora/howler-ui/components/elements/observable/ObservableCard';
|
|
22
20
|
import useMyApi from '@cccsaurora/howler-ui/components/hooks/useMyApi';
|
|
23
21
|
import { useMyLocalStorageItem } from '@cccsaurora/howler-ui/components/hooks/useMyLocalStorage';
|
|
24
22
|
import useMySnackbar from '@cccsaurora/howler-ui/components/hooks/useMySnackbar';
|
|
@@ -28,9 +26,8 @@ import { DEFAULT_QUERY, StorageKey } from '@cccsaurora/howler-ui/utils/constants
|
|
|
28
26
|
import { convertDateToLucene } from '@cccsaurora/howler-ui/utils/utils';
|
|
29
27
|
import { buildViewUrl } from '@cccsaurora/howler-ui/utils/viewUtils';
|
|
30
28
|
import ErrorBoundary from '../ErrorBoundary';
|
|
31
|
-
import
|
|
29
|
+
import HitQuery from '../hits/search/HitQuery';
|
|
32
30
|
import HitSort from '../hits/search/shared/HitSort';
|
|
33
|
-
import IndexPicker from '../hits/search/shared/IndexPicker';
|
|
34
31
|
import SearchSpan from '../hits/search/shared/SearchSpan';
|
|
35
32
|
const ViewComposer = () => {
|
|
36
33
|
const { t } = useTranslation();
|
|
@@ -41,10 +38,8 @@ const ViewComposer = () => {
|
|
|
41
38
|
const addView = useContextSelector(ViewContext, ctx => ctx.addView);
|
|
42
39
|
const editView = useContextSelector(ViewContext, ctx => ctx.editView);
|
|
43
40
|
const getCurrentViews = useContextSelector(ViewContext, ctx => ctx.getCurrentViews);
|
|
44
|
-
const indexes = useContextSelector(ParameterContext, ctx => ctx.indexes);
|
|
45
|
-
const setIndexes = useContextSelector(ParameterContext, ctx => ctx.setIndexes);
|
|
46
41
|
const pageCount = useMyLocalStorageItem(StorageKey.PAGE_COUNT, 25)[0];
|
|
47
|
-
const
|
|
42
|
+
const loadHits = useContextSelector(HitContext, ctx => ctx.loadHits);
|
|
48
43
|
// view state
|
|
49
44
|
const [title, setTitle] = useState('');
|
|
50
45
|
const [type, setType] = useState('global');
|
|
@@ -61,17 +56,14 @@ const ViewComposer = () => {
|
|
|
61
56
|
const [searching, setSearching] = useState(false);
|
|
62
57
|
const [error, setError] = useState(null);
|
|
63
58
|
const [response, setResponse] = useState();
|
|
64
|
-
const [isLoadingView, setIsLoadingView] = useState(!!routeParams.id);
|
|
65
59
|
const onSave = useCallback(async () => {
|
|
66
60
|
setLoading(true);
|
|
67
61
|
try {
|
|
68
|
-
const normalizedIndexes = indexes?.length > 0 ? indexes : ['hit'];
|
|
69
62
|
if (!routeParams.id) {
|
|
70
63
|
const newView = await addView({
|
|
71
64
|
title,
|
|
72
65
|
type,
|
|
73
66
|
query,
|
|
74
|
-
indexes: normalizedIndexes,
|
|
75
67
|
sort: sort || null,
|
|
76
68
|
span: span || null,
|
|
77
69
|
settings: {
|
|
@@ -85,7 +77,6 @@ const ViewComposer = () => {
|
|
|
85
77
|
title,
|
|
86
78
|
type,
|
|
87
79
|
query,
|
|
88
|
-
indexes: normalizedIndexes,
|
|
89
80
|
sort,
|
|
90
81
|
span,
|
|
91
82
|
settings: { advance_on_triage: advanceOnTriage }
|
|
@@ -110,24 +101,23 @@ const ViewComposer = () => {
|
|
|
110
101
|
sort,
|
|
111
102
|
span,
|
|
112
103
|
advanceOnTriage,
|
|
113
|
-
indexes,
|
|
114
104
|
navigate,
|
|
115
105
|
editView,
|
|
116
106
|
showErrorMessage
|
|
117
107
|
]);
|
|
118
|
-
const
|
|
108
|
+
const search = useCallback(async (_query) => {
|
|
109
|
+
setQuery(_query);
|
|
119
110
|
setSearching(true);
|
|
120
111
|
setError(null);
|
|
121
112
|
try {
|
|
122
|
-
const
|
|
123
|
-
const _response = await dispatchApi(api.v2.search.post(normalizedIndexes, {
|
|
113
|
+
const _response = await dispatchApi(api.search.hit.post({
|
|
124
114
|
rows: pageCount,
|
|
125
|
-
query:
|
|
126
|
-
sort
|
|
127
|
-
filters:
|
|
115
|
+
query: _query,
|
|
116
|
+
sort,
|
|
117
|
+
filters: span ? [`event.created:${convertDateToLucene(span)}`] : [],
|
|
128
118
|
metadata: ['template', 'analytic']
|
|
129
119
|
}), { showError: false, throwError: true });
|
|
130
|
-
|
|
120
|
+
loadHits(_response.items);
|
|
131
121
|
setResponse(_response);
|
|
132
122
|
}
|
|
133
123
|
catch (e) {
|
|
@@ -136,25 +126,18 @@ const ViewComposer = () => {
|
|
|
136
126
|
finally {
|
|
137
127
|
setSearching(false);
|
|
138
128
|
}
|
|
139
|
-
}, [dispatchApi,
|
|
140
|
-
const search = useCallback(async (_query) => {
|
|
141
|
-
setQuery(_query);
|
|
142
|
-
await performSearch(_query, indexes, sort, span);
|
|
143
|
-
}, [performSearch, indexes, sort, span, setQuery]);
|
|
129
|
+
}, [dispatchApi, loadHits, pageCount, setQuery, sort, span]);
|
|
144
130
|
useEffect(() => {
|
|
145
|
-
|
|
146
|
-
if (!routeParams.id) {
|
|
147
|
-
search(query || DEFAULT_QUERY);
|
|
148
|
-
}
|
|
131
|
+
search(query || DEFAULT_QUERY);
|
|
149
132
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
150
|
-
}, [
|
|
133
|
+
}, []);
|
|
151
134
|
// We only run this when ancillary properties (i.e. filters, sorting) change
|
|
152
135
|
useEffect(() => {
|
|
153
|
-
if (query
|
|
136
|
+
if (query) {
|
|
154
137
|
search(query);
|
|
155
138
|
}
|
|
156
139
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
157
|
-
}, [sort, span
|
|
140
|
+
}, [sort, span]);
|
|
158
141
|
useEffect(() => {
|
|
159
142
|
if (!routeParams.id) {
|
|
160
143
|
return;
|
|
@@ -170,23 +153,13 @@ const ViewComposer = () => {
|
|
|
170
153
|
}
|
|
171
154
|
setTitle(viewToEdit.title);
|
|
172
155
|
setAdvanceOnTriage(viewToEdit.settings?.advance_on_triage ?? false);
|
|
173
|
-
|
|
174
|
-
const loadedIndexes = viewToEdit.indexes || indexes;
|
|
175
|
-
const loadedSort = viewToEdit.sort || sort;
|
|
176
|
-
const loadedSpan = viewToEdit.span || span;
|
|
177
|
-
setQuery(loadedQuery);
|
|
178
|
-
if (viewToEdit.indexes) {
|
|
179
|
-
setIndexes(loadedIndexes);
|
|
180
|
-
}
|
|
156
|
+
setQuery(viewToEdit.query);
|
|
181
157
|
if (viewToEdit.sort) {
|
|
182
|
-
setSort(
|
|
158
|
+
setSort(viewToEdit.sort);
|
|
183
159
|
}
|
|
184
160
|
if (viewToEdit.span) {
|
|
185
|
-
setSpan(
|
|
161
|
+
setSpan(viewToEdit.span);
|
|
186
162
|
}
|
|
187
|
-
// Perform search with the loaded values to avoid using stale state
|
|
188
|
-
await performSearch(loadedQuery, loadedIndexes, loadedSort, loadedSpan);
|
|
189
|
-
setIsLoadingView(false);
|
|
190
163
|
})();
|
|
191
164
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
192
165
|
}, [routeParams.id]);
|
|
@@ -199,6 +172,6 @@ const ViewComposer = () => {
|
|
|
199
172
|
fontSize: '0.9em',
|
|
200
173
|
fontStyle: 'italic',
|
|
201
174
|
mb: 0.5
|
|
202
|
-
}), variant: "body2", children: t('hit.search.prompt') }), _jsx(
|
|
175
|
+
}), variant: "body2", children: t('hit.search.prompt') }), _jsx(HitQuery, { triggerSearch: search, searching: searching, onChange: (_query, isDirty) => setIsSearchDirty(isDirty) }), _jsxs(Stack, { direction: "row", spacing: 1, children: [_jsx(HitSort, {}), _jsx(SearchSpan, { omitCustom: true }), _jsx("div", { style: { flex: 1 } }), _jsxs(Stack, { spacing: 1, direction: "row", alignItems: "center", sx: { flex: '0 !important', minWidth: '300px' }, children: [_jsx(Typography, { component: "span", children: t('view.settings.advance_on_triage') }), _jsx(Tooltip, { title: t('view.settings.advance_on_triage.description'), children: _jsx(HelpOutline, { sx: { fontSize: '16px' } }) }), _jsx(Checkbox, { size: "small", checked: advanceOnTriage, onChange: (_event, checked) => setAdvanceOnTriage(checked) })] })] }), response?.total ? (_jsx(SearchTotal, { total: response.total, pageLength: response.items.length, offset: response.offset, sx: theme => ({ color: theme.palette.text.secondary, fontSize: '0.9em', fontStyle: 'italic' }) })) : null, _jsx(LinearProgress, { sx: [!searching && { opacity: 0 }] })] }) }), _jsx(VSBoxContent, { children: _jsxs(Stack, { spacing: 1, children: [!response?.total && _jsx(AppListEmpty, {}), response?.items.map(hit => (_jsx(HitCard, { id: hit.howler.id, layout: HitLayout.DENSE }, hit.howler.id)))] }) })] }) }) }) }));
|
|
203
176
|
};
|
|
204
177
|
export default ViewComposer;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"*": "All values",
|
|
3
|
-
"Protected B": "Protected B",
|
|
4
|
-
"Unclassified//Official Use Only": "Unclassified//Official Use Only",
|
|
5
3
|
"actions.running": "Action \"{{action}}\" is executing.",
|
|
6
4
|
"actions.succeeded": "Action \"{{action}}\" completed successfully.",
|
|
7
5
|
"add": "Add",
|
|
@@ -13,7 +11,6 @@
|
|
|
13
11
|
"analytic.notebook.error.minFields": "Name and link are required.",
|
|
14
12
|
"analytic.notebook.link": "Link",
|
|
15
13
|
"analytic.notebook.name": "Name",
|
|
16
|
-
"analytic.open": "Open Analytic",
|
|
17
14
|
"any": "Any",
|
|
18
15
|
"api.user.apikey.removed": "API key removed successfully.",
|
|
19
16
|
"api.user.apikey.updated": "New API key added successfully.",
|
|
@@ -82,8 +79,6 @@
|
|
|
82
79
|
"comments.edit.stop": "Stop Editing",
|
|
83
80
|
"comments.edited": "Edited",
|
|
84
81
|
"comments.quote": "Quote Reply",
|
|
85
|
-
"complete": "Complete",
|
|
86
|
-
"crisis": "Crisis",
|
|
87
82
|
"custom": "Custom",
|
|
88
83
|
"date.range.1.day": "The last day",
|
|
89
84
|
"date.range.1.month": "The last month",
|
|
@@ -109,11 +104,8 @@
|
|
|
109
104
|
"drawer.expand": "Expand Menu",
|
|
110
105
|
"duplicates.omitted": "Some duplicate entries have been omitted.",
|
|
111
106
|
"edit": "Edit",
|
|
112
|
-
"event.module": "Event Module",
|
|
113
|
-
"event.type": "Event Type",
|
|
114
107
|
"features.warning.description": "This feature is undergoing active development, and is not yet in a finished state. You may encounter bugs or instability.",
|
|
115
108
|
"features.warning.title": "Feature In Active Development",
|
|
116
|
-
"focus": "Main focus",
|
|
117
109
|
"global": "Global",
|
|
118
110
|
"help.actions.introduction": "Introduction to Actions",
|
|
119
111
|
"help.hit.banner.description": "See the below hit banner example for the hit keys necessary to properly populate it. If you have any additional questions, ask in the HOWLER support channel.",
|
|
@@ -170,20 +162,16 @@
|
|
|
170
162
|
"hit.header.assignment": "Assignment: {{user}}",
|
|
171
163
|
"hit.header.assignment.add": "Assign to a user",
|
|
172
164
|
"hit.header.assignment.change": "Change assignment",
|
|
165
|
+
"hit.header.bundlesize": "{{hits}} hits",
|
|
173
166
|
"hit.header.escalation": "Escalation Level: ",
|
|
174
167
|
"hit.header.indicators": "Indicators",
|
|
175
168
|
"hit.header.rationale": "Rationale",
|
|
176
|
-
"hit.header.related": "{{count}} related records",
|
|
177
169
|
"hit.header.scrutiny": "Scrutiny: ",
|
|
178
170
|
"hit.header.status": "Status: ",
|
|
179
171
|
"hit.header.summary": "Summary",
|
|
180
172
|
"hit.header.target": "Target",
|
|
181
173
|
"hit.header.threat": "Threat",
|
|
182
|
-
"hit.header.view.case": "View case {{id}}",
|
|
183
|
-
"hit.header.view.hit": "View hit {{id}}",
|
|
184
|
-
"hit.header.view.observable": "View observable {{id}}",
|
|
185
174
|
"hit.header.votes": "Votes: ",
|
|
186
|
-
"hit.howler.related": "{{count}} related records",
|
|
187
175
|
"hit.label": "Labels",
|
|
188
176
|
"hit.label.category.assignments": "Category: Assignments - Specifies what analyst or team of analysts is assigned to triaging this hit.",
|
|
189
177
|
"hit.label.category.campaign": "Catergory: Campaign - Identifies ongoing campaigns from specific malware families or phishing initiatives. They should only be considered correct attributions if the hit is promoted to evidence.",
|
|
@@ -199,16 +187,15 @@
|
|
|
199
187
|
"hit.label.edit.add.error.duplicate": "Duplicated label not allowed",
|
|
200
188
|
"hit.label.edit.add.error.empty": "Can't add an empty label",
|
|
201
189
|
"hit.label.edit.add.label": "New label value",
|
|
202
|
-
"hit.label.edit.desc": "Add or remove labels",
|
|
203
190
|
"hit.notebook.confirm.dialog": "A notebook with that name already exists in your environment, do you wish to overwrite it?",
|
|
204
191
|
"hit.notebook.confirm.title": "Overwrite existing notebook?",
|
|
205
192
|
"hit.notebook.error.failToPost": "Failed to send notebook to Jupyterhub, make sure your user environment is running.",
|
|
206
193
|
"hit.notebook.goTo": "Go to Jupyterhub",
|
|
207
194
|
"hit.notebook.select": "Please Select a notebook",
|
|
208
195
|
"hit.notebook.tooltip": "Open in Jupyterhub",
|
|
209
|
-
"hit.open": "Open Hit",
|
|
210
196
|
"hit.overview.missing": "No overview has been created for this hit. In order to create an overview, press the add button to the right.",
|
|
211
197
|
"hit.panel.aggregation.run": "Create Summary",
|
|
198
|
+
"hit.panel.analytic.open": "Open Analytic",
|
|
212
199
|
"hit.panel.bundles.open": "Parent Bundles",
|
|
213
200
|
"hit.panel.bundles.open.prompt": "Open Parent Bundle",
|
|
214
201
|
"hit.panel.close": "Close",
|
|
@@ -221,12 +208,9 @@
|
|
|
221
208
|
"hit.panel.exclude": "Exclude By",
|
|
222
209
|
"hit.panel.hit.noselection": "No hit has been selected",
|
|
223
210
|
"hit.panel.include": "Include By",
|
|
211
|
+
"hit.panel.open": "Open Hit Viewer",
|
|
224
212
|
"hit.panel.view.layout": "Change View Panel",
|
|
225
213
|
"hit.quicksearch": "Search by assignment, analytic, detection or status",
|
|
226
|
-
"hit.related.tab.case": "Cases",
|
|
227
|
-
"hit.related.tab.hit": "Hits",
|
|
228
|
-
"hit.related.tab.links": "Links",
|
|
229
|
-
"hit.related.tab.observable": "Observables",
|
|
230
214
|
"hit.search.aggregate.button": "Create Summary",
|
|
231
215
|
"hit.search.button": "Perform search",
|
|
232
216
|
"hit.search.custom": "Custom Sort",
|
|
@@ -235,8 +219,6 @@
|
|
|
235
219
|
"hit.search.filter.fields": "Fields",
|
|
236
220
|
"hit.search.filter.label": "Lookup Filters",
|
|
237
221
|
"hit.search.filter.values": "Values",
|
|
238
|
-
"hit.search.index.hit": "Hits",
|
|
239
|
-
"hit.search.index.observable": "Observables",
|
|
240
222
|
"hit.search.invalid": "Invalid Query",
|
|
241
223
|
"hit.search.keyboard": "Keyboard shortcuts",
|
|
242
224
|
"hit.search.keyboard.no_shortcuts": "No shortcuts",
|
|
@@ -274,7 +256,6 @@
|
|
|
274
256
|
"hit.summary.subtitle": "Limited to a maximum of 10 000 hits.",
|
|
275
257
|
"hit.summary.title": "Summary of Hits Over Time",
|
|
276
258
|
"hit.summary.zoom.reset": "Reset Zoom",
|
|
277
|
-
"hit.view.overview": "Overview",
|
|
278
259
|
"hit.viewer.aggregate": "Summary",
|
|
279
260
|
"hit.viewer.comments": "Comments",
|
|
280
261
|
"hit.viewer.data": "Raw Data",
|
|
@@ -310,31 +291,6 @@
|
|
|
310
291
|
"modal.action.empty": "Action Name cannot be empty.",
|
|
311
292
|
"modal.action.label": "Action Name",
|
|
312
293
|
"modal.action.title": "Save Action",
|
|
313
|
-
"modal.cases.add_to_case": "Add to Case",
|
|
314
|
-
"modal.cases.add_to_case.full_path": "Full path: {{path}}",
|
|
315
|
-
"modal.cases.add_to_case.items_section": "Alert Placement",
|
|
316
|
-
"modal.cases.add_to_case.path_invalid": "Path must not start or end with a /",
|
|
317
|
-
"modal.cases.add_to_case.select_case": "Search Cases",
|
|
318
|
-
"modal.cases.add_to_case.select_path": "Select Folder Path",
|
|
319
|
-
"modal.cases.add_to_case.title": "Item Title",
|
|
320
|
-
"modal.cases.alerts.resolved": "Resolved Alerts",
|
|
321
|
-
"modal.cases.create_case": "Create Case",
|
|
322
|
-
"modal.cases.create_case.escalation": "Escalation",
|
|
323
|
-
"modal.cases.create_case.full_path": "Full path: {{path}}",
|
|
324
|
-
"modal.cases.create_case.item.path": "Folder Path (optional)",
|
|
325
|
-
"modal.cases.create_case.item.title": "Item Title",
|
|
326
|
-
"modal.cases.create_case.items_section": "Alert Placement",
|
|
327
|
-
"modal.cases.create_case.overview": "Case Overview (Markdown, optional)",
|
|
328
|
-
"modal.cases.create_case.summary": "Short Case Summary",
|
|
329
|
-
"modal.cases.create_case.title": "Case Title",
|
|
330
|
-
"modal.cases.rename_item": "Rename Item",
|
|
331
|
-
"modal.cases.rename_item.error.empty": "Name cannot be empty",
|
|
332
|
-
"modal.cases.rename_item.error.slash": "Name cannot contain '/'",
|
|
333
|
-
"modal.cases.rename_item.error.taken": "An item already exists at this path",
|
|
334
|
-
"modal.cases.rename_item.folder_path": "Folder: {{path}}",
|
|
335
|
-
"modal.cases.rename_item.new_name": "New Name",
|
|
336
|
-
"modal.cases.resolve": "Resolve Case",
|
|
337
|
-
"modal.cases.resolve.description": "When resolving a case, you must either assess all open alerts, or add an assessment to the alerts.",
|
|
338
294
|
"modal.confirm.delete.description": "Are you sure you want to delete this item?",
|
|
339
295
|
"modal.confirm.delete.title": "Confirm Deletion",
|
|
340
296
|
"modal.rationale.description": "Provide a rationale that succinctly explains to other analysts why you are confident in this assessment.",
|
|
@@ -356,8 +312,6 @@
|
|
|
356
312
|
"modal.rule.title": "Create a New Rule",
|
|
357
313
|
"no.data": "No Data",
|
|
358
314
|
"none": "None",
|
|
359
|
-
"normal": "Normal Priority",
|
|
360
|
-
"observable.open": "Open Observable",
|
|
361
315
|
"on": "on",
|
|
362
316
|
"open": "Open",
|
|
363
317
|
"operations.add_label": "Add Label",
|
|
@@ -377,49 +331,6 @@
|
|
|
377
331
|
"owner": "Owner",
|
|
378
332
|
"page.404.description": "The page you are looking for cannot be found...",
|
|
379
333
|
"page.404.title": "404: Not found",
|
|
380
|
-
"page.cases.assets": "Assets",
|
|
381
|
-
"page.cases.assets.empty": "No assets found.",
|
|
382
|
-
"page.cases.assets.filter_by_type": "Filter by type:",
|
|
383
|
-
"page.cases.assets.seen_in": "Seen in",
|
|
384
|
-
"page.cases.assets.type.hash": "Hash",
|
|
385
|
-
"page.cases.assets.type.hosts": "Host",
|
|
386
|
-
"page.cases.assets.type.id": "ID",
|
|
387
|
-
"page.cases.assets.type.ids": "ID",
|
|
388
|
-
"page.cases.assets.type.ip": "IP",
|
|
389
|
-
"page.cases.assets.type.signature": "Signature",
|
|
390
|
-
"page.cases.assets.type.uri": "URI",
|
|
391
|
-
"page.cases.assets.type.user": "User",
|
|
392
|
-
"page.cases.created": "Created",
|
|
393
|
-
"page.cases.dashboard": "Dashboard",
|
|
394
|
-
"page.cases.dashboard.alerts": "Alerts",
|
|
395
|
-
"page.cases.dashboard.cases": "Related Cases",
|
|
396
|
-
"page.cases.dashboard.duration": "Duration",
|
|
397
|
-
"page.cases.dashboard.indicators": "Indicators",
|
|
398
|
-
"page.cases.dashboard.target": "Targets",
|
|
399
|
-
"page.cases.dashboard.tasks": "Tasks",
|
|
400
|
-
"page.cases.dashboard.threat": "Threats",
|
|
401
|
-
"page.cases.detail.participants": "Participants",
|
|
402
|
-
"page.cases.detail.properties": "Properties",
|
|
403
|
-
"page.cases.detail.status": "Status",
|
|
404
|
-
"page.cases.escalation": "Escalation",
|
|
405
|
-
"page.cases.folder.drop.root": "Place here to move to root",
|
|
406
|
-
"page.cases.sidebar.folder.remove": "Remove folder",
|
|
407
|
-
"page.cases.sidebar.item.open": "Open item",
|
|
408
|
-
"page.cases.sidebar.item.remove": "Remove item",
|
|
409
|
-
"page.cases.sidebar.item.rename": "Rename item",
|
|
410
|
-
"page.cases.sources": "Sources",
|
|
411
|
-
"page.cases.status.in-progress": "In Progress",
|
|
412
|
-
"page.cases.status.on-hold": "On Hold",
|
|
413
|
-
"page.cases.status.open": "Open",
|
|
414
|
-
"page.cases.status.resolved": "Resolved",
|
|
415
|
-
"page.cases.timeline": "Timeline",
|
|
416
|
-
"page.cases.timeline.empty": "No events match the selected filters.",
|
|
417
|
-
"page.cases.timeline.filter.escalation": "Escalation",
|
|
418
|
-
"page.cases.timeline.filter.escalation.empty": "No escalation levels found.",
|
|
419
|
-
"page.cases.timeline.filter.label": "Show only",
|
|
420
|
-
"page.cases.timeline.filter.mitre": "MITRE ATT&CK",
|
|
421
|
-
"page.cases.timeline.filter.mitre.empty": "No tactics or techniques found.",
|
|
422
|
-
"page.cases.updated": "Updated",
|
|
423
334
|
"page.dashboard.settings.edit": "Edit Dashboard",
|
|
424
335
|
"page.dashboard.settings.refreshRate": "Refresh Rate",
|
|
425
336
|
"page.dashboard.title": "Dashboard",
|
|
@@ -444,7 +355,6 @@
|
|
|
444
355
|
"page.help": "Help",
|
|
445
356
|
"page.help.title": "Help Dashboard",
|
|
446
357
|
"page.login.button": "Sign in",
|
|
447
|
-
"page.login.error": "Just type anything in the username and password fields...",
|
|
448
358
|
"page.login.password": "Password",
|
|
449
359
|
"page.login.username": "Username",
|
|
450
360
|
"page.logout": "Logging out current user ... ",
|
|
@@ -491,8 +401,6 @@
|
|
|
491
401
|
"page.user.search.column.groups": "Groups",
|
|
492
402
|
"page.user.search.column.username": "Username",
|
|
493
403
|
"page.user.search.prompt": "Search by username, fullname, email or group",
|
|
494
|
-
"pages.cases.detail.participants": "Participants",
|
|
495
|
-
"pages.cases.detail.status": "Status",
|
|
496
404
|
"password": "New Password",
|
|
497
405
|
"password.confirm": "Confirm Password",
|
|
498
406
|
"password.match": "Password and Confirm Password must match",
|
|
@@ -506,7 +414,6 @@
|
|
|
506
414
|
"personalization.showbreadcrumbs": "Show Breadcrumbs",
|
|
507
415
|
"personalization.sticky": "Sticky Topbar",
|
|
508
416
|
"query": "Query",
|
|
509
|
-
"query.invalid": "Invalid query",
|
|
510
417
|
"quicksearch.aria": "search",
|
|
511
418
|
"quicksearch.placeholder": "Search ...",
|
|
512
419
|
"rationale.default": "Hit assessed as {{assessment}}",
|
|
@@ -622,16 +529,6 @@
|
|
|
622
529
|
"route.analytics.triage.title": "Triage Settings",
|
|
623
530
|
"route.analytics.updated": "Analytic Updated!",
|
|
624
531
|
"route.analytics.view": "View Analytic",
|
|
625
|
-
"route.cases": "Cases",
|
|
626
|
-
"route.cases.create": "Create Case",
|
|
627
|
-
"route.cases.filter.assignee": "Assignee",
|
|
628
|
-
"route.cases.filter.assignees": "Assignees",
|
|
629
|
-
"route.cases.filter.date": "Date Range",
|
|
630
|
-
"route.cases.filter.myself": "Myself",
|
|
631
|
-
"route.cases.filter.status": "Status",
|
|
632
|
-
"route.cases.manager.search": "Search Cases",
|
|
633
|
-
"route.cases.search.prompt": "Search cases by title, summary, description, participants or task details",
|
|
634
|
-
"route.cases.view": "View Case",
|
|
635
532
|
"route.clear": "Clear query",
|
|
636
533
|
"route.dossiers": "Dossiers",
|
|
637
534
|
"route.dossiers.create": "New Dossier",
|
|
@@ -694,10 +591,8 @@
|
|
|
694
591
|
"route.help.actions": "Action Documentation",
|
|
695
592
|
"route.help.api": "API Documentation",
|
|
696
593
|
"route.help.auth": "Authentication",
|
|
697
|
-
"route.help.bundles": "Hit Bundles",
|
|
698
594
|
"route.help.client": "Howler Client",
|
|
699
595
|
"route.help.hit": "Hit Documentation",
|
|
700
|
-
"route.help.hit.banner": "Hit Banner Documentation",
|
|
701
596
|
"route.help.main": "Dashboard",
|
|
702
597
|
"route.help.notebook": "Notebook Documentation",
|
|
703
598
|
"route.help.overviews": "Overviews",
|
|
@@ -810,7 +705,6 @@
|
|
|
810
705
|
"search.result.showing": "Showing {{offset}} to {{length}} of {{total}} results",
|
|
811
706
|
"search.result.showing.single": "No results",
|
|
812
707
|
"search.total": "There are a total of {{count}} hits matching this query.",
|
|
813
|
-
"started": "Started",
|
|
814
708
|
"templates.edit.analytic": "Edit analytic template",
|
|
815
709
|
"templates.edit.detection": "Edit detection template",
|
|
816
710
|
"to": "to",
|