aboutsummaryrefslogtreecommitdiff
path: root/src/index.cljs.hl
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.cljs.hl')
-rw-r--r--src/index.cljs.hl62
1 files changed, 3 insertions, 59 deletions
diff --git a/src/index.cljs.hl b/src/index.cljs.hl
index 82980cc..0e2d3d4 100644
--- a/src/index.cljs.hl
+++ b/src/index.cljs.hl
@@ -1,37 +1,6 @@
(page "index.html"
- (:require [app.rpc :as rpc]))
-
-(defc= scoreboard (merge (sorted-map) rpc/scoreboard))
-(defc= problems (mapcat (fn [[id person]]
- (map (partial vector id) (:problems person)))
- scoreboard))
-(defc= scores
- (reverse (sort
- (map (fn [[id person]]
- [(apply
- +
- (concat
- (map (fn [[prob state]]
- (if (and
- (= :solved state)
- (not (contains? (:problems person) prob)))
- 1
- 0))
- (:scores person))
- (map (fn [prob]
- (if (some (fn [[id2 person2]]
- (and
- (= :solved
- (get (:scores person) prob))
- (= :solved
- (get (:scores person2) prob))
- (not= id id2)))
- scoreboard)
- 1
- 0))
- (:problems person))))
- id])
- scoreboard))))
+ (:require [app.rpc :as rpc]
+ [app.scoreboard :as s]))
(defc token nil)
(defc= logged-in? rpc/token-ok)
@@ -82,31 +51,6 @@
(reset! rpc/token-ok false))
(input :type "submit" :value "Logout"))
(h2 "Scoreboard")
- (table
- (thead
- (tr
- (th :colspan 2
- :style "border:none")
- (loop-tpl :bindings [probs (cell= (partition-by first problems))]
- (th :text (cell= (:name (get scoreboard
- (first (first probs)))))
- :colspan (cell= (count probs)))))
- (tr
- (th "Player")
- (th "Score")
- (loop-tpl :bindings [[owner name] problems]
- (th :text name))))
- (tbody
- (loop-tpl :bindings [[score id] scores]
- (let [player (cell= (get scoreboard id))]
- (tr
- (td :text (cell= (:name player)))
- (td :text score)
- (loop-tpl :bindings [[owner _name] problems]
- (td :text (cell=
- (name (get (:scores player)
- _name
- :unsolved))))))))
- ))))
+ (s/scoreboard :scoreboard rpc/scoreboard)))
;; vim: set expandtab ts=2 sw=2 filetype=clojure :