From 6dc81f7be61138b4ecb830196a694534c40956d8 Mon Sep 17 00:00:00 2001 From: lana-k Date: Fri, 20 Aug 2021 18:06:58 +0200 Subject: [PATCH] copy result set as tsv #50 --- src/components/svg/clipboard.vue | 17 +++++++++++++++++ src/lib/utils/clipboardIo.js | 8 ++++++++ .../Main/Workspace/Tabs/Tab/RunResult.vue | 19 +++++++++++++++++-- 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/components/svg/clipboard.vue create mode 100644 src/lib/utils/clipboardIo.js diff --git a/src/components/svg/clipboard.vue b/src/components/svg/clipboard.vue new file mode 100644 index 0000000..d3a5459 --- /dev/null +++ b/src/components/svg/clipboard.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/lib/utils/clipboardIo.js b/src/lib/utils/clipboardIo.js new file mode 100644 index 0000000..4557b6b --- /dev/null +++ b/src/lib/utils/clipboardIo.js @@ -0,0 +1,8 @@ +import Lib from 'plotly.js/src/lib' + +export default { + async copyCsv (str) { + await navigator.clipboard.writeText(str) + Lib.notifier('CSV copied to clipboard successfully', 'long') + } +} diff --git a/src/views/Main/Workspace/Tabs/Tab/RunResult.vue b/src/views/Main/Workspace/Tabs/Tab/RunResult.vue index eb2baea..5d9f215 100644 --- a/src/views/Main/Workspace/Tabs/Tab/RunResult.vue +++ b/src/views/Main/Workspace/Tabs/Tab/RunResult.vue @@ -33,7 +33,16 @@ tooltip-position="top-left" @click="exportToCsv" > - + + + + + @@ -45,9 +54,11 @@ import SqlTable from '@/components/SqlTable' import LoadingIndicator from '@/components/LoadingIndicator' import SideToolBar from './SideToolBar' import ExportToCsvIcon from '@/components/svg/exportToCsv' +import ClipboardIcon from '@/components/svg/clipboard' import IconButton from '@/components/IconButton' import csv from '@/lib/csv' import fIo from '@/lib/utils/fileIo' +import cIo from '@/lib/utils/clipboardIo' export default { name: 'RunResult', @@ -64,7 +75,8 @@ export default { Logs, SideToolBar, ExportToCsvIcon, - IconButton + IconButton, + ClipboardIcon }, mounted () { this.resizeObserver = new ResizeObserver(this.handleResize) @@ -93,6 +105,9 @@ export default { }, exportToCsv () { fIo.exportToFile(csv.serialize(this.result), 'result_set.csv', 'text/csv') + }, + copyToClipboard () { + cIo.copyCsv(csv.serialize(this.result)) } } }