在splunk中单击html面板中的图像时如何传递或设置令牌?

时间:2020-06-11 13:35:53

标签: javascript xml visualization splunk splunk-query

在HTML面板中单击图像后,我想设置值或将值传递给令牌

这是我的面板代码:

<form script="my.js">
<row>
<panel>
<html>
<a id="mydivId">
<img src="/static/app/My_app/bck_city.png"/>
</a>
</html>
</panel>
</row>
</form>

在单击上方面板的图像后,以下标记应设置为value (我想在上面的图片上设置token =“ mytoken”,并设置一些值)

<row>
<panel>
<title>mypanel</title>
<event>
<search>
<query>|makeresults
|eval result=$mytoken$
|table result</query>
<earliest>-15m</earliest>
<latest>now</latest>
</search>
<option name="list.drilldown">none</option>
<option name="refresh.display">progressbar</option>
</event>
</panel>
</row>

我还尝试通过.js设置令牌值

 require(['underscore',
'jquery',
'splunkjs/mvc',
'splunkjs/mvc/utils',
'splunkjs/mvc/tokenutils',
'splunkjs/mvc/simplexml/ready!'], function ($) {
    var utils = require("splunkjs/mvc/utils");
    $(document).ready(function () {
    $("#mydivId").on("click", function (){
    var tokens = mvc.Components.get("default");
    var tokenValue = tokens.get("mytoken");
    tokens.set("mytoken", "cheese");
        });
    });
});

enter image description here

1 个答案:

答案 0 :(得分:1)

我在这里为您发布了一个示例:

https://github.com/bshuler/splunk_app_for_stackoverflow_questions

但基本知识是:

视图:

<dashboard script="set_token.js">
  <row>
    <panel>
      <title>mytoken = $mytoken$</title>
      <html>
        <a id="mydivId">
        <img src="/static/app/stackoverflow/set_token.jpg"/>
        </a>
      </html>
    </panel>
  </row>
  <row>
    <panel>
      <table>
        <search id="search1">
          <query>| makeresults | eval my_value="$mytoken$"</query>
          <earliest>-15m</earliest>
          <latest>now</latest>
        </search>
        <option name="drilldown">none</option>
      </table>
    </panel>
  </row>
</dashboard>

和javascript set_token.js

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

    // Get your div
    var my_div = $("#mydivId");

    // Respond to clicks
    my_div.on("click", function(e) {
        var tokens = mvc.Components.get("submitted");
        tokens.set("mytoken", "cheese");
    });

});