Flexmonster Software License Agreement (“Agreement”) has been significantly revised and is effective as of September 30, 2024.
The following modifications were made:
The modified version of Flexmonster Software License Agreement is available here.
Downloading, installing, and/or continuing to use Flexmonster Software after September 30, 2024, constitutes Licensee’s acceptance of the terms and conditions of the modified version of Flexmonster Software License Agreement. If Licensee does not agree to any of these terms and conditions, they must cease using Flexmonster Software and must not download, install, use, access, or continue to access Flexmonster Software. By continuing to use Flexmonster Software or renewing the license under License Model or Maintenance after the effective date of any modifications to Agreement, Licensee accepts and agrees to be bound by the terms and conditions of the modified Agreement.
This migration guide describes breaking changes and significant new features in version 2.9. To see the full list of new features and fixes in version 2.9, visit the Release notes page.
Before completing the migration guide, update Flexmonster CLI to version 2.9:
npm install -g flexmonster-cli@~2.9.0
Then check the CLI version by running the following command in the console:
flexmonster -v
Now you can update Flexmonster and proceed to the migration guide.
This section describes how your existing code must be changed so it works with version 2.9.
Read this section if migrating from version 2.8.15 or earlier. To check Flexmonster’s version, click on the grid and press Ctrl + Alt + i
(Option + Control + i
on macOS). You will see the pop-up window with the component’s version.
In version 2.8.16, a number of element IDs were changed to class names to remove 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;
}
Starting from version 2.9, Flexmonster Data Server is available as a Windows/Unix service. It ships with Flexmonster Admin Panel — a graphical user interface for the Data Server.
The main advantages of using the Data Server as a service are:
Before updating Flexmonster Data Server, update Flexmonster CLI to version 2.9 or higher:
npm install -g flexmonster-cli@~2.9.0
Now see our documentation for details on installing the Data Server as a service and migrating your existing configurations to it.
Previous Data Server versions are compatible with version 2.9 of Flexmonster, so you can update the Data Server later.
Version 2.9 includes the following MongoDB Connector updates:
Read this section if you have a custom data source API server.
Since version 2.8, we added advanced filters for hierarchical data. Implementing these filters allows you to compose multilevel hierarchies of your data while using the custom data source API.
See our guide on supporting multilevel hierarchies for more details.
This section provides a list of innovations that improve Flexmonster user experience.
Significant accessibility improvements were introduced in version 2.9:
Learn more in the Accessibility section.
Flexmonster is now available for Ionic and Electron.js frameworks. You are welcome to try these integrations:
Flexmonster now allows sharing reports with the help of Flexmonster Data Server.
There are two updates in Flexmonster API to support report-sharing functionality: the shareReport method and the shareReportConnection property of the new Flexmonster() API call.
For more details on how to share your report, see our guide.
The following asynchronous methods are now available:
With the MappingObject, it is now possible to create several fields from one field when using a JSON or CSV data source. Have a look at the example:
dataSource: { ... mapping: { "Price": [ { type: "number", uniqueName: "PriceNumber", caption: "Price as Number" }, { type: "string", uniqueName: "PriceString", caption: "Price as String" } ], ... } }
Learn more about this feature in the mapping guide.
The following new intervals were added to the interval property in the mapping:
y
for one year.q
for one quarter.M
for one month.w
for one week. Note that these intervals should be used without numbers. The feature is available only for "json"
and "csv"
data source types.
options.liveFiltering
property is deprecated and no longer receives any fixes and improvements.If migrating from the previous major versions, follow these tutorials: