summaryrefslogtreecommitdiff
path: root/lisp/webapps/bogenherr/site.lisp
diff options
context:
space:
mode:
authorckonstanski <kostcarl@isu.edu>2026-03-27 22:40:32 -0600
committerckonstanski <kostcarl@isu.edu>2026-03-27 22:40:32 -0600
commit7d523da5d7defbf68a07f746a0d75ea18960267c (patch)
tree991327ebf9efce83abb043e5374bb9426dd575f1 /lisp/webapps/bogenherr/site.lisp
parent6b90c3b2bc7fe888ba6c69e89d4c632daceda03b (diff)
checkpoint for reagent and easy-routes changes in progress
Diffstat (limited to 'lisp/webapps/bogenherr/site.lisp')
-rw-r--r--lisp/webapps/bogenherr/site.lisp130
1 files changed, 58 insertions, 72 deletions
diff --git a/lisp/webapps/bogenherr/site.lisp b/lisp/webapps/bogenherr/site.lisp
index b79f493..37f33cd 100644
--- a/lisp/webapps/bogenherr/site.lisp
+++ b/lisp/webapps/bogenherr/site.lisp
@@ -3,7 +3,7 @@
(in-package :bogenherr)
-(defmacro .base (&optional (onload-fn "goto_location('/home')"))
+(defmacro .base (&optional (start-url "/home"))
`(org-ckons-http::html5
`(html
(head
@@ -18,27 +18,13 @@
`((script :type "text/javascript" :src ,(getf js :src) :integrity ,(getf js :integrity) :crossorigin ,(getf js :crossorigin))))
'((:src "https://code.jquery.com/jquery-3.7.1.slim.min.js" :integrity "ha256-kmHvs0B+OpCW5GVHUNjv9rOmY0IvSIRcf7zGUDTDQM8=" :crossorigin "anonymous")))
((script :type "text/javascript" :src "/cljs-out/dev-main.js")))
- ((body :onload ,(format nil "bogenherr.core.~a" ,onload-fn))
- ((div :class "container-fluid")
- ((div :class "banner")
- ((table :width "100%" :height "100%")
- (tr
- ((td :class "banner-menu")
- ((div :id "menu-user")))
- ((td :class "banner-title") "Bogen-<i>Herr</i>")
- ((td :class "banner-menu")
- "&nbsp;"))))
- ((div :id "menu" :class "well"))
- ((div :id "location" :style "display: none"))
- ((div :id "errormsg"))
- ((div :id "message"))
- ((div :id "body"))
- ((div :id "footer")
- (hr)
- "Carlos Konstanski&nbsp;&nbsp;&nbsp;&nbsp;(970) 294-9708")
- ,@(mapcar (lambda (js)
- `((script :type "text/javascript" :src ,(getf js :src) :integrity ,(getf js :integrity) :crossorigin ,(getf js :crossorigin))))
- '((:src "https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" :integrity "sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" :crossorigin "anonymous"))))))))
+ ((body :onload ,(format nil "bogenherr.core.start(~a)" ,(if start-url
+ (format nil "'~a'" start-url)
+ "null")))
+ ((div :id "app"))
+ ,@(mapcar (lambda (js)
+ `((script :type "text/javascript" :src ,(getf js :src) :integrity ,(getf js :integrity) :crossorigin ,(getf js :crossorigin))))
+ '((:src "https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" :integrity "sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" :crossorigin "anonymous")))))))
(defmacro .location ()
`(location-json location))
@@ -184,53 +170,53 @@
(defmacro .users-delete ()
`(users-delete-json id))
-(define-endpoint :get "/" () .base)
-(define-endpoint :post "/location" ((location :parameter-type 'string)) .location)
-(define-endpoint :get "/home" () .home-get)
-(define-endpoint :post "/home" ((message :parameter-type 'string) (errormsg :parameter-type 'string)) .home-post)
-(define-endpoint :get "/menu" () .menu)
-(define-endpoint :get "/menu/user" () .menu-user)
-(define-endpoint :get "/login" () .login)
-(define-endpoint :post "/login/authenticate" ((username :parameter-type 'string) (pwd :parameter-type 'string)) .login-authenticate)
-(define-endpoint :get "/login/forgot" () .login-forgot)
-(define-endpoint :get "/logout" () .logout)
-(define-endpoint :get "/profile" () .profile)
-(define-endpoint :get "/profile/view" () .profile-view)
-(define-endpoint :post "/profile/modify" () .profile-modify)
-(define-endpoint :post "/profile/modify/submit" ((id :parameter-type 'integer) (username :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string)) .profile-modify-submit)
-(define-endpoint :get "/password" () .password)
-(define-endpoint :post "/password/submit" ((id :parameter-type 'integer) (pwd :parameter-type 'string) (pwd2 :parameter-type 'string)) .password-submit)
-(define-endpoint :get "/about-us" () .about-us)
-(define-endpoint :get "/about-us/view" () .about-us-view)
-(define-endpoint :post "/about-us/modify" () .about-us-modify)
-(define-endpoint :post "/about-us/modify/submit" ((content :parameter-type 'string)) .about-us-modify-submit)
-(define-endpoint :get "/gallery" () .gallery)
-(define-endpoint :get "/gallery/view" () .gallery-view)
-(define-endpoint :post "/gallery/add" () .gallery-add)
-(define-endpoint :post "/gallery/add/submit" ((description :parameter-type 'string) (video_embed_url :parameter-type 'string) (upload :parameter-type 'string)) .gallery-add-submit)
-(define-endpoint :post "/gallery/modify" ((id :parameter-type 'integer)) .gallery-modify)
-(define-endpoint :post "/gallery/modify/submit" ((id :parameter-type 'integer) (description :parameter-type 'string) (video_embed_url :parameter-type 'string) (upload :parameter-type 'string)) .gallery-modify-submit)
-(define-endpoint :post "/gallery/delete" ((id :parameter-type 'integer)) .gallery-delete)
-(define-endpoint :get "/gallery/file/view" ((id :parameter-type 'integer)) .gallery-file-view)
-(define-endpoint :get "/testimonials" () .testimonials)
-(define-endpoint :get "/testimonials/view" () .testimonials-view)
-(define-endpoint :post "/testimonials/modify" () .testimonials-modify)
-(define-endpoint :post "/testimonials/modify/submit" ((content :parameter-type 'string)) .testimonials-modify-submit)
-(define-endpoint :get "/contact-us" () .contact-us)
-(define-endpoint :get "/contact-us/view" () .contact-us-view)
-(define-endpoint :post "/contact-us/email" ((first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string) (comments :parameter-type 'string)) .contact-us-email)
-(define-endpoint :get "/messages" () .messages)
-(define-endpoint :post "/messages/results" ((read :parameter-type 'string)) .messages-results)
-(define-endpoint :post "/messages/mark" ((read :parameter-type 'string) (id :parameter-type 'integer)) .messages-mark)
-(define-endpoint :get "/users" () .users)
-(define-endpoint :get "/users/view" () .users-view)
-(define-endpoint :post "/users/add" () .users-add)
-(define-endpoint :post "/users/add/submit" ((role_groups :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string)) .users-add-submit)
-(define-endpoint :get "/register" ((hash :parameter-type 'string)) .base (format nil "goto_register('~a') " hash))
-(define-endpoint :post "/users/register" ((hash :parameter-type 'string)) .users-register)
-(define-endpoint :post "/users/register/form" ((hash :parameter-type 'string)) .users-register-form)
-(define-endpoint :post "/users/register/submit" ((hash :parameter-type 'string) (username :parameter-type 'string) (pwd :parameter-type 'string) (pwd2 :parameter-type 'string) (phone :parameter-type 'string)) .users-register-submit)
-(define-endpoint :post "/users/modify" ((id :parameter-type 'integer)) .users-modify)
-(define-endpoint :post "/users/modify/submit" ((id :parameter-type 'integer) (role_groups :parameter-type 'string) (username :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string)) .users-modify-submit)
-(define-endpoint :post "/users/toggle-active" ((id :parameter-type 'integer)) .users-toggle-active)
-(define-endpoint :post "/users/delete" ((id :parameter-type 'integer)) .users-delete)
+(define-endpoint ("/" :method :get) () .base)
+(define-endpoint ("/location" :method :post) (&post (location :parameter-type 'string)) .location)
+(define-endpoint ("/home" :method :get) () .home-get)
+(define-endpoint ("/home" :method :post) (&post (message :parameter-type 'string) (errormsg :parameter-type 'string)) .home-post)
+(define-endpoint ("/menu" :method :get) () .menu)
+(define-endpoint ("/menu/user" :method :get) () .menu-user)
+(define-endpoint ("/login" :method :get) () .login)
+(define-endpoint ("/login/authenticate" :method :post) (&post (username :parameter-type 'string) (pwd :parameter-type 'string)) .login-authenticate)
+(define-endpoint ("/login/forgot" :method :get) () .login-forgot)
+(define-endpoint ("/logout" :method :get) () .logout)
+(define-endpoint ("/profile" :method :get) () .profile)
+(define-endpoint ("/profile/view" :method :get) () .profile-view)
+(define-endpoint ("/profile/modify" :method :post) () .profile-modify)
+(define-endpoint ("/profile/modify/submit" :method :post) (&post (id :parameter-type 'integer) (username :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string)) .profile-modify-submit)
+(define-endpoint ("/password" :method :get) () .password)
+(define-endpoint ("/password/submit" :method :post) (&post (id :parameter-type 'integer) (pwd :parameter-type 'string) (pwd2 :parameter-type 'string)) .password-submit)
+(define-endpoint ("/about-us" :method :get) () .about-us)
+(define-endpoint ("/about-us/view" :method :get) () .about-us-view)
+(define-endpoint ("/about-us/modify" :method :post) () .about-us-modify)
+(define-endpoint ("/about-us/modify/submit" :method :post) (&post (content :parameter-type 'string)) .about-us-modify-submit)
+(define-endpoint ("/gallery" :method :get) () .gallery)
+(define-endpoint ("/gallery/view" :method :get) () .gallery-view)
+(define-endpoint ("/gallery/add" :method :post) () .gallery-add)
+(define-endpoint ("/gallery/add/submit" :method :post) (&post (description :parameter-type 'string) (video_embed_url :parameter-type 'string) (upload :parameter-type 'string)) .gallery-add-submit)
+(define-endpoint ("/gallery/modify" :method :post) (&post (id :parameter-type 'integer)) .gallery-modify)
+(define-endpoint ("/gallery/modify/submit" :method :post) (&post (id :parameter-type 'integer) (description :parameter-type 'string) (video_embed_url :parameter-type 'string) (upload :parameter-type 'string)) .gallery-modify-submit)
+(define-endpoint ("/gallery/delete/:id" :method :delete) () .gallery-delete)
+(define-endpoint ("/gallery/file/view/:id" :method :get) () .gallery-file-view)
+(define-endpoint ("/testimonials" :method :get) () .testimonials)
+(define-endpoint ("/testimonials/view" :method :get) () .testimonials-view)
+(define-endpoint ("/testimonials/modify" :method :post) () .testimonials-modify)
+(define-endpoint ("/testimonials/modify/submit" :method :post) (&post (content :parameter-type 'string)) .testimonials-modify-submit)
+(define-endpoint ("/contact-us" :method :get) () .contact-us)
+(define-endpoint ("/contact-us/view" :method :get) () .contact-us-view)
+(define-endpoint ("/contact-us/email" :method :post) (&post (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string) (comments :parameter-type 'string)) .contact-us-email)
+(define-endpoint ("/messages" :method :get) () .messages)
+(define-endpoint ("/messages/results" :method :post) (&post (read :parameter-type 'string)) .messages-results)
+(define-endpoint ("/messages/mark" :method :post) (&post (read :parameter-type 'string) (id :parameter-type 'integer)) .messages-mark)
+(define-endpoint ("/users" :method :get) () .users)
+(define-endpoint ("/users/view" :method :get) () .users-view)
+(define-endpoint ("/users/add" :method :post) () .users-add)
+(define-endpoint ("/users/add/submit" :method :post) (&post (role_groups :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string)) .users-add-submit)
+(define-endpoint ("/register/:hash" :method :get) () .base hash)
+(define-endpoint ("/users/register" :method :post) (&post (hash :parameter-type 'string)) .users-register)
+(define-endpoint ("/users/register/form" :method :post) (&post (hash :parameter-type 'string)) .users-register-form)
+(define-endpoint ("/users/register/submit" :method :post) (&post (hash :parameter-type 'string) (username :parameter-type 'string) (pwd :parameter-type 'string) (pwd2 :parameter-type 'string) (phone :parameter-type 'string)) .users-register-submit)
+(define-endpoint ("/users/modify" :method :post) (&post (id :parameter-type 'integer)) .users-modify)
+(define-endpoint ("/users/modify/submit" :method :post) (&post (id :parameter-type 'integer) (role_groups :parameter-type 'string) (username :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string)) .users-modify-submit)
+(define-endpoint ("/users/toggle-active" :method :post) (&post (id :parameter-type 'integer)) .users-toggle-active)
+(define-endpoint ("/users/delete" :method :post) (&post (id :parameter-type 'integer)) .users-delete)