Visualize.js: Reset Input Controls

Reset embedded JRS Input Controls back to their original state.

by Stas_P

HTML

<script type='text/javascript' src="https://mobiledemo.jaspersoft.com/jasperserver-pro/client/visualize.js"></script>

<!-- JQuery - compiled and minified -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

<button id="validate">Validate</button>
<button id="getParams">Get Params</button>
<button id="run">Run</button>
<button id="reset">Reset</button>

<div id="containerInput">
  <div><p>Loading...</p></div>
</div>

CSS

#containerInput {
    width: 300px
}

/* You can replace the following with your own custom loading indicator */
@import "compass/css3";

@keyframes fadeIn { 
  from { opacity: 0; } 
}

p {
  position: relative;
  top: 50px;
  
  font: italic bold 1.2em/1 Bodoni, serif;
  color: #555;
  text-align: center;
  
  animation: fadeIn 1s infinite alternate;
}

JavaScript

var inputControls="";

visualize({
  auth: {
    name: "joeuser",
    password: "joeuser"
  }
}, function(v) {
   inputControls= v.inputControls({
    resource: "/public/Samples/Reports/ProfitDetailReport",
    container: "#containerInput",
    error: function(err) {
      console.error(err);
    },
    success: function(data) {
      console.log(data)
    },
    events: {
    change: function(data) {
    	console.log("change: ", data)
    }
	}
});

$("#validate").click(
	function(){
  	inputControls.validate();
	}
);

$("#getParams").click(
	function(){
  	console.log(inputControls.params());
	}
);
$("#run").click(
	function(){
		console.log(inputControls.data().parameters)
  	inputControls.run(null, function(e) {
    console.log(e)
  	});
	}
);

$("#reset").click(
  function(){
    console.log("Params before reset: ", inputControls.data().parameters)
      inputControls.reset(function() {
        console.log("Params after: ", inputControls)
      }, function(e) {
        console.log(e)
      });
    }
  );
});