This behavior is due to purposeful url escaping in the dynamic drilldown feature.
There is an example of using an external link in the Splunk 6.x Dashboard Examples app version 2.0.1 (NB: The external link example is not available in version 1.0 of that app). The page named "Drilldown URL Field Value" provides an example of how to render an external link in a separate clickable column. Below, I'll paste a generic example, using that example's JS as a base, but updating it to make the original column a clickable link to an external page.
In the simple XML, we reference a JavaScript file named drilldown_external_url.js (which should be in the app's appserver/static directory), we add an ID to the table ( external_link ), and we disable drilldown. Here's the simple XML:
<dashboard script="drilldown_external_url.js">
<row>
<table id="external_link">
<searchString>| stats count | eval target="http://splunk.com"</searchString>
<earliestTime>$earliest$</earliestTime>
<latestTime>$latest$</latestTime>
<option name="wrap">true</option>
<option name="rowNumbers">false</option>
<option name="dataOverlayMode">none</option>
<option name="drilldown">none</option>
<option name="count">10</option>
</table>
</row>
</dashboard>
We update the JavaScript to reference the table ID ( external_link ) and the field name's column ( target ). If the table name or field name is different in your simple XML, be sure to update the JS accordingly. Here is the drilldown_external_url.js
require([
'underscore',
'jquery',
'splunkjs/mvc',
'splunkjs/mvc/tableview',
'splunkjs/mvc/simplexml/ready!'
], function(_, $, mvc, TableView) {
var CustomLinkRenderer = TableView.BaseCellRenderer.extend({
canRender: function(cell) {
return cell.field === 'target';
},
render: function($td, cell) {
var link = cell.value;
var a = $('<a>').attr("href", cell.value).text(cell.value);
$td.addClass('table-link').empty().append(a);
a.click(function(e) {
e.preventDefault();
window.location = $(e.currentTarget).attr('href');
// or for popup:
// window.open($(e.currentTarget).attr('href'));
});
}
});
// Get the table view by id
mvc.Components.get('external_link').getVisualization(function(tableView){
// Register custom cell renderer
tableView.table.addCellRenderer(new CustomLinkRenderer());
// Force the table to re-render
tableView.table.render();
});
});
... View more