From eb1f71608da4d81ed79774454979fe0341b3e437 Mon Sep 17 00:00:00 2001 From: lana-k Date: Tue, 19 Jan 2021 22:56:50 +0100 Subject: [PATCH] export refactoring --- src/storedQueries.js | 33 ++++++++++++--------------------- src/views/MyQueries.vue | 27 +++++++++++---------------- 2 files changed, 23 insertions(+), 37 deletions(-) diff --git a/src/storedQueries.js b/src/storedQueries.js index 6ba930c..34291d9 100644 --- a/src/storedQueries.js +++ b/src/storedQueries.js @@ -59,36 +59,27 @@ export default { localStorage.setItem('myQueries', JSON.stringify(value)) }, - exportQueries (data) { - const preparedData = JSON.parse(JSON.stringify(data)) - - // Remove isPredefined mark for exported queries - if (Array.isArray(data)) { - // group operation - preparedData.forEach(query => delete query.isPredefined) - } else { - // single operation - delete preparedData.isPredefined - } + serialiseQueries (queryList) { + const preparedData = JSON.parse(JSON.stringify(queryList)) + preparedData.forEach(query => delete query.isPredefined) + return JSON.stringify(preparedData, null, 4) + }, + exportQueries (str, fileName, type = 'octet/stream') { // Create downloader const downloader = document.createElement('a') - downloader.hidden = true - document.body.append(downloader) - // Prepare data - const name = data.name || 'My sqlitevis queries' - const json = JSON.stringify(preparedData, null, 4) - const blob = new Blob([json], { type: 'octet/stream' }) - const url = window.URL.createObjectURL(blob) + // const name = data.name || 'My sqlitevis queries' + const blob = new Blob([str], { type }) + const url = URL.createObjectURL(blob) downloader.href = url - downloader.download = `${name}.json` + downloader.download = fileName // Trigger click downloader.click() - // Clear - window.URL.revokeObjectURL(url) + // Clean up + URL.revokeObjectURL(url) downloader.remove() }, diff --git a/src/views/MyQueries.vue b/src/views/MyQueries.vue index 5a0e315..0a92c3c 100644 --- a/src/views/MyQueries.vue +++ b/src/views/MyQueries.vue @@ -15,7 +15,7 @@ @@ -81,7 +81,7 @@
- +
@@ -348,21 +348,16 @@ export default { findTabIndex (id) { return this.$store.state.tabs.findIndex(tab => tab.id === id) }, - exportQuery (index) { - let data + exportToFile (queryList, fileName) { + const jsonStr = storedQueries.serialiseQueries(queryList) + storedQueries.exportQueries(jsonStr, fileName) + }, + exportSelectedQueries () { + const queryList = this.selectAll + ? this.allQueries + : this.allQueries.filter(query => this.selectedQueriesIds.has(query.id)) - if (typeof index === 'number') { - // single operation - data = this.showedQueries[index] - } else { - // group operation - data = this.selectAll - ? this.allQueries - : this.allQueries.filter(query => this.selectedQueriesIds.has(query.id)) - } - - // export data to file - storedQueries.exportQueries(data) + this.exportToFile(queryList, 'My sqlitevis queries.json') }, importQueries () { const onSuccess = (importedQueries) => {