summaryrefslogtreecommitdiff
path: root/settings.html
diff options
context:
space:
mode:
Diffstat (limited to 'settings.html')
-rw-r--r--settings.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/settings.html b/settings.html
new file mode 100644
index 0000000..8a82ff8
--- /dev/null
+++ b/settings.html
@@ -0,0 +1,50 @@
+<script>
+const $default_settings = {
+ default_new_cards: 5,
+ speed: 250,
+ time_factor: 1,
+ autosave: true,
+}
+
+async function save_settings$(form) {
+ form.status.value = "Saving…"
+ $settings = {
+ default_new_cards: +form.default_new_cards.value,
+ speed: +form.speed.value,
+ time_factor: +form.time_factor.value,
+ autosave: form.autosave.checked,
+ }
+ await ṡ.set("settings", $settings)
+ form.status.value = "Saved!"
+}
+
+function put_settings$({default_new_cards, speed, time_factor, autosave}, form) {
+ form.default_new_cards.value = default_new_cards
+ form.speed.value = speed
+ form.time_factor.value = time_factor
+ form.autosave.checked = autosave
+}
+
+$loaded_p.then(() =>
+ put_settings$($settings, document.forms.settings))
+</script>
+
+<p>
+<button onclick="document.forms.settings.showPopover()">
+Settings
+</button>
+<form popover name=settings onsubmit="save_settings$(this).then(() => this.hidePopover()); return false">
+<p>
+<label>Default new cards per session: <input type=number name=default_new_cards min=0></label>
+<p>
+<label>Word speed (in milliseconds): <input type=number name=speed min=0></label>
+<p>
+<label>Auto-save deck after each review? <input type=checkbox name=autosave></label>
+<p>
+<label>Review-time scale-factor: <input type=number name=time_factor min=0 step=any></label>
+<p>
+<input type=submit value="Save settings">
+<button type=button onclick="document.forms.settings.hidePopover()">Cancel</button>
+<p>
+<output name=status></output>
+</form>