Add button to reset preferences

This commit is contained in:
Zed 2019-08-15 19:13:54 +02:00
parent fdd71946da
commit 9fc512d88d
4 changed files with 27 additions and 6 deletions

View File

@ -1092,10 +1092,6 @@ legend {
margin: .2em; 0;
}
.pref-submit:hover {
background-color: #a8a8a8;
}
.pref-submit {
background-color: #e2e2e2;
color: #000;
@ -1106,6 +1102,15 @@ legend {
margin-top: 4px;
}
.pref-submit:hover {
background-color: #a8a8a8;
}
.pref-reset {
float: right;
margin-top: -25px;
}
.icon-container {
display: inline;
}

View File

@ -95,6 +95,12 @@ routes:
setCookie("preferences", $prefs.id, daysForward(360), httpOnly=true, secure=true)
redirect("/settings")
post "/resetprefs":
var prefs = getCookiePrefs(request)
resetPrefs(prefs)
setCookie("preferences", $prefs.id, daysForward(360), httpOnly=true, secure=true)
redirect("/settings")
get "/settings":
let prefs = getCookiePrefs(request)
resp renderMain(renderPreferences(prefs), prefs, title=cfg.title, titleText="Preferences")

View File

@ -96,6 +96,12 @@ proc getPrefs*(id: string): Prefs =
result = genDefaultPrefs()
cache(result)
proc resetPrefs*(prefs: var Prefs) =
var defPrefs = genDefaultPrefs()
defPrefs.id = prefs.id
cache(defPrefs)
prefs = defPrefs
macro genUpdatePrefs*(): untyped =
result = nnkStmtList.newTree()

View File

@ -53,9 +53,13 @@ macro renderPrefs*(): untyped =
proc renderPreferences*(prefs: Prefs): VNode =
buildHtml(tdiv(class="preferences-container")):
form(class="preferences", `method`="post", action="saveprefs"):
fieldset:
fieldset(class="preferences"):
form(`method`="post", action="saveprefs"):
renderPrefs()
button(`type`="submit", class="pref-submit"):
text "Save preferences"
form(`method`="post", action="resetprefs", class="pref-reset"):
button(`type`="submit", class="pref-submit"):
text "Reset preferences"