src/views/blog-post-editor.lisp
(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)))