Customize context menu to create new pivot in the pop-up

Embedding Flexmonster

by Flexmonster Pivot Table

HTML

<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<div id="pivot-container"></div>

<div id="dialog" title="Pivot details">
<p><b>Details</b><br>
  Row: <span id="cell-row"></span><br>
  Column: <span id="cell-col"></span><br>
  <span id="cell-measure"></span>
  </p>
  <div id="pivot-container-1"></div>
</div>

CSS

#dialog {
  width: 80%;
}

JavaScript

var pivot = new Flexmonster({
	container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  width: "100%",
  height: 450,
  toolbar: true,
  customizeContextMenu: customizeFlexmonsterContextMenu,
  report: {
    dataSource: {
      filename: "data/data.csv"
    },
    slice: {
      rows: [{
        uniqueName: "Color"
      }],
      columns: [{
        uniqueName: "Business Type"
      }, {
        uniqueName: "[Measures]"
      }],
      measures: [{
        uniqueName: "Price"
      }],
    },
    options: {
    	drillThrough: false
    }
  }
});

function customizeFlexmonsterContextMenu(items, data, viewType) {
	if (data.type == "value")
		items.push({
			label: "Drill through",
			handler: function() {
				openNewPivot(data);
			}
		});
    return items;
}

$("#dialog").dialog({
    width: document.body.clientWidth - 100,
    autoOpen: false,
    modal: true
  });

var pivot1 = null;

var openNewPivot = function(cell) {
  console.log(">>", cell);
  $("#cell-row").text(cell.rows[0].caption);
  $("#cell-col").text(cell.columns[0].caption);
  $("#cell-measure").text(cell.measure.uniqueName + ': ' + cell.label);
  //you the info from cell to prepare the data for the drill-through pop-up window
  var report = {
    dataSource: {
      filename: "data/data.csv"
    },
    slice: {
      rows: [{
        uniqueName: cell.rows[0].dimensionName,
        filter: {
        	members: [cell.rows[0].uniqueName]
        }
      }],
      columns: [{
        uniqueName: cell.columns[0].dimensionName,
        filter: {
        	members: [cell.columns[0].uniqueName]
        }
      }, {
        uniqueName: "[Measures]"
      }],
      measures: [{
        uniqueName: cell.measure.uniqueName
      }],
    },
    options: {
    	grid: {
      	type: "flat",
        showFilter: false,
        showGrandTotals: "off"
      },
      sorting: "off"
    }
  };

  if (pivot1 == null) {
    pivot1 = $("#pivot-container-1").flexmonster({
      componentFolder:...