adding save and load function

This commit is contained in:
Legonzaur
2020-06-26 21:22:48 +02:00
parent cce92aef76
commit 2bdf4fe0d2
3 changed files with 44 additions and 2 deletions
+1
View File
@@ -22,6 +22,7 @@
<body> <body>
<div id="content"></div> <div id="content"></div>
<div id="Test">a</div> <div id="Test">a</div>
<script src="js/download.js"></script>
<script src="js/drawFunctions.js"></script> <script src="js/drawFunctions.js"></script>
<script src="js/script.js"></script> <script src="js/script.js"></script>
</body> </body>
+32
View File
@@ -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();
});
}
+11 -2
View File
@@ -102,7 +102,7 @@ content.addEventListener("mousedown", function (e) {
content.addEventListener("mouseup", mouseUp); content.addEventListener("mouseup", mouseUp);
document.addEventListener("keydown", function (e) { document.addEventListener("keydown", async function (e) {
//history shit //history shit
if (e.ctrlKey == true) { if (e.ctrlKey == true) {
switch (e.key) { switch (e.key) {
@@ -116,7 +116,16 @@ document.addEventListener("keydown", function (e) {
drawGrid = forwards ? forwards : drawGrid; drawGrid = forwards ? forwards : drawGrid;
render(); render();
break; 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: default:
break; break;
} }