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.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.
- Error in "Text Editor on Tabular View" and "Enum Editor on Tabular View" showcase snippets.
- Infinite loop when editing a Tabular cell and pressing Enter to validate.
- 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.
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
- Deprecated method
toReactComponents
throws an error. - 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 now write:
const filtersBookmark = {containerKey: 'filters'};
instead of:
const filtersBookmark = { containerKey: 'filters', body: {}, };
In the
treeCells
cell factory,automaticExpansion
now 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 now 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 now 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:
Now, 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 now 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 now 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
.- 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
now 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://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.plugins.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://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 --host 0.0.0.0", "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