Просмотр исходного кода

Add button to reset preferences

Zed 7 лет назад
Родитель
Сommit
9fc512d88d
4 измененных файлов с 27 добавлено и 6 удалено
  1. 9 4
      public/css/style.css
  2. 6 0
      src/nitter.nim
  3. 6 0
      src/prefs.nim
  4. 6 2
      src/views/preferences.nim

+ 9 - 4
public/css/style.css

@@ -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;
 }

+ 6 - 0
src/nitter.nim

@@ -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")

+ 6 - 0
src/prefs.nim

@@ -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()
 

+ 6 - 2
src/views/preferences.nim

@@ -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"