Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6fa82e8
feat: add DATA_TABLE_COLUMN_CONFIG_SET reducer action and persistence…
BRaimbault Jul 16, 2026
c8a0a2a
feat: add pure column visibility/order/pin computation
BRaimbault Jul 16, 2026
0244925
feat: wire column visibility/pin/order into DataTable rendering
BRaimbault Jul 16, 2026
6b4f602
feat: add ColumnPicker component for show/hide, pin, and reorder
BRaimbault Jul 16, 2026
89cd902
test: add coverage for dataTableColumnConfig persistence and ColumnPi…
BRaimbault Jul 16, 2026
3d18945
fix: small improvements
BRaimbault Jul 16, 2026
b599f86
chore: datatable controls refactor
BRaimbault Jul 17, 2026
d9a194e
fix: column picker cleanup
BRaimbault Jul 17, 2026
769bb89
fix: pr cleanup
BRaimbault Jul 17, 2026
74e1b00
chore: fix sonarqube issues
BRaimbault Jul 17, 2026
615319a
chore: use css module
BRaimbault Jul 17, 2026
646a949
chore: pr cleanup
BRaimbault Jul 17, 2026
8de524f
chore: pr cleanup
BRaimbault Jul 17, 2026
2e612b9
chore: add retry on delete
BRaimbault Jul 20, 2026
bce7ee2
chore: update e2eReplicaAccount.js
BRaimbault Jul 20, 2026
8956690
chore: PR wrap-up
BRaimbault Jul 27, 2026
30de24b
chore: regenerate i18n/en.pot after PR4 rebase
BRaimbault Sep 4, 2026
12d87f8
fix: apply PR4 code review fixes
BRaimbault Sep 4, 2026
4da5621
fix: show the actual filter state in the row selection filter button
BRaimbault Sep 4, 2026
8f2866e
fix: don't resize the data table on a plain toolbar click
BRaimbault Sep 4, 2026
2c50673
chore: regenerate i18n/en.pot after review-fix commits
BRaimbault Sep 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 70 additions & 49 deletions i18n/en.pot
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"POT-Creation-Date: 2026-09-04T10:42:40.441Z\n"
"PO-Revision-Date: 2026-09-04T10:42:40.441Z\n"
"POT-Creation-Date: 2026-09-04T12:03:11.272Z\n"
"PO-Revision-Date: 2026-09-04T12:03:11.272Z\n"

msgid "2020"
msgstr "2020"
Expand Down Expand Up @@ -155,53 +155,6 @@ msgstr "Operator"
msgid "Date"
msgstr "Date"

msgid "{{filtered}} of {{total}} rows"
msgstr "{{filtered}} of {{total}} rows"

msgid "{{total}} rows"
msgstr "{{total}} rows"

msgid "Restore"
msgstr "Restore"

msgid "Collapse"
msgstr "Collapse"

msgid "Highlight color"
msgstr "Highlight color"

msgid "Clear filters"
msgstr "Clear filters"

msgid "Search all columns"
msgstr "Search all columns"

msgid "Show only features in current map view"
msgstr "Show only features in current map view"

msgid "Close"
msgstr "Close"

msgid "Selected"
msgstr "Selected"

msgid "Not selected"
msgstr "Not selected"

msgid "All"
msgstr "All"

msgid "{{count}} selected"
msgid_plural "{{count}} selected"
msgstr[0] "{{count}} selected"
msgstr[1] "{{count}} selected"

msgid "No features match your filters"
msgstr "No features match your filters"

msgid "No results found"
msgstr "No results found"

msgid "Select all visible rows"
msgstr "Select all visible rows"

Expand Down Expand Up @@ -265,6 +218,15 @@ msgstr "No matches"
msgid "No value"
msgstr "No value"

msgid "Selected"
msgstr "Selected"

msgid "Not selected"
msgstr "Not selected"

msgid "All"
msgstr "All"

msgid "Drill up one level"
msgstr "Drill up one level"

Expand All @@ -286,6 +248,60 @@ msgstr "Zoom to selected features"
msgid "Zoom to filtered features"
msgstr "Zoom to filtered features"

msgid "No features match your filters"
msgstr "No features match your filters"

msgid "Clear filters"
msgstr "Clear filters"

msgid "No results found"
msgstr "No results found"

msgid "Close"
msgstr "Close"

msgid "Restore"
msgstr "Restore"

msgid "Collapse"
msgstr "Collapse"

msgid "Configure columns"
msgstr "Configure columns"

msgid "Select all columns"
msgstr "Select all columns"

msgid "Reset to defaults"
msgstr "Reset to defaults"

msgid "Drag to reorder"
msgstr "Drag to reorder"

msgid "Unpin column"
msgstr "Unpin column"

msgid "Pin column to the left"
msgstr "Pin column to the left"

msgid "Search across all visible columns"
msgstr "Search across all visible columns"

msgid "Search all columns"
msgstr "Search all columns"

msgid "Highlight color"
msgstr "Highlight color"

msgid "{{filtered}} of {{total}} rows"
msgstr "{{filtered}} of {{total}} rows"

msgid "{{total}} rows"
msgstr "{{total}} rows"

msgid "Show only features in current map view"
msgstr "Show only features in current map view"

msgid "Data table is not supported when events are grouped on the server."
msgstr "Data table is not supported when events are grouped on the server."

Expand Down Expand Up @@ -2026,6 +2042,11 @@ msgstr ""
msgid "Cannot get authorization token for Google Earth Engine."
msgstr "Cannot get authorization token for Google Earth Engine."

msgid "{{count}} selected"
msgid_plural "{{count}} selected"
msgstr[0] "{{count}} selected"
msgstr[1] "{{count}} selected"

msgid "Thematic"
msgstr "Thematic"

Expand Down
6 changes: 6 additions & 0 deletions src/actions/dataTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,9 @@ export const setHighlightColor = (color) => ({
type: types.HIGHLIGHT_COLOR_SET,
color,
})

export const setDataTableColumnConfig = (layerId, config) => ({
type: types.DATA_TABLE_COLUMN_CONFIG_SET,
layerId,
config,
})
2 changes: 1 addition & 1 deletion src/components/core/Checkbox.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Checkbox.propTypes = {
dataTest: PropTypes.string,
dense: PropTypes.bool,
disabled: PropTypes.bool,
label: PropTypes.string,
label: PropTypes.node,
style: PropTypes.object,
tooltip: PropTypes.string,
}
Expand Down
65 changes: 37 additions & 28 deletions src/components/core/IconButton.jsx
Original file line number Diff line number Diff line change
@@ -1,36 +1,45 @@
import { Tooltip } from '@dhis2/ui'
import cx from 'classnames'
import PropTypes from 'prop-types'
import React from 'react'
import React, { forwardRef } from 'react'
import styles from './styles/IconButton.module.css'

const IconButton = ({
tooltip,
onClick,
className,
children,
dataTest,
disabled,
ariaLabel,
}) => {
return (
<button
onClick={onClick}
className={cx(styles.iconButton, className, {
[styles.disabled]: !!disabled,
})}
data-test={dataTest}
disabled={disabled}
aria-label={ariaLabel}
>
{tooltip ? (
<Tooltip content={tooltip}>{children}</Tooltip>
) : (
children
)}
</button>
)
}
const IconButton = forwardRef(
(
{
tooltip,
onClick,
className,
children,
dataTest,
disabled,
ariaLabel,
},
ref
) => {
return (
<button
ref={ref}
type="button"
onClick={onClick}
className={cx(styles.iconButton, className, {
[styles.disabled]: !!disabled,
})}
data-test={dataTest}
disabled={disabled}
aria-label={ariaLabel}
>
{tooltip ? (
<Tooltip content={tooltip}>{children}</Tooltip>
) : (
children
)}
</button>
)
}
)

IconButton.displayName = 'IconButton'

IconButton.propTypes = {
ariaLabel: PropTypes.string,
Expand Down
4 changes: 2 additions & 2 deletions src/components/core/icons.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ export const SortIcon = ({ direction }) => (
<polygon
fill={
direction === 'desc'
? 'var(--colors-blue700)'
? 'var(--colors-teal600)'
: 'var(--colors-grey500)'
}
points="4 9 12 9 8 14"
/>
<polygon
fill={
direction === 'asc'
? 'var(--colors-blue700)'
? 'var(--colors-teal600)'
: 'var(--colors-grey500)'
}
points="4 7 12 7 8 2"
Expand Down
Loading
Loading