Dashboards & Visualizations

Help with java script used for tooltip

satyaallaparthi
Communicator

Hello,

I have the requirement to keep tooltips for each dashboard panel.

I have 4 panels and I created 4 tokens in javascript and kept each token in each panel.

Can anyone help me with the javascript that can create with a loop where I don't have to create each token for each panel and keep the common id as ToolTip.

Because it will be hard to create 50 tokens in javascript if I have 50 panels in the dashboard.

Below is the script that I am using for tooltip.
Please help me with this script.
Thanks in advance.

Javascript:

require([
     "splunkjs/mvc",
     "splunkjs/mvc/tokenutils",
     "jquery",
     "splunkjs/mvc/searchmanager",
     "splunkjs/ready!",
     "splunkjs/mvc/simplexml/ready!"    
     ],
     function(
         mvc,
         TokenUtils,
         $,
         SearchManager
         ) {
             //jQuery to access Panel with ID and use mvc.Components.get() function to get all Submitted Tokens.
             //On mouseover() event set the show token for the Tooltip
             $('#panel1').on("mouseover",function(){
                 var tokens = mvc.Components.get("submitted");
                 tokens.set("tokToolTipShow1", "true");
             });
             //On mouseout() event unset the show token for the Tooltip to hide the same.
             $('#panel1').on("mouseout",function(){
                 var tokens = mvc.Components.get("submitted");        
                 tokens.unset("tokToolTipShow1");
              });

          $('#panel2').on("mouseover",function(){
              var tokens = mvc.Components.get("submitted");
              tokens.set("tokToolTipShow2", "true");
          });

          //On mouseout() event unset the show token for the Tooltip to hide the same.
          $('#panel2').on("mouseout",function(){
              var tokens = mvc.Components.get("submitted");        
              tokens.unset("tokToolTipShow2");
          });

          $('#panel3').on("mouseover",function(){
              var tokens = mvc.Components.get("submitted");
              tokens.set("tokToolTipShow3", "true");
          });

          //On mouseout() event unset the show token for the Tooltip to hide the same.
          $('#panel3').on("mouseout",function(){
              var tokens = mvc.Components.get("submitted");        
              tokens.unset("tokToolTipShow3");
          });

          $('#panel4').on("mouseover",function(){
              var tokens = mvc.Components.get("submitted");
              tokens.set("tokToolTipShow4", "true");
          });

          //On mouseout() event unset the show token for the Tooltip to hide the same.
          $('#panel4').on("mouseout",function(){
              var tokens = mvc.Components.get("submitted");        
              tokens.unset("tokToolTipShow4");
          });
      }
 );

And I am adding HTML code for each panel using the token from javascript.

0 Karma
1 Solution

satyaallaparthi
Communicator

require([
"splunkjs/mvc",
"splunkjs/mvc/tokenutils",
"jquery",
"splunkjs/mvc/searchmanager",
"splunkjs/ready!",
"splunkjs/mvc/simplexml/ready!"

],
function(
mvc,
TokenUtils,
$,
SearchManager
) {

    function setDelegate(panel, toolTip){

             $(panel).on("mouseover",function(){  
        var tokens = mvc.Components.get("submitted");   
                tokens.set(toolTip,"true");
             });

             //On mouseout() event unset the show token for the Tooltip to hide the same.
             $(panel).on("mouseout",function(){
                var tokens = mvc.Components.get("submitted");   
        tokens.unset(toolTip);
             });

        }

         //jQuery to access Panel with ID and use mvc.Components.get() function to get all Submitted Tokens.
         //On mouseover() event set the show token for the Tooltip

     console.log("loop tokens - function delegation, starting loop");
     for(i=1;i<50;i++)
         { 
         var p = "#panel" + i;
         var ttp = "tokToolTipShow" + i;
         setDelegate(p, ttp);   
     }


     }
 );

View solution in original post

0 Karma

satyaallaparthi
Communicator

require([
"splunkjs/mvc",
"splunkjs/mvc/tokenutils",
"jquery",
"splunkjs/mvc/searchmanager",
"splunkjs/ready!",
"splunkjs/mvc/simplexml/ready!"

],
function(
mvc,
TokenUtils,
$,
SearchManager
) {

    function setDelegate(panel, toolTip){

             $(panel).on("mouseover",function(){  
        var tokens = mvc.Components.get("submitted");   
                tokens.set(toolTip,"true");
             });

             //On mouseout() event unset the show token for the Tooltip to hide the same.
             $(panel).on("mouseout",function(){
                var tokens = mvc.Components.get("submitted");   
        tokens.unset(toolTip);
             });

        }

         //jQuery to access Panel with ID and use mvc.Components.get() function to get all Submitted Tokens.
         //On mouseover() event set the show token for the Tooltip

     console.log("loop tokens - function delegation, starting loop");
     for(i=1;i<50;i++)
         { 
         var p = "#panel" + i;
         var ttp = "tokToolTipShow" + i;
         setDelegate(p, ttp);   
     }


     }
 );
0 Karma
Get Updates on the Splunk Community!

More Ways To Control Your Costs With Archived Metrics | Register for Tech Talk

Tuesday, May 14, 2024  |  11AM PT / 2PM ET Register to Attend Join us for this Tech Talk and learn how to ...

.conf24 | Personalize your .conf experience with Learning Paths!

Personalize your .conf24 Experience Learning paths allow you to level up your skill sets and dive deeper ...

Threat Hunting Unlocked: How to Uplevel Your Threat Hunting With the PEAK Framework ...

WATCH NOWAs AI starts tackling low level alerts, it's more critical than ever to uplevel your threat hunting ...