Flexmonster - Navigate to URL on cell click

by Uaman23

HTML

<script src="https://s3.amazonaws.com/flexmonster/2.2/flexmonster.js"></script>
<script src="https://s3.amazonaws.com/flexmonster/2.3/flexmonster.js"></script>
<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<div id="pivot-container"></div>

CSS

.link {
  text-decoration: underline;
  cursor: pointer;
  color: #fbee8f !important;
}

JavaScript

function addLinks() {
  var rows = pivot.getRows();
  for (var i in rows) {
    if (rows[i]["uniqueName"] == "Destination") {
      addLinksForField(rows[i]["uniqueName"]);
    }
  }
}

function addLinksForField(uniqueName) {
  var members = pivot.getMembers(uniqueName);

  for (var j in members) {
    $(".fm-row-header")
      .not(".fm-measure-header")
      .find("span")
      .each(function() {
        if ($(this).text() == members[j]["caption"]) {
          $(this)
            .addClass("link")
            .attr("data-link", 
                  "http://flexmonster.com/?field="+uniqueName+"&key=" +$(this).text())
            .click(onClick);
        }
      });
  }
}

function onClick(e) {
  e.stopImmediatePropagation();
  console.log("click on", $(this).text(), $(this).attr("data-link"));
  window.open($(this).attr("data-link"));
}

var pivot = $("#pivot-container").flexmonster({
  componentFolder: "https://s3.amazonaws.com/flexmonster/2.3/",
  width: "100%",
  height: 430,
  toolbar: true,
  ready: function() {
    $(".fm-sheet-data-canvas").on("DOMSubtreeModified", addLinks);
  },
  report: {
    dataSource: {
      dataSourceType: "csv",
      filename: "data/data.csv"
    },
    slice: {
      columns: [{
        uniqueName: "Color"
      }],
      rows: [{
        uniqueName: "Country"
      }, {
        uniqueName: "Category"
      }, {
        uniqueName: "[Measures]"
      }],
      measures: [{
        uniqueName: "Price",
      }],
    },
    options: {
      configuratorActive: false
    }
  }
});