From cf684daa1eacac996223f6c407074abd019ede4a Mon Sep 17 00:00:00 2001 From: ckonstanski Date: Sun, 22 Dec 2024 18:32:18 -0700 Subject: rename to bogenherrc --- lisp/webapps/bogenherr/site.lisp | 234 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 lisp/webapps/bogenherr/site.lisp (limited to 'lisp/webapps/bogenherr/site.lisp') diff --git a/lisp/webapps/bogenherr/site.lisp b/lisp/webapps/bogenherr/site.lisp new file mode 100644 index 0000000..6b58a81 --- /dev/null +++ b/lisp/webapps/bogenherr/site.lisp @@ -0,0 +1,234 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +(declaim (optimize (speed 0) (safety 3) (debug 3))) + +(in-package :bogenherr) + +(defmacro .base (&optional (onload-fn "goto_location('/home')")) + `(org-ckons-http::html5 + `(html + (head + ((meta :name "viewport" :content "width=device-width, initial-scale=1, shrink-to-fit=no")) + ((meta :charset "utf-8")) + ((title) ,(title *webapp*)) + ,@(mapcar (lambda (css) + `((link :rel "stylesheet" :href ,(getf css :href) :integrity ,(getf css :integrity) :crossorigin ,(getf css :crossorigin)))) + '((:href "https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" :integrity "sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" :crossorigin "anonymous") + (:href "/static/css/stylesheet.css" :crossorigin "anonymous"))) + ,@(mapcar (lambda (js) + `((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 "/static/js/cljs/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-title") "Bogen-Herr") + ((td :class "banner-menu") + ((div :id "menu-user")))))) + ((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    (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")))))))) + +(defmacro .location () + `(location-json location)) + +(defmacro .home-get () + `(home-json)) + +(defmacro .home-post () + `(home-json message errormsg)) + +(defmacro .menu () + `(menu-json)) + +(defmacro .menu-user () + `(menu-user-json)) + +(defmacro .login () + `(login-json)) + +(defmacro .login-authenticate () + `(login-authenticate-json username pwd)) + +(defmacro .login-forgot () + `(login-forgot-json)) + +(defmacro .logout () + `(logout-json)) + +(defmacro .profile () + `(profile-json)) + +(defmacro .profile-view () + `(profile-view-json)) + +(defmacro .profile-modify () + `(profile-modify-json)) + +(defmacro .profile-modify-submit () + `(profile-modify-submit-json id username first_name last_name email phone)) + +(defmacro .password () + `(password-json)) + +(defmacro .password-submit () + `(password-submit-json id pwd pwd2)) + +(defmacro .about-us () + `(about-us-json)) + +(defmacro .about-us-view () + `(about-us-view-json)) + +(defmacro .about-us-modify () + `(about-us-modify-json)) + +(defmacro .about-us-modify-submit () + `(about-us-modify-submit-json content)) + +(defmacro .gallery () + `(gallery-json)) + +(defmacro .gallery-view () + `(gallery-view-json)) + +(defmacro .gallery-add () + `(gallery-add-json)) + +(defmacro .gallery-add-submit () + `(gallery-add-submit-json description video_embed_url upload)) + +(defmacro .gallery-modify () + `(gallery-modify-json id)) + +(defmacro .gallery-modify-submit () + `(gallery-modify-submit-json id description video_embed_url upload)) + +(defmacro .gallery-delete () + `(gallery-delete-json id)) + +(defmacro .gallery-file-view () + `(gallery-file-view id)) + +(defmacro .testimonials () + `(testimonials-json)) + +(defmacro .testimonials-view () + `(testimonials-view-json)) + +(defmacro .testimonials-modify () + `(testimonials-modify-json)) + +(defmacro .testimonials-modify-submit () + `(testimonials-modify-submit-json content)) + +(defmacro .contact-us () + `(contact-us-json)) + +(defmacro .contact-us-view () + `(contact-us-view-json)) + +(defmacro .contact-us-email () + `(contact-us-email-json first_name last_name email phone comments)) + +(defmacro .messages () + `(messages-json)) + +(defmacro .messages-results () + `(messages-results-json read)) + +(defmacro .messages-mark () + `(messages-mark-json read id)) + +(defmacro .users () + `(users-json)) + +(defmacro .users-view () + `(users-view-json)) + +(defmacro .users-add () + `(users-add-json)) + +(defmacro .users-add-submit () + `(users-add-submit-json role_groups first_name last_name email)) + +(defmacro .users-register () + `(users-register-json hash)) + +(defmacro .users-register-form () + `(users-register-form-json hash)) + +(defmacro .users-register-submit () + `(users-register-submit-json hash username pwd pwd2 phone)) + +(defmacro .users-modify () + `(users-modify-json id)) + +(defmacro .users-modify-submit () + `(users-modify-submit-json id role_groups username first_name last_name email phone)) + +(defmacro .users-toggle-active () + `(users-toggle-active-json id)) + +(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) -- cgit v1.3