Skip to content

Commit 3448944

Browse files
Merge pull request #1017 fix: add fiscal year labeling to x-axis
fix: add fiscal year labeling to x-axis
2 parents 8724803 + fe507ca commit 3448944

File tree

3 files changed

+34
-15
lines changed

3 files changed

+34
-15
lines changed

frontend/src2/charts/helpers.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,13 @@ function getXAxis(x_axis: XAxis) {
353353
width: 100,
354354
overflow: 'truncate',
355355
ellipsis: '...',
356+
...(x_axis.dimension.granularity === 'fiscal_year'
357+
? {
358+
formatter: (value: any) => {
359+
return getFormattedDate(value, 'fiscal_year')
360+
},
361+
}
362+
: null),
356363
},
357364
}
358365
}
@@ -502,7 +509,7 @@ export function getDonutChartOptions(config: DonutChartConfig, result: QueryResu
502509
function getDonutChartData(
503510
columns: QueryResultColumn[],
504511
rows: QueryResultRow[],
505-
maxSlices: number
512+
maxSlices: number,
506513
) {
507514
const measureColumn = columns.find((c) => FIELDTYPES.MEASURE.includes(c.type))
508515
if (!measureColumn) {
@@ -632,7 +639,7 @@ export function getFunnelChartOptions(config: FunnelChartConfig, result: QueryRe
632639
function getMapChartData(
633640
columns: QueryResultColumn[],
634641
rows: QueryResultRow[],
635-
config?: MapChartConfig
642+
config?: MapChartConfig,
636643
) {
637644
const measureColumn = columns.find((c) => FIELDTYPES.MEASURE.includes(c.type))
638645
if (!measureColumn) {
@@ -888,7 +895,9 @@ export function getBubbleChartOptions(config: BubbleChartConfig, result: QueryRe
888895
// calculate symbol size
889896
let symbolSizeConfig: any = 10
890897
if (sizeColumnName) {
891-
const allSizes = _rows.map((r) => r[sizeColumnName]).filter((val) => val != null && !isNaN(val))
898+
const allSizes = _rows
899+
.map((r) => r[sizeColumnName])
900+
.filter((val) => val != null && !isNaN(val))
892901
if (allSizes.length > 0) {
893902
const minSize = Math.min(...allSizes)
894903
const maxSize = Math.max(...allSizes)
@@ -1042,16 +1051,17 @@ export function getSankeyChartOptions(config: SankeyChartConfig, result: QueryRe
10421051
const sourceColumn = columns.find(
10431052
(c) =>
10441053
c.name === config.source_column?.dimension_name ||
1045-
c.name === config.source_column?.column_name
1054+
c.name === config.source_column?.column_name,
10461055
)?.name
10471056
const targetColumn = columns.find(
10481057
(c) =>
10491058
c.name === config.target_column?.dimension_name ||
1050-
c.name === config.target_column?.column_name
1059+
c.name === config.target_column?.column_name,
10511060
)?.name
10521061
const valueColumn = columns.find(
10531062
(c) =>
1054-
c.name === config.value_column?.measure_name || c.name === config.value_column?.column_name
1063+
c.name === config.value_column?.measure_name ||
1064+
c.name === config.value_column?.column_name,
10551065
)?.name
10561066

10571067
if (!sourceColumn || !targetColumn || !valueColumn) {

frontend/src2/query/helpers.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,11 @@ export function getFormattedRows(result: QueryResult, operations: Operation[]) {
131131
formattedRow[column.name] = getFormattedDate(row[column.name], granularity)
132132
}
133133

134-
if (FIELDTYPES.TEXT.includes(column.type) && typeof row[column.name] === 'string' && row[column.name]) {
134+
if (
135+
FIELDTYPES.TEXT.includes(column.type) &&
136+
typeof row[column.name] === 'string' &&
137+
row[column.name]
138+
) {
135139
const htmlTagRegex = /<[^>]*>/g
136140
if (htmlTagRegex.test(row[column.name])) {
137141
htmlTagRegex.lastIndex = 0
@@ -146,13 +150,13 @@ export function getFormattedRows(result: QueryResult, operations: Operation[]) {
146150
})
147151
return formattedRows
148152
}
149-
150-
export function getFormattedDate(date: string, granularity: GranularityType) {
153+
export function getFormattedDate(date: string, granularity: string) {
151154
if (!date) return ''
155+
const fy = useSettings()
152156

153157
if (granularity === 'fiscal_year') {
154158
const d = dayjs(date)
155-
const fiscalYearStart = useSettings().doc.fiscal_year_start || '04-01'
159+
const fiscalYearStart = fy.doc.fiscal_year_start
156160
const fiscalStartMonth = dayjs(fiscalYearStart).month()
157161
const fiscalStartDay = dayjs(fiscalYearStart).date()
158162

@@ -386,7 +390,10 @@ export const query_operation_types = {
386390
icon: Braces,
387391
color: 'gray',
388392
class: 'text-gray-600 bg-gray-100',
389-
init: (args: CustomOperationArgs): CustomOperation => ({ type: 'custom_operation', ...args }),
393+
init: (args: CustomOperationArgs): CustomOperation => ({
394+
type: 'custom_operation',
395+
...args,
396+
}),
390397
getDescription: (op: CustomOperation) => {
391398
return `${op.expression.expression}`
392399
},
@@ -399,7 +406,7 @@ export const query_operation_types = {
399406
class: 'text-gray-600 bg-gray-100',
400407
init: (args: SQLArgs): SQL => ({ type: 'sql', ...args }),
401408
getDescription: (op: SQL) => {
402-
return __("SQL")
409+
return __('SQL')
403410
},
404411
},
405412
code: {
@@ -410,7 +417,7 @@ export const query_operation_types = {
410417
class: 'text-gray-600 bg-gray-100',
411418
init: (args: CodeArgs): Code => ({ type: 'code', ...args }),
412419
getDescription: (op: Code) => {
413-
return __("Code")
420+
return __('Code')
414421
},
415422
},
416423
}
@@ -484,5 +491,7 @@ export function matchesFilter(value: any, parsed: ParsedFilter): boolean {
484491
}
485492
}
486493
// text: case-insensitive substring match
487-
return String(value ?? '').toLowerCase().includes(parsed.text.toLowerCase())
494+
return String(value ?? '')
495+
.toLowerCase()
496+
.includes(parsed.text.toLowerCase())
488497
}

frontend/src2/settings/settings.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function makeSettings() {
1919
allowed_origins: '',
2020
max_records_to_sync: 10_00_000,
2121
max_memory_usage: 512,
22-
fiscal_year_start: '2024-04-01',
22+
fiscal_year_start: '',
2323
week_starts_on: 'Monday',
2424
enable_data_store: false,
2525
apply_user_permissions: false,

0 commit comments

Comments
 (0)