Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
Nelze vybrat více než 25 témat
Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
|
- #|
-
- # Contact Form
-
- GET /contact Index
- GET /contact/admin Admin Panel
- GET /contact/:id View Submission TODO
-
- DELETE /contact Clear All
- DELETE /contact/:id Delete By ID
-
- POST /contact New Submission
-
- |#
-
- (in-package #:cl-deck-builder2.web)
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (defun render-feedback (&optional (tpl #P"contact/index.html"))
- (render-with-env tpl (append
- (list :active "/contact")
- (auth (:admin)
- (list :feedback (select-feedback))))))
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (defroute ("/contact" :method :GET) ()
- "Contact Form Index Page"
- (v:info :contact "GET /contact")
-
- (with-logged-in-user
- (render-feedback)))
-
- (defroute ("/contact/admin" :method :GET) ()
- "Contact Form Admin Panel"
- (with-logged-in-user
- (render-feedback #P"contact/admin.html")))
-
- (defroute ("/contact" :method :DELETE) ()
- "Delete *ALL* FEEDBACK."
- (v:info :contact "DELETE /contact")
-
- (auth (:admin)
- (progn
- (delete-from 'feedback)
- (flash-message (_ "Feedback cleared."))
- (render-feedback #P"contact/list.html"))
- (flash-error (_ "Something went wrong. Try again?"))))
-
- (defroute ("/contact/:id/delete" :method :DELETE) (&key id)
- "Delete FEEDBACK with matching ID."
-
- (auth (:admin)
- (handler-case
- (ratify:with-parsed-forms
- ((:integer id))
- (delete-by-values 'feedback :id id))
- (ratify:combined-error (e)
- (flash-error e)))))
-
- (defroute ("/contact" :method :POST) (&key _parsed)
- "User Submit Feedback POST Route. Login Required."
- (v:info :contact "POST /contact => ~a" _parsed)
-
- (with-logged-in-user
- (let ((user (find-dao 'user :email (user-name)))
- (body (query-param "query" _parsed)))
- (handler-case
- (ratify:with-parsed-forms
- ((:string body))
- (if (ignore-errors
- (create-feedback user body))
- (flash-message (_ "Thanks! We got your message."))
- (flash-error (_ "Something went wrong. Try again?"))))
- (ratify:combined-error (e)
- (flash-error e))))
- (redirect "/contact")))
|