Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
205 changes: 176 additions & 29 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-07T15:11:13.032Z\n"
"PO-Revision-Date: 2026-09-07T15:11:13.032Z\n"
"POT-Creation-Date: 2026-09-10T11:58:06.572Z\n"
"PO-Revision-Date: 2026-09-10T11:58:06.572Z\n"

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

msgid ""
"Values from {{layers}} only reflect the filter(s) applied in their own "
"table."
msgstr ""
"Values from {{layers}} only reflect the filter(s) applied in their own "
"table."

msgid ""
"Values from {{layers}} aren't available to join into the Combined table "
"while clustered on the server."
msgstr ""
"Values from {{layers}} aren't available to join into the Combined table "
"while clustered on the server."

msgid "No matching rows"
msgstr "No matching rows"

msgid "Location join over large datasets may be slow (over {{threshold}} features)"
msgstr "Location join over large datasets may be slow (over {{threshold}} features)"

msgid "Zoom to feature"
msgstr "Zoom to feature"

msgid "Zoom to selected features"
msgstr "Zoom to selected features"

msgid "Zoom to filtered features"
msgstr "Zoom to filtered features"

msgid "Edit layer"
msgstr "Edit layer"

Expand Down Expand Up @@ -263,18 +292,9 @@ msgstr "Drill down one level"
msgid "View profile"
msgstr "View profile"

msgid "Zoom to feature"
msgstr "Zoom to feature"

msgid "Zoom to layer"
msgstr "Zoom to layer"

msgid "Zoom to selected features"
msgstr "Zoom to selected features"

msgid "Zoom to filtered features"
msgstr "Zoom to filtered features"

msgid "Event details aren't available while this layer is clustered on the server"
msgstr "Event details aren't available while this layer is clustered on the server"

Expand Down Expand Up @@ -326,9 +346,109 @@ msgstr "Search all columns"
msgid "Highlight color"
msgstr "Highlight color"

msgid "Choose layers to combine"
msgstr "Choose layers to combine"

msgid "Facilities count"
msgstr "Facilities count"

msgid "Org units count"
msgstr "Org units count"

msgid "Events count"
msgstr "Events count"

msgid "Tracked entities count"
msgstr "Tracked entities count"

msgid "Count"
msgstr "Count"

msgid "Collapse {{layer}}"
msgstr "Collapse {{layer}}"

msgid "Expand {{layer}}"
msgstr "Expand {{layer}}"

msgid ""
"This layer has a filter active from its own table - Combined only reflects "
"the filtered records."
msgstr ""
"This layer has a filter active from its own table - Combined only reflects "
"the filtered records."

msgid "Clear filters applied to {{layer}}"
msgstr "Clear filters applied to {{layer}}"

msgid ""
"This layer is clustered on the server - its data isn't available to join "
"into the Combined table."
msgstr ""
"This layer is clustered on the server - its data isn't available to join "
"into the Combined table."

msgid "Switch to client clustering"
msgstr "Switch to client clustering"

msgid "Join by"
msgstr "Join by"

msgid "Join type for {{layer}}"
msgstr "Join type for {{layer}}"

msgid "Org unit"
msgstr "Org unit"

msgid "Location"
msgstr "Location"

msgid ""
"{{count}} feature(s) from {{layer}} could not be matched to a reference org "
"unit (wrong level, no matching parent, or outside every boundary) and will "
"be excluded from the Combined table."
msgid_plural ""
"{{count}} feature(s) from {{layer}} could not be matched to a reference org "
"unit (wrong level, no matching parent, or outside every boundary) and will "
"be excluded from the Combined table."
msgstr[0] ""
"{{count}} feature(s) from {{layer}} could not be matched to a reference org "
"unit (wrong level, no matching parent, or outside every boundary) and will "
"be excluded from the Combined table."
msgstr[1] ""
"{{count}} feature(s) from {{layer}} could not be matched to a reference org "
"unit (wrong level, no matching parent, or outside every boundary) and will "
"be excluded from the Combined table."

msgid "Aggregation type for {{name}} ({{layer}})"
msgstr "Aggregation type for {{name}} ({{layer}})"

msgid "Aggregation type for {{layer}}"
msgstr "Aggregation type for {{layer}}"

msgid ""
"Several {{layer}} features roll up into each reference org unit here - "
"{{type}} is an approximation of the values you can see joined in, not a "
"recomputation over the combined area."
msgstr ""
"Several {{layer}} features roll up into each reference org unit here - "
"{{type}} is an approximation of the values you can see joined in, not a "
"recomputation over the combined area."

msgid "Categories"
msgstr "Categories"

msgid "Category display for {{layer}}"
msgstr "Category display for {{layer}}"

msgid "Choose a data table to view"
msgstr "Choose a data table to view"

msgid "Combined"
msgstr "Combined"

msgid "Configure reference org units"
msgstr "Configure reference org units"

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

Expand All @@ -338,6 +458,45 @@ msgstr "{{total}} rows"
msgid "Show only features in current map view"
msgstr "Show only features in current map view"

msgid "Count ({{layer}})"
msgstr "Count ({{layer}})"

msgid "{{name}} ({{unit}}) ({{layer}})"
msgstr "{{name}} ({{unit}}) ({{layer}})"

msgid "%"
msgstr "%"

msgid "count"
msgstr "count"

msgid "Value ({{layer}}, {{period}})"
msgstr "Value ({{layer}}, {{period}})"

msgid "Current period"
msgstr "Current period"

msgid "{{name}} ({{layer}})"
msgstr "{{name}} ({{layer}})"

msgid "Value ({{layer}})"
msgstr "Value ({{layer}})"

msgid "Legend ({{layer}})"
msgstr "Legend ({{layer}})"

msgid "Legend ({{layer}}, {{period}})"
msgstr "Legend ({{layer}}, {{period}})"

msgid "Org unit id"
msgstr "Org unit id"

msgid "Org unit level"
msgstr "Org unit level"

msgid "Org unit hierarchy"
msgstr "Org unit hierarchy"

msgid "No valid data was found for the current layer configuration."
msgstr "No valid data was found for the current layer configuration."

Expand Down Expand Up @@ -450,6 +609,9 @@ msgstr "Earth Engine"
msgid "feature"
msgstr "feature"

msgid "reference org units"
msgstr "reference org units"

msgid "Edit {{name}} layer"
msgstr "Edit {{name}} layer"

Expand All @@ -462,6 +624,9 @@ msgstr "Update layer"
msgid "Add layer"
msgstr "Add layer"

msgid "Update reference"
msgstr "Update reference"

msgid "Area statistics (popups and data table)"
msgstr "Area statistics (popups and data table)"

Expand Down Expand Up @@ -1232,9 +1397,6 @@ msgstr "Tracked Entity Type"
msgid "By data element"
msgstr "By data element"

msgid "Count"
msgstr "Count"

msgid "Average"
msgstr "Average"

Expand Down Expand Up @@ -2089,15 +2251,6 @@ msgstr "GroupSet used for styling was not found"
msgid "Id"
msgstr "Id"

msgid "Org unit id"
msgstr "Org unit id"

msgid "Org unit"
msgstr "Org unit"

msgid "Org unit level"
msgstr "Org unit level"

msgid "Geometry type"
msgstr "Geometry type"

Expand All @@ -2107,9 +2260,6 @@ msgstr "Range"
msgid "Org unit boundary"
msgstr "Org unit boundary"

msgid "Org unit hierarchy"
msgstr "Org unit hierarchy"

msgid "Created"
msgstr "Created"

Expand All @@ -2119,9 +2269,6 @@ msgstr "Group"
msgid "Icon"
msgstr "Icon"

msgid "Current period"
msgstr "Current period"

msgid "Value ({{period}})"
msgstr "Value ({{period}})"

Expand Down
44 changes: 44 additions & 0 deletions src/actions/__tests__/dataTable.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ import {
setHighlightColor,
setDataTableColumnConfig,
setActiveTimelinePeriod,
toggleCombinedView,
setJoinConfig,
setCombinedColumnConfig,
setCombinedVisibleIds,
} from '../dataTable.js'

describe('closeDataTable', () => {
Expand Down Expand Up @@ -115,3 +119,43 @@ describe('setActiveTimelinePeriod', () => {
})
})
})

describe('toggleCombinedView', () => {
it('creates a DATA_TABLE_COMBINED_VIEW_TOGGLE action', () => {
expect(toggleCombinedView()).toEqual({
type: types.DATA_TABLE_COMBINED_VIEW_TOGGLE,
})
})
})

describe('setJoinConfig', () => {
it('creates a DATA_TABLE_JOIN_CONFIG_SET action', () => {
const layers = { layer1: { type: 'orgUnit', aggregation: {} } }
expect(setJoinConfig('ref1', layers)).toEqual({
type: types.DATA_TABLE_JOIN_CONFIG_SET,
layerId: 'ref1',
layers,
})
})
})

describe('setCombinedColumnConfig', () => {
it('creates a DATA_TABLE_COMBINED_COLUMN_CONFIG_SET action', () => {
const config = { pinnedKeys: ['name'] }
expect(setCombinedColumnConfig('ref1', config)).toEqual({
type: types.DATA_TABLE_COMBINED_COLUMN_CONFIG_SET,
layerId: 'ref1',
config,
})
})
})

describe('setCombinedVisibleIds', () => {
it('creates a COMBINED_VISIBLE_IDS_SET action', () => {
const idsByLayer = { layer1: ['a', 'b'] }
expect(setCombinedVisibleIds(idsByLayer)).toEqual({
type: types.COMBINED_VISIBLE_IDS_SET,
idsByLayer,
})
})
})
8 changes: 8 additions & 0 deletions src/actions/__tests__/layers.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ describe('removeLayer', () => {
id: 'layer1',
})
})

it('includes combinedLayerKey when provided', () => {
expect(removeLayer('layer1', 'layer1Key')).toEqual({
type: types.LAYER_REMOVE,
id: 'layer1',
combinedLayerKey: 'layer1Key',
})
})
})

describe('duplicateLayer', () => {
Expand Down
21 changes: 21 additions & 0 deletions src/actions/dataTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,24 @@ export const setActiveTimelinePeriod = (period) => ({
type: types.ACTIVE_TIMELINE_PERIOD_SET,
period,
})

export const toggleCombinedView = () => ({
type: types.DATA_TABLE_COMBINED_VIEW_TOGGLE,
})

export const setJoinConfig = (layerId, layers) => ({
type: types.DATA_TABLE_JOIN_CONFIG_SET,
layerId,
layers,
})

export const setCombinedColumnConfig = (layerId, config) => ({
type: types.DATA_TABLE_COMBINED_COLUMN_CONFIG_SET,
layerId,
config,
})

export const setCombinedVisibleIds = (idsByLayer) => ({
type: types.COMBINED_VISIBLE_IDS_SET,
idsByLayer,
})
3 changes: 2 additions & 1 deletion src/actions/layers.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ export const addLayer = (config) => ({
})

// Remove an overlay
export const removeLayer = (id) => ({
export const removeLayer = (id, combinedLayerKey) => ({
type: types.LAYER_REMOVE,
id,
combinedLayerKey,
})

// Duplicate an overlay
Expand Down
Loading
Loading