blob: 58538716ba0839e558e08fcfe1f3db5c50998ab3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
(ns bbbg.handlers.signup-form
(:require
[bbbg.db :as db]
[bbbg.db.event :as db.event]
[bbbg.event :as event]
[bbbg.handlers.core :refer [page-response authenticated?]]
[compojure.core :refer [GET context]]
[java-time :refer [local-date]]
[ring.util.response :refer [redirect]]))
(defn no-events-page [{:keys [authenticated?]}]
[:div.no-events
[:p
"There are no events for today"]
(when authenticated?
[:p
[:a {:href (str "/events/new?date=" (str (local-date)))} "Create Event"]
[:a {:href "/events"} "All Events"]])])
(defn signup-page [event]
[:div.signup-page
[:form#signup-form
{:method "POST"
:action "/event_attendees"
:disabled "disabled"}
[:input#event-id {:type "hidden" :name "event_id" :value (::event/id event)}]
[:input#attendee-id {:type "hidden" :name "attendee_id"}]
[:input#name-autocomplete
{:type "search"
:title "Name"
:name "name"
:spellcheck "false"
:autocorrect "off"
:autocomplete "off"
:autocapitalize "off"
:maxlength "2048"}]
[:input {:type "submit"
:value "Sign In"
:disabled "disabled"}]]])
(defn event-not-found []
[:div.event-not-found
[:p "Event not found"]
[:p [:a {:href (str "/events/new")} "Create a new event"]]])
;;;
(defn signup-form-routes [{:keys [db]}]
(context "/signup-forms" []
(GET "/" request
(if-let [event (db/fetch db (db.event/today))]
(redirect (str "/signup-forms/" (::event/id event)))
(page-response (no-events-page
{:authenticated? (authenticated? request)}))))
(GET "/:event-id" [event-id]
(if-let [event (db/get db :event event-id)]
(page-response (signup-page event))
(event-not-found)))))
|