From 02b11d8c97a64770828482d7ed0917bb83f13738 Mon Sep 17 00:00:00 2001
From: Joe Reuter <johannes.reuter@elastic.co>
Date: Mon, 21 Sep 2020 14:26:47 +0200
Subject: [PATCH] fix drilldown in tsvb

---
 .../application/components/vis_types/table/vis.js     | 11 ++++++++---
 .../application/components/vis_types/top_n/vis.js     |  4 +++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/plugins/vis_type_timeseries/public/application/components/vis_types/table/vis.js b/src/plugins/vis_type_timeseries/public/application/components/vis_types/table/vis.js
index d55afeda62e70..1341cf02202a0 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/vis_types/table/vis.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/vis_types/table/vis.js
@@ -20,6 +20,7 @@
 import _, { isArray, last, get } from 'lodash';
 import React, { Component } from 'react';
 import PropTypes from 'prop-types';
+import { RedirectAppLinks } from '../../../../../../kibana_react/public';
 import { createTickFormatter } from '../../lib/tick_formatter';
 import { calculateLabel } from '../../../../../../../plugins/vis_type_timeseries/common/calculate_label';
 import { isSortable } from './is_sortable';
@@ -27,7 +28,7 @@ import { EuiToolTip, EuiIcon } from '@elastic/eui';
 import { replaceVars } from '../../lib/replace_vars';
 import { fieldFormats } from '../../../../../../../plugins/data/public';
 import { FormattedMessage } from '@kbn/i18n/react';
-import { getFieldFormats } from '../../../../services';
+import { getFieldFormats, getCoreStart } from '../../../../services';
 
 import { METRIC_TYPES } from '../../../../../../../plugins/vis_type_timeseries/common/metric_types';
 
@@ -231,12 +232,16 @@ export class TableVis extends Component {
       );
     }
     return (
-      <div className="tvbVis" data-test-subj="tableView">
+      <RedirectAppLinks
+        application={getCoreStart().application}
+        className="tvbVis"
+        data-test-subj="tableView"
+      >
         <table className="table">
           <thead>{header}</thead>
           <tbody>{rows}</tbody>
         </table>
-      </div>
+      </RedirectAppLinks>
     );
   }
 }
diff --git a/src/plugins/vis_type_timeseries/public/application/components/vis_types/top_n/vis.js b/src/plugins/vis_type_timeseries/public/application/components/vis_types/top_n/vis.js
index a4fe6f796bc0b..e9f64c93d337f 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/vis_types/top_n/vis.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/vis_types/top_n/vis.js
@@ -17,6 +17,7 @@
  * under the License.
  */
 
+import { getCoreStart } from '../../../../services';
 import { createTickFormatter } from '../../lib/tick_formatter';
 import { TopN } from '../../../visualizations/views/top_n';
 import { getLastValue } from '../../../../../../../plugins/vis_type_timeseries/common/get_last_value';
@@ -89,7 +90,8 @@ export function TopNVisualization(props) {
 
   if (model.drilldown_url) {
     params.onClick = (item) => {
-      window.location = replaceVars(model.drilldown_url, {}, { key: item.label });
+      const url = replaceVars(model.drilldown_url, {}, { key: item.label });
+      getCoreStart().application.navigateToUrl(url);
     };
   }