diff options
| author | Scott Ostler <scottbot9000@gmail.com> | 2010-06-14 17:16:58 -0400 |
|---|---|---|
| committer | Scott Ostler <scottbot9000@gmail.com> | 2010-06-14 17:16:58 -0400 |
| commit | e253b6fa840296c81a1aa71970a82e9d73257150 (patch) | |
| tree | c25df65e50dda9ccc552c55587aa295891bc8bdf | |
| parent | 312ec44ac49d5610204863d7b9d37f1d2875a9db (diff) | |
Sort /chat userlist
| -rw-r--r-- | src/site.clj | 24 |
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) |
