Skip to content

Commit

Permalink
[8.12] [SecuritySolution] Reset `updated`, `changed&#x…
Browse files Browse the repository at this point in the history
…60; and `version` when duplicating a timeline (elastic#175110) (elastic#175236)

# Backport

This will backport the following commits from `main` to `8.12`:
- [[SecuritySolution] Reset `updated`, `changed` and
`version` when duplicating a timeline
(elastic#175110)](elastic#175110)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Jan
Monschke","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-01-22T16:32:14Z","message":"[SecuritySolution]
Reset `updated`, `changed` and `version` when duplicating a timeline
(elastic#175110)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/173968\r\n\r\nWhen duplicating
a timeline (note: not the same as `save as new`), the\r\nsave status of
the duplicate timeline wasn't displaying
correctly\r\n(elastic#173968). That's
because we did\r\nnot reset the local values of `updated`, `changed` and
`version`.\r\n\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"8d2bab7aa8182b9434d0c0cd2ec9cbfa5e703ef0","branchLabelMapping":{"^v8.13.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Threat
Hunting:Investigations","v8.12.0","v8.13.0"],"title":"[SecuritySolution]
Reset `updated`, `changed` and `version` when duplicating a
timeline","number":175110,"url":"https://github.com/elastic/kibana/pull/175110","mergeCommit":{"message":"[SecuritySolution]
Reset `updated`, `changed` and `version` when duplicating a timeline
(elastic#175110)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/173968\r\n\r\nWhen duplicating
a timeline (note: not the same as `save as new`), the\r\nsave status of
the duplicate timeline wasn't displaying
correctly\r\n(elastic#173968). That's
because we did\r\nnot reset the local values of `updated`, `changed` and
`version`.\r\n\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"8d2bab7aa8182b9434d0c0cd2ec9cbfa5e703ef0"}},"sourceBranch":"main","suggestedTargetBranches":["8.12"],"targetPullRequestStates":[{"branch":"8.12","label":"v8.12.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.13.0","branchLabelMappingKey":"^v8.13.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/175110","number":175110,"mergeCommit":{"message":"[SecuritySolution]
Reset `updated`, `changed` and `version` when duplicating a timeline
(elastic#175110)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/173968\r\n\r\nWhen duplicating
a timeline (note: not the same as `save as new`), the\r\nsave status of
the duplicate timeline wasn't displaying
correctly\r\n(elastic#173968). That's
because we did\r\nnot reset the local values of `updated`, `changed` and
`version`.\r\n\r\n\r\n### Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios","sha":"8d2bab7aa8182b9434d0c0cd2ec9cbfa5e703ef0"}}]}]
BACKPORT-->

Co-authored-by: Jan Monschke <[email protected]>
  • Loading branch information
kibanamachine and janmonschke authored Jan 22, 2024
1 parent 269f085 commit 490e1e4
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,12 @@ describe('helpers', () => {
expect(dispatchAddTimeline).toHaveBeenCalledWith({
id: TimelineId.active,
savedTimeline: true,
timeline: mockTimelineModel,
timeline: {
...mockTimelineModel,
version: null,
updated: undefined,
changed: undefined,
},
});
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -435,18 +435,22 @@ export const dispatchUpdateTimeline =
preventSettingQuery,
}: UpdateTimeline): (() => void) =>
() => {
if (!isEmpty(timeline.indexNames)) {
let _timeline = timeline;
if (duplicate) {
_timeline = { ...timeline, updated: undefined, changed: undefined, version: null };
}
if (!isEmpty(_timeline.indexNames)) {
dispatch(
sourcererActions.setSelectedDataView({
id: SourcererScopeName.timeline,
selectedDataViewId: timeline.dataViewId,
selectedPatterns: timeline.indexNames,
selectedDataViewId: _timeline.dataViewId,
selectedPatterns: _timeline.indexNames,
})
);
}
if (
timeline.status === TimelineStatus.immutable &&
timeline.timelineType === TimelineType.template
_timeline.status === TimelineStatus.immutable &&
_timeline.timelineType === TimelineType.template
) {
dispatch(
dispatchSetRelativeRangeDatePicker({
Expand All @@ -461,24 +465,29 @@ export const dispatchUpdateTimeline =
dispatch(dispatchSetTimelineRangeDatePicker({ from, to }));
}
dispatch(
dispatchAddTimeline({ id, timeline, resolveTimelineConfig, savedTimeline: duplicate })
dispatchAddTimeline({
id,
timeline: _timeline,
resolveTimelineConfig,
savedTimeline: duplicate,
})
);
if (
!preventSettingQuery &&
timeline.kqlQuery != null &&
timeline.kqlQuery.filterQuery != null &&
timeline.kqlQuery.filterQuery.kuery != null &&
timeline.kqlQuery.filterQuery.kuery.expression !== ''
_timeline.kqlQuery != null &&
_timeline.kqlQuery.filterQuery != null &&
_timeline.kqlQuery.filterQuery.kuery != null &&
_timeline.kqlQuery.filterQuery.kuery.expression !== ''
) {
dispatch(
dispatchApplyKqlFilterQuery({
id,
filterQuery: {
kuery: {
kind: timeline.kqlQuery.filterQuery.kuery.kind ?? 'kuery',
expression: timeline.kqlQuery.filterQuery.kuery.expression || '',
kind: _timeline.kqlQuery.filterQuery.kuery.kind ?? 'kuery',
expression: _timeline.kqlQuery.filterQuery.kuery.expression || '',
},
serializedQuery: timeline.kqlQuery.filterQuery.serializedQuery || '',
serializedQuery: _timeline.kqlQuery.filterQuery.serializedQuery || '',
},
})
);
Expand Down

0 comments on commit 490e1e4

Please sign in to comment.