| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import strutils, uri, os, algorithm
- import jester
- import router_utils
- import ".."/[types]
- import ../views/[general, preferences]
- export preferences
- proc findThemes*(dir: string): seq[string] =
- for kind, path in walkDir(dir / "css" / "themes"):
- result.add path.splitFile.name.capitalizeAscii
- sort(result)
- proc createPrefRouter*(cfg: Config) =
- router preferences:
- template savePrefs(): untyped =
- setCookie("preferences", $prefs.id, daysForward(360), httpOnly=true, secure=cfg.useHttps)
- get "/settings":
- let html = renderPreferences(cookiePrefs(), refPath(), findThemes(cfg.staticDir))
- resp renderMain(html, request, cfg, "Preferences")
- get "/settings/@i?":
- redirect("/settings")
- post "/saveprefs":
- var prefs = cookiePrefs()
- genUpdatePrefs()
- savePrefs()
- redirect(refPath())
- post "/resetprefs":
- var prefs = cookiePrefs()
- resetPrefs(prefs, cfg)
- savePrefs()
- redirect($(parseUri("/settings") ? filterParams(request.params)))
- post "/enablehls":
- var prefs = cookiePrefs()
- prefs.hlsPlayback = true
- cache(prefs)
- savePrefs()
- redirect(refPath())
|