summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/site.clj24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/site.clj b/src/site.clj
index 3950f30..20ebc1f 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -86,12 +86,14 @@
(stringify-and-escape
(strip-empty-vals d)))
-(defn prepare-user-list [room]
- ; Sorting is done on client
- (map process-user (vals @(room :users))))
+(defn prepare-user-list [room sort?]
+ (let [users (vals @(room :users))]
+ (map process-user (if sort?
+ (sort-by (fn [u] (.toLowerCase (:nick u))) users)
+ users))))
(defn updates [nick room ts]
- {"users" (prepare-user-list room)
+ {"users" (prepare-user-list room false) ; Sorting is done on client
"messages" (map process-message-for-json
(new-messages room ts))
"favs" (new-favs nick ts)})
@@ -514,7 +516,7 @@ FROM users u
(if nick
(dosync
(login-user (user-struct-from-session session) room)))
- (let [user-list (prepare-user-list room)]
+ (let [user-list (prepare-user-list room true)]
(.setAttribute st "users" user-list))
(.setAttribute st "messages" message-list)
(.setAttribute st "roomkey" (room :key))
@@ -540,13 +542,13 @@ FROM users u
users (room :users)]
(if nick
(if-let [user-info (@users nick)]
- ; Incorporate avatar updates
- (commute users assoc nick (merge user-info {:last-seen now
- :avatar (session :avatar)}))
- (commute users assoc nick (user-struct-from-session session))))
+ x; Incorporate avatar updates
+ (commute users assoc nick (merge user-info {:last-seen now
+ :avatar (session :avatar)}))
+ (commute users assoc nick (user-struct-from-session session))))
(resp-success (assoc (updates nick room old-ts)
- :timestamp now
- :v *chat-version-number*)))))
+ :timestamp now
+ :v *chat-version-number*)))))
(defn validated-refresh [session params]
(let [room-key (params :room)