diff options
Diffstat (limited to 'ie.html')
-rw-r--r-- | ie.html | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +<form name=import-export onsubmit="return false"> +<p> +<input type=submit name=import value="Import data"> +<input type=submit name=export value="Export data"> +</form> + +<script> +$loaded_p.then(() => { + let f = document.forms["import-export"] + f.onsubmit = async e => { + e.preventDefault() + switch (e.submitter.name) { + case "import": + let file = await new Promise(r => + ė("input", {type: "file", onchange(e) { r(this.files[0]) }}) + .ǀ(e => f.append(e)).ǀ(ff`click`).remove()) + let reader = new FileReader() + reader.onload = + e => ṡ.set_all(JSON.parse(reader.result)) + .then(() => location.reload()) + reader.onerror = e => alert(reader.error) + reader.readAsText(file) + break + case "export": + let data = await ṡ.get_all(["deck", "settings"]), + blob = new Blob([JSON.stringify (data)], {type: "application/json"}), + href = URL.createObjectURL(blob) + ė("a", {href, download: "onpoint-export.json"}) + .ǀ(e => f.append(e)).ǀ(ff`click`).remove() + URL.revokeObjectURL(href) + break + } + } +}) +</script> |