diff --git a/amelia/appserver/static/custom_table_row_expansion.js b/amelia/appserver/static/custom_table_row_expansion.js new file mode 100644 index 0000000..589b2a4 --- /dev/null +++ b/amelia/appserver/static/custom_table_row_expansion.js @@ -0,0 +1,40 @@ +require([ + 'splunkjs/mvc/tableview', + 'splunkjs/mvc/eventsviewerview', + 'splunkjs/mvc/searchmanager', + 'splunkjs/mvc', + 'underscore', + 'splunkjs/mvc/simplexml/ready!' +],function(TableView, EventsViewerView, SearchManager, mvc, _) { + var EventSearchBasedRowExpansionRenderer = TableView.BaseRowExpansionRenderer.extend({ + initialize: function(args) { + this._searchManager = new SearchManager({ + id: 'details-search-manager', + preview: false + }); + this._chartView = new EventsViewerView({ + managerid: 'details-search-manager', + type: "raw", + 'raw.drilldown': "none" + }); + }, + canRender: function(rowData) { + return true; + }, + render: function($container, rowData) { + var sourcetypeCell = _(rowData.cells).find(function (cell) { + return cell.field === 'sourcetype'; + }); + + var indexCell = _(rowData.cells).find(function (cell) { + return cell.field === 'index'; + }); + this._searchManager.set({ search: `index=${indexCell.value} sourcetype=${sourcetypeCell.value} | dedup punct`}); + $container.append(this._chartView.render().el); + } + }); + var tableElement = mvc.Components.getInstance("table1"); + tableElement.getVisualization(function(tableView) { + tableView.addRowExpansionRenderer(new EventSearchBasedRowExpansionRenderer()); + }); +}); diff --git a/amelia/default/data/ui/views/data_dictionary_explorer.xml b/amelia/default/data/ui/views/data_dictionary_explorer.xml index 27da2c0..923bcb6 100644 --- a/amelia/default/data/ui/views/data_dictionary_explorer.xml +++ b/amelia/default/data/ui/views/data_dictionary_explorer.xml @@ -1,4 +1,4 @@ -
+ Display customizable metadata about Splunk indexes and sourcetypes.