src/views/blog-post-editor.lisp

DOWNLOAD
(defpackage murja.views.blog-post-editor
  (:use :cl :murja.newui.dispatcher :murja.newui)
  (:export :editor)
  (:local-nicknames (:json :com.inuoe.jzon))
  (:local-nicknames (:modelpost :murja.models.post)))

(in-package :murja.views.blog-post-editor)

(defun editor (post)
  (with-state ((title (modelpost:post-title post))
	       (content (modelpost:article post))) ()
      (c :div ()
       (c :input (:type "text"
		  :name "title"
		  :oninput (e (lambda (value) (format t "new title is ~s ~%" value)))
		  :value title))
       (c :textarea (:name "content"
		     :oninput (e (lambda (value) (format t "oninput called with text value ~s~%" value ))))
	  content)
       (c :button (:onclick (e (lambda (v)
				 (declare (ignore v))
				 (format t "Toimiiko edes tää?~%"))))
	  "Click me"))))

(deftab /blog/post/edit (:route "/blog/post/:id/edit"
			 :require-login t
			 :captured-route-params (id)
			 :needed-abilities (list "edit-post")
			 :subtab t
			 :inject-to-head ((c :script (:src "https://cdnjs.cloudflare.com/ajax/libs/ace/1.43.1/ace.min.js"
						      :integrity "sha512-4pjReWfvI2kek2LBL2nn0btGloS+00a3CvuBXdSOY0DjuMm3YJy8M5CKWKaXd4QJG5Fh4iKlLuboM1ru7FHT6Q=="
						      :crossorigin "anonymous"
						      :referrerpolicy "no-referrer") )))
  (let ((post (modelpost:get-post id :allow-hidden? t)))
    (editor post)))