diff options
Diffstat (limited to 'deck.erb.html')
-rw-r--r-- | deck.erb.html | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/deck.erb.html b/deck.erb.html new file mode 100644 index 0000000..d95cee4 --- /dev/null +++ b/deck.erb.html @@ -0,0 +1,50 @@ +<form onsubmit="ṡ.set('deck', $deck).then(() => alert('Saved!')); return false"> +<p> +<input type=submit value="Save deck"> +</form> + +<div> +<p> +<button onclick="document.forms.deck_clear.showPopover()"> +Clear deck +</button> +<form popover name=deck_clear onsubmit="$deck = []; this.hidePopover(); return false"> +<p> +Really clear? +<p> +<input type=submit value=Yes> <button type=button onclick="document.forms.deck_clear.hidePopover()">No</button> +</form> +</div> + +<script> +async function import_deck$(form) { + let url = form.deck.value + form.status.value = "Fetching…" + let news = await (await fetch(url)).json() + news.sort((a, b) => a.num > b.num) + $deck = $deck.concat(news) + form.status.value = "Done!" +} +</script> + +<div> +<p> +<button onclick="document.forms.deck_import.showPopover()"> +Import question set +</button> +<form popover name=deck_import onsubmit="import_deck$(this); return false"> +<select name=deck> +<% $difficulties.each do |dif| -%> +<optgroup label=<%= dif %>> +<% $categories.each do |cat| -%> +<option value=<%= name_from dif, cat %>><%= dif %> - <%= cat %></option> +<% end -%> +</optgroup> +<% end -%> +</select> +<p> +<input type=submit value=Import> <button type=button onclick="document.forms.deck_import.hidePopover()">Cancel</button> +<p> +<output name=status></output> +</form> +</div> |