diff --git a/packages/types/extensions.d.ts b/packages/types/extensions.d.ts
index 142b6658a..fca442fe9 100644
--- a/packages/types/extensions.d.ts
+++ b/packages/types/extensions.d.ts
@@ -33,9 +33,16 @@ export interface PluginDefinition {
content: any;
}
+export interface QuickExportDefinition {
+ label: string;
+ createWriter: (fileName: string) => { functionName: string; props: any };
+ extension: string;
+}
+
export interface ExtensionsDirectory {
plugins: PluginDefinition[];
fileFormats: FileFormatDefinition[];
+ quickExports: QuickExportDefinition[];
drivers: EngineDriver[];
themes: ThemeDefinition[];
}
diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
index f125e77cc..edfc2de46 100644
--- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte
+++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
@@ -1,6 +1,7 @@
({ name: x.label, extensions: [x.extension] }));
+}
+
+export async function exportElectronFile() {
+ const electron = getElectron();
+ const ext = get(extensions);
+ const filters = getFileFormatFilters(ext);
+ console.log('FLT', filters);
+ electron.remote.dialog
+ .showSaveDialog(electron.remote.getCurrentWindow(), {
+ filters,
+ })
+ .then(filePaths => {
+ console.log('filePaths ASYNC2', filePaths);
+ const filePath = filePaths && filePaths[0];
+ console.log('filePath', filePath);
+ });
+}
diff --git a/plugins/dbgate-plugin-csv/src/frontend/index.js b/plugins/dbgate-plugin-csv/src/frontend/index.js
index 33b0f6a17..94a199e3d 100644
--- a/plugins/dbgate-plugin-csv/src/frontend/index.js
+++ b/plugins/dbgate-plugin-csv/src/frontend/index.js
@@ -43,4 +43,29 @@ const fileFormat = {
export default {
fileFormats: [fileFormat],
+
+ quickExports: [
+ {
+ label: 'CSV file',
+ extension: 'csv',
+ createWriter: (fileName) => ({
+ functionName: 'writer',
+ props: {
+ fileName,
+ delimiter: ',',
+ },
+ }),
+ },
+ {
+ label: 'CSV file (semicolor separated)',
+ extension: 'csv',
+ createWriter: (fileName) => ({
+ functionName: 'writer',
+ props: {
+ fileName,
+ delimiter: ';',
+ },
+ }),
+ },
+ ],
};
diff --git a/plugins/dbgate-plugin-excel/src/frontend/index.js b/plugins/dbgate-plugin-excel/src/frontend/index.js
index 94d515376..f79e18307 100644
--- a/plugins/dbgate-plugin-excel/src/frontend/index.js
+++ b/plugins/dbgate-plugin-excel/src/frontend/index.js
@@ -64,5 +64,18 @@ const fileFormat = {
export default {
fileFormats: [fileFormat],
+ quickExports: [
+ {
+ label: 'MS Excel',
+ extension: 'xlsx',
+ createWriter: (fileName) => ({
+ functionName: 'writer',
+ props: {
+ fileName,
+ sheetName: 'data',
+ },
+ }),
+ },
+ ],
initialize,
};