Skip to content

Instantly share code, notes, and snippets.

@swlkr
Last active January 24, 2018 07:43
Show Gist options
  • Save swlkr/22d6627a903bc86f8a2257d1d2dd4d7b to your computer and use it in GitHub Desktop.
Save swlkr/22d6627a903bc86f8a2257d1d2dd4d7b to your computer and use it in GitHub Desktop.
(ns your-proj.views.posts
(:require [your-proj.components :as c]
[coast.core :as coast]))
(defn post [m]
(let [{:keys [id title body created-at]} m]
[:tr
[:td id]
[:td title]
[:td body]
[:td created-at]
[:td
(coast/link-to "Edit" ["/posts/:id/edit" m])]
[:td
(coast/link-to "Delete" [:delete "/posts/:id" m])]
[:td
(coast/link-to "Show" ["/posts/:id" m])]]))
(defn index [request]
(let [{:keys [posts]} request]
[:div
[:table
[:thead
[:tr
[:th "id"]
[:th "title"]
[:th "body"]
[:th "created-at"]
[:th]
[:th]
[:th]]]
[:tbody
(for [m posts]
(post m))]]
[:div
(coast/link-to "New post" ["/posts/fresh"])]]))
(defn show [request]
(let [{:keys [post]} request
{:keys [id title body created-at]} post]
[:div
[:div id]
[:div title]
[:div body]
[:div created-at]
[:div
(coast/link-to "Delete" [:delete "/posts/:id" post])]
[:div
(coast/link-to "Back" ["/posts"])]]))
(defn fresh [request]
(let [{:keys [post error]} request
{:keys [title body]} post]
[:div
error
(coast/form-for [:post "/posts"]
[:div
[:label "title"]
[:input {:type "text" :name "title" :value title}]]
[:div
[:label "body"]
[:input {:type "text" :name "body" :value body}]]
[:div
[:input {:type "submit" :value "Save"}]])
[:div
(coast/link-to "Back" ["/posts"])]]))
(defn edit [request]
(let [{:keys [post error]} request
{:keys [title body]} post]
[:div
error
(coast/form-for [:put "/posts/:id" post]
[:div
[:label "title"]
[:input {:type "text" :name "title" :value title}]]
[:div
[:label "body"]
[:input {:type "text" :name "body" :value body}]]
[:div
[:input {:type "submit" :value "Save"}]])
[:div
(coast/link-to "Back" ["/posts"])]]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment