diff --git a/src/wanijo/attribute/domain.clj b/src/wanijo/attribute/domain.clj index 1f98ab6..8aa1b43 100644 --- a/src/wanijo/attribute/domain.clj +++ b/src/wanijo/attribute/domain.clj @@ -5,10 +5,11 @@ (spec/def ::name (spec/and string? not-empty)) +(def types + #{"string" "date" "file" "markdown" "text"}) + (spec/def ::type - (spec/and - string? - #(some (partial = %) ["date" "file", "string" "text"]))) + (spec/and string? types)) (spec/def ::required #(some (partial = %) ["on" nil 0 1 "0" "1"])) diff --git a/src/wanijo/attribute/routes.clj b/src/wanijo/attribute/routes.clj index 53e2aac..9bbb914 100644 --- a/src/wanijo/attribute/routes.clj +++ b/src/wanijo/attribute/routes.clj @@ -12,10 +12,9 @@ (let [schema-uuid (get-in req [:params :schema])] (if (form/valid? view-schema/attr-form req) (do - (domain/create-new! - (:params req) - schema-uuid - (get-in req [:session :uuid])) + (domain/create-new! (:params req) + schema-uuid + (get-in req [:session :uuid])) (resp/redirect (path :schema-show {:uuid schema-uuid}))) (routes-schema/view! schema-uuid req)))) diff --git a/src/wanijo/schema/routes.clj b/src/wanijo/schema/routes.clj index ba06b08..93e386d 100644 --- a/src/wanijo/schema/routes.clj +++ b/src/wanijo/schema/routes.clj @@ -72,25 +72,24 @@ (resp/redirect (path :schema-show (:params req))) :flash ["No write permission for schema"]))))) +(defroutes write-routes + (POST (register! :schema-edit "/schema/edit") [] + edit!) + (POST (register! :schema-assign-users "/schema/assign/users") [] + assign-users!) + (POST (register! :schema-assign-schemas "/schema/assign/schemas") [] + assign-schemas!) + (DELETE (register! :schema-delete "/schema/:uuid") + [uuid :as req] + (delete-schema! uuid (:session req)))) + (defroutes routes - (GET "/403" [] {:status 403 :body "NE"}) - (GET (register! :schema-overview "/schema") - [] + (GET (register! :schema-overview "/schema") [] view-schema/overview!) (GET (register! :schema-show "/schema/:uuid") [uuid :as req] (view! uuid req)) - (POST (register! :schema-new "/schema/new") - [] + (POST (register! :schema-new "/schema/new") [] new!) - (wrap-allowed-to-write - (comp/routes - (POST (register! :schema-edit "/schema/edit") [] - edit!) - (POST (register! :schema-assign-users "/schema/assign/users") [] - assign-users!) - (POST (register! :schema-assign-schemas "/schema/assign/schemas") [] - assign-schemas!) - (DELETE (register! :schema-delete "/schema/:uuid") - [uuid :as req] - (delete-schema! uuid (:session req)))))) + (comp/wrap-routes write-routes + wrap-allowed-to-write)) diff --git a/src/wanijo/schema/view.clj b/src/wanijo/schema/view.clj index 8cf9870..7a187ec 100644 --- a/src/wanijo/schema/view.clj +++ b/src/wanijo/schema/view.clj @@ -1,5 +1,6 @@ (ns wanijo.schema.view - (:require [hiccup.form :as hform] + (:require [clojure.string :refer [capitalize]] + [hiccup.form :as hform] [ring.util.anti-forgery :refer [anti-forgery-field]] [formulare.core :as form] [wanijo.framework.view :as view] @@ -21,10 +22,8 @@ :type {:label "Type" :required true :spec ::attr-domain/type - :options [["String" "string"] - ["Text" "text"] - ["Date" "date"] - ["File" "file"]]} + :options (map #(vector (capitalize %) %) + attr-domain/types)} :required {:label "Required" :required false :spec ::attr-domain/required