From a6a450b991fe659656e20519bbef67f4dc272961 Mon Sep 17 00:00:00 2001 From: Martin Ohlson Date: Thu, 17 Sep 2020 15:38:57 +0200 Subject: [PATCH 1/7] fix: series options unavailable for relative items --- packages/app/i18n/en.pot | 12 ++++- .../Options/SeriesTable.js | 48 +++++++++++++++++-- 2 files changed, 55 insertions(+), 5 deletions(-) diff --git a/packages/app/i18n/en.pot b/packages/app/i18n/en.pot index dbf6b32085..3e1d735462 100644 --- a/packages/app/i18n/en.pot +++ b/packages/app/i18n/en.pot @@ -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: 2020-08-28T12:56:12.965Z\n" -"PO-Revision-Date: 2020-08-28T12:56:12.965Z\n" +"POT-Creation-Date: 2020-09-17T13:27:10.687Z\n" +"PO-Revision-Date: 2020-09-17T13:27:10.687Z\n" msgid "Rename successful" msgstr "" @@ -529,6 +529,14 @@ msgstr "" msgid "There aren't any Series options for this visualization type" msgstr "" +msgid "Series options unavailable" +msgstr "" + +msgid "" +"Series options are not available when using relative selections for " +"periods, org.units or categories" +msgstr "" + msgid "Value labels" msgstr "" diff --git a/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js b/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js index 562f9c7af8..ba4080e037 100644 --- a/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js +++ b/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js @@ -11,13 +11,22 @@ import { TableBody, Radio, } from '@dhis2/ui' -import { VIS_TYPE_COLUMN, VIS_TYPE_LINE, visTypeIcons } from '@dhis2/analytics' +import { + VIS_TYPE_COLUMN, + VIS_TYPE_LINE, + visTypeIcons, + ouIdHelper, + getRelativePeriodIds, + DIMENSION_ID_ASSIGNED_CATEGORIES, + DIMENSION_ID_ORGUNIT, + DIMENSION_ID_PERIOD, +} from '@dhis2/analytics' import styles from '../styles/SeriesTable.module.css' import { acSetUiOptions, acUpdateUiSeriesItem } from '../../../actions/ui' -import { sGetUiOptions, sGetUiType } from '../../../reducers/ui' +import { sGetUiLayout, sGetUiOptions, sGetUiType } from '../../../reducers/ui' import { sGetSeriesSetupItems } from '../../../reducers' -import { EmptySeries, EmptyBox } from '../../../assets/ErrorIcons' +import { EmptySeries, EmptyBox, GenericError } from '../../../assets/ErrorIcons' import { AxisOne, AxisTwo, @@ -33,6 +42,7 @@ const availableAxes = [0, 1, 2, 3] const allTypes = [VIS_TYPE_COLUMN, VIS_TYPE_LINE] const SeriesTable = ({ + columns, layoutItems, optionItems, onChange, @@ -197,8 +207,38 @@ const SeriesTable = ({ EmptyBox() ) + const renderRelativeItemsError = () => + renderError( + i18n.t('Series options unavailable'), + i18n.t( + 'Series options are not available when using relative selections for periods, org.units or categories' + ), + GenericError() + ) + if (!showAxisOptions && !showTypeOptions) { return renderNoSeriesOptionsError() + } else if ( + columns.find(item => item === DIMENSION_ID_ASSIGNED_CATEGORIES) + ) { + return renderRelativeItemsError() + } else if ( + columns.find(item => item === DIMENSION_ID_ORGUNIT) && + layoutItems.find( + item => + ouIdHelper.hasLevelPrefix(item.dimensionItem) || + ouIdHelper.hasGroupPrefix(item.dimensionItem) || + item.dimensionItem.startsWith('USER_ORGUNIT') + ) + ) { + return renderRelativeItemsError() + } else if ( + columns.find(item => item === DIMENSION_ID_PERIOD) && + layoutItems.find(item => + getRelativePeriodIds().includes(item.dimensionItem) + ) + ) { + return renderRelativeItemsError() } else { return Object.keys(layoutItems).length && optionItems.length ? renderTable() @@ -207,6 +247,7 @@ const SeriesTable = ({ } SeriesTable.propTypes = { + columns: PropTypes.array.isRequired, visType: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, onItemChange: PropTypes.func.isRequired, @@ -225,6 +266,7 @@ SeriesTable.defaultProps = { const mapStateToProps = state => ({ layoutItems: sGetSeriesSetupItems(state), + columns: sGetUiLayout(state).columns, optionItems: sGetUiOptions(state).series, visType: sGetUiType(state), }) From 0564038537da8913b40dba5666277f0012340662 Mon Sep 17 00:00:00 2001 From: Martin Ohlson Date: Fri, 18 Sep 2020 13:12:12 +0200 Subject: [PATCH 2/7] fix: use hasRelativeItems to display series error msg --- .../Options/SeriesTable.js | 26 +++---------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js b/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js index ba4080e037..2c1acf1f8e 100644 --- a/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js +++ b/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js @@ -15,11 +15,7 @@ import { VIS_TYPE_COLUMN, VIS_TYPE_LINE, visTypeIcons, - ouIdHelper, - getRelativePeriodIds, - DIMENSION_ID_ASSIGNED_CATEGORIES, - DIMENSION_ID_ORGUNIT, - DIMENSION_ID_PERIOD, + hasRelativeItems, } from '@dhis2/analytics' import styles from '../styles/SeriesTable.module.css' @@ -219,23 +215,9 @@ const SeriesTable = ({ if (!showAxisOptions && !showTypeOptions) { return renderNoSeriesOptionsError() } else if ( - columns.find(item => item === DIMENSION_ID_ASSIGNED_CATEGORIES) - ) { - return renderRelativeItemsError() - } else if ( - columns.find(item => item === DIMENSION_ID_ORGUNIT) && - layoutItems.find( - item => - ouIdHelper.hasLevelPrefix(item.dimensionItem) || - ouIdHelper.hasGroupPrefix(item.dimensionItem) || - item.dimensionItem.startsWith('USER_ORGUNIT') - ) - ) { - return renderRelativeItemsError() - } else if ( - columns.find(item => item === DIMENSION_ID_PERIOD) && - layoutItems.find(item => - getRelativePeriodIds().includes(item.dimensionItem) + hasRelativeItems( + columns[0], + layoutItems.map(item => item.dimensionItem) ) ) { return renderRelativeItemsError() From efba4c777e9c54a4c214ba7ac17a2ecc20694c76 Mon Sep 17 00:00:00 2001 From: Martin Ohlson Date: Fri, 18 Sep 2020 13:12:41 +0200 Subject: [PATCH 3/7] fix: use hasRelativeItems to enable/disabled options --- .../VisualizationOptions/VisualizationOptions.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/app/src/components/VisualizationOptions/VisualizationOptions.js b/packages/app/src/components/VisualizationOptions/VisualizationOptions.js index 9a56430ab3..3462579b3f 100755 --- a/packages/app/src/components/VisualizationOptions/VisualizationOptions.js +++ b/packages/app/src/components/VisualizationOptions/VisualizationOptions.js @@ -19,11 +19,13 @@ import { sGetUiType, sGetUiOptions, sGetDimensionItemsByAxis, + sGetUiLayout, } from '../../reducers/ui' import { getOptionsByType } from '../../modules/options/config' import { isDualAxisType, hasCustomAxes, + hasRelativeItems, AXIS_ID_COLUMNS, } from '@dhis2/analytics' @@ -65,7 +67,12 @@ export class VisualizationOptions extends Component { })) render() { - const { visualizationType, columnDimensionItems, series } = this.props + const { + visualizationType, + columnDimensionItems, + series, + columns, + } = this.props const filteredSeries = series.filter(seriesItem => columnDimensionItems.some( layoutItem => layoutItem === seriesItem.dimensionItem @@ -73,7 +80,9 @@ export class VisualizationOptions extends Component { ) const optionsConfig = getOptionsByType( visualizationType, - isDualAxisType(visualizationType) && hasCustomAxes(filteredSeries) + isDualAxisType(visualizationType) && + hasCustomAxes(filteredSeries) && + !hasRelativeItems(columns[0], columnDimensionItems) ) const tabs = this.generateTabs(optionsConfig) @@ -118,6 +127,7 @@ export class VisualizationOptions extends Component { VisualizationOptions.propTypes = { visualizationType: PropTypes.string.isRequired, columnDimensionItems: PropTypes.array, + columns: PropTypes.array, series: PropTypes.array, } @@ -125,6 +135,7 @@ const mapStateToProps = state => ({ visualizationType: sGetUiType(state), columnDimensionItems: sGetDimensionItemsByAxis(state, AXIS_ID_COLUMNS), series: sGetUiOptions(state).series, + columns: sGetUiLayout(state).columns, }) export default connect(mapStateToProps)(VisualizationOptions) From a59b47b048adae009bb5c104b96dedffcbfd3e74 Mon Sep 17 00:00:00 2001 From: Martin Ohlson Date: Fri, 18 Sep 2020 16:04:49 +0200 Subject: [PATCH 4/7] chore: bump Analytics to latest --- packages/app/package.json | 2 +- packages/plugin/package.json | 2 +- yarn.lock | 46 ++++++++++++++++++------------------ 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 54f63cafa5..aa4f0af097 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -12,7 +12,7 @@ "redux-mock-store": "^1.5.4" }, "dependencies": { - "@dhis2/analytics": "^11.0.0", + "@dhis2/analytics": "^11.0.2", "@dhis2/app-runtime": "*", "@dhis2/d2-i18n": "*", "@dhis2/d2-ui-file-menu": "^7.0.7", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 4c92239630..6d02377965 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@dhis2/analytics": "^11.0.0", + "@dhis2/analytics": "^11.0.2", "@dhis2/ui": "^5.5.6", "lodash-es": "^4.17.11" }, diff --git a/yarn.lock b/yarn.lock index 8de69184f1..df9fd27ecf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1302,12 +1302,12 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@dhis2/analytics@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-11.0.0.tgz#a63a2e9f36ae98c17bced08818089e42dac8c94e" - integrity sha512-JuD7E4Ty5xgWED5aQ8Q4kp5K8Bq7iu2VQ5j7E4yxOE8TGDqGbfIjnz/TVSQtyebXF4ub9Vyv5F8Mb7khF29qjQ== +"@dhis2/analytics@^11.0.2": + version "11.0.2" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-11.0.2.tgz#04c73faff4bba79291a873f4be0ed9c749148968" + integrity sha512-WzQXY5vQ5nfIn6mEq4qK9a0YmizWVrDieRAiNayrPfCPuXCiMw02B3+Ms+kCBZmmW0dReCYtyJgvSHEhKIM+cw== dependencies: - "@dhis2/d2-ui-org-unit-dialog" "^7.0.5" + "@dhis2/d2-ui-org-unit-dialog" "^7.0.8" "@dhis2/ui" "^5.5.6" "@material-ui/core" "^3.9.3" "@material-ui/icons" "^3.0.2" @@ -1453,10 +1453,10 @@ i18next "^10.3" moment "^2.24.0" -"@dhis2/d2-ui-core@7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-core/-/d2-ui-core-7.0.5.tgz#bfedb815ebc0edb2901c0b1f4b59a856e9d18c34" - integrity sha512-ALK1vVe1yE+4mPnBBIdVNi3aAG7yVeLHjxAcEX/1XvCfK0CKnGas2I8K+KcxZMB0FHBr4+hzKzP4NkE4b+a4gQ== +"@dhis2/d2-ui-core@7.0.7": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-core/-/d2-ui-core-7.0.7.tgz#2d8b504916b3283e54d59c0ef17a76a94468a9de" + integrity sha512-C4UmZrJar+xwhNjCj9SbwoU0tBCxOBphcvn2PjK4z8+tJrG9qTqpJNOw33VZgI6jOxlW1CCh7SPiP5phDUufJw== dependencies: babel-runtime "^6.26.0" d2 "~31.7" @@ -1464,10 +1464,10 @@ material-ui "^0.20.0" rxjs "^5.5.7" -"@dhis2/d2-ui-core@7.0.7": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-core/-/d2-ui-core-7.0.7.tgz#2d8b504916b3283e54d59c0ef17a76a94468a9de" - integrity sha512-C4UmZrJar+xwhNjCj9SbwoU0tBCxOBphcvn2PjK4z8+tJrG9qTqpJNOw33VZgI6jOxlW1CCh7SPiP5phDUufJw== +"@dhis2/d2-ui-core@7.0.8": + version "7.0.8" + resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-core/-/d2-ui-core-7.0.8.tgz#efc579b1468a709917feb0a02c157bce6a39d212" + integrity sha512-DFbvQgb3oJWeK/a18lmNk7T5mqjqesQ2MDB5Wsj+o+fQ6bF1mUlAI1zYl/hR4KWE9rLnIDTmIK+JZZY3VGR5Yg== dependencies: babel-runtime "^6.26.0" d2 "~31.7" @@ -1528,22 +1528,22 @@ lodash "^4.17.10" prop-types "^15.6.2" -"@dhis2/d2-ui-org-unit-dialog@^7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-org-unit-dialog/-/d2-ui-org-unit-dialog-7.0.5.tgz#b13cab9e17ad6555837338a65e2da78a32cb0224" - integrity sha512-fY37Z6b6GfqgjJ6Wha05ho6fgHtqHhMX49QxKZSchACH46EmuLq4uw5+wzuAXuZTIjSfsqk07xloWtTtgyjd8Q== +"@dhis2/d2-ui-org-unit-dialog@^7.0.8": + version "7.0.8" + resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-org-unit-dialog/-/d2-ui-org-unit-dialog-7.0.8.tgz#7caade6e72ae0b578ee03d84e4326ea6450ce0ac" + integrity sha512-LXp8Vx5fCwRkBexADHIDYfdpDX0japeZpbgJxCAtwPbkrY28QXRZhzdllNK0x14FEWlmXghBwUDoqIPr24QrNw== dependencies: - "@dhis2/d2-ui-org-unit-tree" "7.0.5" + "@dhis2/d2-ui-org-unit-tree" "7.0.8" "@material-ui/core" "^3.3.1" "@material-ui/icons" "^3.0.1" prop-types "^15.5.10" -"@dhis2/d2-ui-org-unit-tree@7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-org-unit-tree/-/d2-ui-org-unit-tree-7.0.5.tgz#07c8ee3041679d0f2aea21d1155a30db25476072" - integrity sha512-HJIy/rrrsONBjVyk0NxsTw9VBXiQu67d3tFM6rd65mBeokANLpWtFk4iGiiifECniX3c6D/NiyX5Ap2iqBIHPg== +"@dhis2/d2-ui-org-unit-tree@7.0.8": + version "7.0.8" + resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-org-unit-tree/-/d2-ui-org-unit-tree-7.0.8.tgz#63a23dd1944a73aafb730fe99684e64da17c9037" + integrity sha512-RVt7mg1VwcQ+hxZts6+kRqKXSROC8WqST8Wkbb0QJmmCcuxp5Fb6bU2Ah0ApOtw8Q1owWsP+UlJT7sXrzzkX1Q== dependencies: - "@dhis2/d2-ui-core" "7.0.5" + "@dhis2/d2-ui-core" "7.0.8" "@material-ui/core" "^3.3.1" babel-runtime "^6.26.0" prop-types "^15.5.10" From e2978ec88565934221a6f4ee224fd620826e6ee6 Mon Sep 17 00:00:00 2001 From: Martin Ohlson Date: Mon, 21 Sep 2020 10:18:35 +0200 Subject: [PATCH 5/7] fix: org units typo --- .../src/components/VisualizationOptions/Options/SeriesTable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js b/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js index 2c1acf1f8e..b0d1fa92c7 100644 --- a/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js +++ b/packages/app/src/components/VisualizationOptions/Options/SeriesTable.js @@ -207,7 +207,7 @@ const SeriesTable = ({ renderError( i18n.t('Series options unavailable'), i18n.t( - 'Series options are not available when using relative selections for periods, org.units or categories' + 'Series options are not available when using relative selections for periods, org units or categories' ), GenericError() ) From d213d6fcc62d8b8d491c86f927d26a0d215117db Mon Sep 17 00:00:00 2001 From: Edoardo Sabadelli Date: Fri, 11 Sep 2020 08:48:34 +0200 Subject: [PATCH 6/7] fix: use dense variant for radio buttons (DHIS2-9486) --- .../VisualizationOptions/Options/LegendDisplayStrategy.js | 2 ++ .../components/VisualizationOptions/Options/RadioBaseOption.js | 1 + 2 files changed, 3 insertions(+) diff --git a/packages/app/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js b/packages/app/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js index c129a82739..5f82b43b6b 100644 --- a/packages/app/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js +++ b/packages/app/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js @@ -26,6 +26,7 @@ const LegendDisplayStrategy = ({ value, onChange }) => ( value={LEGEND_DISPLAY_STRATEGY_BY_DATA_ITEM} checked={value === LEGEND_DISPLAY_STRATEGY_BY_DATA_ITEM} onChange={onChange} + dense /> ( value={LEGEND_DISPLAY_STRATEGY_FIXED} checked={value === LEGEND_DISPLAY_STRATEGY_FIXED} onChange={onChange} + dense /> {value === LEGEND_DISPLAY_STRATEGY_FIXED ? ( diff --git a/packages/app/src/components/VisualizationOptions/Options/RadioBaseOption.js b/packages/app/src/components/VisualizationOptions/Options/RadioBaseOption.js index 867cad9373..229122916e 100644 --- a/packages/app/src/components/VisualizationOptions/Options/RadioBaseOption.js +++ b/packages/app/src/components/VisualizationOptions/Options/RadioBaseOption.js @@ -23,6 +23,7 @@ export const RadioBaseOption = ({ checked={value === id} onChange={({ value }) => onChange(value)} disabled={disabled} + dense /> ))} From c6dbd993e94170c527170c338c17d419f32adcf4 Mon Sep 17 00:00:00 2001 From: Edoardo Sabadelli Date: Fri, 11 Sep 2020 10:22:51 +0200 Subject: [PATCH 7/7] fix: styling in Limit values tab --- .../VisualizationOptions/VisualizationOptions.js | 4 +--- .../styles/VisualizationOptions.style.js | 7 +++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/app/src/components/VisualizationOptions/VisualizationOptions.js b/packages/app/src/components/VisualizationOptions/VisualizationOptions.js index 3462579b3f..4e6dbf4031 100755 --- a/packages/app/src/components/VisualizationOptions/VisualizationOptions.js +++ b/packages/app/src/components/VisualizationOptions/VisualizationOptions.js @@ -50,9 +50,7 @@ export class VisualizationOptions extends Component { {content} {helpText ? ( - - {helpText} - + {helpText} ) : null} diff --git a/packages/app/src/components/VisualizationOptions/styles/VisualizationOptions.style.js b/packages/app/src/components/VisualizationOptions/styles/VisualizationOptions.style.js index 05cd27b93b..b6cac29028 100644 --- a/packages/app/src/components/VisualizationOptions/styles/VisualizationOptions.style.js +++ b/packages/app/src/components/VisualizationOptions/styles/VisualizationOptions.style.js @@ -52,8 +52,11 @@ export const tabSectionOptionItem = css.resolve` export const tabSectionOptionText = css.resolve` p { - font-size: ${spacers.dp14}; - padding-bottom: ${spacers.dp16}; + margin: 0; + padding-bottom: ${spacers.dp8}; + font-size: 14px; + line-height: 19px; + color: ${colors.grey700}; } `