Changelog
5.1.23
2024-10-31
Added
- Cubes are grouped by catalog in the Data model.
filters.default.hiddenHierarchies
setting allowing to hide specific hierarchies from the Default filters section of the Filters tab.
Fixed
- Inability to import exported folders through the Import content context menu in the home page.
- "Hierarchy appears several times in set1 & set2" error thrown when adding a hierarchy to a query which contains nested crossjoins.
- "Uncaught (in promise) TypeError: this._input.match is not a function" error when inserting a saved custom filter.
5.1.22
2024-09-30
Added
- Ability to toggle between a single scale or two scales for the y-axis of the Columns and lines chart in the Style tab.
- Hovering over a measure tile will display a description, provided the underlying measure includes one.
lastUsedCube.isEnabled
setting allowing to control whether the last cube selected by the user is used as default when creating a new widget.- Ability to deselect table cells through Ctrl / Cmd + click / drag within a selected range of cells.
Fixed
- Resizing widgets vertically sometimes unexpectedly results in dragging them.
- The date format configured via the Style editor not being applied to the chart axis labels.
- Glitch when resizing columns in tables, making it hard to double click a column's right border in order to autofit it to the width of its content.
5.1.21
2024-08-30
Added
- Ability to toggle whether the legend overlaps the chart in the Style editor of chart widgets.
- Ability to search for a cube in the Data model.
- Ability to show empty values in widgets, using the Empty values context menu item accessible by right-clicking on widgets in a dashboard.
- Checkboxes to show empty values in widgets. The checkboxes appear when no data is found for the widget's query.
- Ability to pin Month to date, Quarter to date, and Year to date filters.
Changed
- Tiles corresponding to custom rolling date range filters obtained by editing MDX manually are displayed with a "Custom" label.
Fixed
- In the Filter on hierarchy popover, typing in the input to search for a specific member unexpectedly yields no results when smart filtering is disabled.
- Editing a filter on a date range opens the Filter on hierarchy popover on its Tree tab instead of its Calendar tab.
- "Unhandled Rejection (TypeError): Cannot set properties of undefined (setting '0')" error when clicking the Export to CSV menu item on a KPI widget containing a comparison.
- When using custom MDX, removing a field from the Content Editor sometimes yields unexpected results.
5.1.20
2024-07-31
Added
- The
measureGroup
attribute to theMeasure
type.
Changed
- When a widget query fails, the full server error stack trace is logged to the console.
Fixed
- Inability to copy the selected Drillthrough table cells to the clipboard with Ctrl / Cmd + C.
- Widgets whose queries were manually edited are not affected by Quick filter widgets.
- When moving a dashboard to a different folder in the home page, double-clicking a folder in the Move to popup opens the dashboard being moved instead of opening the target folder.
- Missing Sort, Exclude, Filter context menu items when right clicking on a column header cell which does not belong to the top row of a table, when the table contains multiple rows of column header cells.
ClientsProvider
not acceptingundefined
as a valid value.- The search value in pinned filter inputs isn't cleared out when closing the dropdown.
- "No data model was found for server key 'undefined' in the ClientsContext" application error when loading a saved dashboard containing pinned filters.
5.1.19
2024-06-28
Added
- Support for Atoti Server 6.1.
- Ability to export all dashboards and folders, using the Export everything context menu item accessible by right-clicking Folders on the top left of the home page, or the background of the home page.
- Ability to import dashboards at the root of the home page, using the Import content at the root menu item accessible in the same places as the Export everything menu item mentioned above.
- Ability to move Drillthrough tables columns. A column can be moved by first selecting it, then clicking and dragging it around the table.
Changed
- Drillthrough widgets display their columns in the order in which the user selects them instead of always in alphabetical order.
- Drillthrough widgets display their initial columns in the order in which they are set in the
drillthrough.defaultSelectedColumns
setting instead of always in alphabetical order. - Using HTML in Text editor widgets is disallowed. Markdown can still be used.
Fixed
- Modifying filters in the Content Editor of Drillthrough table widgets not working when
areFiltersDrivenByMdx
is set totrue
in the widget state. - Pressing Ctrl / Cmd + Z sometimes unexpectedly undoes dashboard, page or widget title changes on top of undoing the previous action.
- KPI widgets are not affected by page or dashboard context values.
- When different catalogs of a server contain cubes with the same name, they are all shown to the user (whereas only the first one should be).
- When importing a folder into the home page, the dashboards it contains that are only accessible in read-only by the user who is performing the import fail to be imported.
- The members displayed in Quick filter widgets are not always restricted by other quick filter widgets, even when the
smartFiltering.isEnabled
setting is set totrue
. - Using the Quick filter widget on a hierarchy with a very high cardinality makes the application freeze.
- In the Share popup, searching for a user and then clicking on the match in the search results does not actually select it.
5.1.18
2024-05-31
Added
table.rowNumbers
setting allowing to change the default visibility of row numbers for tables.expandDataModelTree
andcollapseDataModelTree
Redux actions to expand and collapse the Data Model.contextValues
permission allowing to change the visibility of context values.
Fixed
- Link styling making it difficult to differentiate a link from regular text.
- Missing horizontal scrollbar on tables when the frozen columns are too wide to fit in the table container.
- Performance issue when loading the members displayed in the Filter on popup.
- Some top-level members are missing from the Filter on popup in the case of multi-level hierarchies with more than 10.000 leaf members.
TypeError: filter.startDate.toLocaleDateString is not a function
error thrown when dropping a saved date filter into a dashboard.- When it is used for the first time, the Open drillthrough menu item sometimes yields an empty drillthrough when the user's internet connection is slow.
- Leading zeros unexpectedly removed from non-numeric cells when exporting a table to CSV.
- Pivot table column order becoming out-of-sync when dragging and dropping a tile into the same position in the Content editor.
- Inability to share calculated measures while searching in the data model.
5.1.17
2024-04-30
Added
- Ability to change the size of axis labels for charts. It can be changed using the Axis labels size input field in the Style editor (User Guides).
table.copyColumnHeadersAsASingleRow
setting allowing to squash table headers into a single row while copying them to the clipboard.- Ability to collapse blocks of state in the State editor tool.
- Ability to apply a measure's conditional style to rows in table widgets, using the Apply to full rows checkbox in the Style editor.
- Form validation in the Edit calculated measure popover preventing the user from creating a calculated measure with a name of an already existing measure.
throwIfMissing
option touseUser
. When set tofalse
,useUser
returnsundefined
instead of throwing aUserNotFoundError
.
Changed
- Data model and Tools panels are visible on read-only dashboards.
Fixed
- When connected to several servers and one of them is unresponsive, the user sees an error message and is unable to use the other servers.
- Errors thrown within the application display the stack trace and not the error message.
- Export to CSV on a Drillthrough Table always using
,
as separator instead of the one chosen in Settings. - KPI status icons don't work on Tree table widgets.
- Table selection not updating while dragging outside the table.
- The Filter on popup takes a long time to show the list of members when smart filtering is enabled, the target widget contains slicing hierarchies and is filtered on a single member of each of these hierarchies.
- "No plugin of type 'widget' was found for the key 'unregistered-plugin-key' in the registry" application error when browsing the Saved widgets panel containing a saved widget with a key that is not registered in the plugin registry.
- Not being able to navigate into folders to which the user has Reader permission, when saving or moving a dashboard.
- Export to CSV not showing special characters correctly.
- "Cannot read properties of undefined (reading '0')" error when attempting to place a calculated measure on the slicer axis.
5.1.16
2024-03-29
Added
- Ability to display row numbers for Pivot Table, Tree Table, Table, and Drillthrough Table.
They can be toggled using the Row Numbers switch in the Style editor.
They allow to:
- Select the entire table by clicking the triangle in the top left corner.
- Select a row by clicking on its row number.
- Support for hierarchy folders in the Data model.
- Ability to swap the Waterfall chart green and red colors in the Style editor.
- In the Style editor, the ability to align cells representing non numerical values in tables.
- In the homepage, the ability to export and import individual dashboards, as well as multiple dashboards and folders at once.
Fixed
- Ignored new cells in realtime query updates.
- The user cannot use the Data model in some scenarios when there is a single cube available which does not match the last used cube.
- Chart not displaying traces correctly when the query contains tuples expanded across several hierarchies.
- The Filter on hierarchy popover can be resized to be made larger but cannot be shrunk.
- Sharing a saved widget from the search results sometimes fails and freezes the screen.
- Retrieving members is sometimes slow when creating or editing a filter on a slicing hierarchy that is already in the axes of the widget to filter.
- Unexpected "No data for your query" message after editing filters in the Content editor when
areFiltersDrivenByMdx
is set totrue
in the widget state, for instance after copying and pasting a widget's query into a new empty widget.
5.1.15
2024-03-01
Added
- Ability to pin most recent filters.
- Ability to set the
smartFiltering.nonEmptyEvaluationMeasureName
setting on a per hierarchy basis. - The Style editor tool on Drillthrough widgets allows to:
- make the drillthrough table more compact, thanks to the Table size option.
- control the background color of its cells, thanks to the Conditional styles section. The styling can be applied conditionally, based on the column's numerical values.
- display tooltips when hovering on cells, thanks to the Tooltips option.
- make table headers multi-line, in order to make their full text content visible, thanks to the Headers wrap to next line option.
- align the caption in cells, thanks to the Align option.
- Ability to change the maximum number of horizontal and vertical subplots in the Style editor.
Changed
- The search in the Edit filter popover is controlled by the
search.maxResults
setting. The default is set to 1000.
Deprecated
-
ActivePivotClient.addCalculatedMembersListener
,ActivePivotClient.removeCalculatedMembersListener
,ActivePivotClient.addConnectionStatusListener
,ActivePivotClient.removeConnectionStatusListener
,ActivePivotClient.addDataModelListener
,ActivePivotClient.removeDataModelListener
,ActivePivotClient.addDrillthroughColumnsListener
,ActivePivotClient.removeDrillthroughColumnsListener
,ActivePivotClient.addQueryListener
,ActivePivotClient.removeQueryListener
,ActivePivotClient.addQueryResultListener
,ActivePivotClient.removeQueryResultListener
,ContentClient.addActivityListener
,ContentClient.removeActivityListener
,ContentClient.addPermissionListener
,ContentClient.removePermissionListener
,ContentClient.addSettingListener
,ContentClient.removeSettingListener
,ContentClient.addTreeListener
,ContentClient.removeTreeListener
.Use
ActivePivotClient.subscribeToCalculatedMembers
,ActivePivotClient.subscribeToConnectionStatus
,ActivePivotClient.subscribeToDataModel
,ActivePivotClient.subscribeToDrillthroughColumns
,ActivePivotClient.subscribeToQuery
,ActivePivotClient.subscribeToQueryResult
,ContentClient.subscribeToActivity
,ContentClient.subscribeToPermission
,ContentClient.subscribeToSetting
,ContentClient.subscribeToTree
respectively instead.For example:
- const listener = (queryResult) => {
- console.log(queryResult);
- };
- activePivotClient.addQueryResultListener(queryId, listener);
+ const unsubscribe = activePivotClient.subscribeToQueryResult(queryId, () => {
+ console.log(activePivotClient.getQueryResult(queryId));
+ });
// ...
- activePivotClient.removeQueryResultListener(queryId, listener);
+ unsubscribe();The new API is more suited to React's
useSyncExternalStore
. -
addDrillthroughColumn
,removeDrillthroughColumn
, andmoveDrillthroughColumn
. UsesetDrillthroughColumns
instead.
Fixed
- "The drillthrough column 'column name' could not be found" error thrown when a drillthrough query includes a column that is configured as hidden in Atoti server.
- The text is truncated on Bullet charts with vertical subplots.
- Error 404, making it impossible to delete widget and filter folders on Atoti Server 5.11.
- Unexpected small darker triangle in chart tooltips, sometimes hiding away some of their text.
- The
selection
passed as a prop to menu item plugins fails to include leaf members when row header cells are selected on a Tree table widget. - When expanding members on a pivot table and then switching it to a chart, the chart unexpectedly only displays the first child of the first expanded member, instead of all children of all expanded members.
- Copying tables using Ctrl / Cmd + A and Ctrl / Cmd + C is slow for big tables when lazy-loading is switched off.
- Pasting cells into Microsoft Excel after copying them from an Atoti table unexpectedly squashes them into a single cell and joins them with
","
, instead of adding them to the Excel sheet as distinct cells. - Long titles within the Edit filter and Edit calculated measure popovers are not truncated and take too much vertical space, causing the popover footer buttons to be hidden.
- Inability to add a hierarchy to a widget if the widget's MDX contains a slicer filter on the same hierarchy, and
areFiltersDrivenByMdx
is set totrue
in the widget state (which occurs in particular after writing custom MDX in the Query editor).
5.1.14
2024-01-31
Added
- Ability to pin Advanced filters to display them in a filters bar over a widget or dashboard.
expandTrigger
prop to the<ContentTree />
component allowing to configure whether folder nodes can be opened by clicking on their full name, or only on the caret on their left.- Ability to hide the legend on charts. This can be done using the Legend switch in the Style editor.
- Pinned filters display their corresponding level name.
- Dashboard URLs with the '?export' search param (for example "http://mywebsite.com/?export#/dashboard/685") are displayed without a header, data model, or tools panel.
This allows to easily export dashboards as PDFs programmatically.
This can be accomplished with the following code:
// 'dashboardLoaded' is dispatched once the content of all pages within the dashboard has been loaded.
document.addEventListener('dashboardLoaded', () => {
window.print();
}); - The Style editor tool allows to configure the number and date formatting on Drillthrough widgets.
Fixed
- When a leaf table header cell corresponds to a member which does not have children, but is on a non-leaf level in its hierarchy, it is unexpectedly displayed as expandable.
- Inability to navigate into folders within the saved filter and widget panels.
- The Content editor unexpectedly becomes empty after a query error in the Edit filter popover.
- An infinite number of pinned filters getting displayed when pinning a combination of Advanced filters and regular filters.
5.1.13
2023-12-29
Added
- Ability to export/import a dashboard folder in the homepage.
- Ability to wrap table headers to the next line, rather than ellipsize, globally through the settings editor.
- Ability to show/hide totals for subplots on charts.
- Export folder menu item in the home page, allowing the user to download the content of a folder (recursively).
- Ability to change marker sizes on charts. This can be done using the Point size slider in the Style editor.
- When hovering table cells, the member properties explicitly referenced in the MDX are displayed in a tooltip.
Changed
- The tests checking that the starter project can be built and that
@activeviam/activeui-sdk
can be installed and imported in Node.js switched from Yarn 1 to npm. We recommend projects still using Yarn 1 to also migrate to a modern package manager such as npm 10 or pnpm 8.
Fixed
- The Content editor of the Drillthrough widget does not display selected columns accurately when custom MDX is used without enclosing column identifiers in the
MemberValue
function. - Measure values are not included in the CSV export when measures are on rows and no hierarchies have been added on columns.
5.1.12
2023-12-08
Fixed
- Drillthrough widget not displaying anything when column identifiers are not wrapped with the
MemberValue
function in its MDX query. - Colors cannot be applied to cells in table widgets.
- The text alignment cannot be controlled in table widgets.
- Tooltips are offset in table widgets.
- The row and column index received by CellPlugins and CellStylePlugins are offset.
- Table widgets fail to display their results when their query contains a measure on the slicer axis and nothing on other axes.
- "Invalid arguments: expected the scrollLeft to be lower or equal than the cumulated column widths in the grid" error thrown after scrolling horizontally to the right of a table and then removing a field from columns.
5.1.11
2023-11-30
Added
- In the Behavior editor tool, the user is able to link multiple investigation pages to a single widget.
- Headers wrap to next line option in the Style editor of table widgets, allowing to make table headers multi-line, in order to make their full text content visible. This is particularly useful when headers contain long texts broken into multiple words.
- Ability to show/hide totals on charts when the MDX contains levels expressed with the Members function, e.g.
[Booking].[Desk].[Desk].Members
. - Ability to focus the dashboard search input by pressing Ctrl / Cmd + O in the home page.
- Ability to navigate through the dashboard search results with the ⬆ and ⬇ keyboard keys in the home page, and to select one by pressing Enter.
Fixed
- "TypeError: Cannot read properties of undefined (reading '0')" sometimes thrown when adding a column to a Drillthrough widget.
- "TypeError: Cannot read properties of undefined (reading 'index')" sometimes thrown when collapsing table cells.
- "No page was found at this URL" error message when
pathToHome
is set on theconfiguration
and the user accesses the page at this path. - "Unknown measure: My Measure" error when drilling through a table cell which involves a calculated measure.
- "Warning: Cannot update a component (
CellSetTable
) while rendering a different component (Table
)." when integrating pluginWidgetPivotTable or other table Components into a React application. - "One of the members to compare does not exist in this cube" error sometimes thrown when comparing the current date to the previous date in a KPI widget.
- Changing the chart trace colors via the Style editor not working.
- Calculated measure being unintentionally added to the selected widget when clicking on the header or corners of the Share Calculated Measure popover.
- Some hierarchies are unexpectedly sorted alphabetically when using the Sort ascendingly and Sort descendingly menu items.
- The user is unexpectedly not able to share a calculated measure right after saving it.
- The previous data unexpectedly disappears in the KPI widget while new data is being loaded.
- The KPI widget displaying "+NaN %" when a member is missing in a comparison.
- Glitch when making a search in the Filter on hierarchy popover.
- Typing in the search bar of the Filter on hierarchy popover does not narrow down the results when smart filtering is globally disabled (= when
smartFiltering.isEnabled
is set tofalse
). - Drillthrough columns that are configured to be invisible on the server are unexpectedly visible in the Drillthrough widget.
- Moving a field between a chart's horizontal and vertical subplots does not work.
- Not notifying the user when saving a dashboard changes fails.
5.1.10
2023-10-31
Added
- The Style editor tool allows to configure the number and date formatting on KPI widgets.
- A toggle in the Style editor tool of the KPI widget allowing to display the difference between the two members being compared in percentage change, if the widget has a comparison.
- The option "Current date to previous date" under Comparison in the Content editor of KPI widgets allows to compare values across the last two dates of the dataset.
- Ability to show/hide totals on table widgets when the MDX contains levels expressed with the Members function, e.g.
[Booking].[Desk].[Desk].Members
.
Changed
- The starter's package.json
start
script uses the development build of the application shell. It improves the developer experience by speeding up the build, easing debugging, and providing clearer stack traces. - Show/hide grand total menu item labels are more descriptive for each chart.
- The layout of the KPI widget is made to emphasize comparison values and its change from the reference value.
Fixed
- When an Atoti UI extension imports an Ant Design component that is not used in the Atoti UI application shell, e.g.
<TimePicker />
or<InputNumber />
, this component does not follow the theme. - Incorrect selection object generated when selecting a range of cells on a drillthrough table.
- Incorrect cell values copied to clipboard from drillthrough tables with a sort applied.
- Home page sometimes stuck in skeleton view.
- The Delete and Rename menu items for calculated measures in the Data model are unexpectedly enabled for users without edit permissions.
setFilters
unexpectedly adds some filters in a subselect instead of a slicer, when the filter's hierarchy appears on the expression of an axis without contributing to its dimensionality.- In the Data model, measure description tooltips don't appear unless the measure name overflows. These tooltips disappear too fast, preventing from selecting their text or clicking links they contain.
- When renaming a calculated measures in the Data model and canceling this renaming by clicking away or pressing Escape, the canceled new name is not cleared, causing it to appear again if the user renames the same measure again.
- The text in tooltips is cut off when it contains very long words (typically when it contains underscores instead of spaces).
- Visual glitch when attempting to show the grand total on radar charts containing horizontal subplots.
- Errors such as "Cannot read properties of undefined (reading '1')" when using filters with custom MDX.
- Unexpected "TypeError: Cannot read properties of undefined (reading 'toLowerCase')" error preventing to open a drillthrough widget targetting an Atoti Server that does not have columns of every possible type (numeric, string, date).
- When the query of a KPI widget yields no data, the hint to inform the user is unexpectedly not visible when the widget lacks space.
- Pinned filters disappear when the user clicks on a Quick filter widget, or on another type of widget which does not represent data.
- The pinned filters dropdown closing when clicking on the selected members tooltip.
5.1.9
2023-09-29
Added
- Ability to modify settings from the user menu in the top right corner of the application.
- Ability to format numbers in tables, even when they belong to a measure whose data type is not configured as
"long"
nor"double"
. - Ability to format numeric members in tables, using Number formatting in the Style Editor, just like for measures.
usePositionInDashboard
hook.- Ability to share saved calculated measures.
- Ability to pin date range filters to display them in a Filters bar over a widget or dashboard.
smartFiltering.isEnabled
setting allowing to disable smart filtering for all hierarchies at once.- Ability to filter on the n most recent dates in the Advanced tab of the Filter on hierarchy popover.
widgetPlugin.behaviorEditor
, allowing each widget to define a UI which controls how they behave. It is set toDataVisualizationBehaviorEditor
for tables, charts and KPI widgets, which allows to configure template pages to investigate data points.- A Behavior editor tool, displaying the selected widget's behavior editor.
- Investigate selection menu item, allowing to open an investigation page configured in the widget's
DataVisualizationBehaviorEditor
, and filtered based on the widget's selection and filtering context. - Ability to show/hide totals on charts through their context menu.
Changed
- When a widget's query takes time to load, a loading bar is displayed above the widget's title.
The default pulsating animation has been removed, but any custom
configuration.widgetLoadingOverlay
is still applied. - The Query context editor icon is "X:Y".
- The State editor icon is "{...}".
- Cell style plugins control the style of empty header table cells.
Fixed
- The text in tooltips is cut off when it is too long.
- When using custom MDX, expanding a table cell can sometimes unexpectedly change the query-scoped calculated members.
- When using custom MDX, the user is sometimes unable to collapse table cells.
- When using custom MDX, some hierarchies are not recognized as fields in the Content Editor.
- The part of the query representing filters is unexpectedly modified when the user submits a manually edited query in the Query editor.
- Click listeners on cell plugins are not triggered on empty pivot table header cells.
- Members of pinned filters are not smart filtered.
- Removing a level from the Content Editor can unexpectedly change the query-scoped calculated members and sets in which it is expressed.
- Unexpected warning when using the
Rgb
function in the Query editor. - When the user hides the grand total row in the Tree table widget, the row becomes empty but unexpectedly remains on screen.
- The Data model does not honor the
search.maxResults
setting. - When clicking the Export to CSV menu item on a table, hidden columns are unexpectedly made visible in the generated file.
- Visual glitch on the right border of the tree column of Tree table widgets, when they are resized and made so narrow that only the tree column fits on screen horizontally.
- Saving dashboard takes a long time when the dashboard contains charts with many points.
- The Refresh menu item is not available for Drillthrough widgets.
- Unexpected "Failure to execute 'atob' on 'Window': The string to be decoded is not correctly encoded" error when starting the application.
- Visual glitch in search results in the Drillthrough widget content editor tool search.
Deprecated
leafKey
,pageKey
, andlayoutPath
properties from WidgetInDashboardActionProps. Use usePositionInDashboard instead.
5.1.8
2023-08-31
Added
- Markdown tables in the Text editor widget have borders between rows.
- Ability to display tooltips on tables.
- Folder paths are displayed in the results of the dashboard and folder search at the top of the home page and in the Open dashboard modal.
- Ability to navigate through the Data model search results with the ⬆ and ⬇ keyboard keys. Pressing Enter can be used as a shortcut instead of clicking on the focused element.
- KPI properties can be styled in the Style editor.
- Tooltips on wizard tiles and table headers that are so narrow that a part of the text they contain is hidden, allowing users to view their full text by hovering over them.
Changed
- In the KPI widget, values of measures are evenly spaced.
- The About modal displays the version of each Atoti Server that the application is connected to, not just the first one.
Fixed
- Unexpected "The page or dashboard filters were changed. If this is intentional, do it from the filters editor" error while editing the query of a widget in the Query editor.
- Cannot submit valid MDX in the Query editor when it contains complex expanded members.
- Chart legends sometimes fail to show the trace names.
- CSV exports containing
[object Object]
for some cells. - The application freezes for a few seconds when the user opens the Edit filter popover on a level containing many members.
- "Expression cannot be resolved as a member of cube" error when accessing a widget whose query contains a query-scoped named set.
- When multiple KPI properties are added to a chart, only the first one actually appears on the chart.
- Filters on date ranges saved in Atoti UI 4.3 unexpectedly appear as "custom" after migration.
- Broken link to documentation in Help submenu.
- Cell font colors don't work on the first few columns when the table containing them is resized and made so thin that the frozen columns become larger than the whole width of the table.
- The order of the colors and labels of bar charts does not match the order of their corresponding bars when the chart is sorted and has a conditional style.
- In the Style editor of table widgets, the inability to control the alignment of non numeric measures.
- When conditional style is added to a measure in a table, its values become unexpectedly left-aligned.
- The user is unexpectedly switched from Present to Edit mode when opening a dashboard which they are allowed to edit.
- Editing pinned filters incorrectly removes non-pinned filters within the same section.
5.1.7
2023-08-03
Added
- In the Style editor, the ability to align cells representing measure values in tables.
Changed
- The About modal displays the version of each Atoti Server that the application is connected to, not just the first one.
Fixed
- Table scrolling out of sync between cells and row and column headers.
5.1.6
2023-08-01
Added
- In the Style editor, ability to edit the date format of levels of type "TIME".
- Ability to remove widgets with errors from dashboards.
- Select all can be used on the search results in the Filter on hierarchy popover.
- Exclude selected members checkbox in the Filters bar dropdown.
Changed
- The login page, loading background and header are redesigned.
- The
light-activeviam
anddark-activeviam
themes are changed.
Fixed
ERR_MODULE_NOT_FOUND
error thrown when importing@activeviam/activeui-sdk
on Node.js.- Number formatting discrepancies for users with a browser locale different than
"en-US"
after they adjust the number of decimals of a measure through the Style editor. - Application submenus disappear when hovering on nested submenus.
- When targeting a 5.11 Atoti server, clicking the Move button in the Move to modal on the home page fails, showing an infinite spinner on the button.
- "No data model was found [...]" or "Cube not found [...]" error when the last cube used by the user is not available.
- The Export to CSV menu item unexpectedly generates multiple rows for the header row, and treats cell values containing the CSV separator as multiple values.
- "Error: contributors.COUNT cannot be used when smart filtering the query to fetch members of [dimension].[hierarchy], because it is a virtual hierarchy" error when attempting to edit a pinned virtual hierarchy filter.
- Spaces in measure and level names sometimes disappear when using the search.
- "Undefined widget state. This is not supported" error when rendering a
<Widget />
outside a dashboard. - KPI widget values ignoring the color specified in the MDX query result.
5.1.5
2023-06-30
Added
- Ability to move the selection in table widgets using the ⬆, ⬇, ➡, ⬅, Home, End, Page Up, Page Down keyboard keys, also in combination with the Shift key to extend the selection.
- The Inherit destination folder permissions checkbox in the Move modal to enable inheriting the permissions of its destination folder.
Fixed
- Changing the target cube of a widget unexpectedly changes the target cube of drillthrough tables in the dashboard.
- "TypeError: mp (the combination of letters can be different) is not a function or its return value is not iterable" error thrown by a widget that has been right-clicked.
- The application crashes with a No plugin of type "widget" was found for the key ... error when the user accesses a dashboard containing a widget whose key is not registered.
- The tooltip overlapping the context menu on pie and donut charts.
5.1.4
2023-05-31
Added
- Ability to move a widget to another dashboard page by dragging and dropping it on top of it.
- Pinned exclusion filters have an exclude icon.
Deprecated
pageKey
argument of moveWidget. UseoriginPageKey
andtargetPageKey
instead.
Fixed
- "Module not found: Error: Can't resolve 'util'" error thrown when running
yarn build
in the starter source. - The label of some menu items is not displayed under some specific screen size and zoom settings.
- Expand/collapse carets are unexpectedly shown in the search results tree of the Filter on hierarchy popover.
5.1.3
2023-04-27
Deprecated
- getUserRoles. Use getUserFromJwt instead.
- FormRow. Use Ant Design's Form and Form.Item components instead.
Fixed
- Creating a folder in the Saved filters panel causes the Back to Data Model button to become hidden.
5.1.2
2023-03-31
Added
- Copy query to clipboard and Refresh query menu items to the Drillthrough widget.
smartFiltering.nonEmptyEvaluationMeasureName
setting allowing to set the measure used to filter out empty members in the list presented to the user when creating or editing a filter. Members with no value for this measure are considered empty and are omitted from this list.- Make a copy menu item in the home page, allowing to make a copy of a dashboard.
configuration.routes
, allowing to define custom URLs for your application and register the components that should be displayed when users visit these URLs.lastUsedCube
property in the user activity, keeping track of the cube that was last used by the user.- Measures in the Data model have a tooltip displaying their description.
Changed
- When a new widget is added to a dashboard, it connects by default to the cube that the user used last, instead of connecting to the first cube of the first server.
- The cube selector shows the cube's caption instead of name.
Removed
- Unexpected Copy link button in the Share modal when sharing filters or widgets.
Fixed
- The Select all checkbox in the Filter on hierarchy popover does not work when the hierarchy is virtual.
- The vertical scrollbar in the Saved filters and the Saved widgets panel does not allow to access the elements at the bottom of the list.
- White screen and
No data model was found
error in console when a dashboard is opened before the data model has finished loading. - After sharing a saved widget with another user as a reader, this user is unexpectedly allowed to rename, share and delete this widget. The same applies to saved filters.
5.1.1
2023-03-02
Added
- "Switch widget type" menu item, allowing to open the widgets panel from a widget's context menu.
- Share menu item added to the File application menu.
- New dashboard menu item added to the File application menu, allowing to create a new dashboard without needing to navigate back to the home page first.
Changed
- In the Data model, measure folders can be opened by clicking on their names, not only on the carets on their left.
- Users with the
canManageContent
permission set tofalse
can create ad-hoc dashboards, but are still not allowed to save them. - In the Advanced tab of the Filter on hierarchy popover, when searching for a measure the results are sorted alphabetically.
Fixed
- The File > Save menu item is unexpectedly disabled when users create a dashboard.
- Rows with an index bigger than the lazy loading chunk size not loading in tables with a wide row header.
- Tables unexpectedly scroll all the way back left when users click a cell.
- Extra padding at the right of table widgets vertical scrollbar.
5.1.0
2023-02-02
Added
- Ability to pin filters to display them in a Filters bar over a widget or dashboard. It allows to edit a filter outside of the Filters editor, even in Present mode.
- Ability to configure cross-hierarchies expansion chains for tables from the Content editor. Each level in the expansion chain is displayed as a subtile and can be moved or deleted individually.
widgets
permission, allowing to control what widgets the user has access to.widgetMenuItems
permission, allowing to control what menu items the user has access to in the widget's context menus.widgetTitleBarButtons
permission, allowing to control what buttons the user has access to in the widgets' title bars.applicationMenus
permission, allowing to control what menus the user has access to in the application header.tools
permission, allowing to control what tools (previously called "drawers") the user has access to in the application left panel.- Ability to show values as text on charts. This can be done using the Data labels switch in the Style editor.
- WidgetPlugin.attributesDrivingColors: indicates which mapping attributes can be used to apply custom colors using the Colors editor.
- Ability to pass an
AbortSignal
to asynchronous operations which do not have side effects. This includes many methods ofActivePivotClient
andContentClient
. - Support for nested measure folders in the Content editor.
createCalculatedMember
,createKPI
,deleteCalculatedMember
anddeleteKpi
methods inActivePivotClient
Changed
-
New widgets and saved widgets can be added by opening the Insert -> Widgets menu in the application header (shortcut W), then selecting them from the panel that appears over the Data model.
-
Saved filters can be added by opening the Insert -> Filters menu in the application header (shortcut F), then selecting them from the panel that appears over the Data model.
-
Saved calculated measures are persisted to the cube instead of the
/ui
folder on the Content Server. This has the following implications:- Saved calculated measures appear directly in the Data model.
- They can be renamed/deleted only globally from the Data model, as opposed to locally on a widget.
- Calculated measures saved with Atoti UI 5.0 are not usable out of the box in Atoti UI 5.1, but you can migrate them using
atoti-ui-migration
. - Calculated measures created and saved with Atoti UI 5.1 are usable in Excel.
-
The Drawers previously located on the left of the dashboards are renamed Tools and moved to the right of the Data model.
- import { Drawer, drawerQueryEditor } from "@activeviam/activeui-sdk";
- const myDrawer: Drawer = {};
- configuration.drawers.push(drawerQueryEditor, myDrawer);
+ import { Tool, toolQueryEditor } from "@activeviam/activeui-sdk";
+ const myTool: Tool = {};
+ configuration.tools.push(toolQueryEditor, myTool);
The following exports are also renamed:
activeDrawerKey
to activeToolKeyActiveDrawerChangedAction
to ActiveToolChangedActiondrawerStateEditor
to toolStateEditordrawerStyleEditor
to toolStyleEditordrawerQueryEditor
to toolQueryEditordrawerQueryContextEditor
to toolQueryContextEditorgetActiveDrawerKey
to getActiveToolKeygetDrawersTranslations
to getToolsTranslations- On the left of the application, the Data model and Tools (which among others includes the Content editor) can be independently resized and collapsed.
- The data model is indexed, allowing O(1) access to cube properties. For example:
- const hierarchy = cube.dimensions.find(dimension => dimension.name === myDimensionName)?.hierarchies.find(hierarchy => hierarchy.name === myHierarchyName);
+ const hierarchy = cube.dimensions[dimensionName].hierarchies[hierarchyName];
createActivePivotClient
andcreateContentClient
expect a newserverVersion
argument, and theirversion
argument is renamed toserviceVersion
:
createActivePivotClient({
url,
+ serverVersion: "6.0.0",
+ serviceVersion,
- version: serviceVersion,
requestInit,
}),
- The
Versions
type is renamedServicesVersions
. clients.contentClient
is renamedclients.content
.- Following up Ant Design's menu items API change, menu items must be retrieved through hooks rather than imported as Components:
- import { MenuItemCreateFolder } from "@activeviam/activeui-sdk"
- <Menu {...menuProps} onClick={props.onClick}>
- <MenuItemCreateFolder {...menuItemProps}>
- </Menu>
+ import { useMenuItemCreateFolder } from "@activeviam/activeui-sdk"
+ const menuItemCreateFolder = useMenuItemCreateFolder(menuItemProps)
+ <Menu {...menuProps}
+ onClick={props.onClick}
+ items={[menuItemCreateFolder]}
+ />
The API to define your own menu items is changed accordingly:
- const MenuItemFoo = (props) => {
- return (
- <MenuItem onClick={props.onClick}>
- <div>
- <FooIcon />
- Foo
- </div>
- </MenuItem>
- );
- };
+ function useMenuItemFoo(props) {
+ return {
+ onClick: props.onClick,
+ icon: <FooIcon />,
+ label: <div>Foo</div>,
+ };
+ }
To use in a plugin:
const pluginMenuItemFoo = {
key: "foo",
- Component: MenuItemFoo,
+ useMenuItem: useMenuItemFoo,
};
- Node.js >= 18.12.1 is required to use
@activeviam/activeui-scripts
and@activeviam/content-server-initialization
. - UserGroupNamesProvider is renamed UserRolesProvider.
- The
canShare
permission controls the ability to share content. The user roleROLE_SHARE
is no longer supported. - The key of the Save widget as menu item is changed from
save-as
tosave-widget-as
. ThepluginMenuItemSaveWidgetAs
must be explicitly added to each applicable widget's menu items. - The MeasuresFolderNode accepts both measures and measure folders as children.
addFormula
is renamedaddCalculatedMeasure
.- Minimum required version of the supported browsers.
pathToFolder
is renamedpathToParentFolder
in the arguments of the followingContentClient
methods:fetchThumbnails
,fetchThumbnail
,fetchFile
,createFile
,createFolder
,deleteFilesAndFolders
,updateFile
,updateFolder
,updateFilePermissions
andupdateFolderPermissions
.getMeasures
is renamedgetMeasureNames
and returns an array of strings.- Filters are no longer typed as
Mdx
. Instead, they are typed as:MdxExpression
in the MDX API.Filter
in the rest of the API. This includes saved filters as well as filters in widgets, dashboards and the user activity.
- Properties
canRead
,canWrite
,isDirectory
,lastEditor
, andtimestamp
are required in ContentEntry by default. If you want to type entries that are meant to be sent in PUT/POST requests, useContentEntry<"request">
instead. - Query context values used in
query.context
andqueryContextEntry.value
are typed as string. pluginWidgetPlotlyComboChart
is renamedpluginWidgetPlotlyColumnsAndLinesChart
. Its plugin keyplotly-clustered-column-and-line-chart
is renamedplotly-columns-and-lines-chart
.- The
cube
argument is mandatory ingetMeasure
. - The
name
property ofAMetaData
is mandatory. - Property
levelIndex
onFilterOnTopBottomMembers
is replaced withlevelName
. - The
key
property ofApplicationMenu
is mandatory. - The parameters of the
onTileMovedFromExtraSection
function inDataVisualizationContentEditorProps
:- The
item
parameter is renameddragItem
. - The
toSection
parameter is replaced withtoPosition
, of typeTilePositionWithinWizard
.
- The
- The
version
property ofWidgetMetaData
is mandatory.
Removed
activeui-scripts generate-css
. This is no longer needed with the drop ofless
in favor ofCSS-in-JS
inantd
5.- The Widgets ribbon. Use the Insert -> Widgets menu (shortcut W) in the application header instead.
withCube
. Use theuseCube
hook instead.- The
userFilters.areEnabled
setting. Use thecanUseUserFilters
permission instead. - The
userQueryContext.isEnabled
setting. Use thecanUseUserQueryContext
permission instead. - The
calculatedMeasures.areEnabled
setting. Use thecanUseCalculatedMeasures
permission instead. ContentClient.moveFile
. UseContentClient.moveFiles
instead.ContentClient.moveFiles
'srequestOptions
argument. Request options must be passed tocreateContentClient
instead.getLastEdition
. UsegetMetaDataRecord
instead.LeafProps.isDeferred
. Usereact-redux
'suseSelector
andgetIsDeferred
instead.useMenuItemMoveFileOrFolder
.useWidgetQuery
. CalluseWidgetQueryResult
directly instead.header
prop of<Tree />
.ActivePivotClient.fetchAvailableDrillthroughColumns
. UseActivePivotClient.loadDrillthroughColumns
andActivePivotClient.drillthroughColumns
instead.- The
PopoverPositionWithinWizard
type. - The
RootTilePositionWithinWizard
type. - The
SubtilePositionWithinWizard
type. - The
WizardSection
type. - The
WizardTile
type. - The
WizardTileWithChildren
type. - The
SelectionAnchor
type. - The
GridKey
type. - The
SelectionRange
type. - The
FieldDraggedFromDataModelTree
type. - The
MeasureDraggedFromDataModelTree
type. - The
LevelDraggedFromDataModelTree
type. - The
HierarchyDraggedFromDataModelTree
type. - The
DimensionDraggedFromDataModelTree
type. - The
KpiPropertyDraggedFromDataModelTree
type. - The
DraggedWidget
type. - The
LeafProps
type. - The
CellIndices
type. - The
Hash
type. - The
Locale
type. - The
TranslationParameter
type. - The
TranslationParameters
type. - The
useDrillthroughColumns
hook. - The
useMultiSelection
hook. - The
authenticate
function. - The
getPathToFolder
function. - The
isDimensionNode
function. - The
isHierarchyNode
function. - The
isMeasureNode
function. - The
isFieldDraggedFromDataModelTree
function. - The
isDraggedDimension
function. - The
isDraggedHierarchy
function. - The
isDraggedLevel
function. - The
isDraggedMeasure
function. - The
isMdxCompoundIdentifier
function. - The
isMdxFunction
function. - The
getMeasuresAxisName
function. - The
deriveMappingFromMdx
function. - The
sortTreeAlphabeticallyAndFoldersFirst
function. - The LazyLoadedCellSetTable component.
- The FileExplorer component.
- The Table component.
- The Wizard component.
activeUIOverlayRootId
.
- import { activeUIOverlayRootId } from "@activeviam/activeui-sdk";
- const getPopupContainer = () => document.getElementById(activeUIOverlayRootId);
+ import { useContext } from "react";
+ import { ConfigProvider } from "antd";
+ const { getPopupContainer } = useContext(ConfigProvider.ConfigContext);
SelectionListenerPlugin
type.pluginSelectionListenerFilterOtherWidgets
plugin.
Fixed
- Member unexpectedly expanded down to its children in its own hierarchy when the user expands it down to a different hierarchy, collapses it and then re-expands it.
- Missing tooltips on corrupted tiles (highlighted in red) in wizards.