Flexmonster - Customize context menu to create new pivot

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/2.3/flexmonster.js"></script>


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

JavaScript

var pivot = $("#pivot-container").flexmonster({
  componentFolder: "https://cdn.flexmonster.com/2.3/",
  width: "100%",
  height: 350,
  toolbar: true,
  report: {
    dataSource: {
      filename: "data/data.csv"
    },
    slice: {
      rows: [{
        uniqueName: "Color"
      }, {
        uniqueName: "Country"
      }],
      columns: [{
        uniqueName: "Business Type"
      }, {
        uniqueName: "[Measures]"
      }],
      measures: [{
        uniqueName: "Price"
      }],
    }
  }
});

document.body.addEventListener('contextmenu', onRightClick);

var cell = null;

function onRightClick(e) {
  var addItem = ($(e.target).hasClass("fm-cell") && !$(e.target).hasClass("fm-header"));
  cell = pivot.getSelectedCell();
  setTimeout(function() {
    customizeFlexmonsterContextMenu(pivot, addItem);
  }, 1);
}

function customizeFlexmonsterContextMenu(pivot, addItem) {
  if (!addItem) {
    $('#fm-context-menu ul #fm-open-pivot').remove();
    return;
  }
  if ($('#fm-context-menu ul #fm-open-pivot').length > 0) {
    return;
  }
  var openInNewPivot = $('<li class="fm-ui" id="fm-open-pivot"></li>');
  openInNewPivot.append('<span class="fm-ui" id="#fm-text-display">Open in New Pivot</span>');
  openInNewPivot.click(function(e) {
    e.stopImmediatePropagation();
    openNewPivot(cell);
  });
  $('#fm-context-menu ul').prepend(openInNewPivot);
}

var pivot1 = null;

var openNewPivot = function(cell) {
    console.log(">>", cell);
    var measure = cell.measure.uniqueName;
    var rowTuple = [];
    for (var i = 0; i < cell.rows.length; i++) {
    	rowTuple.push(cell.rows[i].uniqueName);
    }
    var columnTuple = [];
    for (var i = 0; i < cell.columns.length; i++) {
    	columnTuple.push(cell.columns[i].uniqueName);
    }
    console.log(
      "Click on cell: "
      + "measure: " + measure
      + ", rows: " + rowTuple.join()
      + ", column: " + columnTuple.join()
    );
    
    //the new pivot is created based on some new data in this sample
   ...