From f626557b97f447fc1f7d82b9eac30dc5279a37aa Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Mon, 19 Sep 2022 19:21:10 +0100 Subject: [PATCH] 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. --- src/web.lisp | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/web.lisp b/src/web.lisp index 63b22da..08642a1 100644 --- a/src/web.lisp +++ b/src/web.lisp @@ -40,6 +40,7 @@ (auth:auth-user-data)) `(:alert ,(utils:get-and-reset-alert) :nav-menu ,(nera:nav-menu-slugs) + :system-data ,(nera:system-data) :content ,(storage:open-text-file "" "pages" (site-settings::home-page-of @@ -81,6 +82,7 @@ (let ((alert (utils:get-and-reset-alert))) (render "sign-up.html" `(:token ,(auth:csrf-token) + :system-data ,(nera:system-data) :alert ,alert)))))) (defroute ("/sign-up" :method :POST) () @@ -121,6 +123,7 @@ (let ((alert (utils:get-and-reset-alert))) (render "user/log-in.html" `(:token ,(auth:csrf-token) + :system-data ,(nera:system-data) :alert ,alert))))) (defroute ("/login" :method :POST) () @@ -170,7 +173,8 @@ (let ((alert (utils:get-and-reset-alert))) (render #P"user/dashboard.html" (append (auth:auth-user-data) - `(:alert ,alert)))) + `(:alert ,alert + :system-data ,(nera:system-data))))) ;; Not Authorised (progn (utils:set-alert "You are not logged in.") (redirect "/login")))) @@ -183,8 +187,10 @@ (append (auth:auth-user-data) `(:alert ,(utils:get-and-reset-alert) :pages ,(nera:get-all-pages) + :system-data ,(nera:system-data) :site-wide-snippet ,(storage:open-text-file-with-raw-path "static/site-wide-snippet") + ;; Should this be replaced by `SYSTEM-DATA'? :settings ,(nera:get-site-settings)))) ;; Not Authorised (progn @@ -373,6 +379,7 @@ (render #P"user/index.html" (append (auth:auth-user-data) `(:alert ,alert + :system-data ,(nera:system-data) :users ,(nera:get-all-users))))) ;; Not Authorised (progn @@ -416,7 +423,8 @@ (let ((alert (utils:get-and-reset-alert))) (render #P"user/edit.html" (append (auth:auth-user-data) - `(:alert ,alert)))) + `(:alert ,alert + :system-data ,(nera:system-data))))) ;; Not Authorised (progn (utils:set-alert "You are not logged in.") (redirect "/login")))) @@ -526,7 +534,8 @@ (let ((alert (utils:get-and-reset-alert))) (render "/user/create-page.html" (append (auth:auth-user-data) - `(:alert ,alert)))) + `(:alert ,alert + :system-data ,(nera:system-data))))) ;; Not Authorised (progn (utils:set-alert "You are not logged in.") @@ -563,7 +572,7 @@ "pages" (utils:slugify title) 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.") (redirect "/dashboard"))) ;; Not Authorised @@ -577,9 +586,8 @@ (render "/user/pages.html" (append (auth:auth-user-data) `(:alert ,alert - :pages ,(storage:get-file-names - (storage:get-files-in-directory - "" "pages")))))) + :system-data ,(nera:system-data) + :pages ,(nera:get-all-pages))))) ;; Not Authorised (progn (utils:set-alert "You are not logged in.") @@ -591,9 +599,8 @@ (append (if (hermetic:logged-in-p) (auth:auth-user-data)) `(:alert ,alert - :pages ,(storage:get-file-names - (storage:get-files-in-directory - "" "pages"))))))) + :system-data ,(nera:system-data) + :pages ,(nera:get-all-pages)))))) (defroute ("/view/pages" :method :GET) () (let ((alert (utils:get-and-reset-alert))) @@ -601,6 +608,7 @@ (append (if (hermetic:logged-in-p) (auth:auth-user-data)) `(:alert ,alert + :system-data ,(nera:system-data) :pages ,(storage:get-file-names (storage:get-files-in-directory "" "pages"))))))) @@ -611,6 +619,7 @@ (append (if (hermetic:logged-in-p) (auth:auth-user-data)) `(:alert ,alert + :system-data ,(nera:system-data) :pages ,(storage:get-file-names (storage:get-files-in-directory "" "pages"))))))) @@ -623,6 +632,7 @@ (auth:auth-user-data)) `(:alert ,alert :db-data ,(nera:get-page slug) + :system-data ,(nera:system-data) :data ,(storage:open-text-file "" "pages" slug)))) (on-exception *web* 404)))) @@ -634,6 +644,7 @@ (render "/user/edit-page.html" (append (auth:auth-user-data) `(:alert ,alert + :system-data ,(nera:system-data) :db-data ,(nera:get-page slug) :data ,(storage:open-text-file "" "pages" slug)))))