Skip to content

Instantly share code, notes, and snippets.

@hobbes3
Last active April 12, 2016 17:50
Show Gist options
  • Save hobbes3/6fed6b61b9adadf65152 to your computer and use it in GitHub Desktop.
Save hobbes3/6fed6b61b9adadf65152 to your computer and use it in GitHub Desktop.
reset all to defaults button
require([
'jquery',
'underscore',
'splunkjs/mvc',
'splunkjs/mvc/simplexml/ready!'
], function(
$,
_,
mvc
) {
function submit_and_update_url() {
submitted_tokens.set(unsubmitted_tokens.toJSON());
mvc.Components.get('url').saveOnlyWithPrefix('form\\.', unsubmitted_tokens.toJSON(), {
replaceState: false
});
}
var unsubmitted_tokens = mvc.Components.get('default');
var submitted_tokens = mvc.Components.get('submitted');
var reset_button = $('<button id="reset_button" type="button" style="margin-bottom: 20px">Reset All to Defaults</button>');
$(".dashboard-body .fieldset:eq(0)").after(reset_button);
reset_button.on("click", function(e) {
var inputs = _(splunkjs.mvc.Components.getInstances()).filter(function(obj) { return obj.el && obj.el.className.indexOf("input") > -1; })
_(inputs).each(function(input) {
var defaults = {};
if(input.settings.get("type") !== "time") {
var token = input.settings.get("token");
var default_value = input.options.default;
defaults["form." + token] = default_value;
}
else {
var prefix = input.settings.get("token");
var tokens = ["earliest", "latest"];
if(prefix) {
tokens = _(tokens).map(function(v) { return prefix + "." + v; });
}
defaults[tokens[0]] = input.options.default.earliest_time;
defaults[tokens[1]] = input.options.default.latest_time || "now";
}
_(defaults).each(function(v, k) {
unsubmitted_tokens.set(k, v);
});
submit_and_update_url();
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment