Changelog
For user-facing changes, refer to the What's New? page.
The format is based on Keep a Changelog and this project adheres to Romantic Versioning.
4.3.22
2023-03-15
Added
- Support for ActivePivot 5.11.x.
4.3.21
2022-04-14
Fixed
- Parameter list has missing Add new values button when there are too many parameters.
- Bookmarks are loaded twice during initialization.
- Parameter list values can not be updated.
4.3.20
2022-02-08
Added
- Support for non-visual totals.
strictServer
setting, allowing to control the behavior when a widget is loaded but the server against which it was initially created is not available. Iffalse
(default), the widget connects to the first available server instead. Iftrue
, it displays an error message.
Fixed
- Error when mapping measures on the rows of a Table while having nothing mapped on columns.
4.3.19
2021-12-07
Added
- A back button from the monitor list widget back to the select a monitor folder tree.
Fixed
- Preloaded bookmarks are desynchronized after making a change before the rest of the bookmark tree is loaded.
- Pinned tabular headers "jump" when they are resized vertically.
- Hierarchies on columns are not taken into account when performing a drillthrough on a table cell.
- The bookmark tree closes all its folders when hidden.
- Slow render of KPI Status when scrolling a pivot table.
4.3.18
2021-07-20
Added
widget-chooser.hideContextMenu
setting which allows users to hide the default context menu on the widget chooser.- A back button from the parameter list summary widget back to the parameter list.
getBookmarkNow
method added toBookmarksManager
which fetches a bookmark without fetching the entire bookmark tree.
Fixed
- Ability to save a modified widget is wrongly disabled after updating its state through the
State Editor
.
4.3.17
2021-05-27
Added
undoRedo.disabled
setting which allows to opt-out of the undo/redo feature. Disabling the feature reduces memory usage overtime. The feature is enabled by default.
Fixed
- Tabular headers "jump" when they are resized vertically.
- Context values not being included the query when exporting the data to a csv.
- Error when a slicer filter doesn't include the hierarchy.
- Tooltip on sorted drillthrough tables are incorrect.
- Error when adding a rule on the grand total in the Rules Editor.
- Permissions error when removing current user from shared users.
- Error when editing a filter in the rule creator popup.
4.3.16
2021-02-10
Fixed
- Widget title not refreshed when invoking
containerApi.setBookmarkName
. - Filter mdx being changed causes no data to be returned from the query.
4.3.15
2020-12-03
Added
hasDescription
configuration attribute for Featured Values. Hides the descriptions when set tofalse
. This can be useful to avoid scrollbars after migrating dashboards from ActiveUI 4.2.x to 4.3.x.
{
"name": "My Featured value",
"type": "container",
"value": {
"body": {
"configuration": {
"featuredValues": {
+ "hasDescription": false
}
}
},
"containerKey": "featured-values"
}
}
Changed
- Use default measure instead of disabling the
Open Drillthrough
action when no measures have been explicitly added to table.
Fixed
- Rules editor not rendering.
- CSV export limits columns to lazy loading chunk size.
- Dragging context values into the wizard.
- Reordering columns in Tabular not working properly.
4.3.14
2020-11-04
Fixed
- Filter popup not displaying all available members when editing via the tabular filter menu.
- Drillthrough not working when members on columns have a comma in their name.
- Adding filters to a monitor's list of rules throws an error.
- No scrollbars on the monitor list component.
- Drillthrough action creating duplicate and invalid filters.
- Error when refreshing a cube after a kpi's rules are changed.
- Error when adding a kpi parameter as a column in a tabular view.
4.3.13
2020-10-13
Fixed
- Error when adding a custom container to a dashboard.
4.3.12
2020-10-09
Added
application.displayMultiLineTreeCells
setting that allows to opt-out of single-row cells in the Pivot Table tree layout.mdxApi.updateSelectWithinSnD
which can modify aSelect
node within the input statement, regardless of whether it is a regularSelect
or aDrillthrough
.
Changed
- BREAKING The MDX for drillthroughs no longer uses
MAXROWS
to limit the number of results by default. This allows drillthroughs to work in real-time. However, it can be breaking in the following scenarios, whererows_limit
stands for 10,000 or the default value set for context valuedrillthrough.maxrows
in your cube:- You have a bookmark holding a drillthrough widget returning more than
rows_limit
rows. - You are adding a drillthrough widget to your dashboard, and you have more than
rows_limit
facts in your cube. - You are performing a drillthrough based on a table cell, and there are more than
rows_limit
contributing facts.
- You have a bookmark holding a drillthrough widget returning more than
- If you are in one of those scenarios, you can either:
- add
MAXROWS
with a value that is less than or equal torows_limit
in the MDX - this will limit the number of rows retrieved. - set the
drillthrough.maxrows
context value to a value that is greater than or equal to the number of rows returned by your drillthrough - the same number of rows will be retrieved, but the threshold for the server to throw will be higher. - use another appropriate combination of
MAXROWS
anddrillthrough.maxrows
.
- add
- The
create-folder
action is hidden from users who do not have write permissions on the target parent folder in the bookmark tree.
Fixed
- Hovering over points on charts with time axis shows the wrong time value.
- Error when setting a KPI parameter for a coordinate member.
- Drillthrough add column popup fails to add multiple columns at a time.
- Drillthrough fields wizard not updating when reordering column tiles.
- Error when adding columns to a monitor list table.
Labels between...
andLabels alphabetically...
considered as custom filters.- Error when scrolling horizontally after performing a CSV export on a Pivot Table that is lazily loaded on columns.
- Wrong MDX when creating a filter that excludes some explicit members from different levels of a given hierarchy.
- Hovering over top/bottom advanced filter creates errors.
- Passing custom handlers to the bookmark tree and the data explorer configuration does not override the default handlers.
4.3.11
2020-08-21
Fixed
- Changing a query's context values would not propagate to the corresponding widget's bookmark, nor update those displayed in the Content Editor. WARNING: for the fix, the cube wrapper around the context values in the widget state had to be taken out. Old bookmarks with this legacy structure are still supported, but code reading directly from the state and relying on this legacy structure might be impacted:
{
name: 'My Pivot Table',
type: 'container',
value: {
body: {
contextValues: {
- myCube: {
"mdx.queriesTimeLimit": 30
- }
}
...
},
containerKey: 'pivot-table'
}
}
- Old plotly bookmarks without subplots fail to load in 4.3.9 and 4.3.10.
- Optimized state management performance. This is reflected in actions such as switching between pages on a dashboard and discarding changes when loading a different dashboard.
4.3.10
2020-08-05
Added
copy-cells
action.
Changed
- Drillthrough opened from context menu action has title bar shown by default.
- getLocationsInfoFromPayload returns an empty locations array when there are no cells selected.
Fixed
- Unable to select the same measure twice in a row in the MDX formula editor using the measure icon.
- Statistics computation ignores certain cells.
- Error when adding filter in the KPI editor.
- Error when updating a Drillthrough Query.
- Keep only action affecting only widget in which the action was triggered and not sibling widgets.
- Drillthrough loading with empty fields tree in content editor.
- Pivot table slow to render with many crossjoins.
- Collapsing a column header caused a widget to become disconnected.
- Radar chart subplots sometimes stack extra charts in first position.
- Error when choosing a different measure on a value between filter.
- Error when dragging chart attributes to the page filters widget.
- Page filters widget adding a new filter instead of editing the intended filter.
- Missing rows in tree layout with some custom crossjoins.
- Trying to select part of a widget's title leads to title disappearing.
4.3.9
2020-07-09
Added
- BREAKING In settings,
userFilters.enabled
allows editing and applying user filters. By default, user filters are disabled. To enable, add the following to settings:
"userFilters.enabled": true,
- Ability to expand measure columns.
- Container plugins now export their default configuration from the SDK. See the default widget bookmarks documentation.
widgets.<container_key>.initialValue
settings that let you partially override a widget's configuration. For example, if you would like to force the display of the line numbers column for all new pivot tables, you can supply the following:
"widgets.pivot-table.initialValue" : {
"body": {
"configuration": {
"tabular": {
"lineNumbers": true
}
}
}
}
- Possibility to control the non empty measure used in smart filtering by cube through setting
memberSelection.smartFiltering.<cubeName>.nonEmptyMeasure
. - Possibility to control smart filtering by cube. Please refer to the smart filtering settings for more details.
- Settings
calculatedMeasures.creation.enabled
,calculatedMeasures.publishing.enabled
- Plotly charts support static data.
- Websocket messages corresponding to MDX queries of core widgets within a saved bookmark now forward the bookmark id as a websocket header (ActivePivot 5.9+ only). This can be leveraged to trace query executions back to a UI bookmark (see APM for more details).
dashoardPageApi.addWidget
to insert a widget at the most relevant place in the layout of the dashboard page.
Changed
- BREAKING Reverted the following: Bar and column charts can display values over bars/columns by setting
displayLabels
to betrue
in the state editor. Displaying values on bar and column charts is instead controlled through the Style Editor
Removed
TabularApi.setRowsPosition
ActiveUI.mdx.filters.replaceFilter()
ActiveUI.mdx.measures.addMeasurePivotTable()
ActiveUI.mdx.measures.addMeasureTabular()
- Ctrl + Shift + C shortcut to copy the selected cells' underlying values to the clipboard.
Fixed
- Clicking on "Return to charts" button on legacy charts would throw error.
- Number of decimal numbers limited to 3 when performing a CSV export.
- Widget context values not being persisted on charts.
- Code folding not available on State Editor.
- Column Group Headers do not take the user defined text color.
<ActionsAware />
not re-rendering onactions
props change.- Error when trying to unbind a query from a custom Container after it has been disconnected.
- When discovery is changed and then the server is refreshed, an error pops because the cellset is stale.
- Page Filters respect only one cube even when there are widgets targeting different cubes present on the same page.
- Quick Filters throw when placed on pages where at least two separate widgets target different cubes.
- Text editor widget menu shows edit option.
- Error thrown when switching locale in the App.
- Collapsing columns on time hierarchies not working.
- Styling defined in the cell renderer overrides conditional formatting.
- Line numbers cells on Tree and Pivot have unmatching bottom borders.
activeui.mdx.filters.addFilter()
does not work with drillthroughs.- Double-click required to expand last collapsed row.
- Getting stuck when scrolling on a lazy-loaded table.
- Error when trying to add a widget to a dashboard page whose layout contains a non-leaf node with less than two children.
4.3.8
2020-06-01
Changed
- BREAKING
MdxFormulasApi.enrichSnDBeforeAddingFields
andMdxFormulasApi.enrichExpirySelection
take translator as a third argument. You can pass it in withactiveui.i18n.getTranslator()
.
Fixed
- "Filter on..." context menu caption becomes larger than the screen.
- Custom colors partially applied when editing a tabular header caption.
- Adding extra KPI parameter to a query generates an invalid MDX query.
- Error when performing a drillthrough on a non-numeric cell (it should not be allowed in the first place).
4.3.7
2020-05-06
Added
- The
select
anddeselect
methods are available in the container api. - Style Editors for all charts except bullet, gauge, and all line area charts.
Pivot
layout for pivot table.- Ability to add extra tabs to the Content Editor. Must be a container plugin (e.g. the Style Editor).
{
name: 'Content Editor',
type: 'container',
value: {
body: {
+ extraTabs: [{title: 'Style', containerKey: 'style-editor'}],
...
},
containerKey: 'content-editor'
}
}
Changed
- Widgets can no longer be closed in view mode, except if they were opened programmatically.
- Pages opened programmatically can be closed in view mode.
[AllMember]
caption changed from '(All)' to 'Total'.caption
property on theKpiDefinition
type is now optional, this type change is a reflection of actual behavior.Columns
pivot table layout has been renamedTable
.
Fixed
- Error in story-telling snippet when closing the chart manually and then using the "Close Chart" button.
- Context menu submenu actions don't trigger on click.
- "Keep only" member filter caption makes it impossible to click on other menus.
- Add measure button displays "Edit calculated measure" popup after editing a calculated measure.
- Opening a chart bookmark from 4.3.5 or earlier causes error.
- Opening an alert message throws an error.
Deprecated
- Automatic expansion arguments stored in the
treeCells
cell factory plugin. See this version's bookmark migration scripts.
Removed
Expand
contextual action on pivot table when layout isTable
.
4.3.6
2020-04-03
Added
- We now provide a zip of a build of the ActiveUI app that can be unzipped and deployed on your server. This is available on the Artifacts page of the docs.
- Compatibility with ActivePivot 5.9
- Support for version 5 of ActivePivot REST and Websocket services.
- Support for version 5 of ContentServer REST and Websocket services.
- Plotly charts can show subplots.
- Enable by opening the dropdown and select "show subplots" in the fields section of the content editor.
- Alternatively, set
subplotModeEnabled
to betrue
in the state editor.
{
"name": "My Chart",
"type": "container",
"value": {
"containerKey": "chart",
"body": {
"configuration": {
+ "subplotEnabled": true,
"type": "plotly-stacked-column-chart",
"mapping": {...}
}
},
}
}
}
Changed
- The default monitor query editor is now the Tabular View.
- The
activeui.zip
artifact is now a zip of a build of the ActiveUI app. The starter is now available asactiveui-starter.zip
. Check the Artifacts page of the docs for more info. - While creating a Watch KPI on a Measure, users can no longer return to the first step once on the second step.
rename-bookmark
andmove-bookmark
actions respectively allow to rename a bookmark or move it to a different location.- The search values above the dashboards and saved widgets explorers are maintained when the user switches drawers or closes them.
Fixed
- Unable to edit the MDX query of a monitor.
- Unable to resize the Watch Measure popup during step 1.
- Error rerendering a Pivot Table when publishing certain measures.
- Lost widget selection during undo/redo.
- Programmatically setting the name, filters or context values of a dashboard page has no effect if the page has not been loaded yet.
- Datasource not found when creating a kpi on a dashboard with widgets in real-time query mode.
- Cannot add column in Rules Editor tabular view.
- Too many network calls being performed when creating or editing a bookmark.
- Smart filtering not working well with slicing hierarchies in some cases.
- Error when opening wizard in custom chart snippet.
- Error when opening formatting popup on pivot-table.
- Expand actions no longer showing after using the columns layout.
- Show/Hide sub-totals no longer works after showing a hidden sub-total.
Deprecated
edit-bookmark
action plugin.
4.3.5
2020-02-28
Added
homepage
attribute in ActiveUI zip package to support relative deployment out of the box.onLoadingError
prop for the<Container />
component.query.waitUntilLoaded
, a stabilized version of the deprecatedquery._waitUntilLoaded
.- For Quick Filter's Radio Buttons and Checkboxes, display a warning when an incomplete set of members is shown due to high cardinality.
- Column and bar charts can display value over bars by setting
displayLabels
to betrue
in the state editor.
{
"name": "My Chart",
"type": "container",
"value": {
"containerKey": "chart",
"body": {
"configuration": {
+ "displayLabels": true,
"type": "plotly-stacked-column-chart",
"mapping": {...}
}
},
}
}
}
- Deferred update functionality across entire Content Editor.
- Bookmark tree can be restricted to show folders only.
storagePrefix
option that lets you isolate items stored in the browser's localStorage/sessionStorage between two ActiveUI sessions.
Changed
- Environment variable setup within the ActiveUI app has been refactored:
- We now support setting all server URLs with query parameters, environment variables, or variables defined on window.
- See the documentation on "Environment-Specific Configuration" in the
README.md
file for more information.
- InScreenNotification Buttons are disabled after the first click to prevent duplicate requests.
- Updated plotly.js to version 1.52.2.
- The search value above the data explorer in the content editor is maintained when the user switches between "Fields" and "Filters", or closes the content editor and reopens it.
Fixed
- Pivot Table header context menus do not go over the window limits.
- Creating a folder by right clicking on an existing folder creates a subfolder of it.
- The state editor is replaced by a placeholder when submitted.
- In the ActiveUI application, after opening the dashboards drawer and loading a first dashboard, one cannot click to load another dashboard.
- Error thrown when loading a custom container with both static and MDX-based children within a dashboard.
- Error thrown when adding a filter from the "Filter on" context menu of a table header.
- Dashboard filters not being loaded after saving a dashboard.
- Chart type selector value not being updated when selecting another chart.
- Migration script ignoring
shouldRenderWizard
on featured-values widgets. - Hidden Submit and Reset buttons in the charts MDX editor.
- All page filters being deleted when removing a quick filter.
- Infinite loop when logging out with invalid credentials.
- Error when removing a column from a static tabular view.
- Quick filters not being smart filtered.
- Font color not being applied when customizing tabular header style.
- The cursor jumps to the end of the input when editing a dashboard page name.
- Error when saving an already persisted bookmark on another content server.
- When selecting permissions, the initial values are sometimes incorrectly displayed.
- Error when filtering a monitor view.
- Error on saving a bookmark when switching from a server supporting multiple permissions to a server only supporting single permissions.
- Misleading code for plotly chart in Custom Container snippet.
- Charts are not updated when they include an empty measure.
- Clicking on a disabled tree node causes an error.
- Unable to change axis for multiple measures in the Pivot Table Content Editor.
- Calling
preventDefault()
on a passive wheel listener yields an error. - Hovering over some charts shows wrong data in tooltip.
Deprecated
- Private method
query._waitUntilLoaded
.
4.3.4
2020-01-11
Added
- Routing in the ActiveUI application: the URL includes the id of the loaded bookmark, and they are responsive to each other.
share
action, allowing to edit the permissions of a saved bookmark and get a shareable URL for it when applicable. This is controlled by an optionalurlPattern
parameter. See the action documentation for more details, or check out how it is used in the code of the ActiveUI application.- New
reset-dashboard
action that lets you discard all changes made to a dashboard. - Script to migrate Single Value widgets to Featured Values, available in the Content Migration Tool. The script will remove any custom title and description.
- The
new-dashboard
action accepts an optionalnewDashboardBookmark
parameter, if you want to specify another bookmark than the default empty dashboard one. autoSwitchToFieldsOnEmptyWidget
flag in the configuration of the Content Editor, defaulting tofalse
. As its name suggests, setting it totrue
will enforce displaying the Content Editor on the Fields tab when first selecting an empty widget. Note that it is not responsible for opening the Content Editor itself, but just allows to automatically set the right configuration for the Fields tab to be activated.- Scatter plots show axis names by default.
- CSV Export is also supported for widgets relying on lazily loaded data, as long as the full cell set does not exceed a maximum number of cells, which defaults to 100,000.
This threshold can be controlled via the
data.export.csv.maximumCellsToExport
setting.
Changed
- Load bookmark action for saved widgets is only available in the context menu. Left click adds the widget to the current dashboard.
- Changed usage of
redux-starter-kit
in the ActiveUI App to@redux/toolkit
. See notes about the change here. - The notification in the application occurring when the current locale is not defined on ActivePivot's side is replaced by a warning in the console.
- More Context values are hidden from the cube context values in the advanced wizard (
mdx.measureAlias
,mdx.defaultmembers
,user-authentication
). This makes meaningful context values easier to find and improves the time to render of the wizard.
Fixed
- The performance is improved. Loading dashboards can be up to 5 times faster.
- Unable to log-in to the application after a failed attempt.
- Logging out of ActiveUI does not always log you out from the server.
- Error thrown on topcount filter against an invalid level.
- Unable to load a favorite widget with a single click.
- Star character indicating unsaved changes on dashboard is not visible.
- Clicking on a node of the Bookmark Tree to load a bookmark does not work on the first render.
Deprecated
isSingleSignOn
security plugin property.
4.3.3
2019-12-03
Added
New charts are available:
plotly-100-stacked-bar-chart
plotly-100-stacked-column-chart
plotly-100-stacked-area-chart
plotly-bullet-chart
plotly-waterfall-chart
plotly-radar-chart
New icons for charts are available:
businessIcon.chart.stackedArea100
businessIcon.chart.stackedBar100
businessIcon.chart.stackedColumn100
businessIcon.chart.waterfall
businessIcon.chart.radar
businessIcon.chart.bullet
Hooks APIs as alternatives to
*Aware
components. See the API docs for details.A Cypress setup is available in the ActiveUI application, allowing for end-to-end tests to be added to the application. An example test is available in
cypress/integration/dashboards-drawer.spec.js
.
Fixed
- "Remove" context menu action not working on Pivot Table headers when no measure is expressed on the columns axis.
- Home bookmark's title is not displayed.
- Error when right-clicking the Value column when measures are on rows and nothing is expressed on columns.
- Measure tiles appear several times in the wizard.
- Drag and dropping the measures tile from one axis to another causes all measures to appear on the target axis, instead of just the selected ones.
- Monitor List widget does not resize with its container.
- Content Editor widget does not rerender on a discovery refresh.
- A dashboard saved with a widget with continuous query activated and a context value throws error.
- Statistics are not displayed on lazy loaded tables when the selection goes beyond the loaded range.
- Hide grand-totals action not updating the context values wizard.
- Higher level context values dropping to widget level when using Hide Sub-totals action.
- "Unsaved changes" popup not triggered for new dashboards.
- Color Picker Buttons do not trigger palette popup when clicked.
- Long widget title unexpectedly trimmed with an ellipsis.
- Vertical scrollbar does not unnecessarily appear in the quick filters widget when displayed as checkboxes.
- Some chart icons not changing with theme.
- Overwriting settings in bookmarks can trigger unsaved changes and/or messing with undo/redo.
- Overwriting
actions
andquickActions
settings in bookmarks is sometimes not taken into account. - When inserting a new page programmatically, a copy of the page that was previously in the same position is added instead.
Changed
- Filters and context values wizards display section names alongside their assigned section title.
For example, the user section displays
"User: admin"
instead of the previous"admin"
. - The
execute
method of action plugins now returns a promise. In your plugin description, it is still a valid syntax to return nothing explicitly in the method code. In that case, we will returnPromise.resolve({status: 'success'})
when it is called. Ex:
function MyComponent() {
const [actionPluginWithPromise] = useActions(['myAction'], widgetApi);
// ...
return (
<Button
onClick={async function () {
const {status, data} = await actionPluginWithPromise.execute();
if (status === 'success') {
// do something
} else {
// handle other cases
}
}}
/>
);
}
Removed
PortalServer.globalContext
PortalServer.translator
4.3.2
2019-11-04
Added
Drillthrough content editor displays a discovery tree with drag and drop capabilities.
Context Values tab in the content editor displays a discovery tree with drag and drop capabilities.
New set of functions for manipulating MDX members, available through
activeUI.mdx.members
. Please see the API reference for more details.New charts are available:
plotly-line-chart
plotly-area-chart
plotly-stacked-area-chart
plotly-stacked-column-chart
plotly-clustered-column-chart
plotly-stacked-bar-chart
plotly-clustered-bar-chart
plotly-pie-chart
plotly-donut-chart
plotly-tree-map
plotly-scatter-plot
plotly-clustered-column-and-line-chart
plotly-gauge-chart
See the "Custom Plotly Chart" snippet of the showcase for an example of customization. The legacy charts are hidden by default but you can still allow users to create them if needed, using the following settings:
showLegacyCharts
andshowLegacyMaps
.
Changed
- When a user does not have control over its user filters/context values (i.e. when they are imposed in its permissions file), the corresponding sections are displayed as read-only in the Content Editor.
- All snippets have been migrated to using React hooks instead of class components.
- When removing a hierarchy or level tile from the Content Editor, the associated calculated members which are not used elsewhere are removed from the MDX.
- Adding a column to a tabular view via the interface no longer hides parent levels.
Deprecated
- Functions
sameHierarchy
,sameLevel
andsameMember
ofactiveUI.mdx.levels
, as they have been moved respectively toactiveUI.mdx.hierarchies.isSameHierarchy
,activeUI.mdx.levels.isSameLevel
andactiveUI.mdx.members.isSameMember
. activeUI.mdx.cleaning.cleanVisitor
. Please useactiveUI.mdx.cleaning.getCleanVisitor(discovery)
instead.
Fixed
- Hide sub-totals action not updating the context values wizard.
- Popup to edit a calculated member from the table header is broken.
- Saving a Chart as a bookmark not persisting whether it inherits higher level filters/context values or not.
- Context Values being written twice in Chart bookmarks.
- Wrong MDX when saving a disconnected widget as a bookmark.
- Drillthrough does not resize properly.
- Quick filter throwing an error when opened at the root level.
- Error when searching for members containing special characters such as
( ) [ *
. - Default theme not found when set to a custom theme.
- Sort icon not rendered on header when the column is formatted.
- Images for Charts Gallery documentation page are not showing.
- Some documentation links were broken.
- MDX error when playing both with the expand/collapse and adding/removing hierarchies on axes (we were reaching a state where the dimensionality of the main axis crossjoin was different from the one corresponding to the excluded sets in the Except clause).
- Cell Style provided by cell renderer plugin is not fully applied.
- IncompatibleSetsException when collapsing a member in a Pivot Table.
- State Editor widget sometimes not showing its placeholder when no widgets are selected.
- Dock actions glitch when the user hovers a widget with a long name.
- "Add attribute" popup does not close automatically after submitting a calculated measure as a Chart numeric attribute.
Removed
implicitSectionFocus
experimental flag.
4.3.1
2019-09-30
Added
- Action
tabular-column-difference
can now perform a difference between ordinal members in Pivot Tables. The action has been added to the default configuration of Pivot Tables. - Settings
pivot-table.hideEditFilterButton
andtabular-view.hideEditFilterButton
, allowing to control whether the Edit Filter icon button is visible in Pivot Table and Tabular View headers. - Settings
chart.showResetButton
,drillthrough.showResetButton
,featured-values.showResetButton
,pivot-table.showResetButton
, andtabular-view.showResetButton
. <SelectedPageAware />
Child as Function component.- Types for
WidgetApi
. - An
Icon
component that can be used to display icons from ActiveUI. See the Icons snippet for example usage. - "
implicitSectionFocus
experimental flag to preview adding fields to a pivot table directly by clicking on them in the Content Editor."
Fixed
- After opening the Widgets drawer in the ActiveUI Application, adding a new page or switching to another one and then trying to add a widget into it fails, and the widget is silently added in the first page instead.
- Layout style in the Edit filter on HistoricalDates popup.
- Unable to add a favorite widget to a page.
- Error when sorting static tabular views.
- Parent folder path being displayed incorrectly when "/" was included in the bookmark name.
- No members being displayed when editing a filter in a section that had multiple filters.
- Missing scrollbars in Featured Values widget.
- CSV export fails on tabular with no measures.
- Unable to type "1" in relative date filter.
- Periodical checks not stopped when the server is removed.
- ParameterList widgets throw when saved or loaded from a bookmark.
Changed
- BREAKING util methods
getLocationsInfoFromPayload
andgetLocationsInfoFromSelection
ofactiveUI.data
do not filter out locations for which there is no explicit ordinal member anymore. - The code for the Theme snippet no longer relies on private functionality.
- The Icons snippet now includes a section listing all icons and icon keys.
4.3.0
2019-08-30
Added
- Typescript autocompletion.
- New themes
light-activeviam
anddark-activeviam
based on a single primary color. - Dashboards contain multiple pages:
{
"name": "My Dashboard",
"type": "container",
"value": {
"containerKey": "dashboard",
"body": {
+ "pages": [
+ {
"layout": {...},
"content": [...],
+ "name": "My first page"
+ }
+ ]
}
}
}
DashboardPageApi
offers the same methods as what was previously referred to as theDashboardApi
.DashboardApi
offers methods to add and remove pages and to get theirDashboardPageApi
.- Filters and Context Values can be defined globally for a user or user group using settings [
user.filters
]](https://docs.activeviam.com/products/atoti/ui/4.3.0/dev/reference/settings.html#userfilters) anduser.contextValues
. When configured this way, they will be applied to all connected widgets in any dashboard that the user opens.{ "user.filters": { "EquityDerivativesCube": [ "[Currency].[Currency].[ALL].[AllMember].[USD]", "TopCount(Filter([CounterParty].[CounterParty].Levels(1).Members, NOT IsEmpty([Measures].[contributors.COUNT])), 2, [Measures].[contributors.COUNT])" ] }, "user.contextValues": { "EquityDerivativesCubeEURGBP": { "mdx.axispositionlimit": 0, "mdx.casesensitive": true } } }
- Filters and Context Values can be defined in bookmarks at dashboard and page levels and are applied to all underlying connected widgets.
{
"name": "My Dashboard",
"type": "container",
"value": {
"containerKey": "dashboard",
"body": {
+ "filters": {
+ "EquityDerivativesCube": ["[Geography].[City].[ALL].[AllMember].[Berlin]"]
+ },
"pages": [
{
+ "filters": {
+ "EquityDerivativesCube": ["[Booking].[Desk].[ALL].[AllMember].[DeskA]"]
+ },
+ "contextValues": {
+ "EquityDerivativesCubeEURGBP": {
+ "queriesTimeLimit": 50
+ }
+ },
"layout": {...},
"content": [...],
"name": "My first page"
}
]
}
}
}
See the filters documentation.
- Support for multiple cubes with the same name.
- New Line Chart implementation, based on Plotly, accessible using the
"plotly"
experimental flag. - Chart plugins accept a
Component
static property that can be used as an alternative to therender
static property. Unlikerender
, it does not force to use D3. See the "Custom Chart" snippet of the showcase. - Helper Child as Function components:
<SelectedWidgetAware />
,<SelectedRootDockAware />
,<ActionsAware />
. See the React documentation for more details on render props and the Child as Function pattern. - Pages axis support for MDX queries added to data tables, used by the Comparison section for Featured Values.
- The Content Editor (Wizard, MDX Editor...) works with widgets within React Containers.
new-dashboard
action will load a new empty dashboard.- The
activeui
object returned bycreateActiveUI
features agetReports
function, useful to retrieve information about the current version, state or health status of the aplication. - A default color scale can be defined at once for all charts using the
chart.ordinal-color-scale
. You can still configure a specific chart to use a different color scale if needed. - Settings
application.home
andapplication.home.fallback
.application.home
allows to reference a bookmark id that should be used when using thehome
action. It can be set through the GUI in the Bookmark Tree via themake-home-page
action.application.home.fallback
allows to define a bookmark as a JSON that should be used whenapplication.home
is not set. - You can configure ActiveUI to run without any content server:
Note that the features that require a content server will be disabled. For example, you will not be able to use bookmarks, favorites and JWT authentication.servers.addActivePivotServer({ url withoutContentServer: true });
- A
useActiveUI
hook to gain access to an instance of ActiveUI provided byActiveUIProvider
.
Changed
- BREAKING When adding a 5.4.x server, the
isVersion54
option should be set to true. See the servers documentation. - BREAKING Polyfills are no longer included in
@activeviam/activeui-sdk
. Polyfills should be added by projects that require them. To support Internet Explorer you will need the following polyfills to be loaded before ActiveUI SDK.
The versions we use in this release are:import 'core-js/stable'; import 'regenerator-runtime/runtime'; import 'resize-observer-polyfill/dist/ResizeObserver.global'; import 'whatwg-fetch';
{ "dependencies": { "core-js": "3.0.1", "regenerator-runtime": "0.13.2", "resize-observer-polyfill": "1.5.1", "whatwg-fetch": "3.0.0" } }
- BREAKING We require React version of 16.8.6 or higher. This should be a non-breaking update, see React's changelog.
- BREAKING Custom containers inherit Ant Design Global CSS rules. See the Container documentation.
- BREAKING Page Filters, formally known as Dashboard Filters, are no longer the collection of all common widget filters and must be explicitly defined.
- Updated Ant Design from
v3.10.2
tov3.18.1
. You can read about the changes on Ant Design's documentation site. You should update your version to match in yourpackage.json
file. "about"
and"logout"
are not part of the default dashboard actions.- Removed the ability to populate the MDX editor with a measure name by clicking on a table header or a chart legend.
- Replaced the "flat level tree" representation accessible when adding levels on Tabular Views or Charts by the "hierarchical tree" representation.
- Tables take an object as argument.
Previously one could do:
This becomes:const table = new Table( titles, rows, undefined, undefined, undefined, undefined, undefined, pages, );
const table = new Table({ headers: titles, content: rows, pagesHeaders: pages, });
- It is no longer possible to drag and drop measures/levels onto charts.
- Ranges stripped from widgets when adding third axis on ActivePivot versions less than 5.8.0.
- Widget context menus have a rearranged order of actions and separators.
- Action menus for container title bars have a rearranged order of actions and separators.
- Default size for the Edit Filter popup has been increased so all filter contents fit without having to resize.
- Members search in Edit Filter Popup has been optimized for ActivePivot versions 5.7.8 and above.
It can be enforced for versions below 5.7.8 via the setting
memberSelection.smartFiltering.forceOptimization
- Members search in Edit Filter Popup uses only the explicitly defined slicing hierarchies. See the members documentation.
- State popup displays the whole bookmark corresponding to the underlying widget, instead of just showing some specific parts.
- Unknown plugins for which a fallback implementation exists no longer throw an error and log a warning instead.
- For a given UI session, an error will trigger a notification popup only the first time is it thrown. If the same error happens to be thrown again, it will then only be logged in the browser console.
- Locale synchronization failures don't trigger error notifications. They are logged as warnings in the browser console.
- "Show/Hide Wizard" (
toggle-wizard
action) is not part of the default actions of Pivot Table, Charts, Tabular View, Drillthrough and Featured Values anymore. - The wizards of Pivot Tables, Tabular View, Drillthrough and Featured Values and Charts are hidden by default. Their visibility can be controlled globally with the
pivot-table.showWizard
,tabular-view.showWizard
,drillthrough.showWizard
,featured-values.showWizard
andchart.showWizard
settings. - Sorting members in a table through the
tabular-sort
action sorts by member value instead of member caption. - Actions and containers related to ActiveMonitor are hidden when no ActiveMonitor server is used.
- Bookmark Tree Widget is no longer choosable from the UI by default.
- Action
query-editor
opening an MDX editor in a popup to edit the target widget's query is not available by default anymore. - Action
clear-dock
allowing to reset a widget to an empty dock is not available by default anymore. Furthermore, the behavior of the action has changed: instead of yielding a widget chooser, the empty dock now just displays a placeholder. - By default, filter tiles no longer show the full path of selected members to avoid cluttering.
This can however be controlled on a per hierarchy basis via the
filtering.hierarchyToDisplayPath.<hierarchy_uniquename>
setting.
Fixed
- CodeMirror CSS imported by ActiveUI SDK is correctly scoped and will not impact your own CodeMirror editors.
- Ant Design CSS imported by ActiveUI SDK is correctly scoped and will not impact your own Components. Read the documentation to know how to configure which parts of the DOM obey to Ant Design styles.
- Error thrown on unknwon cell renderer and actions plugins.
- Error when filtering by "date" or "date range" with members that are not dates.
- Dashboard bookmarks can no longer be set as favorites.
- Confusing conditional formatting placeholder.
- Missing scrollbar in Query Editor popup.
- Deprecation warning logged when creating a KPI.
- Two context menus show up at the same time when clicking rapidly.
- Unexpected loading of custom charts.
- Too frequent query updates on lazy loaded tables.
- Formula expressions not visible when editing the mapping of a numeric attribute in a Combo Chart.
- Table hidden columns shown as undefined on a CSV file after being copied to clipboard.
- All identical cube name would be shown in the data explorer if a widget is selected.
- Inability to change the charts layout color.
- Save button showed and disabled instead of being hidden when save action is not allowed.
- Missing cookies on the request to the versions REST endpoint.
- Disabled sort actions in the Alert List.
- User created column header names are replaced by the measure name when exported to CSV.
- Dragging a bookmark from the bookmark tree always replaces the current widget if there is only one widget on the dashboard.
- Edit Filter on Measures popup does not render its measure chooser.
- Selected Members with long names push their "delete" icon out of view.
- Unable to change the header style when the tabular is lazy loaded.
Deprecated
mdx-editor
container. Instead, you should use the newcontent-editor
container, which offers the same functionality and more.about
andlogout
actions. You are invited to create your own implementations for these features, using the API endpoints of ActiveUI-SDK. You can find examples in the "About" and "Logout" snippets of the showcase and in the ActiveUI Application.Dashboard bookmarks without pages. They will be loaded as a dashboard with a single page. A migration script was added to the Content Migration Tool to migrate them.
Note that saving a dashboard loaded from a legacy bookmark automatically converts it to the new structure.
Accessing children widgets directly from the dashboard container. Instead, first retrieve the appropriate dashboard page (or iterate over all pages), and then retrieve the wanted widgets, as shown in the following example:
- const selectedChildApi = dashboardApi.getSelectedChild(); + const pageApi = dashboardApi.getActivePage(); + const selectedChildApi = pageApi.getSelectedChild();
Theme plugin interface has changed and different attributes are expected. If a legacy theme is provided, only
primary1Color
will be honored as a light theme. See the theme plugin documentation for more details.light-bluewood
,light-cerulean
andlean-light-cerulean
theme keys. Use thelight-activeviam
key instead.dark-cerulean
andlean-dark-cerulean
theme keys. Use thedark-activeviam
key instead.widgetApi.getBookmarkValue
. Instead, please usewidgetApi.getInitialBookmarkValue
to get the value of the bookmark with which that widget was last loaded, without the current unsaved changes. To get the bookmark value including the current unsaved changes, usewidgetApi.getBookmark()
.layerApi.getParent
,layerApi.getChildKey
andlayerApi.getBookmarkName
on the Chart layer API.shouldRenderWizard
configuration entry of Pivot Tables, Featured Values and Charts. This entry is renamedshowWizard
. A migration script was added to the Content Migration Tool to migrate them.resetToDefaultView
action renamedhome
.activeUI.theming.getPalette
. External users should not rely on our internal palette, consider usingactiveUI.theming.getThemeConfig
if you need to retrieve the current theme's attributes.toggle-filters
action should no longer be used. Users should rely on the filters area of the side panel instead.presentations.hideFilters
andpresentations.showFilters
icons. Users who need a filter icon should usetree.common.filters
instead.areFiltersVisible
andtoggleFilters
on widget APIs.
Removed
- BREAKING: Icon keys:
menuItem.icon.hamburger
,menuItem.icon.arrowDown
,activeMonitor.icon.inbox
,menuItem.icon.settings
. - BREAKING: Support for multiple chart configurations. Only the first configuration will be honored. For complex charts such as those you may have used multiple chart configurations for you can instead use a custom chart plugin.
- BREAKING: GeoCoderTransformer.
WidgetBuilder#within()
andWidgetBuilder#toReactComponent()
WidgetBuilder#withActionStrictMode()
activeUI.widgets.createDock()
activeUI.widgets.loadBookmark()
activeUI.widgets.createSnackbar()
activeUI.widgets.createThemeSelector()
activeUI.widgets.createLocaleSelector()
activeUI.widgets.createLogout()
activeUI.widgets.createActiveMonitorMessagesIcon()
activeUI.widgets.createActiveMonitorAlertsIcon()
activeUI.widgets.createBasicContainer()
activeUI.widgets.createPopup()
activeUI.widgets.base
activeUI.widgets.base.Snackbar
activeUI.widgets.base.Toggle
activeUI.widgets.base.Paper
activeUI.widgets.base.Divider
activeUI.widgets.base.Separator
activeUI.widgets.base.Button
activeUI.widgets.base.Checkbox
activeUI.widgets.base.DropDownMenu
activeUI.widgets.base.FieldSet
activeUI.widgets.base.Icon
activeUI.widgets.base.IconButton
activeUI.widgets.base.IconMenu
activeUI.widgets.base.Image
activeUI.widgets.base.Label
activeUI.widgets.base.List
activeUI.widgets.base.Menu
activeUI.widgets.base.MultiOptionButton
activeUI.widgets.base.Progress
activeUI.widgets.base.RadioButton
activeUI.widgets.base.RadioButtonGroup
activeUI.widgets.base.RadioButtons
activeUI.widgets.base.Resizable
activeUI.widgets.base.Slider
activeUI.widgets.base.Tab
activeUI.widgets.base.Tabs
activeUI.widgets.base.TextField
activeUI.widgets.globalCtx
activeUI.plugins
activeUI.plugins.registerBasicContainer()
activeUI.plugins.override()
activeUI.plugins.register()
activeUI.plugins.getSerializable()
activeUI.plugins.createPopup()
activeUI.plugins.types
activeUI.plugins.getColumnTransformers()
s13n.types
serializationRegistry.types
activeui.settings.isUserSetting
activeui.queries.serversPool.addSentinelServer
activeui.queries.serversPool.removeSentinelServer
activeui.queries.serversPool.getSentinelServer
activeui.queries.serversPool.getSentinelServers
activeui.mdx.parsing.parseStatement
activeui.mdx.formulas.conflicting
activeui.mdx.formulas.addCalculatedMember
activeui.mdx.order.getOrderingLevel
server.getPlaygroundBinding()
server.getStatusBinding()
server.name
server.url
server.getCaption
activePivotServer.contentServer
activePivotServer.refreshInformation()
- Support for
mapping.ticksDecimation
in chart configurations - Support for
mapping.innerTickSize
in chart configurations - Support for
mapping.outerTickSize
in chart configurations - Support for
mapping.colors
as an array in chart configurations - Support for
timestamps
arrays as values of multi-dates filters - Support for the "first", "last" and "now" values of the
widgets.Calendar.initialMonth
setting loadBookmark
andunloadBookmark
methods of thedashboardApi
onValidate
prop of theEnumCellEditor
andTextCellEditor
- Support for the
additionalLocales
option ofcreateActiveUI
- Default export of
@activeviam/activeui-sdk
ActiveUI.initialize
- The translations for the
de-DE
,es-ES
,zh-CN
andja-JP
locales Checkout the "Internationalization" snippet for an example of how to setup custom locales. - Palette attributes:
containerBodyTextColor
,mdxWizardLighterTextColor
,mdxWizardHeadTextColor
,treeNodeCaptionTextColor
,treeNodeCaptionDisabledTextColor
,nodeChooserBoxShadowColor
andnodeChooserBackgroundColor
. - Single Value widget.
- Chart plugins
iconInput
method. Use instead theicon
string static property to define which Ant Design icon should be displayed. - Support for
DARK_CERULEAN
,DARK
,LIGHT_BLUEWOOD
andLIGHT
theme keys. - Support for
alernate
button attribute. activeUI.data.createStaticDataQuery()
.mdxApi.levels.addLevel()
.cubeDiscovery.getDimensionFromHierarchyName()
.- Property
settingsTree
fromSettingsManager
.
4.2.12
2021-01-27
Added
- Setting
widgets.Tabular.drillthrough.areInitialColumnsIgnored
allowing to ignore saved columns for drillthroughs and avoid firing a query before the user selects columns manually.
4.2.11
2019-05-17
Fixed
- Widget's tooltip clears upon clicking.
- Discovery response incorrectly kept as a blob instead of being parsed as JSON when the
Content-type
header has more information afterapplication/json
. - Popups overflowing the screen when their height is greater than the screen height.
- Changing the theme does not refresh all colors on the widget chooser.
- Error when using an attribute of type
split
in a custom chart plugin. - Unable to perform a drillthrough when no explicit measure is defined and there is an ordinal field on the
COLUMNS
axis. - Static Tabular Views not inheriting handler settings properly.
- Unable to overwrite a Static Tabular View handler setting by specifying its value at the root of the bookmark value.
- Unable to add a numerical column back to a Static Tabular View.
- Setting a folder as its own parent deletes the bookmark.
- Resetting the view throws an error when the dashboard has a drillthrough opened with a sorted column.
- Sorted drillthroughs lose sort on realtime.
Removed
- Support for bookmarks without a
type
property.
4.2.10
2019-04-03
Added
notifyUncaughtExceptions
initialization option allowing to control whether ActiveUI SDK should display an error notification when facing an uncaught exception, or let the exception propagate.- Methods
isPositiveNumber
,isNegativeNumber
,isNumber
,getPrimitiveValue
,createNumber
inactiveUI.mdx.base
. Please refer to the API reference for more details.
Fixed
- DropdownMenu hidden behind dock's siblings.
- Error when editing a bookmark filter and all filter members are deselected.
numeric-binary
andnumeric-between
MDX filters not recognized properly when using negative constants.- Level caption not shown in QuickFilter's DropdownMenu.
- Edit Pivot Table popup tree has a fixed height.
- Change Mapping Chart popup has an incorrect tree height.
- Error in the wizard when the focused widget is not a data visualization widget.
- Some exact match results not appearing when searching in the Level Selector.
- Dashboard filters will display unique labels for filters on different cubes or servers.
- Error when using an attribute of type
split
in a custom chart plugin. - Chart color is all black after switching from a non-numeric field to a numeric field.
- Filter being reordered always getting placed at the end.
- Unsaved Changes popup not closing when clicking the modal exit cross.
- Popups overflowing screen.
- Login popup randomly not showing incorrect password message.
Deprecated
- The
additionalLocales
attribute of the options passed tocreateActiveUI
.supportedLocales
should be used instead and the full list of supported locales should be given.
4.2.9
2019-02-25
Added
- Documentation on enabling
data-testid
s to allow for writing more resilient end-to-end tests. - Documentation for the type
ActiveMonitorServer
,StaticDataQuery
,MdxContextValue
,CellSet
andDrillthroughDataSet
. - Tabular headers and numeric cells can be aligned in the state.
- Action
tabular-remember-expansion-order
with two modes allowing respectively to snapshot the expanded levels and store them asexpansionPairs
in a Pivot Table configuration, or to clear theexpansionPairs
that are already defined. - 'Custom Tooltip' snippet to demonstrate how to create a custom tooltip.
Changed
It is not mandatory anymore to have a defined body in a bookmark. For example, this means that you can write:
const filtersBookmark = {containerKey: 'filters'};
instead of:
const filtersBookmark = { containerKey: 'filters', body: {}, };
In the
treeCells
cell factory,automaticExpansion
works together withexpansionPairs
.restrictedExpansion
allows to control whether a user should be allowed to perform further expansions once all the pre-defined expansions have been performed. Please refer to the dedicated documentation for more details.
Deprecated
- ActiveMonitor server feeds method to get the data binding
feed.getDataBinding()
. - Action
edit-dashboard
has been renamed asadd-widget
. - Icon
docks.stopAddWidget
. - Methods
getExplicitMembersFromFilters
,getLocationFromTargetCell
,getLocationsFromSelection
, andgetLocationsFromPayload
fromactiveUI.data
, as they have been respectively renamed to the more precisegetExplicitMembersInfoFromFilters
,getLocationInfoFromTargetCell
,getLocationsInfoFromSelection
, andgetLocationsInfoFromPayload
.
Removed
- "Switch to flat/hierarchical view" from the search input menu on "Add a row/column", "Add or create a measure" Pivot Table popups, "Add a column" Tabular View popup and "Change ... mapping" Chart popup.
- Setting
widgets.SentinelSingleAlert.openLocation
, which was deprecated since version 4.1.0. Please usewidgets.ActiveMonitorSingleAlert.openLocation
instead.
Fixed
- Searchable tabular views accept search changes while loading. In particular, this improves the usability of the members search in the context of hierarchies with high cardinalities.
- Forever loading drillthroughs on empty cubes.
- Identical boundaries in "Date range" filter throws an exception.
- Years in date filter widget are not always properly ordered.
- Dates with no data can be selected in the date range filter widget.
- Year/Month picker in date range filter widget renders on the right side.
RefreshDiscoveryAction
plugin does not honorserverUrl
parameter.- Browsing in "Date range" filter widget crashing when leaping over a year.
- The first REST version for a single Active Pivot is selected when there are multiple versions.
- Bookmark tree displays no data after resizing.
- Anchored popup resizing happens in an unexpected direction.
- Search results highlighting for one and two character searches.
EditPivotTablePopup
has a scrollbar to fit all its content.- Error when double clicking on tabular headers in the "Controlled Tabular View Selection" snippet.
- Exception thrown when calling
theming.getPalette()
with an incorrect theme key defined. - Possible to delete bookmarks that have nested children without write access.
- Featured values don't display values that are strings.
- Error when right-clicking on table headers corresponding to columns not relying on any data (for example the line number column).
- Error when computing statistics on a selection involving a cell with no caption and a value different from a primitive number.
- Auto-close issue on the Add Context Value popup that prevented users from being able to type in the subsequent popup.
- A clear error message is displayed when trying to migrate a V2 Content Server JSON snapshot in the Content Migration Tool using a wrong path.
- Tabular View cells not visible when setting rules in the Rules Editor popup.
- Quick Filter widget displays only the currently selected option when impacted widgets do not have the same number of filters.
- Broken ActiveUI build caused by the missing "favicon.ico" file.
- Smart filtering setting
memberSelection.smartFiltering.ignoreFromContext
not taken into account in Quick Filters.
4.2.8
2019-01-23
Added
@activeviam/activeui
. This module is an application based on@activeviam/activeui-sdk
. You can use it in two ways:As a boilerplate for your UI developments. Download the zip and get started.
As a turn-key dashboarding application for your ActivePivot server. Add the following dependency to your project and make sure to serve the resources it contains:
<dependency> <groupId>com.activeviam.activeui</groupId> <artifactId>activeui</artifactId> </dependency>
New set of settings of the form
{containerKey}.handlers.{eventName}
(for examplepivot-table.handlers.contextmenu
), allowing to define widget handlers in a centralized way and per user/role in the Content Server. Similarly, actions and quick actions can be configured with settings{containerKey}.actions
and{containerKey}.quickActions
. See the dedicated documentation page for more details. Here are some implications linked to the new feature:- BREAKING In previous versions, not specifying an entry for actions, quick actions, or for a specific handler in a bookmark would be equivalent to setting it to an empty array, and effectively not having it in the corresponding widget.
This is not the case anymore, as not specifying one of these entries will yield to retrieving the corresponding setting value set in the Content Server (i.e. a custom value on a per user/role basis, or the default value provided by the SDK if none has been set).
For example, in version 4.2.7, the following code would yield having a custom
click
handler and the defaultmouseenter
andmouseleave
handlers on a pivot table, but no context menu:
Assuming the default settings are used, the same result would simply be obtained with the following code:{ containerKey: 'pivot-table', body: { configuration: { shouldRenderWizard: false, tabular: { handlers: { click: ['my-click-action'], mouseenter: ['tabular-tooltip-show'], mouseleave: ['hide-tooltip'] } } } } }
Please refer to the documentation for more details.{ containerKey: 'pivot-table', 'pivot-table.handlers.click': ['my-click-action'], 'pivot-table.handlers.contextmenu': [], body: { configuration: { shouldRenderWizard: false, } } }
- The documentation for the default values of actions, quick actions and handlers has been moved from the default widget configuration page to the default settings page.
- We strongly advise to use this new way of configuring widgets, as it allows to centralize configuration, i.e. define it once and for all and avoid difficult migrations. In that perspective, we provide a migration script in the Content Migration Tool that can be used to remove all actions, quick actions and handlers from all bookmarks in a given JSON file. This migration script is optional, but we strongly encourage using it to clean up the bookmarks on your application and move to a healthier and more robust way of configuring widgets, through the new settings.
- BREAKING In previous versions, not specifying an entry for actions, quick actions, or for a specific handler in a bookmark would be equivalent to setting it to an empty array, and effectively not having it in the corresponding widget.
This is not the case anymore, as not specifying one of these entries will yield to retrieving the corresponding setting value set in the Content Server (i.e. a custom value on a per user/role basis, or the default value provided by the SDK if none has been set).
For example, in version 4.2.7, the following code would yield having a custom
Changed
- Refreshed developer documentation.
- Popups have been migrated to Ant Design's
. If your project is using custom popups created with ActiveUI SDK, we highly encourage using Ant Design modals directly instead. See the "PDF Export" snippet for a usage example of Ant Design modals. - Once you begin using Ant modals directly, there will be some limitations.
Ant Design modals do not directly support dragging, resizability, or background interactivity.
- To add "dragging" back, see this thread.
- To add "resizability" back, consider using the react-resizable library.
- To add "background interactivity" back, add the following props:
<Modal mask="false" wrapProps={{style: {pointerEvents: 'none'}} style={{pointEvents: 'all'}} .../>
- BREAKING: Since popups rely directly on Ant Design modals, existing popup palette colors will no longer be adhered to.
- Ant Design's Guidelines explains how to theme your modals.
popupCommonBackground
no longer sets popup background.
- Once you begin using Ant modals directly, there will be some limitations.
Ant Design modals do not directly support dragging, resizability, or background interactivity.
- Featured Values title, description, and matchstick color can be changed in configuration under the
color
attribute. - Wizard only attaches to pivot tables and featured values.
- The Container Chooser tooltip is also displayed when hovering over any part of a tile, instead of just over the corresponding icon.
- Removed "Unformatted" value from table cell tooltip.
- Removed "Index" and "Type: REGULAR" from level and dimension tooltip.
Deprecated
activeUI.plugins
. Theplugins
map ofActiveUIOptions
should be used instead.activeUI.widgets.createPopup()
.activeUI.settings.settingsTree
.server.getCaption
- Using methods of
activeUI.settings
with a function as setting identifier. widgetApi.getBookmarkQuickAndMenuActions
.
Removed
- The Sandbox. You should use the ActiveUI Application instead.
widgetApi.getBookmarkActions
.- "Add a server" from the search input menu on "Add a row/column", "Add or create a measure" Pivot Table popups, "Add a column" Tabular View popup and "Change ... mapping" Chart popup.
Fixed
- "Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported." warning logged by React.js when using
<ActiveUIProvider />
with ActiveUI SDK as an npm dependency. - Error when switching agents during the creation of a new monitor from the monitor list.
- Ability to choose KPIs from irrelevant cubes in the
watch-measure
popup. - Incorrect agent name when having a single ActiveMonitor server connected to two ActivePivot servers and trying to create a new monitor using the modal to watch a measure.
- Incorrect results when filtering on a custom MDX query due to doing a hard remove and replacement of filters of the same hierarchy.
- Uncaught exception thrown when a tabular view or a chart is right clicked in a dashboard which also contains a static tabular view.
- Uncaught exception thrown when underlying query of chart returned no data.
- Displaying empty sets folder in "Add a column/row" Pivot Table wizard.
- Error thrown when submitting some popups by pressing Enter ⏎.
- Tabular views and pivot tables release the focus when Esc is pressed.
- Error when removing an Active Pivot server.
- Error when creating a chart with existing dashboard filters.
- Error when trying to use custom themes.
- Context value disappearing when the string was deleted from the text field.
- Error when clicking on a pivot table cell in IE 11.
- Error when generating application report from the About popup or any error notifications.
- Chart missing mapping attribute hints on field chooser.
- Content Migration Tool failing because of undefined
createUtils
function in the transformation code. - Error when right clicking on a table without siblings.
- Error when right clicking on a table with a non-homogeneous selection spanning on some columns that are not data-based (for example the line number column).
- Error when right clicking on a fully selected table.
- Error when right clicking on a cell of a fully selected row in a lazily loaded table.
4.2.7
2018-12-07
Added
@activeviam/activeui-sdk
exports<ActiveUIProvider />
and<ActiveUIConsumer />
.These can be used to consume an instance of
ActiveUI
in components without coupling them to a specific instance.This can make your components more reusable and easier to test.
To use these additions you should change your
index.js
file:// We also deprecate initialize in favor of createActiveUI in this release. - import { initialize } from '@activeviam/activeui-sdk'; + import { createActiveUI, ActiveUIProvider } from '@activeviam/activeui-sdk'; ... - const activeUI = initialize(...) + const activeUI = createActiveUI(...) ... - render(<App />, document.getElementById('root')); + render( + <ActiveUIProvider activeUI={activeUI}> + <App /> + </ActiveUIProvider>, + document.getElementById('root') + );
After this change is made you can use
<ActiveUIConsumer />
to get access toactiveUI
anywhere in the React component tree without needing to directly import it. e.g.// MyComponent.js import React from 'react'; import {ActiveUIConsumer} from '@activeviam/activeui-sdk'; export const MyComponent = () => ( <ActiveUIConsumer> {(activeUI) => <h1>`ActiveUI SDK ${activeUI.about.packageVersion}`</h1>} </ActiveUIConsumer> );
If your component is not wrapped in
<ActiveUIProvider />
then<ActiveUIConsumer />
will not work.The Showcase snippets have been updated to use
<ActiveUIProvider />
and<ActiveUIConsumer />
.The Sandbox has been updated to use
<ActiveUIProvider />
and<ActiveUIConsumer />
.Also see setup ActiveUI and about project architecture for more information on this pattern.
Unified
<Container />
component andcontainer
plugin to replace, respectively, widget builders and basic containers.To use
<Container />
you will need to wrap yourApp
in an<ActiveUIProvider />
as described above.The
<Container />
component is our first big step towards making the ActiveUI SDK more React idiomatic.It drops the Java-like widget builders (specifically its
.within(target)
/toReactComponent()
finalizers) for a single React component that can be used everywhere in your application. We call it "unified<Container />
component" because you can use it to render a customcontainer
plugin you implemented in your project but also to render a built-in SDK widget inside the React component corresponding to that same customcontainer
plugin.You can migrate to
<Container />
like this:Getting rid of the builder (recommended):
-const TabularView = activeUI.widgets - .createTabularView() - .withName('Your Tabular View') - .withConfiguration({ - /* widget configuration */ - }) - .withMdx('SELECT FROM [EquityDerivativesCube]') - .withTitleBar() - .toReactComponent(); +const TabularView = () => ( + <Container + defaultValue={{ + name: 'Your Tabular View', + value: { + body: { + configuration: { + /* widget configuration */ + }, + mdx: `SELECT FROM [EquityDerivativesCube]`, + }, + containerKey: 'tabular-view', + showTitleBar: true, + }, + }} + /> +);
Taking advantage of the
toBookmark()
finalizer for minimal migration efforts (not recommended):-const TabularView = activeUI.widgets +const tabularViewBookmark = activeUI.widgets .createTabularView() .withName('Your Tabular View') .withConfiguration({ /* widget configuration */ }) .withMdx('SELECT FROM [EquityDerivativesCube]') .withTitleBar() - .toReactComponent(); + .toBookmark(); +const TabularView = () => ( + <Container defaultValue={tabularViewBookmark} /> +);
We are considering introducing, in a future release, more granular components such as
<PivotTable mdx={mdxQueryString} queryMode="realTime" showTitleBar={true} {...etc} />
. That would make the ActiveUI SDK truly React idiomatic. The<Container />
component brings us halfway there so it's already worth adopting it and migrating away from widget builders.
Method
addOrReplaceNamedSet
inmdxApi.formulas
, working the same way asaddOrReplaceCalculatedMember
but for named sets.Method
setRowsPosition
inTabularApi
, that allows to set the current vertical scroll position so that the input row index is at the top of the displayed rows.Util methods in
activeUI.data
to extract locations from a Pivot Table or Tabular View selection. It is also possible to extract explicit members from filters. The "Extract Locations from Pivot Table" snippet gives an example on how to perform and combine those extractions.
Changed
- BREAKING The
DateRecognizerTransformer
now stores parsed dates recognized by theDateRecognizer
as timestamps instead ofDate
objects. If you were using data enriched withDate
objects, you can achieve the same by simply instantiating theDate
yourself based on the timestamp we provide:
// Instead of
cell._valueAsDate;
// Use
const date = new Date(cell._valueAsTimestamp);
- When a node cannot be built in the bookmark tree, fail gracefully and proceed building the sibling sub-trees. The corresponding error is still displayed so that it can be detected and reported by end users.
- The Showcase has been revamped:
- Nodes in the snippet tree are now links and can thus be opened in other tabs.
- Making a snippet full screen doesn't break the browser history anymore.
- The snippet tree is resizable.
- Scrolling position is maintained when switching from an editor tab to another.
- Snippet URLs have changed. Edit your browser bookmarks if needed.
- Adding conditional formatting (colors, font style, etc.) on a table column preserves the initial format string (e.g.
"#,###"
). - Prevent from having duplicate ranges in a
Tabular
selection. - Calculated column can be mapped to ordinal axes: see a tutorial on how to create an Epoch chart.
Deprecated
- The default export of
@activeviam/activeui-sdk
(e.g.import ActiveUI from '@activeviam/activeui-sdk'
).- You should instead use
import {createActiveUI} from '@activeviam/activeui-sdk'
- If you are using the script integration you should change
ActiveUI.initialize
toActiveUI.createActiveUI
- This change is part of an effort to make the API more modular.
- You should instead use
- Basic containers.
They are replaced by the
container
plugin. .within(target)
and.toReactComponent()
finalizers on widget builders. The<Container />
component should be used instead. We recommend migrating away from widget builders completely but, for now,.toBookmark()
is not deprecated and can still be used to retrieve the data structure that should be passed to<Container />
'svalue
/defaultValue
props.activeUI.plugins.register()
,activeUI.plugins.override()
,activeUI.plugins.getSerializable()
.activeUI.widgets.loadBookmark()
. UseactiveUI.getBookmarksApi(contentServerUrl).getBookmark().then(value => /* */)
and<Container />
instead as shown in the "Open Bookmark in New Tab" and "PDF Reporting" Showcase snippets.activeUI.widgets.createDock()
.- Single Value widget has been deprecated.
It can be replicated with a Featured Values widget displaying only one cell.
There is no transformation to migrate from Single Value to Featured Values in the Content Migration Tool.
To get the configuration of a legacy Single Value widget from its API, use
api.getConfiguration
. - Chart mapping popup where only one node was displayed.
Fixed
- Unexpected line/bar/combo charts behavior because of "Split by" mapping automatically added when the option is not explicitly configured.
- BREAKING: The "Split by" chart option is not mapped automatically anymore. Users must now explicitly choose to map "Split by" to a specific level. This impacts only line/bar/combo charts for which the X axis was mapped to a level of index greater than one and for which the "Split by" attribute was left untouched.
- Epoch level is incorrectly recognized as a level of type TIME on X axis of line/chart/combo charts.
- Dashboard actions menu does not display ActiveMonitor alerts and messages actions.
- Levels displayed under the wrong parent in the Quick Filter's level chooser.
- Wrong translation path for warning displayed by the Quick Filter widget when encountering multiple cubes.
- Filter popup hanging when selecting a date filter that returns a query with a date marked as "N/A".
- Chart missing attribute hints in Chrome on field chooser.
- Searching for measures in the "Edit Filter" popup.
- Stacked histograms.
- Chart highlight on selection.
- The "Filter on" action in Basic Containers.
- Error when righ-clicking on the background of a chart with 2+ measures.
- Context menu action to add or remove filters from non-numeric columns always disabled.
- Delete KPI popup has incorrect font size.
- "Reset" button improperly displayed on some Charts, Tabular Views and Featured Values when they returned no data.
SingleParameterWorkflowSelector
receives incorrect proptype onpendingParameterWorkflow
.- Editing parameters from KPI edit popup.
- Chart multiselection not working on Mac.
- Crash when searching for members in the "Edit Filter" popup and the server answered with an error.
- "Reset" and "Cancel" buttons not appearing for long running queries in charts.
- Charts with attributes mapped to fields recognized as dates by the
DateRecognizer
not working as expected with static data.
4.2.6
2018-11-02
Added
activeUI.i18n.listLocales()
.activeUI.theming.listThemes()
.- Ability to override the default smart filtering setting for specific hierarchies.
- Documentation for bookmarks types in the API reference: in particular
activeUI.getBookmarksApi()
andBookmarksManager
(contentServer.bookmarksManager
). - Documentation for the servers pool
activeUI.queries.serversPool
. - Documentation for the servers of type
ActivePivotServer
,ContentServer
andPortalServer
as well as theDiscoveryCache
fromactivepivotServer.getDiscovery()
. - The content migration tool is now public. It can be accessed at https://activeui.activeviam.com/activeui/content-migration.
- Ability to ignore specific hierarchies filters from the smart filtering context of subsequent filters.
Changed
BREAKING: React and React DOM have been upgraded to 16.6.0. Since React is a peer dependency you should upgrade your versions to be the same. Make this change in your
package.json
file:{ ... "dependencies": { "@activeviam/activeui-sdk": "XXX", - "react": "16.3.x", - "react-dom": "16.3.x" + "react": "16.6.0", + "react-dom": "16.6.0" } }
BREAKING: Ant Design has been upgraded to 3.10.2. This version is semantically compatible with the previous one we were using (3.4.4). Still, there might be some visual changes in your project when migrating to the new version. As explained in the custom components page, we strongly advise projects to use the same version of Ant Design as ActiveUI SDK. Make this change in your
package.json
file:{ ... "dependencies": { "@activeviam/activeui-sdk": "XXX", - "antd": "3.4.4" + "antd": "3.10.2" } }
BREAKING: Since Ant Design switched to React-based SVG icons, there is no need to ship icon fonts in our artifacts anymore:
- The folders
fonts
of our .tgz artifact andMETA-INF/resources/activeviam/activeui-sdk/fonts
of our .jar artifact are gone. - Projects using an existing Sandbox should remove the
ncp node_modules/@activeviam/activeui-sdk/fonts public/fonts
part of theirpackage.json
'spostinstall
script.
- The folders
The Sandbox now uses Create React App V2.
- We are now testing ActiveUI within a Create React App V2 app, so we recommend upgrading existing projects to Create React App V2 (instructions).
- You should change existing Sandbox's
package.json
to have versions matching the new Sandbox, and to have abrowserslist
key matching the new Sandbox. - You should add a .env file containing
GENERATE_SOURCEMAP=false
to prevent OOM issues.
Changing the MDX of a widget cancels deferred update on wizards and displays a warning to users.
The recommended way to register plugins is now to use the new
plugins
map ofActiveUIOptions
:-const activeUI = initialize(); - -activeUI.plugins.register({ - type: 'row-style', - key: 'blue', - createProperties() { - return { - getRowStyle(rowIdx, columnsProps) { - return {color: 'blue'}; - }, - }; - }, -}); +initialize({ + plugins: { + 'row-style': [ + { + key: 'blue', + createProperties() { + return { + getRowStyle(rowIdx, columnsProps) { + return {color: 'blue'}; + }, + }; + }, + }, + ], + }, +});
Eventually, this will replace
activeUI.plugins.register()
but for now both patterns can be used.Some snippets (e.g. "Chart Click") show a cleaner and more scalable way to pass the activeui API by leveraging the React context instead of a singleton.
Stop removing query cell properties when adding/removing calculated members.
When a widget bookmark is loaded inside a dashboard (i.e. not at the root level), it is not in sync anymore with the Content Server. As a consequence, the original bookmark can never be edited from the dashboard, as the Save action will not be available. One alternative is to recreate the bookmark using "Save As" and delete the existing one.
Epoch smart filtering is disabled by default.
Deprecated
activeui.widgets.createActiveMonitorMessagesIcon()
andactiveui.widgets.createActiveMonitorAlertsIcon()
.activeUI.i18n.addLocaleChangeListener()
andactiveUI.widgets.createLocaleSelector()
.activeUI.widgets.createThemeSelector()
.activeUI.widgets.createSnackbar()
.activeUI.widgets.createLogout()
.mdxApi.filters.replaceFilter()
server.getPlaygroundBinding()
server.getStatusBinding()
server.name
server.url
portalServer.globalContext
portalServer.translator
activePivotServer.getDiscovery().getDataBinding()
activePivotServer.contentServer
activePivotServer.refreshInformation()
Removed
- "Display as tree/columns" from the context menu on tabular views.
serversPool.getInternalServersPool()
- Passing
{sentinelServer: ...}
as an option ofserversPool.addActivePivotServer()
activePivotServer.ensureCurrentLocale()
activePivotServer.sentinelServer
mdxQuery.updateQuery()
mdxQuery.updateRanges()
mdxQuery.cancelQuery()
mdxQuery.executeRaw()
mdxQuery.executeOnce()
mdxQuery.executeOneAndGetPromise()
mdxQuery.sendQuery()
Fixed
- Right click on pivot table with empty cells throws error.
- Exporting charts to excel throws error.
- Uncaught error by providing a clearer error message when ActiveMonitor agent not found.
- Chart handlers other than
click
andcontextmenu
are not taken into account. - Member filter's paste data were not displayed into the search field (even if taken into account for search).
- When editing the name of a dashboard loaded from a bookmark, the unsaved changes "star" was not displayed next to the title, and the
Save
action was not available. - If a bookmark does not load properly, a clean message with the option to clear the container is presented to the user.
- If a bookmark does not unload properly, the user is redirected to the container chooser.
- Drillthrough displays
Numeric
instead ofMeasures
. - Data Explorer disables unselected cubes.
- The Edit Filter popup "shakes" when used on hierarchies with a high cardinality.
- Error when saving filters.
4.2.5
2018-10-03
Added
- Documentation for
MdxNamedSetsApi
(activeUIApi.mdx.namedSets
) in the API reference. - Documentation for lazy-loading's
ranges
argument in methodscreateSelectQuery
andcreateSelectQueryFromCube
ofActivePivotServer
in the API reference. - Automatic formatter that applies the default d3 formatter to a numeric chart tick axis.
Changed
- BREAKING: Calling following methods from
serverPools.addActivePivotServer
/serverPools.addActiveMonitorServer
/serverPools.addContentServer
/serverPools.addPortalServer
with the URL of an already registered server will return the already existing one instead of a new one. - BREAKING: Cells from a chart's underlying table that were recognized as dates used to have their
value
attribute overriden by aDate
object. This would prevent any code to generate proper MDX from those cells. From now on, the originalvalue
attribute is kept unchanged, and theDate
object is stored in a new_valueAsDate
attribute. You must update your code if it was relying on the value of a date cell from a chart's underlying table. - Confirmation message for deleting calculated measures specifies consequences.
- Disabled the intermediary node in the tree allowing to chose from where the monitors should be fetched when creating a Monitor List.
- "React Application" snippet mimics the "Simple Dashboard" snippet with the Bookmark Tree outside the Dashboard component to reflect better layout practice.
- Display constant overlays over the entire width of the graph.
- The default member of a given hierarchy is displayed as filter tile in the wizard if this hierarchy is not expressed on the axes of the MDX query.
- Measures cannot be dropped into the the filters section on the wizard.
Deprecated
- Adding the same server twice to the servers pool. For now, it will raise a warning and return the existing one. In the future, it will throw.
Fixed
- Removing a hierarchy with the
Extract
MDX function from the wizard generates invalid MDX. - Monitor creation popup crashing on invalid MDX.
- Table member filter action is now available on child members even if the corresponding hierarchy was already filtered on a parent member.
- Shortcuts on macOS use Cmd instead of Ctrl.
- Scrolling issues in tables when dealing with rows of significantly different sizes.
- Searchable tree expands to fill up the height of the Edit Filter popup.
- Connection to ActivePivot 5.4 running on the same origin than ActiveUI.
- "Member Selection" snippet.
- Error when editing a filter that had been saved as a bookmark.
- Chart filtering menu was not available.
- Error when expanding a hierarchy with lazy-loading enabled.
- Error when trying to filter on a chart element while having a mapping relying on a level of type
Time
.
4.2.4
2018-09-13
Added
- Chart Selection: possibility to select and highlight chart elements.
A new
chart-selection-handler
plugin allows to interact with chart selections. A newchart-element-styler
plugin allows to control the style of chart elements. The default chart configuration now includes the entryelementStylers: ['selection-highlight']
, which allows to benefit from an implementation of the plugin that highlights selected chart elements. member-filter
context menu action in the default charts configuration. It allows to filter the dashboard based on the selected chart element.open-drillthrough
context menu action in the default charts configuration. It allows to explore a specific chart element's underlying data.- Documentation for
MdxOrderApi
(activeUIApi.mdx.order
) in the API reference. - Empty cells are ignored when copied to Excel
Changed
- “Yes” and “No” labels for submit and cancel buttons in confirmation popups have been made clearer by changing them to “Cancel” and an active verb.
- Passing a blank list into 'withActions' method for a widget hides the '...' menu.
- Wizard and MDX editor are working with custom containers.
Deprecated
- Action
tabular-member-filter
has been renamed asmember-filter
, as it is now also available in the context menu of charts. As a consequence, the legacy keytabular-member-filter
is deprecated. - Exception on the story-telling snippet when clicking on a bar after opening the "Detail Chart".
Fixed
- Clicking on a map now closes its context menu.
- Crash when horizontally scrolling a lazy-loaded table widget (Pivot Table, Tabular View or Drillthrough) with a selection outside of the currently loaded chunk.
- Hovering on a chart presents a tooltip with data pertaining to that specific chart node instead of showing the full data set.
- Error when removing an MDX measure from a slicer axis when it was not also in a column or a row.
- Broken synchronization when saving bookmark.
- Do not allow to use a parameter as KPI limit type when no ActiveMonitor server is attached.
- Filters on relative dates, specific periods and existing date could be defined but not edited.
- Statistics : when cell's data in declared as numeric, but contains an object as value, use the caption to compute statistics.
- Pivot Table expand/collapse arrow incorrectly shown as expanded in some specific cases.
- Pivot Table expand button doing nothing or generating a wrong MDX in some specific cases.
- Saving a Monitor List after editing its state will persist the change after the widget reloads.
- Explicit filter tile caption overflow.
- Portal Data Explorer.
- Wizard and MDX Editor were not cleared when removing a focused and MDX related widget.
- Wizard and MDX Editor were not updated correctly when adding an MDX related widget.
- Reloading a pivot table with deferred update enabled.
4.2.3
2018-08-10
Added
- Documentation for all
MdxNode
subtypes in the API reference. This family of types appears in the signatures of variousMdxApi
functions. - Documentation for
MdxBaseApi
(activeUIApi.mdx.base
) in the API reference. - Possibility to bind MDX queries used in a
BasicContainer
to the dashboard global filters and context values.- If these queries are linked to ActiveUI SDK built-in widgets within the basic container, then they are detected and impacted automatically.
- Otherwise, you can call
this.props.api.bindQueryToDashboard
andthis.props.api.unbindQueryFromDashboard
to register a query and clean it up.
- Add the
defaultPermissions.owners
anddefaultPermissions.readers
settings. Use them to prefill the owners and readers permissions inputs upon bookmark creation. These settings are overriden automatically when the current user changes the permissions while saving a bookmark so that his or her choice is persisted.
Changed
The dashboards snippets to reflect better standard practices. They use React and "Simple Dashboard" has the bookmarks bar outside of the Dashboard component.
"Desktop Application" renamed to "Simple Dashboard".
Following Ant Design's guidelines, the Showcase and the new Sandbox use system fonts instead of Arsenal. The drawbacks of Arsenal were that:
- As a custom font, the browser needs to fetch its corresponding files, slightly increasing the loading time of the application.
- It doesn't support tabular figures, making the comparison of numbers in a table more difficult.
We recommend every project to switch to system fonts too. It can be done with these changes on an existing Sandbox project:
package.json
:
"ncp": "2.0.x", "react-scripts": "1.1.x" }, - "dependencies": { - "typeface-arsenal": "0.0.x" - }, "scripts": { "flow": "flow", "start": "react-scripts start",
index.js
:
import React from 'react'; import ReactDOM from 'react-dom'; -// Load the Arsenal font -import 'typeface-arsenal'; import App from './App'; import './index.css';
index.css
:
-html, -body, -#root, -/* For ActiveUI popups and tooltips */ #ActiveUI-overlay-root { - font-family: Arsenal, Arial, sans-serif; +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', + 'Segoe UI Emoji', 'Segoe UI Symbol'; + font-variant: tabular-nums; +} + +.CodeMirror pre { + /* Using !important because CodeMirror will apply its own style after but we want to force this font stack. */ + font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;
Removed
- The multi-widget Application and React-Dashboard from the snippets list.
- Defining authentication holders with a
create
method only. - Accessing authentication holder methods directly (without going through the
get
method).
Fixed
- The stack traces of uncaught errors will be printed in the console.
- "RangeError: Maximum call stack size exceeded" thrown when clicking on the menu icon in the title bar of standalone charts.
- Member selection popup layout issue when the list contains very long captions.
- Auto-closable popups (such as the CSV export popup) remain open when a dropdown menu is clicked within them.
- Cardinality defaults to "City" in charts snippet.
- The "Round" function is now available as a formula function.
- Error thrown when creating a filter on a drillthrough table.
- Conditional formatting preview not supporting everything ActivePivot does and being wrong for some format strings.
- Checkbox stuck to landscape mode in the Reporting snippet.
- Documentation and graphical references to the context value
drilthrough.hiddencolumns
have been removed as this context value does not make sense in the context of ActiveUI SDK. - Default background color for the Sider ant component to match the color of the dashboard container background based on the theme chosen.
- Bug that made the Point Value creation "Submit" button disappear on overflow.
4.2.2
2018-07-11
Added
- Documentation for top-level functions of
MdxApi
(activeUIApi.mdx.transform
, etc.) in the API reference. - Documentation for
MdxAxesApi
(activeUIApi.mdx.axes
) in the API reference. - Documentation for
MdxParsingApi
(activeUIApi.mdx.parsing
) in the API reference. - Documentation for
NodeMatcherFactory
(activeUIApi.mdx.nodeMatcher
) in the API reference. table-selection-handler
plugin allowing to interact with tabular selections.
Changed
- In charts configurations, mapping attribute "unmapped" has been renamed to "cardinality". It is now a mandatory attribute in map charts configurations.
- Better error handling: when an error is thrown from a plugin’s
isAvailable
method for an action in a context menu, the other actions in the context menu will still render.
Deprecated
activeUIApi.mdx.axes.createAxis
– use the identical functionactiveUIApi.mdx.create.createAxis
instead.servers.activepivot.cubeDiscovery.getDimensionFromHierarchyName
- Do not use this function and get the dimension differently
Removed
- Sourcemap file
umd/activeui-sdk.development.js.map
. activeUIApi.mdx.axes.ensureNonEmptyInOrOutStatement
.- Deprecated way of passing parent path in methods
createBookmark
andeditBookmark
ofBookmarksManager
: only the actual parent path of the bookmark is now supported, and not the bookmark's path itself.
Fixed
- Error thrown when a hierarchy is moved from rows to columns in a lazy-loaded pivot table.
- Glitch occurring on tabular views with all columns frozen.
- Error thrown when users select KPI statuses from measures choosers.
- Bug occurring when a scrolled lazy-loaded table's query is updated into returning a cellset that is smaller than the start of the currently displayed chunk. In this case, the query is updated again in order to fetch the last non empty chunk of data, so that the table doesn't remain empty.
- Lifting the right mouse button outside of the context menu no longer closes the menu. This avoids an issue where the context menu closed immediately after being opened.
- Title editing bug - when a title becomes empty, a placeholder with the original bookmark name is now displayed.
- Error when trying to change permissions as a non-admin user with a server version that does not support multiple permissions.
- Error when changing a parameter in a KPI limit with an ActiveMonitor server that is not embedded with an ActivePivot server.
- Bug when multiple dimensions have the same hierachy.
4.2.1
2018-06-01
Added
- Official support for ActivePivot 5.7.x.
activeUIAPI.queries.serversPool.addListener()
in order to get notified when servers get added or removed.
Deprecated
- Specifying permissions as strings in
PUT
/POST
methods of the service APIs ofActivePivotServer
andContentServer
. An array should be used instead, even if the targeted server version does not support multiple permissions. For example, incontentServer.getServiceApi().updateFile(myPath, myContent, owners, readers)
, owners should be respectively of the form['someOwner']
and['someReader']
instead of just'someOwner'
and'someReader'
. - Icon keys
bookmark.owner
andbookmark.reader
. Please usebookmarks.owners
andbookmark.readers
instead.
Removed
activePivotServer.executeDefinitionStatement(mdxDefinition)
.
Fixed
- Row actions
getIconTitle
andisDisabled
properties.
4.2.0
2018-05-23
Added
- The
icon
plugin for defining custom icons usable in many extension points such as when implementing an action or a basic container. - The setting
bookmarks.saveOrDiscardChangesOnClose
, which can automatically choose Save or Discard for you when you close a bookmark with unsaved changes. mdxApi.tabular.isTabularNativeMdx
function to check whether an MDX statement can be generated through UI actions on tabulars only.- Documentation of the
cell-factory
,columns-selector
andsingle-value-coordinates
plugins. - "Integration Tests" guide explaining how to write integration tests for your ActiveUI-based app.
- New section in the "Authentication" guide to indicate how to reuse the ActiveUI security mechanism to call project-specific server-side endpoints.
- Warning in the "Add Server" documentation page, about the pre-requisite for connecting to more than one server.
- Types for
ActiveUIApi.security
andActiveUIApi.i18n
in the API reference. - An absence of configuration for the axis
x
in the "Combo" charts will now automatically map all the non-numerical headers from the data on thex
. - Built-in Flow integration in the Sandbox.
Changed
- BREAKING: Rename package to
@activeviam/activeui-sdk
. This will allow us to leverage the npm/Yarn scoped packages feature in the future. Make sure to change yourpackage.json
dependencies to use the new package name. - BREAKING: Replace the development artifacts
manifest.js
,vendor.js
, andapp.js
used in "script integration" with a singleactiveui-sdk.development.js
file. Theapp.min.js
file has also been renamed toactiveui-sdk.production.min.js
. - BREAKING:
react
andreact-dom
have been upgraded to 16.3.x. Check that your project complies with these versions. - BREAKING:
react
andreact-dom
are not bundled anymore in the UMD build. Take a look at the script integration documentation to learn how to use the UMD build. Typically, this is what you would need to change in yourindex.html
:<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>A Sample Page</title> + <!-- Load React and ReactDOM from a CDN (integrity attribute computed with https://www.srihash.org/). --> + <script src="https://unpkg.com/react@16.3.1/umd/react.production.min.js" integrity="sha384-4srYLE+UG0buQNlOqH1tQBudzBUlBoEZg/fAtDaPfAzqmDXgZh9eFTPzzogPHlJB" crossorigin="anonymous"></script> + <script src="https://unpkg.com/react-dom@16.3.1/umd/react-dom.production.min.js" integrity="sha384-Vq1+LEQ/83klHUsvPZ6Ne+bJ4T8yD7CI+mwRttTijmqepzny/G7sdNiX7HFzIdPp" crossorigin="anonymous"></script> <!-- Adapt the path to where you retrieve the library from. --> - <script src="http://host:port/your-application/scripts/app.min.js"></script> + <script src="http://host:port/your-application/umd/activeui-sdk.production.min.js"></script> </head> <body> <div id="example"></div> <script type="text/javascript"> // ** Your code goes here! ** </script> </body> </html>
- BREAKING: Rename our JAR artifactId to
activeui-sdk
. The internal structure of the JAR also changed:
Take a look at the updated "Maven Integration" documentation page to see what you need to change in your project.-├── META-INF/resources/activeui/ <!-- for script integration --> -| ├── fonts/ -| ├── locales/ -| └── app.min.js -└── activeui-sdk.tgz <!-- for sandbox integration --> +└── META-INF/resources/activeviam/activeui-sdk + ├── cjs <!-- Directory containing the bundled modules used in the "Node.js/Sandbox integration" --> + ├── fonts <!-- Directory containing font assets used by the SDK --> + ├── index.js + ├── index.js.flow <!-- File used by Flow to type the SDK API --> + ├── locales <!-- Directory containing the translation files used by the SDK --> + ├── package.json <!-- Entry point when using the "Node.js/Sandbox integration" --> + └── umd + ├── activeui-sdk.development.js <!-- Entry point when using the "script-based integration" while debugging --> + ├── activeui-sdk.development.js.map + └── activeui-sdk.production.min.js <!-- Entry point when using the "script-based integration" in production -->
- BREAKING: The ActiveUI tgz used in the sandbox undergone these adjustments:
- The
dist/locales
directory has moved tolocales
. - The Showcase project and the documentation are not embedded anymore.
The Showcase project is still available in the zip artifact, and the documentation is hosted on https://docs.activeviam.com/products/atoti/ui/.
This is what you need to change in your sandbox's
package.json
:
{ "private": true, "devDependencies": { "ncp": "2.0.x", "react-scripts": "1.1.x" }, "dependencies": { - "activeui": "file:./activeui-4.1.13.tgz", + "@activeviam/activeui-sdk": "file:./activeui-sdk-4.2.0.tgz", "typeface-arsenal": "0.0.x" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", "postinstall": - "ncp node_modules/@activeviam/activeui-sdk/dist/locales public/locales && ncp node_modules/@activeviam/activeui-sdk/dist/docs public/tutorial/docs && ncp node_modules/@activeviam/activeui-sdk/dist/locales public/tutorial/locales && ncp node_modules/@activeviam/activeui-sdk/dist/index.html public/tutorial/showcase.html && ncp node_modules/@activeviam/activeui-sdk/dist/scripts public/tutorial/scripts && ncp node_modules/@activeviam/activeui-sdk/dist/showcase public/tutorial/showcase && ncp node_modules/@activeviam/activeui-sdk/dist/env.js public/tutorial/env.js && ncp node_modules/@activeviam/activeui-sdk/dist/vs public/tutorial/vs" + "ncp node_modules/@activeviam/activeui-sdk/locales public/locales && ncp node_modules/@activeviam/activeui-sdk/fonts public/fonts" } }
- The
- BREAKING: The
activeui-${version}.zip
artifact has been replaced byactiveui-sdk-showcase-${version}.zip
that doesn't embed the documentation anymore. The documentation is now only available from https://docs.activeviam.com/products/atoti/ui/. - BREAKING: Switched base UI library from Material UI to Ant Design that provides more components and has a cleaner look and feel.
This is a breaking change if you were importing Material UI components in your project with code like
import FlatButton from 'material-ui/FlatButton';
without declaringmaterial-ui
as a direct dependency in yourpackage.json
. For projects that cannot make the recommended switch to Ant Design yet, the fix is to add"material-ui": "0.20.0"
in yourpackage.json
's dependencies. - BREAKING: The table widgets (Tabular View, Pivot-table, Drillthrough) do not get a default configuration applied implicitely anymore. This should only make a difference in particular use-cases when the widget was created programmatically.
- BREAKING: The default behavior for widgets with static data is to not store the data in the bookmark anymore.
To keep storing the data in a bookmark, set its widget configuration flag
storeData
totrue
. - BREAKING:
palette.errorColor
now reads its value frompalette.alertColor
. - Upgraded
react-scripts
to 1.1.x in the Sandbox. - Using ActiveUI in a Node.js environment doesn't require loading a
Symbol
polyfill on IE 11 before importing react anymore. This is because we stopped applying the Babel transform-react-inline-elements plugin on the SDK modules. - Made the JSON and MDX editors theme-aware.
- Dropped the
new-tabular-selection
experimental flag. The multi-selection becomes the default selection mechanism for tables. - The tabular view "Add a column" (+) button won't allow to add a measure anymore if the tabular view's MDX is not "native" according to
mdxApi.tabular.isTabularNativeMdx
.
Deprecated
- All base widgets accessible through
activeUI.widgets.base
. They can all be replaced either by a custom component or by an equivalent Ant Design component. You can find more details on how to import and use Ant Design components in the dedicated documentation page. activeUI.plugins.types
,s13n.types
. Please use the plain strings listed in the public plugins documentation instead.tabular-select-cell
andtabular-select-column
actions. The selection of a cell or column is now a built-in feature and does not require to be configured through actions.mdxApi.measures.addMeasurePivotTable()
andmdxApi.measures.addMeasureTabular()
. Please use the new unifyingmdxApi.measures.addMeasure()
method instead.chartApi.getLayersApi()
. Please usechartApi.getLayers
instead.activeUI.widgets.globalCtx
.Translator.format()
no longer accepts React elements within itsparameters
parameter. If you need to pass React elements as formatting parameters, use the new methodTranslator.formatSupportingReact
instead.WidgetBuilder.withActionStrictMode
. This flag is now a no-op since the behavior it enabled became the default.activeUI.widgets.createActiveMonitorMessagesInbox().withTabularViewConfig()
and.withInboxConfig()
in favor or respectively.withTabularViewConfiguration()
and.withInboxConfiguration()
.activeUI.data.createStaticDataQuery()
. Please useactiveUI.queries.createStaticDataQuery()
instead.
Removed
- BREAKING:
tabular-select-cell
andtabular-select-column
actions. The selection of a cell or column is now a built-in feature and does not require to be configured through actions. - BREAKING: Message popup. Use Ant Design's Notification component instead.
- BREAKING:
showLocalFilters
option in "Filters" and "Context Values" widgets. The alternative is to use the filters inside of the data visualization widgets directly. - BREAKING: Actions'
getRightIconSrcKey
property. This property was only used to display the caret on the right of context menu options that could open submenus. - BREAKING: Theme keys under
multiOptionButtonDropDown
and the ones related to autocomplete:autoCompleteStandardItemTextColor
,autoCompleteHighlightedItemTextColor
,autoCompleteHighlightedItemBgColor
,autoCompleteMenuBackgroundColor
, andautoCompleteMenuBoxShadowColor
. - BREAKING:
<Tags />
'sallowDuplicates
prop. - BREAKING:
<Checkbox />
'scheckedIcon
anduncheckedIcon
props. - BREAKING: Undocumented setting
messages.exceptions.level
, as well as its corresponding feature. - BREAKING: Ability to import any internal CommonJS module from ActiveUI SDK.
Indeed, since this version, the SDK is bundled into a single file, even in the CommonJS build used by the Sandbox.
If you have such internal module imports in your project, check if what you are trying to import is not available from the public ActiveUI SDK API or if it can be replaced with a third party library or vanilla JavaScript.
Otherwise, please open a JIRA ticket explaining what you are importing and why, so that we can provide an alternative or update the core product consequently.
Examples:
- If you were importing
ActiveRestQuerier.js
to make a web request, please consider using the Fetch API directly. - If you were importing
ActiveRestQuerier.js
to make an authenticated request against a service exposed by an ActivePivot server, please see How to reuse ActiveUI authentication
- If you were importing
- Legacy Sandbox.
- ActiveUI CLI.
ActivePivotLive
alias to theActiveUI
global variable injected when loading ActiveUI in script integration.ActiveUI.api
,ActiveUI.cfg
, andActiveUI.dev
. The only remaining way to access the main API is throughActiveUI.initialize(options)
.ActiveUI.getVendor()
.activeUI.modules
API allowing to override and define modules at runtime.activeUI.bookmarks
,activeUI.version
,activeUI.logger
,activeUI.settingsManager
,activeUI.themeSupervisor
andactiveUI.themeSupervisor
.activeUI.i18n.createTranslator()
.activeUI.dev.setLocale()
andactiveUI.dev.setTheme()
.activeUI.getBookmarksApi(...).getContent()
,.getI18nFile()
and.getStructureFile()
.activeUI.plugins.createSerializable()
andactiveUI.widgets.createBasicContainer()
.activeui.theming.get()
,activeui.theming.getCurrentThemeName()
,activeui.theming.setTheme()
,activeui.theming.getAvailableThemesList()
,activeui.theming.update()
,activeui.theming.addTheme()
,activeui.theming.getCurrentTheme()
,activeui.theming.getStyle()
,activeui.theming.addThemeChangeListener()
.activeUI.widgets.base.createWidget()
and.createWidgetFactory()
.activeUI.widgets.createXXX().containerKey
,.getBookmarkBody()
,.getBookmark()
.activeUI.widgets.createSentinelMessagesInbox()
,.createSentinelAlertsInbox()
,.createSentinelAlertList()
,.createSentinelSingleAlert()
and.createSentinelAlertsIcon()
.activeUI.widgets.createChart().withConfiguration()
,.withConfigurations()
,.withConfigurationsArray()
,.withQuery()
,.withMdx()
,.withServerUrl()
and.withContext()
.activeUI.widgets.createActiveMonitorAlertsInbox()
.activeUI.widgets.createDashboard.withContent()
,.withLayout()
and.withCustomStyle()
.activeUI.widgets.createStaticChart()
.activeUI.widgets.createPopup().withContent()
.additionalThemes
key in the options passed toActiveUI.initialize()
. Use the theme plugin instead.dataSource.onFieldsAdd()
anddataSource.onFieldRemove()
.*server.getWebSocketUrl()
,.getWebSocketProtocol()
and*server.getServiceApi().getRestQuerier()
.tabularApi.getSelectedCell
,.setSelectedCell
,.setSelectedColumns
,.onSelectColumns
andtabularApi.getConfiguration().selectedColumns
. Interactions with tabular selections are possible throughtabularApi.getSelectedCells
and.setSelectedCells
.- Support for
mouseHandler
in charts, "Single Value", table-based and tree-based widgets. - Support for
cellEditor
andcellRenderer
keys in the configuration of table widgets (the correct one beingcellEditors
andcellRenderers
). - Support for
caption
andcolumnOrder.orderedColumns
options in the configuration of a column in table widgets. widgets.Tabular.multiBinding
setting.- Support for the
dock-action
plugin. - The method
.getContainer()
in the API of widgets inside "Basic Containers". Use.getParent()
instead. - Auto-completion of handlers for widgets.
Not having the key
handlers
in the configuration of a widget will result in having no handlers applied. - Auto-completion of actions for widgets in a dock.
Not having the key
actions
in a bookmark will result in having no actions shown. - The automatic addition of the
remove-dock
action in the bookmarks of widgets inside of a dashboard. With it, theactionStrictMode
flag has also been removed, since it was only there to activate the current behavior. - Context menu action
create-calculated-measure
. Calculated measures can still be created the same way regular measures are added. contentServer.bookmarksManager.owner
and.reader
.queryContextValueProperties
andonLocalChange()
from the ActivePivot server API.chartApi.setLayers()
andchartApi.getLayerByKey()
.chartLayerApi.chartApi
,chartLayerApi.getChart()
andchartApi.chartAt()
.onLocalChange
from theBookmarksManager
.<TextField />
'sfloatingLabelText
andhintText
props.<FieldSet />
'sactionStyle
andtooltip
props.<FieldSet />
children'sfieldSetOptions
prop.error.originalRequest
anderror.originalUrl
on the errors of the REST calls.- The icon keys
kpi.circle
,kpi.rectangle
,kpi.triangle
and all the keys starting withsentinel
. - The prop
live
passed to "Basic Containers". - Support for
defaultDockActions
in the description of a "Basic Container" plugin. commonCellProps.handlers
, that could be accessed when customizing cells in table widgets.widgetApi.provider
. UsewidgetApi.getProvider()
instead.PopupPluginBuilder#create
. UsePopupPluginBuilder#register
instead.authenticationHolder.getAuthenticationString()
and.markIncorrect()
.- The chart types
line
,lineArea
,histogram
andhorizontalHistogram
. - The transparent support of the container key
empty
, that was just ignored when present in a dashboard. - Methods on
contentServer
andcontentServer.getServiceApi()
:.buildPathExist()
,.buildPathMkDir()
,.buildPathGetFile()
,.buildPathCreateFile()
,.buildPathUpdateFile()
,.buildPathDeleteFile()
,.buildPathUpdatePermissions()
and.buildPathMoveFile()
. - Support for
contentServer.updateFile()
and.getFile()
with the signature(path: string, ...args)
. - Support for deprecated bookmark structure for the "Chart", "Pivot Table", "Tabular View", "Drillthrough", "Single Value", "Alert List", "Message Inbox", "Monitor List", "Monitor View" and "Rules Editor" widgets.
- Colors from the palette:
sentinel.*
,sentinelIconCountTextColor
,sentinelIconCountBackgroundColor
,activeMonitorIconCountTextColor
,activeMonitorIconCountBackgroundColor
,sentinelMessageBoxShadowColor
andsentinelAlertBoxShadowColor
. - Support for deprecated array-structured MDX "Members" filter.
This might impact your project if you filter queries programmatically:
For instance,
mdxApi.filters.addFilter(snd, 0, 'explicit', '[Booking].[Desk]', ['[AllMember].[DeskA]'])
should becomemdxApi.filters.addFilter(snd, 0, 'explicit', '[Booking].[Desk]', {members: ['[AllMember].[DeskA]'], mode: 'include'})
. Read the documentation for more details about the shape of all available core filter values. - Support for old translation file format.
Expected format has a mandatory
config
root attribute. - Support for "Sentinel" translation keys.
- Support for
ja-JA
locale. Expected Japanese locale isja-JP
.
Fixed
- When not specifying a custom configuration,
ActiveMonitorMessageInboxBuilder
correctly applies default values. - Content Migration Tool bug where the downloaded JSON file would always be semantically equal to the input JSON file if the path to the ActiveUI files in the Content Server export was changed from
/ui
to/
. - Clicking on the "remove sorting" action removes the corresponding calculated measure definition when applicable.
- Action
tabular-show-sparklines
never displaying even with valid conditions. - The Parameter List displays the creator correctly.
- Stop displaying hiearchies which have their
visible
flag set tofalse
in the discovery. - Crash when applying filters the second time on a drillthrough.
- Crash when collapsing a member, when an active MDX "Members" filter is present.
- Crash when switching from an MDX "Custom" filter to a "Members" filter.
- Fixed wrongly generated and recognized MDX in the "Recent date members" filter.
- Disallow saving bookmarks with non-permitted credentials.
- Not working "Rename server" popup for the Content Server.
- Crash when opening a "Drillthrough" with the option “Where the last drillthrough was opened, replacing it” when there was no such "Drillthrough" to replace.
- Support for the properties
backgroundAreaColor
andbackgroundAreaBorderRadius
in the configuration of the charts of type "Combo". These properties were existing in the previous "Line" and "Histogram" charts.
4.1.13
2018-03-16
Added
new-tabular-selection
experimental flag to activate multiple-cell selection on tables.- Rules Editor initial configuration. It can be easily changed using settings.
Changed
- Improved and clarified KPI creation and editing.
- Dropped
new-kpi-editor
experimental flag since the new UI has been integrated. - Created new action
watch-measure
to start monitoring a measure in two steps:- Define a parameter-based KPI
- Set up rules for this KPI
- Action changes in containers:
- In tabular views and pivot tables, replaced action
create-kpi
with:edit-kpi
for column headers corresponding to a measure based on a KPI attributewatch-measure
for column headers corresponding to regular measures
- In data explorers, the caption of the
create-kpi
action has been changed from "Open KPI editor" to "Create KPI".
- In tabular views and pivot tables, replaced action
- Changed the
create-kpi
andedit-kpi
actions to be dedicated to KPI manipulation only. As opposed towatch-measure
, they are not enough to trigger a monitoring, as they will not prompt the user to set up rules after manipulating the KPI. However, they provide a more flexible UI for manipulating KPIs, as they do not enforce parameters for KPI limits, but also allow simple numeric values or measures. Furthermore, it is still possible to set up rules separately using the Rules Editor widget. - Considering the points above:
- To monitor a measure from a table the same way as before but in a more friendly UI, you can use the
watch-measure
action. - It is not possible to monitor directly from the data explorer anymore. However, from a cube node, you can create or edit a KPI in a more simple and flexible way than before, and then, if needed, start monitoring this KPI with the Rules Editor widget.
- To monitor a measure from a table the same way as before but in a more friendly UI, you can use the
- Dropped
- Simplified
row-action
plugin with methods likegetIconKey
andonClick
that will render an icon button, instead of having to write therender
method. - Changed generated MDX function for level type
TIME
from.MemberValue
to.MEMBER_VALUE
. - Drillthrough widgets correctly pass a
DrillthroughApi
instead of aTabularApi
to their actions. - Improved performance when editing large MDX queries in the MDX editor.
Removed
popups.CreateKpiPopup.showRulesEditor
setting since there are now two separate actions to either monitor a measure or manipulate a KPI. If you had it set tofalse
, you can achieve the same result by replacingwatch-measure
withcreate-kpi
in the context menu actions.
Fixed
- Fixed React warning about
::WebkitSearchCancelButton
when displaying the Autocomplete field in dev mode. - Fixed no cube appearing focused when using a non-English locale.
- Renamed
cubeName
attribute tocube
in data explorer tree folder nodes. - When removing a calculated measure from the view, also remove its definition in the
WITH MEMBER
clause of the query editor if it is not used anywhere else. - Prevented the error messages of out-of-date long-running queries from overwriting tables that were loaded later.
- Fixed dashboard crash when its configuration contains an unknown dock action.
- Don't execute disabled context menu items when the user clicks on them.
- The action
tabular-sort
displays correctly when the table does not have the propertysortingMode
in its configuration. - Views from loaded MDX queries are preserved if there is a short connection drop, instead of displaying the blocking error message "a continuous query has stopped". The error will occur only if the query MDX changes while the connection has still not been recovered.
- Fixed crash when displaying a SDK widget inside of a Basic Container.
- Fixed the error thrown when a lazy-loaded tabular cell is right clicked.
- Support for formula addition in charts with measures on the axis.
- In charts, support addition of attributes mapped to a level already implicitly expressed through children in the MDX.
- Fixed "Combo chart" implementation crashing when two layers were used.
- Fixed the message inbox builder throwing when used.
- Fixed crash when calling
activeUI.bookmarks.forContentServer(...).findBookmark(...)
. - Prevented partial slicers from being recognized as MDX filters.
- Fixed random crash when opening the Message Inbox widget.
- Fixed random crash when opening the Single Monitor View widget.
- Removed unwanted selected columns persistence in bookmarks.
- Fixed the clear action position in searchable trees.
- Use the correct “hierarchy” icon in the popup for adding or editing a filter.
- Queries against ActivePivot v5.4/5.5 servers are correctly isolated when an error happens.
- Refresh periodically does not trigger a
CancellationException
on the server anymore. - Hide the "Formatting" action when multiple measures are on COLUMNS.
- Fixed undo/redo incorrectly loading an empty container instead of the previous view.
- Fixed undo/redo unexpectedly throwing an exception when it loads an empty container.
- Improved the member selection popup message indicating that no members match the search.
- Loading the parameter list with no parameters on the repository no longer displays "loading" indefinitely.
- Removed useless development mode assertion that threw when adding a second widget on a dashboard.
- Fixed missing remove dock action when siblings were only empty containers.
4.1.12
2018-02-12
Added
new-kpi-editor
experimental flag to preview the new KPI editor. The layout will be improved in future releases.activeUI.widgets.getRoots()
method to get the APIs of all the root widgets.- Support for Content Server exports generated in 5.6 in the Content Migration Tool.
- Flag to disable the ability to expand/collapse nodes on tree cells (i.e. making it read only).
To use this, set the following flag in the table configuration:
{
"captionProducer": "...",
"selector": "...",
"cellFactory": {
"key": "treeCells",
"args": {
"allowExpandCollapse": false
}
}
}
Changelog available at https://support.activeviam.com/activeui/changelog. Here is the mapping between the sections in our old Confluence release notes and here.
Confluence release notes section CHANGELOG.md
sectionNew Features Added Improvements Changed Bug Fixes Fixed Potential breaking changes are also listed in the Changed section, starting with BREAKING.
Changed
tabularHeaderTextColor
can now be given as part of the palette when defining a theme.- Hide the custom
ANCESTOR_CAPTION
MDX member property from the chart tooltips. - Root dock API now exposes specific methods such as
isVisible
,undo
,redo
&getOriginalBookmark
.
Deprecated
- ActiveUI CLI, including the
override
command. The ability to override SDK modules has always been unstable and makes upgrading ActiveUI difficult. We believe our API should reflect what projects actually use. This is why we decided to drop the ability to override SDK modules. Instead we encourage you to:- Use the available API;
- Reconsider the need for such override;
- Contact ActiveViam for help and available workarounds.
ActiveUI.getVendor()
. If you need an npm package, please set it as an explicit dependency of your project and require it directly instead of relying on the version bundled with ActiveUI.activeUI.modules
. Please only use the functionalities exposed through the public API or reach out to ActiveViam for help.
Fixed
- Frozen table columns behave as if they were unfrozen when there is not enough width to display the unfrozen columns.
- Fix wrong link to the documentation in deprecation warning message.
- Fix options in charts with static data.
- Dashboards correctly detect changes when changing the query of one of their children.
- Fix deprecated method
MdxQuery.executeOnce
and its deprecation message. - Fix edit lookup cell that is by default in tables.
- Fix KPI editor permission fields that would always be empty when editing a KPI.
- Fix propagation of event on monitor list status cell.
- Fix the "value not between" MDX filter.
- Fix Tabs style when
unmountInactiveTabs
prop is set to false. - CSV export correctly prints cell and header values of type
object
.
4.1.11
2018-01-09
Changed
- Make the name attribute of a bookmark favorite setting optional. This enables automatic name generation.
- When adding an ActivePivot server to the servers pool, forward the name attribute to the matching Content Server.
- Automatic squash of context menu separators.
- More CLI documentation on how to override SDK modules at compile time.
- When a user deletes a bookmark, the associated favorites owned by this user are deleted as well. Favorites owned by other users will keep pointing to the deleted bookmark. They will not be rendered for the current user, but will need to be removed from the Content Server by an administrator.
Fixed
- Remove context menu when choosing the chart type.
- Allow editing locally the title of non-writable bookmarks.
- Fix compatibility issue of the
widgets.Tabular.multiBinding
legacy setting with pivot tables and static tabular views. - In charts, filter-out rows which have invalid values for the numerical columns.
- Fix deprecation warning logged when clearing any table widget.
- Fix map-based charts displaying 404 images on the right side of the map.
- Fix the ability to dispose an
MdxQuery
. - Fix exception being thrown for MDX
Order
functions whose second argument is not a compound identifier. - Fix the access to the Showcase project with sandboxes started from scratch.
- Fix an issue in the Content Migration Tool transformation “4.1.8 to 4.1.9 – add ranges to table queries” that could delete bookmark bodies.
- Fix the issue where dashboards would always appear to have unsaved changes.
4.1.10
2017-12-07
Added
- New default themes
lean-light-cerulean
andlean-dark-cerulean
have been introduced while still maintaining the previous ones. - The parameter-list widget can be tried with an experimental flag (see the experimental features page in the documentation) The widget allows one to see, edit (value/activation/expiration) and delete parameters.
- Documented the
cell-editor
,cell-renderer
,numeric-scale-profile
plugins.
Changed
- BREAKING: It's probably not going to impact your project but, if using Basic or JWT authentication, be aware that the local storage authentication keys have been renamed from
auth-full
toactiveui-auth-full
and fromauth-login
toactiveui-auth-login
. - One can now set several cell editors on a table. This brings more flexibility when customizing a table.
- Improve the tables of content for settings and plugins documentation pages to display the first sentence.
- Split the page plugins into Plugin API and Public Plugins for easier access to the list of available plugins.
- Split the page settings into Settings and Default Settings for easier access to the list of available settings.
- Warned in the MDX API docs that
MdxNode
objects should not be mutated.
Themes
With the introductions of the new themes, one change you might notice is the style of the dashboard title which is now centered and all uppercase. If you wish to keep the previous dashboard title style, you can update the dashboard style by:
using the builder:
builder.withStyle({ head: { title: { textTransform: 'none', fontWeight: 'bold', letterSpacing: 'auto', fontSize: 'auto', }, all: {textAlign: 'left', borderBottom: null}, }, });
updating the bookmark/using the Content Migration Tool to modify your dashboard bookmarks to include the following configuration:
{ "style": { "head": { "title": { "textTransform": "none", "fontWeight": "bold", "letterSpacing": "auto", "fontSize": "auto" }, "all": {"textAlign": "left", "borderBottom": null} } }, "showTitleBar": true, "containerKey": "dashboard", "body": "...", "actions": "..." }
Deprecated
- The key
"cellEditor"
becomes"cellEditors"
, now allowing you to have several editors on a table. The one to be used will be the first one to returnisEditable() => true
. - The
color-scale
plugin has been renamed intonumeric-scale-profile
.
Fixed
- Support to set default members context value through the UI (and any future context value with wildcard).
- Fix MDX manipulation on MDX containing
KpiTrend
/KpiStart
/KpiExpiry
function. - Fix crash when trying to save a bookmark in an empty folder.
- Prevent right-clicking from sometimes immediately activating an item in the opened context menu on Mac and Linux.
- Fix Date Recognizer which omits the seconds of the Date.
- Fix resizing of table column.
- Fix error when clearing the parameterList widget.
- The
loadBookmark()
method, which was returning a promise resolving immediately, now resolves only when the container has finished loading, with the API of the widget loaded. - Fix horizontal scroll jumping on the Pivot Table widget.
- Fixed some links to the reference in the documentation.
4.1.9
2017-11-25
Added
- Add a Quick Start page to the documentation.
- Add documentation on how to deploy ActiveUI.
- Documentation of the
row-action
plugin. - Add details to the Basic Container guide in the documentation.
Changed
- Improve React architecture to avoid unmounting containers in dashboard while adding new ones or using drag/drop.
- Displaying/removing the tree columns on a table will now also change the default sorting mode of the table to non-breaking/breaking.
- Content Migration Tool now displays the diff of the transformation.
- Support ActivePivot/ActiveMonitor/ContentServer new APIs appearing in 5.6.0 and that are different from 5.6.0-M2.
- Use WebSocket for all ActivePivot connections against 5.6.
Fixed
- Fix formula editing in the KPI Editor (when the user enters a formula instead of choosing an existing measure).
- “Save as”/“Save” actions now check that at least one content server is defined to avoid crashes.
- Fix two methods that were returning immutable objects instead of plain JavaScript objects (
WidgetApi#getBookmarkValue
/WidgetApi#getBookmarkStyle
). - Fix clear sort action crashing in static tabulars. I does not crash anymore, the we still cannot clear the sort on a static tabular.
- Enforce Real-Time in the Rules Editor while editing parameters.
- Fix some issues in basic container and settings due to the renaming of the tabular and static-tabular containers.
- Fix typo in
MdxQuery#executeOnceAndGetPromise
. Add public documentation for it. - Fix Rules Editor creating invalid monitors + better support for invalid monitors (without configuration field).
- Disable bookmark's description field when translation is provided.
- Unload correctly the Monitor View.
- Support discovery being invalidated in MDX Editor Containers.
- Fix query sent twice to the server when modifying the query in the MdxEditor.
- Fix bug happening sometimes in the MdxEditor: modifying the query and submitting it was not always refreshing the corresponding widget.
- Fix broken drillthrough.
- Fix Content Migration Tool wrongly migrating chart configuration.
- Content Migration Tool now handles container key empty.
- Fix ActiveUI CLI does not work anymore.
- Fix bookmark and data explorer search bar unexpectedly synchronizing.
- Fix Save action not available in monitor list.
- Disable context menu action "export CSV" on incomplete tables (due to lazy-loading).
- Fixed broken link in the “Tabular View & Pivot Table” guide in the documentation.
4.1.8
2017-10-27
Added
- Content Migration Tool deployed at https://activeui.activeviam.com/activeui/content-migration to ease the migration between two ActiveUI releases.
- Ability to register the initial bookmark for BasicContainers, that will be applied when the container is chosen in the UI. That includes pre-setting the dock actions by default, the title bar and name, initial state, etc. (see documentation here)
Changed
- Showcase snippet improvements.
- Replaced CodeMirror with Monaco Editor
- Explicitly use the server's URL in snippets
- Follow Node.js code convention (split into multiple files, use
import
...)
- Introduce
titleCaptionPath
anddescriptionCaptionPath
attributes when declaring a bookmark favorite, to have it well-internationalized. - Add documentation about bookmark internationalization.
- Add support for Java8 LocalDate time format in charts (as ActivePivot 5.6 supports it natively now).
- Added a method
.getAllBookmarks()
on the bookmarks API.
Quick Actions
The new feature Quick Actions will bring a visual difference to your project.
All the bookmarks that were listing the actions to use for the widget will now display these actions inside of a hamburger menu in the top-right part of the title-bar.
In order to display some actions out of the menu, you will have to write them under the key quickActions
.
This will be the default of the SDK for the widgets created in 4.1.8, unless you have overwritten their behavior.
Some migration scripts are provided with the Content Migration Tool in order to migrate to actions
and quickActions
easily, and to tweak that easily (in order to add your custom actions).
Fixed
- Improve the Filter popup layout to be able to read correctly numbers in all filter types.
- Prevent the style formatting for formulas in charts, as it wouldn't have any effect.
- Fix context sub-menus that could overlap.
- Support deprecation of handlers in a missing case for the Tabular widget: when having no configuration at all, the default handlers should be used with a deprecation warning, for compatibility.
- Honor invisible dimensions and hierarchies in flat view of the level picker (all widgets).
- No need to click twice on unfocused popup.
- Truly center popups, even when popup content changes or when the window resizes.
- Bring ability to close popup components that crashed.
- Wrong error when override a SDK plugin.
- Fix Member Selection Popup, which had been broken.
- Fix List widget styling that was cutting list items.
- Fix context menu on the Monitor List.
- Fix and make more robust the auto-starting feature when drag and dropping a bookmark with an 'applicationName' attribute.
- Fix stopping an application while it is loading.
- Fix application not working under Chrome 47.
- Fix autocompletion not listing calculated members or sets on empty ID.
- Fix expand level popup is not big enough.
- Fix chart legend badly overflows when too many levels are mapped.
- Fix Keycloak authentication issues.
- Fix an issue with the KeycloakAuthenticationHolder token invalidation.
- Prevent the unsupported addition of formulas from the Pivot-Table wizard rows/columns.
4.1.7
2017-09-28
Changed
- Add dimension / hierarchy / level / measure in tabular header tooltips when the data source is using MDX.
- Improve application status description to be more user friendly, when hovering on an application node.
- Clean illicit cell properties from MDX when styling a column. This was triggering warnings on server-side.
- Handle better invalid action keys being given in the bookmark actions, and display a more relevant error message.
- Add an option to TextCellEditor to edit formatted value.
- Do not throw when loading a bookmark with a 'applicationName' attribute when there is no portal server defined.
Fixed
- Fixed mutation of MDX nodes that could cause measures in the wizard to appear out of order after reordering them.
- Added missing translations of the “Loading…” message when a view is waiting for a query.
- Fix support for default style in the conditional formatting popup: Do not use the canvas color by default for the default color.
- Allow the removal of default style after having applied it, in the conditional formatting popup.
- Prevent MaterialUI from injecting the font Roboto in some parts of the UI.
- Fixed a bug that would not remove a widget completely from the dashboard when using the remove action: its API would still be accessible programmatically from a sibling by using
.getSiblings
. - Fix call to bookmarks API methods (
activeUI.bookmarks
oractiveUI.getBookmarksApi
). - Fix menu on top of the tree, and in the field chooser (switch from flat to hierarchical view).
- Fix renaming a formula that was creating a new formula.
- Fix handling of invalid password that was broken in 4.1.6.
- Support levels with the same name in different hierarchies in the rules editor. Previously, it would take the first level found.
- Removed some deprecation warnings about "Array structure filter".
- Fix conditional formatting issue when multiple measures are on COLUMNS.
4.1.6
2017-09-01
Added
- Extend the plugin Action to the handlers in the widgets chart/tabular view/pivot table/drillthrough/single value (it was already used for the dock actions): see guides/plugins.html#action for more info. This comes with a deprecation of the mouseHandlers, cf Note below.
Changed
- Add a 'sub-menu' action, which enables sub-menus in context menus.
- Throw an error when your (or our) code mutates MDX nodes, because that would cause bugs. This check is enabled only in development mode.
Since 4.1.6, new bookmarks will contain explicitly the list of "actions" available in context menus, single click, double clicks, dock menus... if you have existing bookmarks, they will keep working as is with a deprecation warning. New bookmarks however will inherit from the new configuration and allow for a more flexible and powerful configuration. If you have an override of mouse handlers, your implementation will still be taken into account and will have precedence over the new action system.
If you want to upgrade your bookmark, you can still do so manually. We are currently working on a script that we will provide soon to help you migrate those bookmarks automatically.
A few necessary changes might lead to potential BREAKING changes on your project:
- In ActiveUI 4.1.4, the
widgetApi#loadBookmark
method was returning a promise which was resolving when the bookmark had finished to load, and was returning acontainerBundle
object, which was composed of the instance of the loaded container, and some internal bindings. - In ActiveUI 4.1.5, the
widgetApi#loadBookmark
method has been a bit broken, it was loading bookmarks correctly, but was resolving immediately, and was returning nothing. - In ActiveUI 4.1.6, the
widgetApi#loadBookmark
method has been fixed and modified a bit, it will still return a promise resolving immediately, but it now returns theAPI
object of the widget loaded by the bookmark. To check whether the bookmark has finished loading or not, aisLoaded()
method is now available on all widgets API. - If you have existing code that mutates MDX nodes that were the result of parsing, you will now, in development mode only, get an error about this. Mutation of MDX nodes was always forbidden, but now there is an error message for it.
Fixed
- Fix error when changing the color of Overlays in the charts.
- Fix French translation in KPI Editor.
- Made the MDX of the Rules Viewer table (for the rules editor) read-only when using the Query Editor context menu.
- Add missing translation in the popup to add columns to a drillthrough.
- Fix mixed-up translations in popup titles such as "Add a column" and "Create a calculated measure".
- Fix error when removing a mapping from a chart while the Formula tab is open.
- Fix Dashboard bookmark favorites that were not loading.
- Fix colour picker icon not visible on Dark Cerulean Theme.
- Fix Drillthrough Popup which was throwing errors upon open and close.
- Fix a wrong order when merging the deprecated setting for the Tabular View/Pivot Table widget. This could only potentially affect projects using the deprecation.
- Fix error when replacing an existing widget with another widget which has no dependencies via the widgets popup.
- Fix bug when defining a setting in the Content Server to hide a widget, which was not reading the setting value.
- Bring back 'NON EMPTY' on columns by default when using the Pivot Table (this was lost accidentally in 4.1.5).
- Fix loading chart bookmark over half-created chart.
- Forbid to add bookmarks that are not containers (like a filter) to the favorites.
4.1.5
2017-07-25
Added
- Bring compatibility with ActivePivot and ActiveMonitor 5.6.
- Ability to change the default configuration of widgets (Cf. bookmark-favorites).
Changed
- Improve and simplified documentation and reference on plugins to include examples of code.
- Improve documentation layout and style. Among others, settings table has been converted to multiple sections and schemas now fit the width with a zoom-in feature.
- Users with the CS_ROOT role can now set up any bookmark read/write permission from the UI (even the one they don't belong to).
- Support
Levels
MDX property function in query editor.
A few necessary changes might lead to potential BREAKING changes on your project:
- The URLs in the documentation now end with
.html
instead of a slash. This is to make sure that the links work fine regarding of the server hosting the docs (some do not redirect automatically to index.html when asked for its directory). Please update your links to our docs if you had some. - In the
DashboardApi
, thegetContainers()
method was returningEmptyContainers
instances if it had some. Now, it only returns containers that are not anEmptyContainer
.- However, the
dashboardApi.getSiblings()
method still returnsEmptyApi
instances (it is has some), but callingemptyApi.getContainer()
will returnundefined
. - If you were looping over the siblings to find a sibling with a particular container key (ie doing
widgetApi.getSiblings().filter(s => s.getContainer().getKey() === 'MyContainer')
this will break if you have anEmptyApi
in the siblings. You should now use thewidgetApi.getNonEmptySiblings()
method instead to do so.Also, awidgetApi.getNonEmptySiblingsMap()
method has also been introduced.
- However, the
Fixed
- Clear correctly and completely the containers when unloading them.
This fixes various issues:
- Dashboards thinking there were changes but there were not.
- When opening a pivot table with many lines, and the user had scrolled when using the previous one, then the pivot table was already scrolled.
- Loading and unloading dashboard containing ActiveMonitor components would fail.
- Fixed form fields in some places being slightly misaligned.
- Fix tooltips throwing errors when hovering on a cell having an object as value.
- Fix error thrown in the KPI Editor when starting with a custom KPI and switching back to other types.
- Fix error thrown in the KPI Editor when checking the "link icon" on the warning margin.
- Fix regression preventing from selecting a sub-folder when creating/editing a bookmark.
- Bring back the BOM marker in CSV export: this solves encoding issues with exports containing special characters like '€' in Excel.
- Fix static tabular sorting broken.
- Fix bug making the Rules Editor keep loading indefinitely when submitting the creation or modification of a monitor.
4.1.4
2017-06-29
Changed
- Members filter prevents cardinality issues by capping how many members you can retrieve (cf memberSelection.chunkSize in Default Settings).
- Add support for
Correlation
MDX function in the editor. - BREAKING: The default label color for raised buttons was not enforced and defaulted to the inherited CSS text color.
Now this color is enforced to be the theme's
textColor
. - Improve the
PopupBuilder
API. - Introducing a flag in order to not persist in the bookmarks the content of a non-MDX widget.
Use the flag
storeData: false
in the configuration of the widget for this behavior (will probably become the default behavior in 4.2.0). - Themes can now be registered as plugins. The "theme" snippet shows how it can be done. The types related to the theme plugins can be found in the reference.
Fixed
- Fix multiple member selection that was not possible in the filter Popup, when dragging a row or hierarchy wizard tile to the filters area.
- Fix horizontal scrollbar missing in the member picker of the filters popup.
- Filter irrelevant possible destinations offered to load a dashboard bookmark.
- Fix extra sub-folders showing up in discovery tree when folders start with the same name.
- Fix drillthrough in the same widget which was broken.
- Fix error when right-clicking on a
SingleValueWidget
while waiting for the initial data. - Fix the JSON editor (when editing the state of a component) which was reformatting as the user was typing.
- Disable drillthrough on non-numeric members, and context-menu that was throwing on those non-numeric members.
- Fix right-click on context-values which was throwing.
- Add a comma separator in the title of charts when using the row/column splitting.
- Fix chart options crash with the chart accessible in the rules editor widget.
- Fix performance leak with Basic Containers.
- Fix Caption cache MDX queries are sometimes run multiple times.
- Fix all real-time view crashes when one view fails in a dashboard.
- Fix updated cell keep blinking on every scroll.
- Fix can't export to CSV table with styled cells applied through conditional formatting.
4.1.3
2017-05-17
Added
- Save all the necessary cloud attributes in the bookmarks, so that drag-and-dropping a bookmark of an offline application works out-of-the-box.
- New OrdinalColorScale plugin to define different color set/mapping for Chart and Pivot Table tree cells.
- Ship Flow definition file to provide static checking and autocompletion when using the ActiveUI API.
- We introduced a proper way to define a color set or color mapping for Chart and Pivot Table.
If you were overriding
widgets/charts/ColorMappings.js
,widgets/charts/OrdinalColorDomains.js
ortheme/tabular/sub/TabularBody.theme.js
please remove your override and use the OrdinalColorScale plugin.- Example for the Pivot Table: once you defined your own plugin/picked the one you want to use (let's say
my-plugin
), you can change the tree cell color by defining the following state:
{ "...": "...", "columnsGroups": [ "...", { "captionProducer": "...", "selector": "...", "cellFactory": { "key": "treeCells", "args": { "...": "...", "colors": "my-plugin", "...": "..." } } }, "..." ], "...": "..." }
- Example for Chart: once you defined your own plugin/picked the one you want to use (let's say
my-plugin)
, you can change the attribute color by defining the following state:
{ "configurations": [ { "mapping": { "...": "...", "color": { "from": "...", "colors": "my-plugin" }, "...": "..." }, "type": "..." }, "..." ] }
- Example for the Pivot Table: once you defined your own plugin/picked the one you want to use (let's say
Changed
- New API for registering plugins.
Instead of having to use a builder, plugins can now be registered through a single plain JavaScript object.
The new API will allow us to eventually provide better static checking.
Indeed, after another development on our side, Flow should be able to see if the plugin you registered implements the good interface.
- Take a look at the new plugins guide to see how to use it. The previous API is still working and not yet deprecated but it will be at some point.
- When creating a bookmark with an empty array as dock actions, the 'Remove' action is added by default (to keep compatibility).
Using the flag
actionStrictMode: true
, the remove action will not added anymore. - Speed up various actions by caching parsed MDX expressions, providing e.g. 3× faster loading of some bookmarks.
- Stop a cloud application properly by releasing the associated resources.
- Handle session cookie lifetime shorter than token lifetime in the Cloud.
Fixed
- BREAKING: As it was supposed to be,
widgetApi.getParent()
now returns adashboardApi
that behaves like any other widget API. It has all the methodsgetBookmarkName()
etc, includingloadBookmark()
andunloadBookmark
that will respectively replace or clear the dashboard. Before this bugfix, callinggetParent().loadBookmark
was replacing a child and not the dashboard itself. If you were using it, please change to.getParent().loadChildBookmark
andgetParent().unloadChildBookmark
. - Fix an error while editing an existing KPI.
- Fix bug in portal discovery tree: expanding an application node would fail during the first seconds of the application lifetime.
- Applying Conditional Formatting does not delete custom/unknown cell property types, or other unsupported expression types.
- Fixed a regression in the rules editor, not displaying the KPI name anymore.
- Fix issues with theme switching, which was not updating all the components right away.
- Add
whiteListedUrlPrefixes
option inKeycloakAuthenticationHolder
to solve token refresh issues. - Fix logout issues related to the
KeycloakAuthenticationHolder
. - Setting the Base is now fixed on the Gauge chart.
- Fix the wrong parameter expression given in the tooltip of the Regression Overlay, for linear regression and exponential regression.
- Fix persistent label on a chart, when removing the 'row/column' attribute.
- Fix bug in the Discovery tree, that made the sub-folders and their children appear as greyed-out.
- Fix an error while saving a new bookmark, on a remote content server that was not fast enough.
- Fix wizard, tabular view and filter handling of KPI functions.
- Fix nothing is displayed when selecting AllMember in filter popup.
- Fix missing "args" key in Tabular component column order parameter.
- Fix filters break when not recognizing certain MDX.
4.1.2
2017-04-07
Fixed
- Fix the Popup API throwing for Popups which do not need arguments.
- Fix some errors in development build, when right-clicking on charts with a time axis.
- Fix context menu error when trying to do a CSV export on a multi-layer chart.
- Fix bug in the Rules Editor with multiple monitors on the same rule.
- Fix rules editor bug with KPIs with a margin of 0%.
- Fix error when changing line chart to map chart.
4.1.1
2017-03-22
Added
- Configure hamburger menu position.
- Add setting to choose whether the csv export should use header/cells captions or values.
- Add support for
Log
andExp
functions in MDX.
Changed
- Update react-scripts version to 0.9.0 in the sandbox.
- Make sure the new override CLI command uses the same transpilation pipeline than the SDK.
- Retrieve the context values properties from the discovery when connected to ActivePivot >= 5.5 instead of executing a separate SOAP request.
- Added new methods on the programmatic bookmark API, to find a bookmark id by name or based on a predicate.
- Improved axis detection in the wizard, to now support any string case in the axis name, and numbers.
- Add a max of 100 when setting a percent filter.
- Catch uncaught error through application error system.
Fixed
- Remove unneeded extra properties in Chart state.
- Remove remaining chart tooltip on bookmark drop.
- Fixed a crash of the tree inside of the Pivot Table popup, while adding a measure, when trying to display a KPI that has a lookup node.
- Loading a bookmark programmatically now syncs it with the content server, which is the expected behavior.
- Fixed a bug happening when removing a hierarchy from the wizard.
- Support null values in a table during the csv exports.
- Fix errors not cleared when resetting the MDX editor.
- When adding a server, the default port is now the current port instead of 9090.
- Improved stability of the '+' feature of the wizard.
- Fix regression on ActiveRestQuerier old signature constructor.
- Fix regression on ActivePivotServer deprecated
getRestQuerier()
method. - Fix blue marks / formatting / focus issues in MdxEditor and Formula Popup.
- Fix MDX axis properties are now correctly handled by the application.
- Fix exception when adding twice the same server.
- Fix context value widget does not send a valid value for ENUM the first time.
- Fix MDX NON VISUAL keyword not handled correctly in the editor.
- Fix MDX order was incorrect for ordinal and dates column.
- Fix the right-click/expand on pivot table and tabular view component.
- Fixed a bug when clicking on a table header after certain actions in a specific order.
- Fixed support for an empty content server the first time ActiveUI is connecting to it.
4.1.0
2017-02-10
ActiveUI 4.0 branch is not maintained anymore. We have maintained all our APIs in 4.1 with deprecation warnings in order for you to easily upgrade from 4.0 to 4.1.
Added
- For every release, we now deliver a CSV file containing all the dependencies we bundle and their license. See activeui-licenses-4.1.0.csv.
- Add an entry point in the widget API in order to load a remote bookmark programmatically, allowing the creation of more collaboration mechanisms (such as sharing a bookmark through the URL).
- Add a setting to control default real-time behavior of the Mdx queries. Setting default mode to 'once'.
- Add "unbundled" build.
- Add new sandbox based on Create React App.
New Sandbox
A new sandbox based on Create React App has been developed.
It's using the new "unbundled" build of ActiveUI allowing you to override SDK modules at "compile" time rather than at runtime through ActiveUI.cfg.override
.
This sandbox should provide a great developer experience for PS teams and clients while at the same time giving us more time to work on the SDK product since we won't have to maintain the build configuration anymore.
You can still find the previous sandbox in our artifacts but it is now considered legacy and won't be updated in the future.
The main difference between the new sandbox and the old one is that functions ActiveUI.cfg.define
and ActiveUI.cfg.override
won't work with the new sandbox.
To override our module data/Table.js
you would now have to edit it directly in your file system at node_modules/activeui/dist/lib/scripts/data/Table.js
.
Of course, if you only do this, you would lose your modifications each time you update the version of ActiveUI or if you build your project on another machine.
One of the solutions is to use a postinstall
script in your package.json
to automate this.
For instance, you could have "postinstall": "cp my-overriden-modules/Table.js node_modules/activeui/dist/lib/scripts/data/Table.js"
.
This is actually exactly how you would do if you wanted to override a react or material-ui module.
To help you override SDK modules, a CLI has been added to the ActiveUI package. See the new documentation section for more information.
Create React App
create-react-app 0.9.0 has been released just after ActiveUI 4.1.0.
You might want to update your react-scripts
dependency in your package.json
to 0.9.0 if you are interested in Serving the Same Build from Different Paths.
Changed
BREAKING: Node.js LTS 6.9.x has been released. ActiveUI 4.1 and its sandbox will require it and we plan to stick to it until the next LTS.
BREAKING: We renamed our package from
livejs
toactiveui
. If you have the key"livejs"
in yourpackage.json
dependencies, you have to rename it to"activeui"
.BREAKING: The Webpack configuration of the legacy sandbox don't support absolute path imports for internal modules anymore. To import your own modules, please use relative paths.
BREAKING: The bundled d3 library has been migrated from version 3.5.10 to 4.5.0. If you were using the d3 library bundled with livejs, please refer to d3 migration notes and d3 v4.x documentation.
BREAKING: react and react-dom have been upgraded to 15.4.x as peer-dependencies. You need to add these dependencies to your project
package.json
.BREAKING: The other bundled dependencies have also been upgraded. You can see the list of new versions in the 4.1.0 documentation. The only one that will probably impact your project is lodash. Indeed, we have upgraded it from 3.10.1 to 4.17.4 so if you were importing lodash from ActiveUI, make sure to read its change log.
BREAKING: We don't modify anymore the export structure of react-dnd. Here are the modifications that need to be done if you where directly importing react-dnd in your project:
// First change -import ReactDND from "react-dnd"; -ReactDND.dropTarget(); +import { DropTarget } from "react-dnd"; +DropTarget(); // Second change -import ReactDND from "react-dnd"; -ReactDND.dragSource(); +import { DragSource } from "react-dnd"; +DragSource(); // Last change -import ReactDND from "react-dnd"; -const dragDropManager = new ReactDND.DNDCore.DragDropManager( - ReactDND.HTML5Backend -); +import { DragDropManager } from "dnd-core"; +import ReactDnDHtml5Backend from "react-dnd-html5-backend"; +const dragDropManager = new DragDropManager(ReactDnDHtml5Backend);
Due to the upgrade of the d3 version, the computation of space arrangement is slightly different and might draw by default more ticks on an axis than before. As a reminder, you can change the tick count on a axis using the slider in the axis options.
Implement versioning system that handles ActivePivot 5.4 and now 5.5.
Give local data to callback of chart local context menu.
Update Eslint shadow rule.
Add some colors to the palette, for a finer configuration of the theme (chartAxisLineColor, chartAxisTextColor, chartGridStrokeColor, editorBackgroundColor).
Complete Alert API with #start, #stop and #update.
Correct API to support querying all alerts, not just active or stopped.
Added an env.js file to configure the server URLs to use with the showcase snippets. Added text inputs in the UI to override them through the query string.
The implicit chronological order enforced when using
ActiveUI.cfg
andActiveUI.api
is now replaced by theActiveUI.initialize
function that cannot be misused.Added the triggerActionOnClick in the FieldSet component. This enable a FieldSet with only one action to trigger it when the user clicks on the FieldSet.
Rebranding
Since QuartetFS has been rebranded into ActiveViam and ActivePivot Live into ActiveUI, we have updated the following:
- JIRA APS versions have been updated from
live-4.x.y
toui-4.x.y
. - Documentation location have been updated to https://docs.activeviam.com/products/atoti/ui/4.1.0/
- Share folder location have been updated to https://artifacts.activeviam.com/share/ActiveUI_stable/ & https://artifacts.activeviam.com/share/ActiveUI_alpha/
- The root folder on the content server has been renamed from 'live' to 'ui'.
This means that when you will connect to a content server to the first time, the folder structure will be initialized with 'ui' as the root.
This also means that all previous bookmarks stored under 'live' will not be seen by active ui.
There are two ways to solve this problem:
- Rename your current folder 'live' into 'ui'. You can use the ContentServerSnapshotter to export then import the bookmarks in the correct folder. See the documentation.
- Configure ActiveUI in order to keep using 'live':
ActiveUI.initialize({contentServerRootFolderName: 'live'});
Removed
- The legacy
.eslintrc.v1.8.0
file has been removed. If you were still using it please refer to the [4.0.12] section.
Fixed
- Made a fix to remove the chance of conflicting bookmark ids on the content-server.
- Make Rules Editor widget savable + fixed a bug that happened after clearing it in a dashboard.
- Fixed the generated KPI formulas to work correctly with negative limits, while still supporting previous formulas.
- Fixed an issue when authenticating with different users in different browser tabs. Now the security is always the one of the user written in the login popup.
- Fix bugs with the login popup. It now supports naturally the wrong passwords.
- Update SingleValue widget to handle an empty starting config.
- Various drillthrough fixes.
- Fix regression in 4.0.12 when Basic Container were using an asynchronous
.load()
method. - Fix bug that always set the bookmark permissions to 'private' when using the Save button.
- SettingsManager does not log a warning when it cannot set the setting on the server (on top of locally).
- Fix unknown theme in content server crashes the application.
- Made table columnsGroups compatible with settings.
- The filter popup's member picker now display a table without scrollbar glitch, hiding the last member.
- The context values widget now updates correctly when a context value is added to a query in the dashboard. It used to only get updated once the mouse hovered over it.
- Support logarithmic scale on histogram chart + display error when points invalid on the scale.
- Levels in Tree view are now correctly sorted according to their index.
- Prevent application from crashing if an unknown theme is configured on the content server.
- Submit button is now disabled if MDX is invalid or empty when creating a filter or a formula.
- Fixed an error when a chart react component created with .toReactComponent was being unloaded.
- Fixed an issue with the scrollbar on big tables, making it display max 38k rows on chrome, and disappear on Firefox (19k lines) and IE (1.5k lines).
- Login should be maintained after logout.
- Fixed overflow in conditional formatting preview.
- Deprecate RestQuerier query method in favor of a fetch method following 2 params signature official fetch documentation & allow the use of fetch cross browser.
- Fix data explorer not greying-out cube names when dropping a bookmark.
- Fix an issue in the DrillthroughColumnChooser which was throwing an exception if the available column names and captions had not been received yet from the server when opening it.
- Fix charts not being marked as modified when changing the underlying MDX query manually.
- Fixed some cases where table tooltips would remain even though the table has disappeared.
- Rollback to previous definition when we fail updating a KPI.
- Fix discoveries that were done twice.
- Fix a bug that would make the wizard disappear in the Pivot Table component in some dashboards.
- Fix a bug that made the inbox unusuable (user actions had no more effects) when saved as bookmark.
- Made Map charts compatible with IE11 and Edge.
- Prevented word-wrapping in tables in favor of ellipsis, in order to display cells with a long content properly.
- Fixed the issue of multi-layer charts disappearing on Chrome.
- Correct MdxEditor usage of CodeMirror to correctly mark invalid info.
- Fix PivotTable that was not collapsing on some MDX.
- Fix mono-selection when adding a filter in the Rules Viewer.
- Fix bug when removing members (for ex hierarchies) from a table that had been scrolled down.
4.0.12
2016-10-11
Changed
- BREAKING: Horizontal histograms (and Gantt) charts bar order has been reversed to be in the same order than the color legend. The order of the bars displayed in the chart is the order of the data in the rows of the cellSet, and the first row was previously displayed at the bottom of the chart. We now display the first row at the top of the chart and print all of them from top to bottom. If you were ordering your data to achieve a given order you will need to reverse or remove this order. The order of juxtaposed bars has also been corrected to follow the same order than rows. This impacts also the rendering of bar charts (both horizontal and vertical bars). Juxtaposed bars were ordered the other way than the non juxtaposed bars which produced previously misleading charts.
- The theme and locale are now settings.
- SettingsManager.onSync has been added. It's a promise that resolves once the settings are synchronized with the Content Server.
- Provide the chart Api with access to the dock and dashboard (story-telling) in the chart mouse handler.
- Add Maven Integration.
- JavaScript Linting has been enriched in the SDK and sandbox.
- Add setBookmarkName, setBookmarkStyle and setBookmarkShowTitleBar to the container API.
Sandbox ESLint integration
We have upgrade our version of ESLint. When upgrading the sandbox, you should have some warnings about dependencies discrepancies. Therefore you have two options:
Recommended
Keep your .eslintrc
file as it is and update your eslint dependencies in your package.json
as followed:
.eslintrc
{
"extends": "./node_modules/livejs/dist/builder/.eslintrc"
}
package.json
{
"...": "...",
"devDependencies": {
"...": "...",
"eslint": "3.7.1",
"eslint-plugin-react": "6.3.0",
"...": "..."
},
"...": "..."
}
Not Recommended
Keep your package.json
file as it is (this will trigger multiple warnings at install time that you can ignore) and update your .eslintrc
file as followed:
.eslintrc
{
"extends": "./node_modules/livejs/dist/builder/.eslintrc.v1.8.0"
}
package.json
{
"...": "...",
"devDependencies": {
"...": "...",
"eslint": "1.8.0",
"eslint-plugin-react": "4.2.3",
"...": "..."
},
"...": "..."
}
Fixed
- Fix bug causing unexpected state initialization when the state had an array, in components using the BasicContainer API.
- Correct issue when hierarchies were removed from a filter function.
- Fix blurry centered popups in Chrome.
- Revert the breaking change for the scale of stack histograms introduced in 4.0.11.
- Fix wrong title when creating a folder.
- Fix bug that prevented users from updating the permissions correctly on bookmarks/folders.
- Support adding server with a trailing slash url.
- Fix bug when scrolling state and table size were not synchronized.
- Add server popup incorrectly validates some urls and sometimes stay in "pending" state forever.
- Fix issue preventing loading any bookmark if one server is down.
- Fix unable to resize container when using HTTP widget.
- Fix side-effect of member selection popup that caused monitor list widget to have a small width.
- Repair histogram on map chart.
4.0.11
2016-09-15
Added
- A
toBookmark
was added on the widget builders. It is useful when creating the content of a dashboard programatically or when using the story-telling API. - The Java class
ContentServiceSnapshotter
has been added server-side (available in the 5.4.3 stack and later versions). It allows manual or automatic initialization of the Content Server. - A mechanism has been added in the sandbox to load an
env.js
file. Two pages document how to use it.
Changed
- A
withDefaultActions
was added to the basic container plugin builder to define the actions to show by default in the dock header. - DateRecognizerTransformer now takes by default the caption from the server instead of date.toISOString.
- The API object accessible through tabular view plugins can now climb up the parent APIs until the dashboard one (if existing) in order to simplify the story-telling.
- The dock actions
onClick
method receive the container API as third argument.
Sandbox
BREAKING: A new
npm
dependency has been added to improve code-splitting. Please install it by runningnpm install --save-dev webpack-split-by-path@0.1.0
. (If you had installed thepath-chunk-webpack-plugin
dependency used by the 4.0.11-* nightlies you can remove it)The sandbox now comes with a simple mechanism to load an
env.js
that can be used to store environment-specific configuration. Take a look at this documentation page to understand why it can be useful. If you want to take advantage of it without having to download a brand new sandbox there are only two things to do:- Add
<script src="./env.js"></script>
after<div id="root"></div>
insrc/index.html
- Create the
env.js
file in your project root (next toREADME.md
) and put the following code inside (just for the example):// This file is loaded by index.html and can be used to store environment-specific configuration. // It will be automatically copied to the build output folder by the default Webpack config. window.env = { url: 'http://localhost:9090', };
- Add
Fixed
- Sparklines now rerender on data updates.
- Fix buggy jumping and non-existent scrollbar.
- Fix bug with
.toReactComponent()
API, specifically with dashboards. - Bring back the enforced range and step for chart attributes in the legend, for example opacity between 0 and 1 instead of between 0 and 100. Same thing for strokeWidth, inner/outer radius...
- Correct detection of columns to use in search for Monitor and Alert lists.
- Fix display of measure table for alert details view.
- Fix bug with dates on the color axis in charts.
- Fix charts (mainly histograms) overflowing over axis when forcing minimum range.
- Fix bug when measure was on slicer and no captionPath was provided in the cellset.
- Generate correct expression to see all members when dropping a slicing hierarchy in the wizard.
- Correctly export tuples on columns in CSV export + provide settings for the csv export.
- Fix layout issues in IE11.
- Fixed ability to set value of a custom KPI.
- Fixed the ability to edit the formula previously set in a single value widget.
- Fix expansion issue for custom user MDX.
- Allow recovery from incorrect cubeName in MDX editor.
4.0.10
2016-08-12
Changed
- Remove some assertions in production.
- Formula editor now allows editing of current formula.
- Added a
.notChoosableFromUI()
method to the basic container API. - Made the chart time axis formatter customizable.
- Allow locale synchronization to be disabled.
Synchronized internationalization with ActivePivot
BREAKING:
In order to synchronize ActivePivot and ActivePivot Live internationalization, the application is now performing a call to server on startup.
It has been brought to our attention that some servers are not configured to handle this request and thus produce a No ICubeFormatterFactory with key en-US
error.
There are three options to prevent this and only one should be implemented (depending on your i18n needs):
- Update ActivePivot Live code in the configuration part with
ActivePivotLive.cfg.synchronizeLocale(false)
, which disables the feature. This configuration only prevents ActivePivot Live from defining a locale for ActivePivot. If you launched once ActivePivot Live without this configuration line, a variable is stored on the content server that will continue to produce the error. In which case you also need to remove the line that has been written on the content-server after the 'synchronization call', which is underpivot>entitlements>cv>global>${user}>IMdxContext
. You will see in that file the line<cubeFormatter>en-US</cubeFormatter>
which is causing the error. - Configure internationalization on the server side and implement the
ICubeFormatterFactory
to support the desired locale. - Upgrade to ActivePivot 5.4.3+. It will only log a warning instead of throwing an error if there is a missing locale.
Fixed
- Support prop "value" of TextEditor to be undefined.
- Correctly use disabled prop of TextEditor if readOnly is not specified.
- Add again 'add mapping button' on ordinal legends in charts.
- Support an MDX displaying some subtotals without grand totals in tabular view/pivot table.
- Bring back ability to pause and show the MDX for chart layers.
- Fix issue in dashboards keeping users from using an empty dashboard bookmark, in order to 'reset' the dashboard.
- Fix transparent fore/back ground color for MDX cells.
- Fix bugs causing the dashboard dashed lines (to resize) not to disappear.
- Correct i18n updating for charts and on initial load.
- Prevent unexpandable levels from polluting MDX query.
- Fix Drillthrough binding issue causing regression.
- Fix crash in wizard widget when no dock is selected.
- Repair the ability to format the numerical axis values on chart.
4.0.9
2016-07-27
Changed
- Some functionalities previously only accessible by using
ActivePivotLive.api.modules.get()
are now exposed directly through theActivePivotLive.api
. - Add broader error handling for bookmark errors and corruption.
Fixed
- Bug with the widget API (
widget.createTabularView
...) introduced in 4.0.8. - Displays the various counts - red, green, ... centered in the Monitor Status cell, instead of above each bar.
- Corrects the computation of bar size in Monitor Status cell.
- Error in bookmarks creation due to misunderstood bookmark.
- CSV export now support table with empty cells.
- Tooltips would often appear out of nowhere or would just not disappear.
- Fix auto-correct in MDX editor that would remove undefined argument in functions.
- Add more support for "folding and unfolding of treecells".
- Handle correctly unknown theme name.
- Editing context values on a chart will now apply them on every layers.
4.0.8
2016-07-06
Changed
- The links in the docs pointing to other pages now have a trailing slash in their URL that prevent a useless HTTP redirect when clicking on them.
- Don't append
*
to the end of the bookmark title when it has a body but is not writable.
Sandbox
Add a
favicon.ico
file in the project root folder.The Webpack build has been improved to be faster and cross-platform. To benefit from these changes, tweak your scripts in
package.json
to use these new ones (no more prebuild tasks needed):{ "start": "npm run build:watch", "test": "npm run test:watch", "postinstall": "npm prune && node node_modules/livejs/dist/builder/check-dependencies", "build:watch": "webpack-dev-server --port 8000", "build:watch:staging": "cross-env NODE_ENV=staging npm run build:watch", "build:watch:prod": "cross-env NODE_ENV=production npm run build:watch", "build:once": "webpack --colors --progress", "build:once:staging": "cross-env NODE_ENV=staging npm run build:once", "build:once:prod": "cross-env NODE_ENV=production npm run build:once", "test:watch": "karma start --auto-watch", "test:once": "karma start --single-run" }
If you want to be able to browse the docs and the showcase project from the sandbox, add this to
webpack.config.js
:const CopyWebpackPlugin = require('copy-webpack-plugin'); config.plugins.push( new CopyWebpackPlugin([ {from: 'node_modules/livejs/dist/docs', to: 'docs'}, {from: 'node_modules/livejs/dist/index.html', to: 'showcase.html'}, {from: 'node_modules/livejs/dist/scripts', to: 'scripts'}, {from: 'node_modules/livejs/dist/showcase', to: 'showcase'}, // The fonts are used by some snippets in the showcase. {from: 'node_modules/livejs/dist/fonts', to: 'fonts'}, ]), );
Fixed
- The sandbox build is now faster and don't rely on cash-rm, cash-mkdir and cash-cp dependencies that do not work correctly on Windows.
- Fix infinite rendering loop in basic containers when calling setState.
- Update support for MDX manipulation in pivot table.
- Correct CSS styling for tree's scrollbar to not be overcome by nodes.
- Catch bookmark errors so that unreadable or misconfigured bookmarks do not affect rendering of others.
- Clean the bookmark structure we receive from the content server so that ActivePivot Live does not have to deal (and crash) with malformed bookmarks.
- Fix bugs with filters inside the drillthrough popup.
- Allow server creation in IE 11.
- Fix bugs disallowing subfolder creation in bookmarks, and display folder path while creating a bookmark.
- Prevent popup from going beyond window size.
- Fixed ability to edit bookmark inside folder.
- Column size of one table affecting another.
- Fixed ability to add new layer to histogram.
- Updated Chinese translation.
4.0.7
2016-06-25
Added
- Developed multi function button.
Changed
- Add some optimization in production build for improved performance.
- Restore displayName of react component in production.
Palette
There has been some modification on the theme keys for overridden specific components.
Here are the list of keys that have changed:
Old key | New key |
---|---|
tabularSelectionBoxShadow | tabularSelectionBoxShadowColor |
tabularSelectedCellBoxShadow | tabularSelectedCellBoxShadowColor |
containerHeadBorderBottom | containerHeadBorderBottomColor |
containerSelectedBoxShadow | containerSelectedBoxShadowColor |
chartMainLegendHeaderBorderBottom | chartMainLegendHeaderBorderBottomColor |
dashboardEditPopupCancelBorder | dashboardEditPopupCancelBorderColor |
nodeChooserBoxShadow | nodeChooserBoxShadowColor |
sentinelMessageBoxShadow | sentinelMessageBoxShadowColor |
sentinelAlertBoxShadow | sentinelAlertBoxShadowColor |
colorPickerBorder | colorPickerBorderColor |
Before in order to override, you had to include the entire CSS, such as:
const style = {
containerHeadBorderBottom: `4px solid ${palette.accent1Color}`,
};
However this has been changed so that by default containerHeadBorderBottomColor: ${palette.accent1Color}
and therefore you just need to define the color.
Fixed
- Gauge chart now changes color when we change it in its binding (through the State popup).
- MdxEditor does not display an error anymore when writing a calculated member on another dimension than measures.
- Fix production flag was not correctly apply. This should lead to a significant performance boost in production.
- Add more information in report about project build.
- Sourcemap now come separated from the main file.
- Fixed tile rendering that prevented reordering tiles in Dashboard.
4.0.6
2016-06-17
Changed
- Handle errors in the
load
/unload
methods of containers.containers.load()
can now return either an object or a Promise.
Fixed
- The Rules Editor now handles rules that are overlapping.
It means that, when a workflow is added on a rule Desk, it understands that it will also cover the rule
Desk: DeskA
and displays that information as a read-only tag. - Custom dashboard style was not applied to selected dock.
- Error message details are now wrapped correctly.
- Fix MDX autocompletion.
- Query Editors (Filters, Context Values, Wizard, MDX) now display a message when not linked to any widgets.
- The context value widget was having a bug when having several widgets using it in the dashboard.
- Make autocompletion case insensitive.
- Remove runaway binding listener on container clearing.
- We now recognize the measure of a table when the information is provided in the slicer, otherwise display the default measure (previously we were always displaying the default measure). The slicer information is for now only sent through the rest service.
- No more error when the cellset returns the slicer axis, only present in the Rest service.
- Time Charts with non date data fallback correctly to regular chart.
- Fix bug when clearing a dock inside a dashboard that was saved as a bookmark.
- Fixed some layout issues for ie.
- Map chart no longer renders unknown images.
- Be able to retrieve custom popup content in submit.
- Multi-query line chart issue fixed.
4.0.5
2016-06-03
Changed
- Add tree mouse handler API (global mouse handler + node mouse handler).
- Add documentation for translations.
- Add comments in the sandbox source files to explain their purpose so that it's easier to understand to project structure.
- Provide react API for Theme selector, Locale selector, and Logout button.
Also expose
.getAvailableThemes()
and.setTheme()
methods. - Document a starting point for ActivePivot Live 3 bookmark migration.
- Build under NodeJS 6 does not print scary warnings anymore.
- BasicContainer API to build containers (see the BasicContainer documentation).
Fixed
- Fix incorrect wording.
- Prevent multiple TreeCell groups to be added to tabular/pivot views.
- Remove non intuitive and error prone "Stop Query" entry.
- Fix double scrollbar in tree.
- Fix header for KPI status and lookup columns (do not merge headers anymore).
- Don't display hidden drillthrough columns in the column chooser.
- Sorted column of tabular/pivot tables based on static data is now persisted in the bookmark.
- Made renaming of tuple headers possible (on pivot tables).
- Ability to see KPI expiry columns (was crashing when other grouped columns in the same table).
- Display the path when creating a bookmark folder.
- Fix create KPI Popup cross to close it, as it was calling previous step.
- Fix Rules Viewer (chart view) for the Tunnel Out, and display the chart without background (just with lines) for the custom KPIs.
- Resizing tiles in the dashboard is no longer selecting text.
- Stack separately negative and positive values in histogram.
4.0.4
2016-05-11
Changed
- Corrected KPI formulas in order to have the lookup as the limit between alert and warning.
- Add PopupPluginBuilder to support custom popups.
- Document how to install and integrate ActivePivot Live.
Sandbox
Apply the following change to the Root.css
file in the sandbox:
-@import url(http://fonts.googleapis.com/css?family=Lato:300,400);
-
-*,
-*:after,
-*:before {
- box-sizing: border-box;
-}
-
html,
body,
#root {
height: 100%;
margin: 0;
- background-color: #334d5c;
- line-height: 1.25;
- font-family: "Lato", "Avenir Next", Arial, sans-serif;
+ font-family: Arial, sans-serif;
}
Fixed
- Fix remove color from header style popup.
- Fix can't set transparent color from header style popup.
- Handle correctly unknown color for Tabular header and cell.
- Handle overflow in wizard tiles.
- Fix rendering error on unknown MDX.
- Fix some filter legend.
- Update MDX parser to parse unknown property functions.
- Cell conditional formatting now works with tuples (crossjoin of measures on columns).
- Fix search bar in ActiveMonitor inboxes.
- Fix incorrect Sandbox CSS style.
4.0.3
2016-05-02
Changed
- Introduced followers mapping for multi-layered charts.
- Use default member rather than [contributors.COUNT] in MemberSelection.
Fixed
- Initialize correctly the inboxes created through widgets#createSentinelMessagesInbox and widgets#createSentinelAlertsInbox.
- Update KPI formula to include a check for parameter nullity.
- Issue in tabular tree that would collapse levels to eagerly is now fixed.
- Fix a memory leak that was trigger quickly an out of memory when displaying big table in real time.
- Fix display issue with crossjoined N/As creating duplicate parent nodes.
- Removed misleading factor change UI on chart axes.
- Tabular view was adding NON EMPTY when adding columns, although only Pivot Table view should.
- Sparkline colors context menu now works again as expected.
- KPI functions are now supported in the
WHERE
clause. - The KPI status column is now displayed when a KPI status is used in the Where clause.
- Drag and drop of lookup now works.
- Drag and drop kpi-expiry adds kpi-start to query.
- KPI status supports values not strictly 0, 1, -1.
- Fix MDX bug when sorting on some levels.
4.0.2
2016-04-25
Changed
- Add documentation for the Dev API and the settings.
Fixed
- KPIs / Rules editor
- KPI measures created from tabular views and pivot tables are now editable.
- The rules editor now support initial MDX with sub-select filters.
- Charts
- In charts, support removing a field mapped to different attributes.
- Prevent chart switching from creating invalid mappings.
- Miscellaneous
- Prevent nesting dashboards inside each other.
- Support drag and dropping levels on columns in the pivot table wizard.
- Fix UI bug when renaming a header in a tabular view.
- Filter out non compound ids when reading filter expressions.
4.0.1
2016-04-15
Changed
- Translations have been updated and improved.
- Date Recognizer transformer supports a fallback.
- Library import should now use 'livejs' rather than have multiple places of import.
- Plugins can be overridden using the special
registerOverride()
method. - Documentation has been improved
- Tabular View.
- emphasis is now supported.
Fixed
- Rules Editor
- Fixed KPI creation.
- Chart
- Legend now displays without preventing use.
- Dashboard
- Remove dock action has been added to be available on docks.
- Font import is now correctly configured.
- Field Chooser
- Rerendering which levels were included in the tabular was lagging due to an async issue, now fixed.
- Pivot View
- Direct expansion from an MDX without rows, now functions as expected.
- Hierarchy drag and drop was fixed to match ActivePivot Live 3 features.
- Tabular View
- Drillthrough correctly rerenders.
- Resizing grouped columns works better.
- Plugins support both a string describer and an object describer with properties key and args.
- Static snippet page has been updated.
- Grouped columns now correctly display style.
- Sparkline color after creation issue has been resolved.
4.0.0
2016-04-08
Missing features from ActivePivot Live 3
- pivot table standard grid mode
- drill-in
- refresh every Xs
- clear
- sort preserving hierarchies
- undo/redo
- create named set
- visual totals
- export (CSV, XLS, HTML & PDF)
- smart filtering
- calendar and time related filters
- persist/load calculated measure, named set and filters in/from a bookmark
- persist calculated measure in cube
- Previous/Next shortcut on monoselection filters
- Global Filters
- enable/disable cell properties
- show/hide empty rows/columns
- size limits (subset)
- export a bookmark
- hints about currently selected bookmark
- copy/paste on bookmarks
- tabs with multiple dashboard
Missing ActiveMonitor features
- Monitor List
Notes
- Although it might work with touch devices, it was not specifically designed to support touch devices