This commit is contained in:
Thomas Weaver 2024-03-08 01:30:30 -05:00 committed by GitHub
parent b78e213e73
commit 8d39d761a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 53 additions and 39 deletions

View File

@ -17,7 +17,7 @@ import {TableData} from 'app/client/models/TableData';
import {ColumnFilterCalendarView} from 'app/client/ui/ColumnFilterCalendarView'; import {ColumnFilterCalendarView} from 'app/client/ui/ColumnFilterCalendarView';
import {relativeDatesControl} from 'app/client/ui/ColumnFilterMenuUtils'; import {relativeDatesControl} from 'app/client/ui/ColumnFilterMenuUtils';
import {cssInput} from 'app/client/ui/cssInput'; import {cssInput} from 'app/client/ui/cssInput';
import {DateRangeOptions, IDateRangeOption} from 'app/client/ui/DateRangeOptions'; import {getDateRangeOptions, IDateRangeOption} from 'app/client/ui/DateRangeOptions';
import {cssPinButton} from 'app/client/ui/RightPanelStyles'; import {cssPinButton} from 'app/client/ui/RightPanelStyles';
import {basicButton, primaryButton, textButton} from 'app/client/ui2018/buttons'; import {basicButton, primaryButton, textButton} from 'app/client/ui2018/buttons';
import {cssLabel as cssCheckboxLabel, cssCheckboxSquare, import {cssLabel as cssCheckboxLabel, cssCheckboxSquare,
@ -176,16 +176,16 @@ export function columnFilterMenu(owner: IDisposableOwner, opts: IFilterMenuOptio
cssLinkRow( cssLinkRow(
testId('presets-links'), testId('presets-links'),
cssLink( cssLink(
DateRangeOptions[0].label, getDateRangeOptions()[0].label,
dom.on('click', () => action(DateRangeOptions[0])) dom.on('click', () => action(getDateRangeOptions()[0]))
), ),
cssLink( cssLink(
DateRangeOptions[1].label, getDateRangeOptions()[1].label,
dom.on('click', () => action(DateRangeOptions[1])) dom.on('click', () => action(getDateRangeOptions()[1]))
), ),
cssLink( cssLink(
'More ', icon('Dropdown'), 'More ', icon('Dropdown'),
menu(() => DateRangeOptions.map( menu(() => getDateRangeOptions().map(
(option) => menuItem(() => action(option), option.label) (option) => menuItem(() => action(option), option.label)
), {attach: '.' + cssMenu.className}) ), {attach: '.' + cssMenu.className})
), ),

View File

@ -1,41 +1,55 @@
import {makeT} from 'app/client/lib/localization';
import { CURRENT_DATE, IRelativeDateSpec } from "app/common/RelativeDates"; import { CURRENT_DATE, IRelativeDateSpec } from "app/common/RelativeDates";
const t = makeT('DateRangeOptions');
export interface IDateRangeOption { export interface IDateRangeOption {
label: string; label: string;
min: IRelativeDateSpec; min: IRelativeDateSpec;
max: IRelativeDateSpec; max: IRelativeDateSpec;
} }
export const DateRangeOptions: IDateRangeOption[] = [{ export function getDateRangeOptions(): IDateRangeOption[] {
label: 'Today', return [
{
label: t('Today'),
min: CURRENT_DATE, min: CURRENT_DATE,
max: CURRENT_DATE, max: CURRENT_DATE,
}, { },
label: 'Last 7 days', {
label: t('Last 7 days'),
min: [{quantity: -7, unit: 'day'}], min: [{quantity: -7, unit: 'day'}],
max: [{quantity: -1, unit: 'day'}], max: [{quantity: -1, unit: 'day'}],
}, { },
label: 'Next 7 days', {
label: t('Next 7 days'),
min: [{quantity: 1, unit: 'day'}], min: [{quantity: 1, unit: 'day'}],
max: [{quantity: 7, unit: 'day'}], max: [{quantity: 7, unit: 'day'}],
}, { },
label: 'Last Week', {
label: t('Last Week'),
min: [{quantity: -1, unit: 'week'}], min: [{quantity: -1, unit: 'week'}],
max: [{quantity: -1, unit: 'week', endOf: true}], max: [{quantity: -1, unit: 'week', endOf: true}],
}, { },
label: 'Last 30 days', {
label: t('Last 30 days'),
min: [{quantity: -30, unit: 'day'}], min: [{quantity: -30, unit: 'day'}],
max: [{quantity: -1, unit: 'day'}], max: [{quantity: -1, unit: 'day'}],
}, { },
label: 'This week', {
label: t('This week'),
min: [{quantity: 0, unit: 'week'}], min: [{quantity: 0, unit: 'week'}],
max: [{quantity: 0, unit: 'week', endOf: true}], max: [{quantity: 0, unit: 'week', endOf: true}],
}, { },
label: 'This month', {
label: t('This month'),
min: [{quantity: 0, unit: 'month'}], min: [{quantity: 0, unit: 'month'}],
max: [{quantity: 0, unit: 'month', endOf: true}], max: [{quantity: 0, unit: 'month', endOf: true}],
}, { },
label: 'This year', {
label: t('This year'),
min: [{quantity: 0, unit: 'year'}], min: [{quantity: 0, unit: 'year'}],
max: [{quantity: 0, unit: 'year', endOf: true}], max: [{quantity: 0, unit: 'year', endOf: true}],
}]; },
];
}