start with rendering forms
This commit is contained in:
parent
e7eb71a840
commit
37b39c596f
4 changed files with 18 additions and 13 deletions
|
@ -9,7 +9,8 @@
|
|||
(:response :scopes/web/response)
|
||||
(:shape :scopes/shape)
|
||||
(:util :scopes/util))
|
||||
(:import-from :scopes/web/dom #:div #:label)
|
||||
(:import-from :scopes/web/dom
|
||||
#:button #:div #:input #:label)
|
||||
(:export #:render-content #:response))
|
||||
|
||||
(in-package :scopes/frontend/cs-hx)
|
||||
|
@ -26,16 +27,21 @@
|
|||
(defun view (resp msg)
|
||||
(div nil (util:loop-plist (shape:data msg) k v collect (view-field k v))))
|
||||
|
||||
(defun form (resp msg)
|
||||
(let* ((data (shape:data msg))
|
||||
(fields (getf data :fields)))
|
||||
(mapcar (lambda (f) (form-field f)) fields)))
|
||||
|
||||
(defun view-field (label value)
|
||||
(div nil (label nil label) ": " value))
|
||||
|
||||
(defun form (resp msg)
|
||||
(let* ((data (shape:data msg))
|
||||
(fields (getf data :fields)))
|
||||
(dom:form (list :name "login" :hx-target "#cs-debug" :hx-post "/hx/auth/login")
|
||||
(mapcar (lambda (f) (form-field f)) fields)
|
||||
(button '(:class "btn btn-primary") "Login")
|
||||
)))
|
||||
|
||||
(defun form-field (name)
|
||||
(div nil (label nil name) ": " name))
|
||||
(div nil
|
||||
(label '(:class "form-label") name)
|
||||
(input (list :type "text" :name name :class "form-control"))))
|
||||
|
||||
(setf (gethash :view *templates*) #'view)
|
||||
(setf (gethash :form *templates*) #'form)
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
(setf inp "<a href=\"https://example.com\">Link</a>")
|
||||
(setf parsed (dom:parse inp))
|
||||
(== parsed '(((:a :href "https://example.com") "Link")))
|
||||
;(== (dom:from-list parsed) ((dom:a '(:href "https://example.com") "Link")))
|
||||
;(== (car (dom:from-list parsed)) (dom:a '(:href "https://example.com") "Link"))
|
||||
(== (dom:render (dom:from-list parsed)) inp)
|
||||
(== (dom:to-list (dom:a '(:href "https://example.com") "Link")) (car parsed))
|
||||
))
|
||||
|
|
|
@ -34,10 +34,9 @@
|
|||
(make-instance 'mailbox))
|
||||
|
||||
(defun rcv (mb)
|
||||
(handler-case
|
||||
(lpq:pop-queue (queue mb))
|
||||
(handler-case (lpq:pop-queue (queue mb))
|
||||
(condition (cnd)
|
||||
(util:lg :info "condition on pop-queue" cnd)
|
||||
(util:lg :info "rcv -> lpq:pop-queue" cnd)
|
||||
+quit-message+)))
|
||||
|
||||
(defun try-rcv (mb)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
(:export #:xml-element
|
||||
#:elem #:element #:void-element #:render
|
||||
#:dlist
|
||||
#:a #:dd #:div #:dl #:dt #:label
|
||||
#:a #:button #:dd #:div #:dl #:dt #:form #:label
|
||||
#:br #:input
|
||||
#:parse #:from-list #:to-list))
|
||||
|
||||
|
@ -81,7 +81,7 @@
|
|||
tags)))
|
||||
|
||||
(eval-when (:compile-toplevel :load-toplevel :execute)
|
||||
(make-elements (a dd div dl dt label)))
|
||||
(make-elements (a button dd div dl dt form label)))
|
||||
|
||||
(eval-when (:compile-toplevel :load-toplevel :execute)
|
||||
(make-elements (br input) void-element))
|
||||
|
|
Loading…
Add table
Reference in a new issue