fix: Adds time grain to Pivot Table v2 (#22170)

This commit is contained in:
Michael S. Molina 2022-11-20 10:20:01 -05:00 committed by GitHub
parent 7e54b88a51
commit 9a2cb431ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 5 deletions

View File

@ -144,6 +144,7 @@ export default function PivotTableChart(props: PivotTableProps) {
metricColorFormatters,
dateFormatters,
onContextMenu,
timeGrainSqla,
} = props;
const theme = useTheme();
@ -375,14 +376,15 @@ export default function PivotTableChart(props: PivotTableProps) {
if (colKey && colKey.length > 1) {
colKey.forEach((val, i) => {
const col = cols[i];
const formattedVal =
dateFormatters[col]?.(val as number) || String(val);
const formatter = dateFormatters[col];
const formattedVal = formatter?.(val as number) || String(val);
if (i > 0) {
filters.push({
col,
op: '==',
val,
formattedVal,
grain: formatter ? timeGrainSqla : undefined,
});
}
});
@ -390,20 +392,21 @@ export default function PivotTableChart(props: PivotTableProps) {
if (rowKey) {
rowKey.forEach((val, i) => {
const col = rows[i];
const formattedVal =
dateFormatters[col]?.(val as number) || String(val);
const formatter = dateFormatters[col];
const formattedVal = formatter?.(val as number) || String(val);
filters.push({
col,
op: '==',
val,
formattedVal,
grain: formatter ? timeGrainSqla : undefined,
});
});
}
onContextMenu(e.clientX, e.clientY, filters);
}
},
[cols, dateFormatters, onContextMenu, rows],
[cols, dateFormatters, onContextMenu, rows, timeGrainSqla],
);
return (

View File

@ -101,6 +101,7 @@ export default function transformProps(chartProps: ChartProps<QueryFormData>) {
emitFilter,
metricsLayout,
conditionalFormatting,
timeGrainSqla,
} = formData;
const { selectedFilters } = filterState;
const granularity = extractTimegrain(rawFormData);
@ -165,5 +166,6 @@ export default function transformProps(chartProps: ChartProps<QueryFormData>) {
metricColorFormatters,
dateFormatters,
onContextMenu,
timeGrainSqla,
};
}

View File

@ -27,6 +27,7 @@ import {
QueryFormMetric,
QueryFormColumn,
BinaryQueryObjectFilterClause,
TimeGranularity,
} from '@superset-ui/core';
import { ColorFormatters } from '@superset-ui/chart-controls';
@ -78,6 +79,7 @@ interface PivotTableCustomizeProps {
clientY: number,
filters?: BinaryQueryObjectFilterClause[],
) => void;
timeGrainSqla?: TimeGranularity;
}
export type PivotTableQueryFormData = QueryFormData &