diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx index 2addfa23119f5..db449b3450ef6 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx +++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx @@ -51,7 +51,8 @@ export function ColumnOption({ }: ColumnOptionProps) { const { expression, column_name, type_generic } = column; const hasExpression = expression && expression !== column_name; - const warningMarkdown = column.warning_markdown || column.warning_text; + const warningMarkdown = + column.warning_markdown || column.warning_text || column.error_text; const type = hasExpression ? 'expression' : type_generic; const [tooltipText, setTooltipText] = useState(column.column_name); const [columnTypeTooltipText, setcolumnTypeTooltipText] = useState( @@ -103,6 +104,10 @@ export function ColumnOption({ tooltip={} label={`warn-${column.column_name}`} iconsStyle={{ marginLeft: 0 }} + {...(column.error_text && { + className: 'text-danger', + icon: 'exclamation-circle', + })} /> )} diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx index b558a0987ab0c..c424cde518e26 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx +++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx @@ -81,7 +81,8 @@ export function MetricOption({ ); - const warningMarkdown = metric.warning_markdown || metric.warning_text; + const warningMarkdown = + metric.warning_markdown || metric.warning_text || metric.error_text; const [tooltipText, setTooltipText] = useState(metric.metric_name); @@ -116,6 +117,10 @@ export function MetricOption({ tooltip={} label={`warn-${metric.metric_name}`} iconsStyle={{ marginLeft: 0 }} + {...(metric.error_text && { + className: 'text-danger', + icon: 'exclamation-circle', + })} /> )} diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts b/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts index ac6523bedb35d..227ca6e71d562 100644 --- a/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts +++ b/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts @@ -71,6 +71,7 @@ export interface Metric { verbose_name?: string; warning_markdown?: Maybe; warning_text?: Maybe; + error_text?: string; } export function isSavedMetric(metric: any): metric is SavedMetric { diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx index 929dd5ef58aba..faceb68336e1f 100644 --- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx +++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx @@ -109,9 +109,7 @@ function DndColumnSelect(props: DndColumnSelectProps) { isAdhocColumn(column) && column.datasourceWarning ? t('This column might be incompatible with current dataset') : undefined; - const withCaret = - isAdhocColumn(column) || - !(column.warning_markdown || column.warning_text); + const withCaret = isAdhocColumn(column) || !column.error_text; return (