Allow downloading input JSONs

This commit is contained in:
Adam Goldsmith 2017-10-08 17:46:22 -04:00
parent d20af35c5b
commit 9574d1f3c5
2 changed files with 14 additions and 2 deletions

View File

@ -5,7 +5,7 @@
<title>Editor</title> <title>Editor</title>
</head> </head>
<body> <body>
<input id="jsonUpload" type="file"><br> <input id="jsonUpload" type="file"> <button type="button" id="jsonInputDownload">Download input</button> <br>
<form id="deckForm"> <form id="deckForm">
<div> <label> Deck Name: <input type="text" id="deckName"></label> </div> <div> <label> Deck Name: <input type="text" id="deckName"></label> </div>
<div> <div>

View File

@ -1,7 +1,8 @@
let deckJSON; let deckJSON;
let selected = 0; let selected = 0;
let deckName = window.location.pathname.split('/')[2];
document.title = "Editor|" + window.location.pathname.split('/')[2]; document.title = "Editor|" + deckName;
window.addEventListener("load", () => { window.addEventListener("load", () => {
// deck JSON uploader // deck JSON uploader
@ -12,6 +13,17 @@ window.addEventListener("load", () => {
reader.readAsText(files[0]); reader.readAsText(files[0]);
}); });
// download input JSON
document.querySelector('#jsonInputDownload').addEventListener('click', () => {
let dl = document.createElement('a');
dl.setAttribute('href', 'data:application/json;charset=utf-8,' +
encodeURIComponent(JSON.stringify(deckJSON)));
dl.setAttribute('download', deckName + '.input.json');
document.body.appendChild(dl);
dl.click();
document.body.removeChild(dl);
});
// handle changes to deck editor // handle changes to deck editor
document.querySelector('#deckForm').addEventListener('input', event => { document.querySelector('#deckForm').addEventListener('input', event => {
let prop = event.target.id.substring(4).toLowerCase(); let prop = event.target.id.substring(4).toLowerCase();