diff --git a/packages/web/src/charts/ChartCore.svelte b/packages/web/src/charts/ChartCore.svelte index e051180c1..b3f09ee25 100644 --- a/packages/web/src/charts/ChartCore.svelte +++ b/packages/web/src/charts/ChartCore.svelte @@ -24,8 +24,7 @@ import contextMenu, { getContextMenu, registerMenu } from '../utility/contextMenu'; import createActivator, { getActiveComponent } from '../utility/createActivator'; -import { saveFileToDisk } from '../utility/exportElectronFile'; - import resolveApi from '../utility/resolveApi'; + import { saveFileToDisk } from '../utility/exportElectronFile'; export let data; export let title; diff --git a/packages/web/src/charts/ChartEditor.svelte b/packages/web/src/charts/ChartEditor.svelte index a48daa1eb..bc264e11e 100644 --- a/packages/web/src/charts/ChartEditor.svelte +++ b/packages/web/src/charts/ChartEditor.svelte @@ -29,7 +29,8 @@ // export let menu; let availableColumnNames = []; - let error = null; + let errorLoadingColumns = null; + let errorLoadingData = null; let loadedData = null; $: config = $configStore; @@ -45,25 +46,32 @@ const driver = await getDriver(); if (!driver) return; try { + errorLoadingColumns = null; const columns = await loadChartStructure(driver, conid, database, sql); availableColumnNames = columns; // configStore.update(x => ({ ...x, labelColumn: availableColumnNames[0] })); } catch (err) { console.error(err); - error = err.message; + errorLoadingColumns = err.message; } }; const handleLoadData = async () => { const driver = await getDriver(); if (!driver) return; - const loaded = await loadChartData(driver, conid, database, sql, config); - if (!loaded) return; - const { columns, rows } = loaded; - loadedData = { - structure: columns, - rows, - }; + try { + errorLoadingData = null; + const loaded = await loadChartData(driver, conid, database, sql, config); + if (!loaded) return; + const { columns, rows } = loaded; + loadedData = { + structure: columns, + rows, + }; + } catch (err) { + console.error(err); + errorLoadingData = err.message; + } }; $: { @@ -154,8 +162,10 @@ - {#if error} - + {#if errorLoadingColumns} + + {:else if errorLoadingData} + {:else} {/if} diff --git a/packages/web/src/charts/chartDataLoader.ts b/packages/web/src/charts/chartDataLoader.ts index b9cf8128a..ae5786f64 100644 --- a/packages/web/src/charts/chartDataLoader.ts +++ b/packages/web/src/charts/chartDataLoader.ts @@ -75,7 +75,10 @@ export async function loadChartData(driver: EngineDriver, conid, database, sql, const dmp = driver.createDumper(); dumpSqlSelect(dmp, select); const resp = await axiosInstance.post('database-connections/query-data', { conid, database, sql: dmp.s }); - let { rows, columns } = resp.data; + let { rows, columns, errorMessage } = resp.data; + if (errorMessage) { + throw new Error(errorMessage); + } if (truncateFrom == 'end' && rows) { rows = _.reverse([...rows]); } @@ -97,6 +100,9 @@ export async function loadChartData(driver: EngineDriver, conid, database, sql, // }); } } + + console.log('Loaded chart data', { columns, rows }); + return { columns, rows, diff --git a/packages/web/src/tabs/ChartTab.svelte b/packages/web/src/tabs/ChartTab.svelte index af9a16be9..f43aaa598 100644 --- a/packages/web/src/tabs/ChartTab.svelte +++ b/packages/web/src/tabs/ChartTab.svelte @@ -11,18 +11,6 @@ undoRedo: true, }); - - registerCommand({ - id: 'chart.export', - category: 'Chart', - toolbarName: 'Export', - name: 'Export chart', - icon: 'icon report', - toolbar: true, - isRelatedToTab: true, - onClick: () => getCurrentEditor().exportChart(), - testEnabled: () => getCurrentEditor() != null, - });