src/views/blog-main.lisp

DOWNLOAD
(defpackage murja.views.blog-main
  (:use :cl :murja.views.components.root)
  (:import-from :murja.models.user :user-nickname)
  (:import-from :cl-hash-util :hash)
  (:import-from :murja.routes.root-routes :@check-if-initial)
  (:import-from :murja.middleware.auth :@ssr-authenticated :*user*)
  (:import-from :murja.routes.settings-routes :get-settings)
  (:import-from :murja.middleware.db :@transaction)
  (:import-from :murja.newui :@newui :e :c :with-state)
  (:import-from :easy-routes :defroute)


  (:import-from murja.newui.dispatcher :deftab :@dispatcher)

  (:export :blog-root-view))

(in-package :murja.views.blog-main)

(deftab /only-logged-in (:route "/only-logged-in"
			 :require-login t
			 :title "This shouldn't be visible")
  (with-state ((a 1)) ()
    (c :div (:class "se-testi-div")
       (c :div ()
	  (format nil "Näkyyköhän tää? ~d" a))
       (c :button (:onclick (e (lambda (ee)
				 (declare (ignore ee))
				 (incf a))))
	  "Clickme"))))

(deftab / (:route "/blog/"
	   :title "Home")
  (let* ((settings (get-settings))
	 (page-size (gethash "recent-post-count" settings))
	 (page 1))
    
    (with-state ((page-posts (murja.models.post:get-page page page-size))) ()

      (c :div ()
	 (murja.views.components.page:page page-posts)))))