Filter and properties 2.6

by ilaria_nunziante

HTML

<script src="https://cdn.flexmonster.com/2.6/flexmonster.js"></script>
<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="btn" onclick="showFilters(event)" data-field="category">Show 'Category' filters</button>
<button id="btn" onclick="showFilters(event)" data-field="product">Show 'Product' filters</button>
<div id="pivot-container"></div>

JavaScript

var pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  width: "100%",
  height: 430,
  toolbar: true,
  report: {
    dataSource: {
      data: getData()
    },
    slice: {
      rows: [{
        uniqueName: "product"
      }],
      columns: [{
        uniqueName: "[Measures]"
      }],
      measures: [{
        uniqueName: "price"
      }],
      reportFilters: [{
        uniqueName: "category"
      }]
    }
  }
});

showFilters = function(event) {
  var filters = flexmonster.getFilter($(event.srcElement).data('field'));
  if (filters.length) {
    alert("Filters: \n" + JSON.stringify(filters));
  }
  else {
  	alert("Empty filters");
  }
};

function getData() {
  return [{
      "product": {
        type: "string"
      },
      "productID": {
        type: "property",
        hierarchy: "product"
      },
      "category": {
        type: "string"
      },
      "categoryID": {
        type: "property",
        hierarchy: "category"
      },
      "price": {
        type: "number"
      }
    },
    {
      "product": "Banana cake",
      "productID": "0816",
      "category": "Cakes",
      "categoryID": "01",
      "price": 24
    },
    {
      "product": "Apple pie",
      "productID": "2626",
      "category": "Cakes",
      "categoryID": "01",
      "price": 31
    },
    {
      "product": "Spaghetti",
      "productID": "2366",
      "category": "Pasta",
      "categoryID": "02",
      "price": 56
    },
    {
      "product": "Lasagna",
      "productID": "2366",
      "category": "Pasta",
      "categoryID": "02",
      "price": 56
    }
  ];
}