I need to be able to modify the behavior of any number of tables on a dashboard created with SimpleXML. I have my custom JavaScript added to the page and running properly. I am using mvc.Components.getInstances() to get a full list of all components on the page, and this is working as expected. Also, I'm using splunkjs/mvc/simplexml/ready! as a dependency so that my JavaScript executes after everything is ready. And I should mention that I'm using getInstances() instead of getInstance() because I want the behavior to be generic for any number of tables.
Here's where the problem is. When I iterate through my instances returned by getInstances(), certain properties are not yet available. Specifically, since I am trying to manipulate tables on the dashboard, I am unable to access the visualization member as it's NULL at the time my code is running. What is the proper way to manipulate a SimpleXML table after it's fully loaded? And another related question, is there an easy way to determine if an object returned by getInstances() is specifically a table without looking for a specific property?
Thanks for any help.
Did you find a solution? I would also like to address all Tables (unknown ids).
So we started off running a loop finding ".table.splunk-view".each". We were then able to get the attribute "id" of each instance. From there we went about it in a similar manner as Marco's solution below by plugging in the id we gathered in the previous step.
Hope this helps!
It does (that's exactly what I am trying to do), but it would be great if you could share that snippet of code 🙂
var libs = [
"jquery",
"splunkjs/mvc",
"splunkjs/mvc/simplexml/element/table",
"splunkjs/mvc/simplexml/ready!",
];
require(libs, function ($, mvc, TableElement) {
"use strict";
$.each(mvc.Components.getInstances(), function (i, view) {
/**
* @author Marco Sulla (marcosullaroma@gmail.com)
* @date Jan 31, 2015
*/
if (view instanceof TableElement) {
view.getVisualization(function (view) {
view.on("rendered", function () {
console.log(view);
});
});
}
});
});
Sources:
Web Framework Reference
Examples App
share/splunk/search_mrsparkle/exposed/js/build/simplexml/mvc.js
source code
Curious to see if you figured out a solution to this problem.
Thanks,