Dashboards & Visualizations

How to work with javascript in splunk

ektasiwani
Communicator

Hi,

I am working with simple xml and i want to hide some html line using javascript.
I have a simple java script file how to make it work on splunk.
I am not that much into javascript.
do we need to add this:

   require([    
    "splunkjs/ready!",    
    "splunkjs/mvc/simplexml/ready!"    
], function(

Simple javascript code is like this :

<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>

<script>
 $(document).ready(function() {

    $('.faq_question').click(function() {

        if ($(this).parent().is('.open')){
            $(this).closest('.faq').find('.faq_answer_container').animate({'height':'0'},500);
            $(this).closest('.faq').removeClass('open');

            }else{
                var newHeight =$(this).closest('.faq').find('.faq_answer').height() +'px';
                $(this).closest('.faq').find('.faq_answer_container').animate({'height':newHeight},500);
                $(this).closest('.faq').addClass('open');
            }

    });

});
</script>

Sorry if this question sounds silly.

0 Karma
1 Solution

alacercogitatus
SplunkTrust
SplunkTrust

You can't add javascript directly to a Simple XML Dashboard. Create a file in $APP_HOME/appserver/static, let's call it "dashboard.js". Place this code into it:

require( "jquery", function($) {

$(document).ready(function() {

 $('.faq_question').click(function() {

     if ($(this).parent().is('.open')){
         $(this).closest('.faq').find('.faq_answer_container').animate({'height':'0'},500);
         $(this).closest('.faq').removeClass('open');

         }else{
             var newHeight =$(this).closest('.faq').find('.faq_answer').height() +'px';
             $(this).closest('.faq').find('.faq_answer_container').animate({'height':newHeight},500);
             $(this).closest('.faq').addClass('open');
         }

 });

});

});

Once you have that in place with the correct permissions, restart Splunk web. This will pull the Javascript and work accordingly.

View solution in original post

alacercogitatus
SplunkTrust
SplunkTrust

You can't add javascript directly to a Simple XML Dashboard. Create a file in $APP_HOME/appserver/static, let's call it "dashboard.js". Place this code into it:

require( "jquery", function($) {

$(document).ready(function() {

 $('.faq_question').click(function() {

     if ($(this).parent().is('.open')){
         $(this).closest('.faq').find('.faq_answer_container').animate({'height':'0'},500);
         $(this).closest('.faq').removeClass('open');

         }else{
             var newHeight =$(this).closest('.faq').find('.faq_answer').height() +'px';
             $(this).closest('.faq').find('.faq_answer_container').animate({'height':newHeight},500);
             $(this).closest('.faq').addClass('open');
         }

 });

});

});

Once you have that in place with the correct permissions, restart Splunk web. This will pull the Javascript and work accordingly.

martin_mueller
SplunkTrust
SplunkTrust

Additionally, look at https://splunkbase.splunk.com/app/1603/ for many more examples adding little snippets of JS to SimpleXML dashboards.

Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Developer Spotlight with Denis Gladkikh

From Splunk Engineer to Kubernetes App Builder Denis GladkikhWhat happens when a lifelong developer turns a ...

Governing Enterprise AI, Bringing Cisco Telemetry Home, and More from Splunk Lantern

Splunk Lantern is Splunk’s customer success center that provides practical guidance from Splunk experts on key ...

Agentic SOC Triage: Investigating Splunk ES Notables with MCP Server and a Local LLM

The Problem: Too Many Alerts, Too Little Context Security operations teams running Splunk Enterprise Security ...