From e0546ad7c676b0d5c87486a0e294487de0d19c80 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Thu, 26 Oct 2017 10:37:32 +0530 Subject: [PATCH] ask for save location when exporting creations. fixes #200 --- src/script.js | 60 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/src/script.js b/src/script.js index 1825ae1..b9d0c5c 100644 --- a/src/script.js +++ b/src/script.js @@ -1334,29 +1334,45 @@ globalConsoleContainerEl }; scope.exportItems = function exportItems(e) { - fetchItems().then(function(items) { - var d = new Date(); - var fileName = [ - 'web-maker-export', - d.getFullYear(), - d.getMonth() + 1, - d.getDate(), - d.getHours(), - d.getMinutes(), - d.getSeconds() - ].join('-'); - fileName += '.json'; - var blob = new Blob([JSON.stringify(items, false, 2)], { - type: 'application/json;charset=UTF-8' + handleDownloadsPermission().then(() => { + fetchItems().then(function(items) { + var d = new Date(); + var fileName = [ + 'web-maker-export', + d.getFullYear(), + d.getMonth() + 1, + d.getDate(), + d.getHours(), + d.getMinutes(), + d.getSeconds() + ].join('-'); + fileName += '.json'; + var blob = new Blob([JSON.stringify(items, false, 2)], { + type: 'application/json;charset=UTF-8' + }); + + chrome.downloads.download( + { + url: window.URL.createObjectURL(blob), + filename: fileName, + saveAs: true + }, + function() { + // If there was an error, just download the file using ANCHOR method. + if (chrome.runtime.lastError) { + var a = document.createElement('a'); + a.href = window.URL.createObjectURL(blob); + a.download = fileName; + a.style.display = 'none'; + document.body.appendChild(a); + a.click(); + a.remove(); + } + } + ); + + trackEvent('ui', 'exportBtnClicked'); }); - var a = document.createElement('a'); - a.href = window.URL.createObjectURL(blob); - a.download = fileName; - a.style.display = 'none'; - document.body.appendChild(a); - a.click(); - a.remove(); - trackEvent('ui', 'exportBtnClicked'); }); e.preventDefault(); };