preferences.nim 954 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import strutils, uri
  2. import jester
  3. import router_utils
  4. import ".."/[prefs, types]
  5. import ../views/[general, preferences]
  6. export preferences
  7. proc createPrefRouter*(cfg: Config) =
  8. router preferences:
  9. template savePrefs(): untyped =
  10. setCookie("preferences", $prefs.id, daysForward(360), httpOnly=true, secure=cfg.useHttps)
  11. get "/settings":
  12. let prefs = cookiePrefs()
  13. let path = refPath()
  14. resp renderMain(renderPreferences(prefs, path), prefs, cfg.title, "Preferences", path)
  15. post "/saveprefs":
  16. var prefs = cookiePrefs()
  17. genUpdatePrefs()
  18. savePrefs()
  19. redirect(refPath())
  20. post "/resetprefs":
  21. var prefs = cookiePrefs()
  22. resetPrefs(prefs)
  23. savePrefs()
  24. redirect($(parseUri("/settings") ? filterParams(request.params)))
  25. post "/enablehls":
  26. var prefs = cookiePrefs()
  27. prefs.hlsPlayback = true
  28. cache(prefs)
  29. savePrefs()
  30. redirect(refPath())