Skip to content

Commit

Permalink
[KNOWAGE-8294][KNOWAGE-8251][KNOWAGE-8304]
Browse files Browse the repository at this point in the history
  • Loading branch information
Redjaw committed Dec 4, 2023
2 parents 05823b9 + 1673d2a commit 70f3109
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/modules/documentExecution/dashboard/DataProxyHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ export const getVariableData = async (variable: IVariable, datasets: IDataset[],
}

const getVariableDatasetLabel = (variable: IVariable, datasets: IDataset[]) => {
const datasetIndex = datasets.findIndex((dataset: IDataset) => variable.dataset === dataset.id)
const datasetIndex = datasets.findIndex((dataset: IDataset) => variable.dataset === dataset.id.dsId)
return datasetIndex !== -1 ? datasets[datasetIndex] : null
}
//#endregion ================================================================================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import { defineComponent, PropType } from 'vue'
import { IVariable, IDataset, IWidget } from '@/modules/documentExecution/dashboard/Dashboard'
import { mapActions } from 'pinia'
import { emitter } from '@/modules/documentExecution/dashboard/DashboardHelpers'
import DashboardGeneralSettingsList from './DashboardGeneralSettingsList.vue'
import DashboardInformation from './information/DashboardInformation.vue'
import DashboardBackground from './background/DashboardBackground.vue'
Expand Down Expand Up @@ -124,13 +125,18 @@ export default defineComponent({
},
async saveGeneralSettings() {
let refreshWidgets = false
for (let i = 0; i < this.variables.length; i++) {
if (this.variables[i].type === 'dataset') await setVariableValueFromDataset(this.variables[i], this.datasets, this.$http)
if (this.variables[i].type === 'dataset') {
await setVariableValueFromDataset(this.variables[i], this.datasets, this.$http)
refreshWidgets = true
}
}
this.dashboardModel.configuration.variables = this.variables
if (this.dashboardModel.configuration.theme) applySelectedThemeToWidgets(this.dashboardModel.widgets, this.dashboardModel.configuration.theme)
if (refreshWidgets) emitter.emit('refreshAfterGeneralSettingsChange')
this.$emit('closeGeneralSettings')
},
onCustomHeaderSaved(customHeader: IWidget) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export const setVariableValueFromDataset = async (variable: IVariable, datasets:
}

const setVariableValueFromColumn = (variable: IVariable, variableData: any) => {
const index = variableData.metaData?.fields.findIndex((field: any) => field.header === variable.column)
const index = variableData.metaData?.fields.findIndex((field: any) => field.header?.toLowerCase() === variable.column?.toLowerCase())
if (index === -1) return variable.value = ''
const columnName = variableData.metaData.fields[index].name
variable.value = variableData.rows[0] ? variableData.rows[0][columnName] : ''
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ export default defineComponent({
},
propActiveSelections() {
this.loadActiveSelections()
},
variables() {
this.loadDataToShow()
}
},
mounted() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ export default defineComponent({
emitter.on('datasetRefreshed', this.onDatasetRefresh)
emitter.on('setWidgetLoading', this.setWidgetLoading)
emitter.on('chartTypeChanged', this.onWidgetUpdated)
emitter.on('refreshAfterGeneralSettingsChange', this.loadInitalData)
},
removeEventListeners() {
emitter.off('selectionsChanged', this.loadActiveSelections)
Expand All @@ -202,6 +203,7 @@ export default defineComponent({
emitter.off('datasetRefreshed', this.onDatasetRefresh)
emitter.off('setWidgetLoading', this.setWidgetLoading)
emitter.off('chartTypeChanged', this.onWidgetUpdated)
emitter.off('refreshAfterGeneralSettingsChange', this.loadInitalData)
},
captureScreenshot(widget) {
let targetElement = document.getElementById(`widget${widget.id}`)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
<label class="kn-material-input-label p-mr-2">{{ $t('dashboard.widgetEditor.suffix') }}</label>
<InputText v-model="serieSetting.label.suffix" class="kn-material-input p-inputtext-sm" :disabled="!serieSetting.label.enabled" @change="modelChanged" />
</div>
<div v-if="formattingSectionAvailable" class="p-col-12 p-md-6 p-lg-2 p-d-flex p-flex-column kn-flex">
<div v-if="precisionAvailable" class="p-col-12 p-md-6 p-lg-2 p-d-flex p-flex-column kn-flex">
<label class="kn-material-input-label p-mr-2">{{ $t('dashboard.widgetEditor.precision') }}</label>
<InputNumber v-model="serieSetting.label.precision" class="kn-material-input p-inputtext-sm" :disabled="!serieSetting.label.enabled" @blur="modelChanged" />
</div>
Expand Down Expand Up @@ -126,14 +126,17 @@ export default defineComponent({
formattingSectionAvailable() {
return this.model && ['pie', 'gauge', 'solidgauge', 'radar', 'area', 'bar', 'column', 'line', 'scatter', 'bubble', 'sunburst', 'treemap', 'dependencywheel', 'sankey', 'pictorial', 'funnel'].includes(this.model.chart.type)
},
precisionAvailable() {
return this.model && ['pie', 'gauge', 'solidgauge', 'radar', 'area', 'bar', 'column', 'line', 'scatter', 'bubble'].includes(this.model.chart.type)
},
scaleVisible() {
return this.model && ['pie', 'gauge', 'solidgauge', 'radar', 'area', 'bar', 'column', 'line', 'scatter', 'bubble', 'sunburst', 'treemap'].includes(this.model.chart.type)
return this.model && ['pie', 'gauge', 'solidgauge', 'radar', 'area', 'bar', 'column', 'line', 'scatter', 'bubble'].includes(this.model.chart.type)
},
percentageAvailable() {
return this.model && ['pie', 'gauge', 'solidgauge'].includes(this.model.chart.type)
},
absoluteVisible() {
return this.model && ['pie', 'gauge', 'solidgauge', 'radar', 'area', 'bar', 'column', 'line', 'scatter', 'bubble', 'sunburst', 'treemap'].includes(this.model.chart.type)
return this.model && ['pie', 'gauge', 'solidgauge', 'radar', 'area', 'bar', 'column', 'line', 'scatter', 'bubble'].includes(this.model.chart.type)
},
advancedSectionAvailable() {
return this.model?.chart.type === 'gauge'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<template>
<div v-if="model" class="p-grid p-jc-center p-ai-center p-p-4">
<div v-if="chartType === 'heatmap'" class="p-col-12 p-d-flex p-flex-row">
<div v-if="['heatmap', 'sunburst'].includes(chartType)" class="p-col-12 p-d-flex p-flex-row">
<div class="p-col-12 p-md-4 p-d-flex p-flex-column kn-flex">
<label class="kn-material-input-label p-mr-">{{ $t('dashboard.widgetEditor.prefix') }}</label>
<InputText v-model="model.tooltip.valuePrefix" class="kn-material-input p-inputtext-sm" @change="modelChanged" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ITableWidgetColumnGroups, ITableWidgetConditionalStyles, ITableWidgetConfiguration, IWidgetCrossNavigation, ITableWidgetHeaders, IWidgetInteractions, IWidgetSelection, ITableWidgetSettings, ITableWidgetVisualization, IWidget, IWidgetColumn, ITableWidgetTooltipStyle } from '../../../../Dashboard'
import { ITableWidgetColumnGroups, ITableWidgetConditionalStyles, ITableWidgetConfiguration, IWidgetCrossNavigation, ITableWidgetHeaders, IWidgetInteractions, IWidgetSelection, ITableWidgetSettings, ITableWidgetVisualization, IWidget, IWidgetColumn, ITableWidgetTooltipStyle, ITableWidgetColumnStyles } from '../../../../Dashboard'

const columnIdNameMap = {}

Expand Down Expand Up @@ -30,6 +30,8 @@ const getColumnName = (columnId: string) => {
const formatTableSettings = (widgetSettings: ITableWidgetSettings) => {
if (widgetSettings.sortingColumn) widgetSettings.sortingColumn = getColumnName(widgetSettings.sortingColumn)
formatTableWidgetConfiguration(widgetSettings.configuration)
formatTableWidgetColumnStyles(widgetSettings.style.columns)
formatTableWidgetColumnStyles(widgetSettings.style.columnGroups)
formatTableWidgetVisualisation(widgetSettings.visualization)
formatTableWidgetConditionalStyle(widgetSettings.conditionalStyles)
formatTableWidgetTooltips(widgetSettings.tooltips)
Expand All @@ -42,6 +44,19 @@ const formatTableWidgetConfiguration = (widgetConfiguration: ITableWidgetConfigu
formatColumnGroups(widgetConfiguration)
}

const formatTableWidgetColumnStyles = (columnStyles: ITableWidgetColumnStyles) => {
for (let i = 0; i < columnStyles.styles.length; i++) {
const tempStyle = columnStyles.styles[i]
const formattedTargetColumns = [] as string[]
if (Array.isArray(tempStyle.target)) {
for (let j = 0; j < tempStyle.target.length; j++) {
formattedTargetColumns.push(getColumnName(tempStyle.target[j]))
}
tempStyle.target = formattedTargetColumns
}
}
}

const formatRowsConfiguration = (widgetConfiguration: ITableWidgetConfiguration) => {
if (!widgetConfiguration.rows) return
widgetConfiguration.rows.rowSpan.column = getColumnName(widgetConfiguration.rows.rowSpan.column)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IWidget, IWidgetColumn, ITableWidgetColumnGroup, IWidgetInteractionParameter, ITableWidgetSettings, ITableWidgetConfiguration, ITableWidgetHeaders, ITableWidgetVisualization, ITableWidgetConditionalStyles, IWidgetInteractions, IWidgetSelection, ITableWidgetColumnGroups, IWidgetCrossNavigation, ITableWidgetTooltipStyle } from "../../../../Dashboard"
import { IWidget, IWidgetColumn, ITableWidgetColumnGroup, IWidgetInteractionParameter, ITableWidgetSettings, ITableWidgetConfiguration, ITableWidgetHeaders, ITableWidgetVisualization, ITableWidgetConditionalStyles, IWidgetInteractions, IWidgetSelection, ITableWidgetColumnGroups, IWidgetCrossNavigation, ITableWidgetTooltipStyle, ITableWidgetColumnStyles } from "../../../../Dashboard"
import { emitter } from '../../../../DashboardHelpers'
import * as tableWidgetDefaultValues from './TableWidgetDefaultValues'
import * as widgetCommonDefaultValues from '../common/WidgetCommonDefaultValues'
Expand Down Expand Up @@ -132,6 +132,8 @@ const getColumnId = (columnName: string) => {
const formatTableSettings = (widgetSettings: ITableWidgetSettings) => {
if (widgetSettings.sortingColumn) widgetSettings.sortingColumn = getColumnId(widgetSettings.sortingColumn)
formatTableWidgetConfiguration(widgetSettings.configuration)
formatTableWidgetColumnStyles(widgetSettings.style.columns)
formatTableWidgetColumnStyles(widgetSettings.style.columnGroups)
formatTableWidgetVisualisation(widgetSettings.visualization)
formatTableWidgetConditionalStyle(widgetSettings.conditionalStyles)
formatTableWidgetTooltips(widgetSettings.tooltips)
Expand All @@ -144,6 +146,19 @@ const formatTableWidgetConfiguration = (widgetConfiguration: ITableWidgetConfigu
formatColumnGroups(widgetConfiguration)
}

const formatTableWidgetColumnStyles = (columnStyles: ITableWidgetColumnStyles) => {
for (let i = 0; i < columnStyles.styles.length; i++) {
const tempStyle = columnStyles.styles[i]
const formattedTargetColumns = [] as string[]
if (Array.isArray(tempStyle.target)) {
for (let j = 0; j < tempStyle.target.length; j++) {
formattedTargetColumns.push(getColumnId(tempStyle.target[j]))
}
tempStyle.target = formattedTargetColumns
}
}
}

const formatRowsConfiguration = (widgetConfiguration: ITableWidgetConfiguration) => {
if (!widgetConfiguration.rows) return
widgetConfiguration.rows.rowSpan.column = getColumnId(widgetConfiguration.rows.rowSpan.column)
Expand Down

0 comments on commit 70f3109

Please sign in to comment.