From a19c5475ad8b9bdc7cfbefcf9ebb48fd27845132 Mon Sep 17 00:00:00 2001 From: Maxime Bouveron Date: Wed, 15 Oct 2025 12:08:47 +0200 Subject: [PATCH 01/41] Add CSV export option to datatable --- .../Visualizer/View/DataTable/DataTable.js | 3 +- .../View/DataTable/Header/Header.js | 60 ++++++++++++++----- .../Visualizer/View/DataTable/dataUtils.js | 13 ++-- .../Visualizer/View/DataTable/styles.scss | 1 + 4 files changed, 56 insertions(+), 21 deletions(-) diff --git a/src/views/Visualizer/View/DataTable/DataTable.js b/src/views/Visualizer/View/DataTable/DataTable.js index ec924c69..f73ee09a 100644 --- a/src/views/Visualizer/View/DataTable/DataTable.js +++ b/src/views/Visualizer/View/DataTable/DataTable.js @@ -138,7 +138,7 @@ export class DataTable extends React.Component { this.setState({ selectedFeatures }); } - exportDataAction = () => { + exportDataAction = (format = 'xlsx') => { const { displayedLayer: { label: name, @@ -169,6 +169,7 @@ export class DataTable extends React.Component { name, data, callback: exportCallback, + format, }); }; diff --git a/src/views/Visualizer/View/DataTable/Header/Header.js b/src/views/Visualizer/View/DataTable/Header/Header.js index 5cc0059b..8fc4347c 100644 --- a/src/views/Visualizer/View/DataTable/Header/Header.js +++ b/src/views/Visualizer/View/DataTable/Header/Header.js @@ -1,6 +1,6 @@ import React from 'react'; import classnames from 'classnames'; -import { Tag, Intent, Position, Popover, PopoverInteractionKind, Button, AnchorButton } from '@blueprintjs/core'; +import { Tag, Intent, Position, Popover, PopoverInteractionKind, Button, AnchorButton, Menu, MenuItem, ButtonGroup } from '@blueprintjs/core'; import ColumnsSelector from '@terralego/core/modules/Table/components/ColumnsSelector'; import Loading from '../../../../../components/Loading'; @@ -53,21 +53,49 @@ export const Header = ({
{exportData && ( - -
{featureToDisplay && ( -
- {isCarousel && ( -
+ + theme.palette.primary.dark, + fontWeight: 700, + opacity: 0.8, + }, + }} > -
- )} - {templates.length > 0 ? ( - - {templates.map((templateTab, idx) => ( - - - {({ properties: newProperties, ...staticProperties }) => ( - -