JSFiddle - React, Tailwind, and code Playground

by Yuriy Bablyukh

HTML

<script type='text/javascript' src="http://code.jquery.com/jquery-2.1.0.js"></script>
    <script type='text/javascript' src="http://localhost:8080/jasperserver-pro/client/visualize.js?_opt=false"></script>
    
<select id="selected_resource" disabled="true" name="report">
<option value="/public/Samples/Ad_Hoc_Views/01__Geographic_Results_by_Segment">chart</option>
  <option value="/public/viz/Adhoc/Ad_Hoc_View_chart_domain">domain based chart</option>

</select>
<select id="chart_type_list_1" disabled="true" name="chart_type_list_1"></select>


By API: <select id="chart_type_list_2" disabled="true" name="chart_type_list_2"></select>

<!--Provide container to render your visualization-->
<div id="container" style="height: 400px;position: relative"></div>

JavaScript

/*

    "/public/Samples/Ad_Hoc_Views/11__Top_5_Products_by_City",
    /public/Samples/Ad_Hoc_Views/01__Geographic_Results_by_Segment
*/
var adv;
visualize({
  auth: {
    name: "superuser",
    password: "superuser"
  }
}, function(v) {
  function renderView(uri, chartType) {
    adv = v.adhocView({
      resource: uri,
      container: "#container",
      canvas: {
         chart: {
           type: chartType || "stacked_column_spline"
         }
      },
      success: function() {
      	

        console.log(arguments);
      },
      error: function() {
        console.log(arguments);
      }
    });
  }

var preselected = getCookie("preselected");
if (preselected) {
  $("#selected_resource").val(preselected);
}

  //render initial view
  renderView($("#selected_resource").val());
	
  $("#chart_type_list_1").html(createOptionsForChartTypes());
  $("#chart_type_list_2").html(createOptionsForChartTypes());

	$("#chart_type_list_2").change(function() {
  	adv.canvas({
    	chart: {
      	type: $("#chart_type_list_2").val()
      }
    }).run().fail(handleError);
  });

	$("#selected_resource, #chart_type_list_1").change(function() {
  	// save selected to cookie
    setCookie("preselected", $("#selected_resource").val());
    //clean container
    $("#container").html("");
    //render selected view
    renderView($("#selected_resource").val(), $("#chart_type_list_1").val());
  });
  //enable report chooser
  $(':disabled').prop('disabled', false);

  //show error
  function handleError(err) {
    console.log(err.message);
  }

});


function createOptionsForChartTypes() {
	var types = [
                "column",
                "stacked_column",
                "percent_column",
                "bar",
                "stacked_bar",
                "percent_bar",
                "spider_column",

                "line",
                "spline",
                "area",
                "stacked_area",
                "percent_area",
               ...