From c0a0769c7a8cba1869e0645ec388f9a1066d06f1 Mon Sep 17 00:00:00 2001 From: esikkala <esko.ikkala@aalto.fi> Date: Fri, 13 Aug 2021 09:11:47 +0300 Subject: [PATCH] Pie chart: use translated label for missing value --- src/client/components/facet_bar/ChartDialog.js | 4 +++- src/client/components/facet_bar/FacetHeader.js | 3 +++ src/client/components/facet_bar/HierarchicalFacet.js | 5 ++--- src/client/configs/sampo/ApexCharts/PieChartConfig.js | 7 ++++++- src/client/helpers/helpers.js | 7 +++++++ 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/client/components/facet_bar/ChartDialog.js b/src/client/components/facet_bar/ChartDialog.js index 8ef4f3f1..ea003479 100644 --- a/src/client/components/facet_bar/ChartDialog.js +++ b/src/client/components/facet_bar/ChartDialog.js @@ -20,7 +20,8 @@ const useStyles = makeStyles(theme => ({ const ChartDialog = props => { const { fetchData, facetID, rawData, rawDataUpdateID, createChartData, facetClass, - resultClass, fetching, tooltip, title, xaxisTitle, yaxisTitle, seriesTitle, lineChartConfig + resultClass, fetching, tooltip, title, xaxisTitle, yaxisTitle, seriesTitle, lineChartConfig, + layoutConfig } = props let xaxisType = null; let xaxisTickAmount = null; let stroke = null if (lineChartConfig) { @@ -72,6 +73,7 @@ const ChartDialog = props => { xaxisType={xaxisType} xaxisTickAmount={xaxisTickAmount} stroke={stroke} + layoutConfig={layoutConfig} /> </div> </GeneralDialog> diff --git a/src/client/components/facet_bar/FacetHeader.js b/src/client/components/facet_bar/FacetHeader.js index 83f329f6..b52a735c 100644 --- a/src/client/components/facet_bar/FacetHeader.js +++ b/src/client/components/facet_bar/FacetHeader.js @@ -298,6 +298,7 @@ class FacetHeader extends React.Component { icon={<PieChartIcon />} tooltip={intl.get('facetBar.pieChart.tooltip')} dialogTitle={this.props.facetLabel} + layoutConfig={this.props.layoutConfig} />} {barChartButton && <ChartDialog @@ -314,6 +315,7 @@ class FacetHeader extends React.Component { xaxisTitle={intl.get(`facetBar.barChart.${this.props.facetID}.xaxisTitle`)} yaxisTitle={intl.get(`facetBar.barChart.${this.props.facetID}.yaxisTitle`)} seriesTitle={intl.get(`facetBar.barChart.${this.props.facetID}.seriesTitle`)} + layoutConfig={this.props.layoutConfig} />} {lineChartButton && <ChartDialog @@ -331,6 +333,7 @@ class FacetHeader extends React.Component { yaxisTitle={intl.get(`facetBar.lineChart.${this.props.facetID}.yaxisTitle`)} seriesTitle={intl.get(`facetBar.lineChart.${this.props.facetID}.seriesTitle`)} lineChartConfig={this.props.facet.lineChartConfig} + layoutConfig={this.props.layoutConfig} />} {menuButtons.length > 0 && <> diff --git a/src/client/components/facet_bar/HierarchicalFacet.js b/src/client/components/facet_bar/HierarchicalFacet.js index 642765b9..697c10dc 100644 --- a/src/client/components/facet_bar/HierarchicalFacet.js +++ b/src/client/components/facet_bar/HierarchicalFacet.js @@ -14,6 +14,7 @@ import IconButton from '@material-ui/core/IconButton' import NavigateNextIcon from '@material-ui/icons/NavigateNext' import NavigateBeforeIcon from '@material-ui/icons/NavigateBefore' import Typography from '@material-ui/core/Typography' +import { generateLabelForMissingValue } from '../../helpers/helpers' const styles = () => ({ facetSearchContainer: { @@ -261,9 +262,7 @@ class HierarchicalFacet extends Component { isSearchMatch = this.state.matches.some(match => match.node.id === node.id) } if (node.id === 'http://ldf.fi/MISSING_VALUE') { - // Check if there is a translated label for missing value, or use defaults - node.prefLabel = intl.get(`perspectives.${this.props.facetClass}.properties.${this.props.facetID}.missingValueLabel`) || - intl.get('facetBar.defaultMissingValueLabel') || 'Unknown' + node.prefLabel = generateLabelForMissingValue({ facetClass: this.props.facetClass, facetID: this.props.facetID }) } return ( <> diff --git a/src/client/configs/sampo/ApexCharts/PieChartConfig.js b/src/client/configs/sampo/ApexCharts/PieChartConfig.js index fa9f563b..de9e55fa 100644 --- a/src/client/configs/sampo/ApexCharts/PieChartConfig.js +++ b/src/client/configs/sampo/ApexCharts/PieChartConfig.js @@ -1,4 +1,6 @@ -export const createApexPieChartData = ({ rawData, screenSize }) => { +import { generateLabelForMissingValue } from '../../../helpers/helpers' + +export const createApexPieChartData = ({ rawData, screenSize, facetClass, facetID }) => { const labels = [] const series = [] let otherCount = 0 @@ -9,6 +11,9 @@ export const createApexPieChartData = ({ rawData, screenSize }) => { if (portion < threshold) { otherCount += parseInt(item.instanceCount) } else { + if (item.id === 'http://ldf.fi/MISSING_VALUE') { + item.prefLabel = generateLabelForMissingValue({ facetClass, facetID }) + } labels.push(item.prefLabel) series.push(parseInt(item.instanceCount)) } diff --git a/src/client/helpers/helpers.js b/src/client/helpers/helpers.js index 57f99ec0..0ac74f64 100644 --- a/src/client/helpers/helpers.js +++ b/src/client/helpers/helpers.js @@ -1,5 +1,6 @@ import querystring from 'querystring' import { has } from 'lodash' +import intl from 'react-intl-universal' export const stateToUrl = ({ facets, @@ -151,3 +152,9 @@ export const arrayToObject = ({ array, keyField }) => obj[item[keyField]] = item return obj }, {}) + +export const generateLabelForMissingValue = ({ facetClass, facetID }) => { + // Check if there is a translated label for missing value, or use defaults + return intl.get(`perspectives.${facetClass}.properties.${facetID}.missingValueLabel`) || + intl.get('facetBar.defaultMissingValueLabel') || 'Unknown' +} -- GitLab