Created
May 16, 2012 22:06
-
-
Save adeel/2714352 to your computer and use it in GitHub Desktop.
HTML helpers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(use 'hiccup.core) | |
(defn text-field | |
([field-name title] (text-field field-name title {})) | |
([field-name title {:keys [password? guide value]}] | |
(let [id (str (name field-name) "-field")] | |
[:div.field-wrapper | |
[:div.field | |
[:label {:for id} title] | |
[:input.text {:type (if password? "password" "text") | |
:name (name field-name) | |
:id id | |
:value value}]] | |
[:div.guide guide]]))) | |
(defn big-text-field | |
([field-name title] (big-text-field field-name title {})) | |
([field-name title {:keys [guide value]}] | |
(let [id (str (name field-name) "-field")] | |
[:div.field-wrapper | |
[:div.field | |
[:label {:for id} title] | |
[:textarea {:name (name field-name) :id id} | |
value]] | |
[:div.guide guide]]))) | |
(defn radio-field [field-name title {:keys [choices guide value]}] | |
[:div.field-wrapper | |
[:div.field | |
[:label title] | |
[:div.radio-choices-wrapper | |
(apply concat | |
(map | |
(fn [[key val]] | |
(let [id (str (name field-name) "-" (name key) "-field")] | |
[[:input.radio {:type "radio" | |
:name (name field-name) | |
:id id | |
:value key | |
:checked (if (= (name key) value) "checked")}] | |
[:label {:for id} val]])) | |
choices))]] | |
[:div.guide guide]]) | |
(defn select-field [field-name title {:keys [choices guide value]}] | |
(let [id (str (name field-name) "-field")] | |
[:div.field-wrapper | |
[:div.field | |
[:label {:for id} title] | |
[:select {:name (name field-name) :id id} | |
(map | |
(fn [[k v]] | |
[:option {:value k | |
:selected (if (= k value) "selected")} v]) | |
choices)]] | |
[:div.guide guide]])) | |
(defn select-fields [field-name title {:keys [choices values guide]}] | |
(let [id (str (name field-name) "-field")] | |
[:div.field-wrapper | |
[:div.field | |
[:label {:for id} title] | |
(map | |
(fn [[subfield kvs]] | |
[:select {:name (str (name field-name) "-" (name subfield)) :id id} | |
(map | |
(fn [[k v]] | |
[:option {:value k | |
:selected (if (= k (values subfield)) "selected")} | |
v]) | |
kvs)]) | |
choices)] | |
[:div.guide guide]])) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment