diff --git a/src/co/gaiwan/compass/html/sessions.clj b/src/co/gaiwan/compass/html/sessions.clj
index a0f787d..7301376 100644
--- a/src/co/gaiwan/compass/html/sessions.clj
+++ b/src/co/gaiwan/compass/html/sessions.clj
@@ -68,18 +68,22 @@
[:input {:color t/--text-2
:background-color t/--surface-3
:border-radius t/--radius-2}]
+ [:span :font-bold]
([session user]
;; Progressive enhancement, without htmx the form submission will kick in
- [:<>
- {:method "POST"
- :action (url-for :session/participate {:id (:db/id session)})}
- [:input {:type "submit"
- :hx-post (url-for :session/participate {:id (:db/id session)})
- :hx-swap "none"
- :value
- (if (session/participating? session user)
- "Leave"
- "Join")}]]))
+ (if (<= (:session/capacity session) (:session/signup-count session))
+ [:<>
+ [:span "FULL"]]
+ [:<>
+ {:method "POST"
+ :action (url-for :session/participate {:id (:db/id session)})}
+ [:input {:type "submit"
+ :hx-post (url-for :session/participate {:id (:db/id session)})
+ :hx-swap "none"
+ :value
+ (if (session/participating? session user)
+ "Leave"
+ "Join")}]])))
(o/defstyled session-card-actions :nav
:flex :justify-end :w-full
@@ -283,7 +287,7 @@
[:div.large (:location/name location)]]
[:div.capacity
[:div.small "Spots available"]
- [:div.large (- (or capacity 0) (or signup-count 0))]]
+ [:div.large (min 0 (- (or capacity 0) (or signup-count 0)))]]
#_[:div
[:p.small "Ticket required"]
(if (:session/ticket-required? session)
@@ -291,7 +295,7 @@
[:p.large "NO ❎"])]]
#_(when (session/organizing? session user))
[:div.participants
- [:h3 "Participants"]
+ [:h3 "Participants (" signup-count ")"]
(for [p participants]
(when-not (:public-profile/hidden? p)
[attendee p]))
@@ -387,9 +391,9 @@
(str (time/local-date (:session/time session)))
(str (java.time.LocalDate/now)))}]
[:input (cond->
- {:id "start-time" :name "start-time" :type "time"
- :min "06:00" :max "23:00" :required true
- :step 60}
+ {:id "start-time" :name "start-time" :type "time"
+ :min "06:00" :max "23:00" :required true
+ :step 60}
session
(assoc :value
(str (time/local-time (:session/time session)))))]]