Skip to content

Commit efb9e71

Browse files
committed
fix ActivityStream button at details page
Signed-off-by: Adrian Nackov <adrian.nackov@mail.schwarz>
1 parent 372d1ca commit efb9e71

File tree

4 files changed

+30
-9
lines changed

4 files changed

+30
-9
lines changed

frontend/awx/access/common/useViewActivityStream.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { HistoryIcon } from '@patternfly/react-icons';
22
import { useMemo } from 'react';
33
import { useTranslation } from 'react-i18next';
4+
import { useParams } from 'react-router-dom';
45
import {
56
IPageAction,
67
PageActionSelection,
@@ -11,16 +12,25 @@ import { AwxRoute } from '../../main/AwxRoutes';
1112
export function useViewActivityStream<T extends object>(queryType: string) {
1213
const { t } = useTranslation();
1314
const pageNavigate = usePageNavigate();
15+
16+
const query = { query: { type: queryType } };
17+
18+
// Filtering by resource id, like host__id=2, instance__id=5, etc.
19+
const params = useParams<{ id: string }>();
20+
if (/^\d+$/.test(params.id)) {
21+
query['query'][`${queryType}__id`] = params.id;
22+
}
23+
1424
return useMemo<IPageAction<T>[]>(() => {
1525
return [
1626
{
1727
type: PageActionType.Button,
1828
selection: PageActionSelection.Single,
1929
icon: HistoryIcon,
2030
label: t('View activity stream'),
21-
onClick: () => pageNavigate(AwxRoute.ActivityStream, { query: { type: queryType } }),
31+
onClick: () => pageNavigate(AwxRoute.ActivityStream, query),
2232
},
2333
{ type: PageActionType.Seperator },
2434
];
25-
}, [pageNavigate, queryType, t]);
35+
}, [pageNavigate, query, t]);
2636
}

frontend/awx/common/useAwxView.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,13 @@ export function useAwxView<T extends { id: number }>(options: {
107107
.split('+')
108108
.join(',')}&or__object2__in=${values[0].split('+').join(',')}`;
109109
}
110+
// add Activity Stream id filtering, like host__id=2
111+
for (const keyId in filterState) {
112+
if (/.+__id/.test(keyId)) {
113+
const valId: string = filterState[keyId];
114+
queryString += `&${keyId}=${valId}`;
115+
}
116+
}
110117
} else if (toolbarFilter.query === 'search') {
111118
queryString += values.map((value) => `${toolbarFilter.query}=${value}`).join('&');
112119
} else {

frontend/awx/resources/templates/TemplatePage/TemplatePage.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ import { useTemplateActions } from '../hooks/useTemplateActions';
2525

2626
export function TemplatePage() {
2727
const { t } = useTranslation();
28-
const activityStream = useViewActivityStream(
29-
'job_template+workflow_job_template+workflow_job_template_node'
30-
);
28+
const params = useParams<{ id: string }>();
29+
let activityStreamType: string = 'job_template+workflow_job_template+workflow_job_template_node';
30+
if (/^\d+$/.test(params.id)) {
31+
activityStreamType = 'job_template';
32+
}
33+
const activityStream = useViewActivityStream(activityStreamType);
3134

3235
const { activeAwxUser } = useAwxActiveUser();
33-
const params = useParams<{ id: string }>();
3436
const {
3537
error: templateError,
3638
data: template,

frontend/awx/resources/templates/WorkflowJobTemplatePage/WorkflowJobTemplatePage.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ import { useTemplateActions } from '../hooks/useTemplateActions';
2525

2626
export function WorkflowJobTemplatePage() {
2727
const { t } = useTranslation();
28-
const activityStream = useViewActivityStream(
29-
'job_template+workflow_job_template+workflow_job_template_node'
30-
);
3128
const params = useParams<{ id: string }>();
29+
let activityStreamType: string = 'job_template+workflow_job_template+workflow_job_template_node';
30+
if (/^\d+$/.test(params.id)) {
31+
activityStreamType = 'workflow_job_template';
32+
}
33+
const activityStream = useViewActivityStream(activityStreamType);
3234
const { activeAwxUser } = useAwxActiveUser();
3335
const {
3436
error: templateError,

0 commit comments

Comments
 (0)