diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx
index cd1c2dda1e27a..38cc37aec646c 100644
--- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx
+++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx
@@ -20,6 +20,7 @@ import { useMlKibana, useMlApiContext } from '../../../contexts/kibana';
import { MlPageHeader } from '../../../components/page_header';
import { AnalyticsIdSelector, AnalyticsSelectorIds } from '../components/analytics_selector';
import { AnalyticsEmptyPrompt } from '../analytics_management/components/empty_prompt';
+import { useUrlState } from '../../../util/url_state';
export const Page: FC<{
jobId: string;
@@ -37,6 +38,8 @@ export const Page: FC<{
const jobIdToUse = jobId ?? analyticsId?.job_id;
const analysisTypeToUse = analysisType || analyticsId?.analysis_type;
+ const [, setGlobalState] = useUrlState('_g');
+
const checkJobsExist = async () => {
try {
const { count } = await getDataFrameAnalytics(undefined, undefined, 0);
@@ -51,6 +54,20 @@ export const Page: FC<{
checkJobsExist();
}, []);
+ useEffect(
+ function updateUrl() {
+ if (analyticsId !== undefined) {
+ setGlobalState({
+ ml: {
+ ...(analyticsId.analysis_type ? { analysisType: analyticsId.analysis_type } : {}),
+ ...(analyticsId.job_id ? { jobId: analyticsId.job_id } : {}),
+ },
+ });
+ }
+ },
+ [analyticsId?.job_id, analyticsId?.model_id]
+ );
+
const getEmptyState = () => {
if (jobsExist === false) {
return ;
diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx
index f845cff8322dd..568971ba6d7e2 100644
--- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx
+++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/components/analytics_selector/analytics_id_selector.tsx
@@ -190,11 +190,13 @@ export function AnalyticsIdSelector({ setAnalyticsId, jobsOnly = false }: Props)
const selectionValue = {
selectable: (item: TableItem) => {
- const selectedId = selected?.job_id ?? selected?.model_id;
const isDFA = isDataFrameAnalyticsConfigs(item);
const itemId = isDFA ? item.id : item.model_id;
const isBuiltInModel = isDFA ? false : item.tags.includes(BUILT_IN_MODEL_TAG);
- return (selected === undefined || selectedId === itemId) && !isBuiltInModel;
+ return (
+ (selected === undefined || selected?.job_id === itemId || selected?.model_id === itemId) &&
+ !isBuiltInModel
+ );
},
onSelectionChange: (selectedItem: TableItem[]) => {
const item = selectedItem[0];
@@ -208,7 +210,7 @@ export function AnalyticsIdSelector({ setAnalyticsId, jobsOnly = false }: Props)
setSelected({
model_id: isDFA ? undefined : item.model_id,
- job_id: isDFA ? item.id : undefined,
+ job_id: isDFA ? item.id : item.metadata?.analytics_config.id,
analysis_type: analysisType,
});
},
diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/page.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/page.tsx
index efdd386ca47b3..4f171d1108ad4 100644
--- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/page.tsx
+++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/page.tsx
@@ -22,7 +22,7 @@ import { AnalyticsIdSelector, AnalyticsSelectorIds } from '../components/analyti
import { AnalyticsEmptyPrompt } from '../analytics_management/components/empty_prompt';
export const Page: FC = () => {
- const [globalState] = useUrlState('_g');
+ const [globalState, setGlobalState] = useUrlState('_g');
const [isLoading, setIsLoading] = useState(false);
const [jobsExist, setJobsExist] = useState(true);
const { refresh } = useRefreshAnalyticsList({ isLoading: setIsLoading });
@@ -51,6 +51,20 @@ export const Page: FC = () => {
checkJobsExist();
}, []);
+ useEffect(
+ function updateUrl() {
+ if (analyticsId !== undefined) {
+ setGlobalState({
+ ml: {
+ ...(analyticsId.job_id && !analyticsId.model_id ? { jobId: analyticsId.job_id } : {}),
+ ...(analyticsId.model_id ? { modelId: analyticsId.model_id } : {}),
+ },
+ });
+ }
+ },
+ [analyticsId?.job_id, analyticsId?.model_id]
+ );
+
const getEmptyState = () => {
if (jobsExist === false) {
return ;