mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-27 10:16:03 +00:00
chart fixes
This commit is contained in:
@@ -24,8 +24,7 @@
|
|||||||
|
|
||||||
import contextMenu, { getContextMenu, registerMenu } from '../utility/contextMenu';
|
import contextMenu, { getContextMenu, registerMenu } from '../utility/contextMenu';
|
||||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||||
import { saveFileToDisk } from '../utility/exportElectronFile';
|
import { saveFileToDisk } from '../utility/exportElectronFile';
|
||||||
import resolveApi from '../utility/resolveApi';
|
|
||||||
|
|
||||||
export let data;
|
export let data;
|
||||||
export let title;
|
export let title;
|
||||||
|
|||||||
@@ -29,7 +29,8 @@
|
|||||||
// export let menu;
|
// export let menu;
|
||||||
|
|
||||||
let availableColumnNames = [];
|
let availableColumnNames = [];
|
||||||
let error = null;
|
let errorLoadingColumns = null;
|
||||||
|
let errorLoadingData = null;
|
||||||
let loadedData = null;
|
let loadedData = null;
|
||||||
|
|
||||||
$: config = $configStore;
|
$: config = $configStore;
|
||||||
@@ -45,18 +46,21 @@
|
|||||||
const driver = await getDriver();
|
const driver = await getDriver();
|
||||||
if (!driver) return;
|
if (!driver) return;
|
||||||
try {
|
try {
|
||||||
|
errorLoadingColumns = null;
|
||||||
const columns = await loadChartStructure(driver, conid, database, sql);
|
const columns = await loadChartStructure(driver, conid, database, sql);
|
||||||
availableColumnNames = columns;
|
availableColumnNames = columns;
|
||||||
// configStore.update(x => ({ ...x, labelColumn: availableColumnNames[0] }));
|
// configStore.update(x => ({ ...x, labelColumn: availableColumnNames[0] }));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
error = err.message;
|
errorLoadingColumns = err.message;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleLoadData = async () => {
|
const handleLoadData = async () => {
|
||||||
const driver = await getDriver();
|
const driver = await getDriver();
|
||||||
if (!driver) return;
|
if (!driver) return;
|
||||||
|
try {
|
||||||
|
errorLoadingData = null;
|
||||||
const loaded = await loadChartData(driver, conid, database, sql, config);
|
const loaded = await loadChartData(driver, conid, database, sql, config);
|
||||||
if (!loaded) return;
|
if (!loaded) return;
|
||||||
const { columns, rows } = loaded;
|
const { columns, rows } = loaded;
|
||||||
@@ -64,6 +68,10 @@
|
|||||||
structure: columns,
|
structure: columns,
|
||||||
rows,
|
rows,
|
||||||
};
|
};
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
errorLoadingData = err.message;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
@@ -154,8 +162,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<svelte:fragment slot="2">
|
<svelte:fragment slot="2">
|
||||||
{#if error}
|
{#if errorLoadingColumns}
|
||||||
<ErrorInfo message={error} alignTop />
|
<ErrorInfo message={errorLoadingColumns} alignTop />
|
||||||
|
{:else if errorLoadingData}
|
||||||
|
<ErrorInfo message={errorLoadingData} alignTop />
|
||||||
{:else}
|
{:else}
|
||||||
<DataChart data={data || loadedData} />
|
<DataChart data={data || loadedData} />
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -75,7 +75,10 @@ export async function loadChartData(driver: EngineDriver, conid, database, sql,
|
|||||||
const dmp = driver.createDumper();
|
const dmp = driver.createDumper();
|
||||||
dumpSqlSelect(dmp, select);
|
dumpSqlSelect(dmp, select);
|
||||||
const resp = await axiosInstance.post('database-connections/query-data', { conid, database, sql: dmp.s });
|
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) {
|
if (truncateFrom == 'end' && rows) {
|
||||||
rows = _.reverse([...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 {
|
return {
|
||||||
columns,
|
columns,
|
||||||
rows,
|
rows,
|
||||||
|
|||||||
@@ -11,18 +11,6 @@
|
|||||||
|
|
||||||
undoRedo: true,
|
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>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|||||||
Reference in New Issue
Block a user