diff --git a/frontend/src/i18n/en.js b/frontend/src/i18n/en.js index 72970022b9..157b4a1a83 100644 --- a/frontend/src/i18n/en.js +++ b/frontend/src/i18n/en.js @@ -550,7 +550,8 @@ const en = { }, Sentiment: { averageSentiment: '[Sentiment] Average', - date: '[Sentiment] Date' + date: '[Sentiment] Date', + platform: '[Sentiment] Platform' } } }, diff --git a/frontend/src/modules/report/report-charts.js b/frontend/src/modules/report/report-charts.js index 9107cc93ea..32094d053c 100644 --- a/frontend/src/modules/report/report-charts.js +++ b/frontend/src/modules/report/report-charts.js @@ -95,15 +95,16 @@ export function chartOptions(widget, resultSet) { ) { const platforms = ( resultSet ? resultSet.tablePivot() : [] - ).map((p) => p['Activities.platform']) + ) + .map((p) => p['Activities.platform']) + .filter((item, i, ar) => ar.indexOf(item) === i) + let mappedColors = platforms.map((p) => { - if (p in platformColors) { - return platformColors[p] - } - return null + return platformColors[p] }) const defaultColors = chartTypeOptions.colors || defaultChartOptions.colors + let restColors = defaultColors.filter( (c) => !mappedColors.includes(c) ) @@ -115,6 +116,7 @@ export function chartOptions(widget, resultSet) { } return c }) + chartTypeOptions = { ...chartTypeOptions, colors: [...mappedColors, ...restColors] diff --git a/frontend/src/modules/widget/components/cube/_query_builder/ChartType.vue b/frontend/src/modules/widget/components/cube/_query_builder/ChartType.vue index 54d1fc0d4e..d50ff73b06 100644 --- a/frontend/src/modules/widget/components/cube/_query_builder/ChartType.vue +++ b/frontend/src/modules/widget/components/cube/_query_builder/ChartType.vue @@ -74,7 +74,9 @@ export default { computed: { model: { get() { - return this.chartType + return this.modelValue === 'line' + ? 'area' + : this.modelValue }, set(value) { this.updateChartType(value) diff --git a/frontend/src/modules/widget/components/cube/_query_builder/DimensionSelect.vue b/frontend/src/modules/widget/components/cube/_query_builder/DimensionSelect.vue index 388e1d54eb..428d32dcac 100644 --- a/frontend/src/modules/widget/components/cube/_query_builder/DimensionSelect.vue +++ b/frontend/src/modules/widget/components/cube/_query_builder/DimensionSelect.vue @@ -13,7 +13,7 @@ v-model="value" clearable filterable - :disabled="measures.length === 0" + :disabled="computedDimensions.length <= 1" class="w-full" @mouseleave="onSelectMouseLeave" > @@ -94,7 +94,8 @@ export default { 'Members.joinedAt', 'Members.organization', 'Tags.name' - ] + ], + 'Sentiment.averageSentiment': ['Sentiment.platform'] } } }, @@ -111,8 +112,26 @@ export default { }, value: { get() { + const measure = this.measures[0] + + // Select first option by default if measure changes + if (measure) { + const hasOption = this.measureDimensions[ + measure.name + ]?.includes(this.dimensions?.[0]?.name) + + if ( + !hasOption && + this.measureDimensions[measure.name]?.[0] + ) { + this.setDimensions([ + this.measureDimensions[measure.name][0] + ]) + } + } + return this.translatedOptions(this.dimensions).map( - (i) => i.label + (i) => i.name )?.[0] }, set(value) { diff --git a/frontend/src/modules/widget/components/cube/_query_builder/FilterComponent.vue b/frontend/src/modules/widget/components/cube/_query_builder/FilterComponent.vue index 13cc557a41..55bf55cdc7 100644 --- a/frontend/src/modules/widget/components/cube/_query_builder/FilterComponent.vue +++ b/frontend/src/modules/widget/components/cube/_query_builder/FilterComponent.vue @@ -1,5 +1,8 @@