Need a special offer?Find out if your project fits.
+
All documentation
  • Introduction
  • Connecting to Data Source
  • Browser compatibility
  • Documentation for older versions
  • Migration guide from 2.7 to 2.8

    Follow this tutorial for a comfortable and quick migration to the new major version.

    New features

    New data source: custom data source

    The custom data source API enables fetching already aggregated data from any server to Flexmonster Pivot. Develop a powerful back end with your logic, process the data right on the server, and show the result with Flexmonster’s custom data source API. Learn more here.

    Field List in the drill-through view for Elasticsearch

    In the drill-through view for the Elasticsearch data source, it is now possible to select fields to display the chosen details about the value. To open the Field List in the drill-through view, click the diagonal arrow in the upper-right corner of the grid.

    New database connector: MongoDB

    This connector greatly simplifies connecting to MongoDB. Use it instead of the Data Compressor for Node.js. Refer to our documentation to learn more about connecting to MongoDB.

    New integrations: Vue.js, React Native, R, Python

    Flexmonster is now available for Vue.js and React Native frameworks, R-powered applications with Shiny, and Python-based applications including Jupyter Notebook. Find more details about these integrations in the following articles:

    New aggregation: percentage of Parent Row/Column Total

    In version 2.8, a new aggregation was added that shows a percentage of parent row/column total. This aggregation is now available in the aggregation list.

    New events

    Two new events were added:

    • drillthroughopen – String. Triggered when the drill-through view is opened. Learn more here.
    • drillthroughclose – String. Triggered when the drill-through view is closed. Learn more here.

    Updates

    Updates in element IDs

    In version 2.8.16, a number of element IDs were changed to class names. It was done to ensure that there are no duplicate IDs on the page.

    If you have custom CSS, update your CSS selectors according to the list below (e.g., change the #fm-add-btn selector to .fm-add-btn).

    Here is a full list of IDs changed to class names:

    • #fm-add-btn
    • #fm-add-group-view
    • #fm-aggr-display
    • #fm-aggregations-view
    • #fm-alert-view
    • #fm-and-label
    • #fm-branding-bar
    • #fm-btn-add-measure
    • #fm-btn-add-measure-2
    • #fm-btn-close-fields
    • #fm-btn-collapse-expand-all
    • #fm-btn-connect
    • #fm-btn-open-fields
    • #fm-build-version
    • #fm-calc-display
    • #fm-calculated-view
    • #fm-cancel-btn
    • #fm-chart
    • #fm-chart-legend
    • #fm-charts-filters-btn
    • #fm-charts-filters-container
    • #fm-charts-view
    • #fm-cols-filter
    • #fm-cols-resize
    • #fm-cols-sheet
    • #fm-conditions
    • #fm-conditions-dropdown
    • #fm-data-sheet
    • #fm-datepicker-1
    • #fm-datepicker-2
    • #fm-dates-filter-view
    • #fm-details-label
    • #fm-drag-handle"
    • #fm-drillthrough-view
    • #fm-fields-view
    • #fm-filter-label
    • #fm-filter-sort-row
    • #fm-filter-view
    • #fm-filters-col
    • #fm-font-family
    • #fm-font-size
    • #fm-formula-input
    • #fm-func-btn-group
    • #fm-grid-view
    • #fm-header-toolbar
    • #fm-icon-display
    • #fm-info-icon
    • #fm-inp-proxy-url
    • #fm-interval-dropdown
    • #fm-labels-filter-btn
    • #fm-labels-filter-view
    • #fm-landscape-radio
    • #fm-left-scroll-button
    • #fm-link
    • #fm-list-wrapper
    • #fm-lst-columns
    • #fm-lst-hierarchies
    • #fm-lst-measures
    • #fm-lst-pages
    • #fm-lst-rows
    • #fm-measures-dropdown
    • #fm-members-filter-list
    • #fm-message-label
    • #fm-moreicon-display
    • #fm-name-input
    • #fm-next-btn
    • #fm-num-input-1
    • #fm-num-input-2
    • #fm-numbers-filter-view
    • #fm-page-filter
    • #fm-periods-dropdown
    • #fm-popUp-modal-overlay
    • #fm-popup-conditional
    • #fm-popup-format-cells
    • #fm-popup-olap
    • #fm-popup-options
    • #fm-portrait-radio
    • #fm-preloader-view
    • #fm-prev-btn
    • #fm-prompt-view
    • #fm-remove-btn
    • #fm-right-scroll-button
    • #fm-rows-filter
    • #fm-rows-resize
    • #fm-rows-sheet
    • #fm-sample
    • #fm-select-counter
    • #fm-sheet-headers
    • #fm-sort-col
    • #fm-sort-label
    • #fm-spinner
    • #fm-text-display
    • #fm-time-filter-view
    • #fm-txt-input-1
    • #fm-txt-input-2
    • #fm-ui-dp-month
    • #fm-ui-dp-year
    • #fm-values
    • #fm-values-filter-view
    • #fm-version-label
    • #fm-wrap-columns
    • #fm-wrap-measures
    • #fm-wrap-pages
    • #fm-wrap-rows

    For instance, the #fm-grid-view selector in the following CSS code:

    #fm-pivot-view #fm-grid-view div.alter1 {
      background-color: #f7f7f7;
    }

    should be changed to .fm-grid-view:

    #fm-pivot-view .fm-grid-view div.alter1 {
    background-color: #f7f7f7;
    }

    Updates in supported formats

    The following updates were made concerning the supported formats:

    • The OCSV format is no longer supported in version 2.8.
    • When connecting to a local CSV file, the CSV data is now saved to the report in JSON format, so it is possible to open the report on another host.

    Updates in the Flexmonster module

    In version 2.8, the following dependencies were removed from the flexmonster/lib/ folder:

    • file.min.js
    • jszip.min.js
    • zlib.min.js
    • elasticsearch.min.js

    Also, the type definition file d.ts is now a part of the Flexmonster module.

    Updates in the API

    • getCell().measure.availableAggregations now contains the array of all available aggregations instead of being empty when all the default aggregations are supported.
    • The aggregations property was added to the MappingObject to define available aggregations.
      Starting from version 2.8, the report.slice.measures[n].availableAggregations property, which has the same purpose, is considered deprecated. Use the aggregations property from the MappingObject instead.
    • report.slice.measures[n].availableAggregations are now saved only if they were defined in a report.

    Updating from previous versions

    If migrating from a previous major version, follow these tutorials: