From 2bdf4fe0d2718a8f6cda7f7918f0b7f4808db020 Mon Sep 17 00:00:00 2001 From: Legonzaur <34353603+Legonzaur@users.noreply.github.com> Date: Fri, 26 Jun 2020 21:22:48 +0200 Subject: [PATCH] adding save and load function --- index.html | 1 + js/download.js | 32 ++++++++++++++++++++++++++++++++ js/script.js | 13 +++++++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 js/download.js diff --git a/index.html b/index.html index 1fde67c..3ec6166 100644 --- a/index.html +++ b/index.html @@ -22,6 +22,7 @@
a
+ diff --git a/js/download.js b/js/download.js new file mode 100644 index 0000000..d49214f --- /dev/null +++ b/js/download.js @@ -0,0 +1,32 @@ +function download(filename, text) { + var element = document.createElement("a"); + element.setAttribute( + "href", + "data:text/plain;charset=utf-8," + encodeURIComponent(text) + ); + element.setAttribute("download", filename); + + element.style.display = "none"; + document.body.appendChild(element); + + element.click(); + + document.body.removeChild(element); +} +function upload() { + return new Promise(function (resolve, reject) { + var element = document.createElement("input"); + element.setAttribute("type", "file"); + element.setAttribute("accept", ".txt"); + + element.style.display = "none"; + document.body.appendChild(element); + + element.addEventListener("input", async function (e) { + text = await element.files[0].text(); + resolve(text); + document.body.removeChild(element); + }); + element.click(); + }); +} diff --git a/js/script.js b/js/script.js index 9bbd945..5a84c60 100644 --- a/js/script.js +++ b/js/script.js @@ -102,7 +102,7 @@ content.addEventListener("mousedown", function (e) { content.addEventListener("mouseup", mouseUp); -document.addEventListener("keydown", function (e) { +document.addEventListener("keydown", async function (e) { //history shit if (e.ctrlKey == true) { switch (e.key) { @@ -116,7 +116,16 @@ document.addEventListener("keydown", function (e) { drawGrid = forwards ? forwards : drawGrid; render(); break; - + case "s": + e.preventDefault(); + download("ascii.txt", JSON.stringify(drawGrid)); + break; + case "o": + e.preventDefault(); + text = await upload(); + drawGrid = JSON.parse(text); + render(); + break; default: break; }