From 9770eb56ebbd60a19a7b2ee74d9f2b12995032b6 Mon Sep 17 00:00:00 2001 From: agriyadev5 Date: Mon, 23 Aug 2021 19:50:27 +0530 Subject: [PATCH] #603 save and saveas change done --- .../extensions/ext-opensave/ext-opensave.js | 24 ++++++++++++++----- .../extensions/ext-opensave/locale/en.js | 3 ++- .../extensions/ext-opensave/locale/fr.js | 3 ++- .../extensions/ext-opensave/locale/zh-CN.js | 3 ++- src/editor/locale/lang.en.js | 1 + 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/editor/extensions/ext-opensave/ext-opensave.js b/src/editor/extensions/ext-opensave/ext-opensave.js index a068b311..ef6f1f84 100644 --- a/src/editor/extensions/ext-opensave/ext-opensave.js +++ b/src/editor/extensions/ext-opensave/ext-opensave.js @@ -18,6 +18,7 @@ import { fileOpen, fileSave } from 'browser-fs-access'; const name = "opensave"; +let handle = null; const loadExtensionTranslation = async function (svgEditor) { let translationModule; @@ -108,7 +109,7 @@ export default { * * @returns {void} */ - const clickSave = async function () { + const clickSave = async function (type, _) { const $editorDialog = $id("se-svg-editor-dialog"); const editingsource = $editorDialog.getAttribute("dialog") === "open"; if (editingsource) { @@ -135,10 +136,18 @@ export default { const b64Data = svgCanvas.encode64(svg); const blob = b64toBlob(b64Data, 'image/svg+xml'); try { - await fileSave(blob, { - fileName: 'icon.svg', - extensions: [ '.svg' ] - }); + if(type === "save" && handle !== null) { + const throwIfExistingHandleNotGood = false; + handle = await fileSave(blob, { + fileName: 'icon.svg', + extensions: [ '.svg' ] + }, handle, throwIfExistingHandleNotGood); + } else { + handle = await fileSave(blob, { + fileName: 'icon.svg', + extensions: [ '.svg' ] + }); + } } catch (err) { if (err.name !== 'AbortError') { return console.error(err); @@ -159,10 +168,13 @@ export default { svgCanvas.insertChildAtIndex($id('main_button'), openButtonTemplate, 1); const saveButtonTemplate = ``; svgCanvas.insertChildAtIndex($id('main_button'), saveButtonTemplate, 2); + const saveAsButtonTemplate = ``; + svgCanvas.insertChildAtIndex($id('main_button'), saveAsButtonTemplate, 3); // handler $id("tool_clear").addEventListener("click", clickClear.bind(this)); $id("tool_open").addEventListener("click", clickOpen.bind(this)); - $id("tool_save").addEventListener("click", clickSave.bind(this)); + $id("tool_save").addEventListener("click", clickSave.bind(this, "save")); + $id("tool_save_as").addEventListener("click", clickSave.bind(this, "saveas")); } }; } diff --git a/src/editor/extensions/ext-opensave/locale/en.js b/src/editor/extensions/ext-opensave/locale/en.js index 1c8de67d..24f1e9e2 100644 --- a/src/editor/extensions/ext-opensave/locale/en.js +++ b/src/editor/extensions/ext-opensave/locale/en.js @@ -3,6 +3,7 @@ export default { tools: { new_doc: 'New Image', open_doc: 'Open SVG', - save_doc: 'Save Image' + save_doc: 'Save Image', + save_as_doc: 'Save As Image' } }; diff --git a/src/editor/extensions/ext-opensave/locale/fr.js b/src/editor/extensions/ext-opensave/locale/fr.js index bb8d3139..ad152f6c 100644 --- a/src/editor/extensions/ext-opensave/locale/fr.js +++ b/src/editor/extensions/ext-opensave/locale/fr.js @@ -3,6 +3,7 @@ export default { tools: { new_doc: 'Nouvelle image', open_doc: 'Ouvrir le SVG', - save_doc: 'Enregistrer l\'image' + save_doc: 'Enregistrer l\'image', + save_as_doc: 'Enregistrer en tant qu\'image' } }; diff --git a/src/editor/extensions/ext-opensave/locale/zh-CN.js b/src/editor/extensions/ext-opensave/locale/zh-CN.js index b2e7f76b..65faf19d 100755 --- a/src/editor/extensions/ext-opensave/locale/zh-CN.js +++ b/src/editor/extensions/ext-opensave/locale/zh-CN.js @@ -3,6 +3,7 @@ export default { tools: { new_doc: '新图片', open_doc: '打开 SVG', - save_doc: '保存图像' + save_doc: '保存图像', + save_as_doc: '另存为图像' } }; diff --git a/src/editor/locale/lang.en.js b/src/editor/locale/lang.en.js index 7d9ba8f3..da12e2c2 100644 --- a/src/editor/locale/lang.en.js +++ b/src/editor/locale/lang.en.js @@ -112,6 +112,7 @@ export default { open_doc: 'Open SVG', export_img: 'Export', save_doc: 'Save Image', + save_as_doc: 'Save As Image', import_doc: 'Import Image', align_to_page: 'Align Element to Page', align_bottom: 'Align Bottom',