diff options
Diffstat (limited to 'users/grfn/bbbg/src/bbbg/handlers/core.clj')
-rw-r--r-- | users/grfn/bbbg/src/bbbg/handlers/core.clj | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/users/grfn/bbbg/src/bbbg/handlers/core.clj b/users/grfn/bbbg/src/bbbg/handlers/core.clj index d272064ec593..e30381de5bcf 100644 --- a/users/grfn/bbbg/src/bbbg/handlers/core.clj +++ b/users/grfn/bbbg/src/bbbg/handlers/core.clj @@ -3,7 +3,8 @@ [bbbg.user :as user] [bbbg.views.flash :as flash] [hiccup.core :refer [html]] - [ring.util.response :refer [content-type response]])) + [ring.util.response :refer [content-type response]] + [clojure.string :as str])) (def ^:dynamic *authenticated?* false) @@ -20,14 +21,29 @@ (binding [*authenticated?* (authenticated? req)] (handler req)))) +(def ^:dynamic *current-uri*) + +(defn wrap-current-uri [handler] + (fn [req] + (binding [*current-uri* (:uri req)] + (handler req)))) + +(defn nav-item [href label] + (let [active? + (when *current-uri* + (str/starts-with? + *current-uri* + href))] + [:li {:class (when active? "active")} + [:a {:href href} + label]])) + (defn global-nav [] [:nav.global-nav [:ul - [:li [:a {:href "/events"} - "Events"]] + (nav-item "/events" "Events") (when *authenticated?* - [:li [:a {:href "/attendees"} - "Attendees"]]) + (nav-item "/attendees" "Attendees")) [:li.spacer] [:li (if *authenticated?* |