All Apps and Add-ons

Quick State: Is there a way to make the visualization a clickable item?

Explorer

Is there a way we can make the Quick State visualization clickable per item/box that appears? Or some custom css +js to get them clickable for drilldown?

Path Finder

A bit late to the party, but you can do this with some javascript.
The following example makes the Quick State clickable, and opens up a post prosess search in a modal view.

NOTE: A colleague of mine has said that the visualization don't play along after upgrading to version 7.0.1 (from 6.X)

The two files needed are quickStateDrilldown.js and ModalView.js

quickStateDrilldown.js is placed in $SPLUNK_HOME/etc/apps/your_app/appserver/static
ModalView.js is placed in $SPLUNK_HOME/etc/apps/your_app/appserver/static/components

If you want to have a regular drilldown, i.e. only set some tokens in the dashboard, remove the two last lines in quickStateDrilldown: var modal = ... and modal.show

require([
    'underscore',
    'jquery',
    'backbone',
    'splunkjs/mvc',
    '../app/<your_app>/components/ModalView',               // update this line with your app name
    'splunkjs/mvc/searchmanager',
    'splunkjs/mvc/postprocessmanager',
    'splunkjs/mvc/simplexml/ready!'
], function(_, $,Backbone, mvc, ModalView, SearchManager, PostProcessManager) {

    // this line makes the drilldown: 
    var tokens = mvc.Components.getInstance("submitted");

   // the dashboard uses a base search
    var basesearch = new SearchManager({
            id: "basesearch",
            earliest_time: "$token_time.earliest$",
            latest_time: "$token_time.latest$",
            preview: true,
            cache: false,
            search: "index=_internal | stats count by host"
    }, {tokens: true});

   // and then a post prosess search
    var detailSearch = new PostProcessManager({
            id: "detailSearch",
            managerid: "basesearch",
            preview: true,
            cache: false,
            search: '| where match(host,\"$token_host$\") | table host count'
    }, {tokens: true, tokenNamespace: "submitted"});  

   // these lines makes the visualization clickable, and displays the post-prosess search in a pop-up modal
     $('#panel_state').on('click', '#draggable', function() {
        var _title=$(this).find('h3').text();
        console.log( "clicked: " + _title );
        tokens.set('token_host', _title);
        var modal = new ModalView({ title : "My title: ".concat(_title), search : detailSearch  });
        modal.show();
     });
});

ModalView.js

define([
    'underscore',
    'backbone',
    'jquery',
    'splunkjs/mvc',
    'splunkjs/mvc/searchmanager',
    'splunkjs/mvc/simplexml/element/chart',
    ], function(_, Backbone, $, mvc, SearchManager, ChartElement) {
    var modalTemplate = "<div id=\"pivotModal\" class=\"modal\">" +
                        "<div class=\"modal-header\"><h3><%- title %></h3></div>" +
                        "<div class=\"modal-body\"></div>" +
                        "<div class=\"modal-footer\"><button "+
                        "class=\"dtsBtn close\">Close</button></div>" +
                        "</div>" +
                        "<div class=\"modal-backdrop\"></div>";

    var ModalView = Backbone.View.extend({

        defaults: {
            title: 'Not Set'
        },

        initialize: function(options) {
            this.options = options;
            this.options = _.extend({}, this.defaults, this.options);
            this.template = _.template(modalTemplate);
            //console.log('Hello from Modal View: ' + this.options.title);
        this.childViews = [];
        },

    events: {
            //clicking on a button with a class of close calls the close function 
        'click .close': 'close', 
            //clicking on the modal backdrop calls the close function 
            'click .modal-backdrop': 'close',
        },

        render: function() {
            var data = { title : this.options.title }
            this.$el.html(this.template(data));
            return this;
        },

        show: function() {
            $(document.body).append(this.render().el);
            //create a new div in which we will add our table
            $(this.el).find('.modal-body').append('<div id="modalVizualization"/>');
            //modify the modal so it occupies 60% of the screen width
            $(this.el).find('.modal').css({
                width:'60%',
                height:'auto',
                left: '20%',
                'margin-left': '0',
                'max-height':'100%'
            });

            //get a reference to the search
            var search = mvc.Components.get(this.options.search.id);
            //console.log("Checkpoint")
            //define our table view and we will use the search as the manager to populate it
            var detailChart = new ChartElement({
                    id: "detailChart",
                    managerid: search.name,
                    "charting.legend.placement": "none",
                    "resizable": true,
                    "charting.axisTitleX.visibility": "collapsed",
                    "charting.drilldown": "none",
                    "charting.chart.barSpacing": "10",
                    "charting.fieldColors": "{\"Antall\": 0xA8C6E8}",
                    "charting.chart": "bar",
                    "charting.axisTitleY.visibility": "collapsed",
                    el: $('#modalVizualization')
            }).render();

            //add our detailTable to our childViews array so we can remove them later
            this.childViews.push(detailChart);

            //run the search
            search.startSearch();
        },

        close: function() {
            this.unbind();
            this.remove();
            _.each(this.childViews, function(childView){
                childView.unbind();
                childView.remove();
            });
        }

    });

    return ModalView;
});
State of Splunk Careers

Access the Splunk Careers Report to see real data that shows how Splunk mastery increases your value and job satisfaction.

Find out what your skills are worth!