blob: 89f69ded01d29823e4f63e3b29e13a1c03e86eae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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>
|