Browse Source

add system-data to data passed to the HTML GET routes in web.lisp.

System-data is a collection of the system settings and page data in
the database. It minimises the function calls in the defroute macros.
stable
Craig Oates 2 years ago
parent
commit
f626557b97
  1. 31
      src/web.lisp

31
src/web.lisp

@ -40,6 +40,7 @@
(auth:auth-user-data)) (auth:auth-user-data))
`(:alert ,(utils:get-and-reset-alert) `(:alert ,(utils:get-and-reset-alert)
:nav-menu ,(nera:nav-menu-slugs) :nav-menu ,(nera:nav-menu-slugs)
:system-data ,(nera:system-data)
:content ,(storage:open-text-file :content ,(storage:open-text-file
"" "pages" "" "pages"
(site-settings::home-page-of (site-settings::home-page-of
@ -81,6 +82,7 @@
(let ((alert (utils:get-and-reset-alert))) (let ((alert (utils:get-and-reset-alert)))
(render "sign-up.html" (render "sign-up.html"
`(:token ,(auth:csrf-token) `(:token ,(auth:csrf-token)
:system-data ,(nera:system-data)
:alert ,alert)))))) :alert ,alert))))))
(defroute ("/sign-up" :method :POST) () (defroute ("/sign-up" :method :POST) ()
@ -121,6 +123,7 @@
(let ((alert (utils:get-and-reset-alert))) (let ((alert (utils:get-and-reset-alert)))
(render "user/log-in.html" (render "user/log-in.html"
`(:token ,(auth:csrf-token) `(:token ,(auth:csrf-token)
:system-data ,(nera:system-data)
:alert ,alert))))) :alert ,alert)))))
(defroute ("/login" :method :POST) () (defroute ("/login" :method :POST) ()
@ -170,7 +173,8 @@
(let ((alert (utils:get-and-reset-alert))) (let ((alert (utils:get-and-reset-alert)))
(render #P"user/dashboard.html" (render #P"user/dashboard.html"
(append (auth:auth-user-data) (append (auth:auth-user-data)
`(:alert ,alert)))) `(:alert ,alert
:system-data ,(nera:system-data)))))
;; Not Authorised ;; Not Authorised
(progn (utils:set-alert "You are not logged in.") (progn (utils:set-alert "You are not logged in.")
(redirect "/login")))) (redirect "/login"))))
@ -183,8 +187,10 @@
(append (auth:auth-user-data) (append (auth:auth-user-data)
`(:alert ,(utils:get-and-reset-alert) `(:alert ,(utils:get-and-reset-alert)
:pages ,(nera:get-all-pages) :pages ,(nera:get-all-pages)
:system-data ,(nera:system-data)
:site-wide-snippet ,(storage:open-text-file-with-raw-path :site-wide-snippet ,(storage:open-text-file-with-raw-path
"static/site-wide-snippet") "static/site-wide-snippet")
;; Should this be replaced by `SYSTEM-DATA'?
:settings ,(nera:get-site-settings)))) :settings ,(nera:get-site-settings))))
;; Not Authorised ;; Not Authorised
(progn (progn
@ -373,6 +379,7 @@
(render #P"user/index.html" (render #P"user/index.html"
(append (auth:auth-user-data) (append (auth:auth-user-data)
`(:alert ,alert `(:alert ,alert
:system-data ,(nera:system-data)
:users ,(nera:get-all-users))))) :users ,(nera:get-all-users)))))
;; Not Authorised ;; Not Authorised
(progn (progn
@ -416,7 +423,8 @@
(let ((alert (utils:get-and-reset-alert))) (let ((alert (utils:get-and-reset-alert)))
(render #P"user/edit.html" (render #P"user/edit.html"
(append (auth:auth-user-data) (append (auth:auth-user-data)
`(:alert ,alert)))) `(:alert ,alert
:system-data ,(nera:system-data)))))
;; Not Authorised ;; Not Authorised
(progn (utils:set-alert "You are not logged in.") (progn (utils:set-alert "You are not logged in.")
(redirect "/login")))) (redirect "/login"))))
@ -526,7 +534,8 @@
(let ((alert (utils:get-and-reset-alert))) (let ((alert (utils:get-and-reset-alert)))
(render "/user/create-page.html" (render "/user/create-page.html"
(append (auth:auth-user-data) (append (auth:auth-user-data)
`(:alert ,alert)))) `(:alert ,alert
:system-data ,(nera:system-data)))))
;; Not Authorised ;; Not Authorised
(progn (progn
(utils:set-alert "You are not logged in.") (utils:set-alert "You are not logged in.")
@ -563,7 +572,7 @@
"pages" "pages"
(utils:slugify title) (utils:slugify title)
page-content) page-content)
(nera:create-page title (utils:slugify title) +false+ +false+) (nera:create-page title (utils:slugify title) +false+ +true+)
(utils:set-alert "Page created.") (utils:set-alert "Page created.")
(redirect "/dashboard"))) (redirect "/dashboard")))
;; Not Authorised ;; Not Authorised
@ -577,9 +586,8 @@
(render "/user/pages.html" (render "/user/pages.html"
(append (auth:auth-user-data) (append (auth:auth-user-data)
`(:alert ,alert `(:alert ,alert
:pages ,(storage:get-file-names :system-data ,(nera:system-data)
(storage:get-files-in-directory :pages ,(nera:get-all-pages)))))
"" "pages"))))))
;; Not Authorised ;; Not Authorised
(progn (progn
(utils:set-alert "You are not logged in.") (utils:set-alert "You are not logged in.")
@ -591,9 +599,8 @@
(append (if (hermetic:logged-in-p) (append (if (hermetic:logged-in-p)
(auth:auth-user-data)) (auth:auth-user-data))
`(:alert ,alert `(:alert ,alert
:pages ,(storage:get-file-names :system-data ,(nera:system-data)
(storage:get-files-in-directory :pages ,(nera:get-all-pages))))))
"" "pages")))))))
(defroute ("/view/pages" :method :GET) () (defroute ("/view/pages" :method :GET) ()
(let ((alert (utils:get-and-reset-alert))) (let ((alert (utils:get-and-reset-alert)))
@ -601,6 +608,7 @@
(append (if (hermetic:logged-in-p) (append (if (hermetic:logged-in-p)
(auth:auth-user-data)) (auth:auth-user-data))
`(:alert ,alert `(:alert ,alert
:system-data ,(nera:system-data)
:pages ,(storage:get-file-names :pages ,(storage:get-file-names
(storage:get-files-in-directory (storage:get-files-in-directory
"" "pages"))))))) "" "pages")))))))
@ -611,6 +619,7 @@
(append (if (hermetic:logged-in-p) (append (if (hermetic:logged-in-p)
(auth:auth-user-data)) (auth:auth-user-data))
`(:alert ,alert `(:alert ,alert
:system-data ,(nera:system-data)
:pages ,(storage:get-file-names :pages ,(storage:get-file-names
(storage:get-files-in-directory (storage:get-files-in-directory
"" "pages"))))))) "" "pages")))))))
@ -623,6 +632,7 @@
(auth:auth-user-data)) (auth:auth-user-data))
`(:alert ,alert `(:alert ,alert
:db-data ,(nera:get-page slug) :db-data ,(nera:get-page slug)
:system-data ,(nera:system-data)
:data ,(storage:open-text-file :data ,(storage:open-text-file
"" "pages" slug)))) "" "pages" slug))))
(on-exception *web* 404)))) (on-exception *web* 404))))
@ -634,6 +644,7 @@
(render "/user/edit-page.html" (render "/user/edit-page.html"
(append (auth:auth-user-data) (append (auth:auth-user-data)
`(:alert ,alert `(:alert ,alert
:system-data ,(nera:system-data)
:db-data ,(nera:get-page slug) :db-data ,(nera:get-page slug)
:data ,(storage:open-text-file :data ,(storage:open-text-file
"" "pages" slug))))) "" "pages" slug)))))

Loading…
Cancel
Save