0, "Unpaid", `amount` < 0, "Return", "Paid")',
+ returnType: 'any',
},
count: {
syntax: 'count(column_name)',
description: 'Counts rows based on column.',
example: 'count(`ID`)',
+ returnType: 'number',
},
coalesce: {
syntax: 'coalesce(column1, column2, ...)',
description: 'Returns first non-null value from columns.',
example: 'coalesce(`first_name`, `last_name`)',
+ returnType: 'any',
},
if_null: {
syntax: 'if_null(column_name, "default_value")',
description: 'Provides default if column is null.',
example: 'if_null(`category`, "No Category")',
+ returnType: 'any',
},
distinct: {
syntax: 'distinct(column_name)',
description: 'Lists distinct values of the column.',
example: 'distinct(`customer`)',
+ returnType: 'any',
},
distinct_count: {
syntax: 'distinct_count(column_name)',
description: 'Counts distinct values of the column.',
example: 'distinct_count(`customer`)',
+ returnType: 'number',
},
count_if: {
syntax: 'count_if(condition)',
description: 'Counts rows that satisfy the condition.',
example: 'count_if(`amount` > 0)',
+ returnType: 'number',
},
sum_if: {
syntax: 'sum_if(condition, column_name)',
description: 'Sums values of the column that satisfy the condition.',
example: 'sum_if(`customer` = "John", `grand_total`)',
+ returnType: 'number',
},
descendants: {
syntax: 'descendants("value", "doctype", "fieldname")',
description: 'Lists all descendants of the given value.',
example: 'descendants("India", "tabTerritory", `territory`)',
+ returnType: 'boolean',
},
descendants_and_self: {
syntax: 'descendants_and_self("value", "doctype", "fieldname")',
description: 'Lists all descendants and self of the given value.',
example: 'descendants_and_self("India", "tabTerritory", `territory`)',
+ returnType: 'boolean',
},
sql: {
syntax: 'sql("query")',
description: 'Write raw SQL queries.',
example: 'sql("MONTH(invoice.posting_date)")',
+ returnType: 'any',
},
}
diff --git a/frontend/src/widgets/useChartData.js b/frontend/src/widgets/useChartData.js
index 8ed89490b..74ff8f531 100644
--- a/frontend/src/widgets/useChartData.js
+++ b/frontend/src/widgets/useChartData.js
@@ -30,11 +30,17 @@ export default function useChartData(options = {}) {
function load(query) {
if (!query) return
state.loading = true
- return options.resultsFetcher().then((results) => {
- state.loading = false
- state.rawData = getFormattedResult(results)
- state.data = convertResultToObjects(state.rawData)
- })
+ return options
+ .resultsFetcher()
+ .then((results) => {
+ state.loading = false
+ state.rawData = getFormattedResult(results)
+ state.data = convertResultToObjects(state.rawData)
+ })
+ .error((error) => {
+ state.loading = false
+ state.error = error
+ })
}
if (options.query) {