diff --git a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx index 4037234f74fd0..0b7002d26a3c2 100644 --- a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx +++ b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx @@ -538,6 +538,14 @@ class SliceHeaderControls extends React.PureComponent< return ( <> + {slice.description && ( + + + + )} + state?.common?.locale, ); - - const [untilDate, setUntilDate] = useState('' as unknown as moment.Moment); - const [sinceDate, setSinceDate] = useState('' as unknown as moment.Moment); + const [untilDate, setUntilDate] = useState( + props.value !== 'No filter' && props.value.split(' : ').length > 1 + ? moment(props.value.split(' : ')[1]) + : ('' as unknown as moment.Moment), + ); + const [sinceDate, setSinceDate] = useState( + props.value !== 'No filter' && props.value.split(' : ').length > 1 + ? moment(props.value.split(' : ')[0]) + : ('' as unknown as moment.Moment), + ); const datePickerLocale = locales[LOCALE_MAPPING[localFromFlaskBabel]]?.DatePicker; @@ -115,24 +123,38 @@ export function CustomFrame(props: FrameComponentProps) { [sinceDatetime, untilDatetime] = setLastMonth(); } else if (type === DateType.LastYear) { [sinceDatetime, untilDatetime] = setLastYear(); - } else if (type === DateType.Week) { - untilDatetime = moment().format(MOMENT_FORMAT); - setUntilDate(moment()); - sinceDatetime = moment().subtract(1, 'weeks').format(MOMENT_FORMAT); - setSinceDate(moment().subtract(1, 'weeks')); - } else if (type === DateType.Month) { - untilDatetime = moment().format(MOMENT_FORMAT); - setUntilDate(moment()); + } else { + const untilDate = moment().format(dateFormat); + untilDatetime = moment( + `${untilDate} 23:59:59`, + `YYYY/MM/DD HH:mm:ss`, + ).format(MOMENT_FORMAT); + setUntilDate(moment(`${untilDate} 23:59:59`, `YYYY/MM/DD HH:mm:ss`)); + } + if (type === DateType.Week) { + const sinceDate = moment().subtract(1, 'weeks').format(dateFormat); + sinceDatetime = moment( + `${sinceDate} 00:00:00`, + `YYYY/MM/DD HH:mm:ss`, + ).format(MOMENT_FORMAT); + setSinceDate(moment(`${sinceDate} 00:00:00`, `YYYY/MM/DD HH:mm:ss`)); + } + if (type === DateType.Last30Day) { + const sinceDate = moment().subtract(1, 'month').format(dateFormat); + sinceDatetime = moment( + `${sinceDate} 00:00:00`, + `YYYY/MM/DD HH:mm:ss`, + ).format(MOMENT_FORMAT); + setSinceDate(moment(`${sinceDate} 00:00:00`, `YYYY/MM/DD HH:mm:ss`)); + } + if (type === DateType.Month) { sinceDatetime = moment().startOf('month').format(MOMENT_FORMAT); setSinceDate(moment().startOf('month')); - } else if (type === DateType.Year) { - untilDatetime = moment().format(MOMENT_FORMAT); - setUntilDate(moment()); + } + if (type === DateType.Year) { sinceDatetime = moment().startOf('year').format(MOMENT_FORMAT); setSinceDate(moment().startOf('year')); } - console.log(sinceDatetime); - console.log(untilDatetime); onChange({ sinceDatetime, untilDatetime }); }; @@ -159,6 +181,12 @@ export function CustomFrame(props: FrameComponentProps) { > Last Month +