chart fixes

This commit is contained in:
Jan Prochazka
2021-11-25 09:09:48 +01:00
parent 3dc9a05706
commit b416dcc844
4 changed files with 29 additions and 26 deletions

View File

@@ -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;

View File

@@ -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 @@
</div>
<svelte:fragment slot="2">
{#if error}
<ErrorInfo message={error} alignTop />
{#if errorLoadingColumns}
<ErrorInfo message={errorLoadingColumns} alignTop />
{:else if errorLoadingData}
<ErrorInfo message={errorLoadingData} alignTop />
{:else}
<DataChart data={data || loadedData} />
{/if}

View File

@@ -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,

View File

@@ -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,
});
</script>
<script lang="ts">