summaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2025-05-06 20:01:42 +0200
committerTor Andersson <tor@ccxvii.net>2025-05-06 20:08:41 +0200
commit2d22fd6f23e2afe24b64e4b8ab09bf1b5404e3e4 (patch)
tree6dfff0874c64aa7ebb2c9b6d56467e75691e3044 /views
parent5c671661d4ec0b54ee0d7e5ccd4dcc4aff42d079 (diff)
downloadserver-2d22fd6f23e2afe24b64e4b8ab09bf1b5404e3e4.tar.gz
Show user statistics on profile (use pug mixin).
Diffstat (limited to 'views')
-rw-r--r--views/head.pug33
-rw-r--r--views/profile.pug14
-rw-r--r--views/user.pug34
3 files changed, 47 insertions, 34 deletions
diff --git a/views/head.pug b/views/head.pug
index 3707757..20fb9aa 100644
--- a/views/head.pug
+++ b/views/head.pug
@@ -212,3 +212,36 @@ mixin tourlist(seeds, pools, fin)
+poollist(pools, "Active", TM_ICON_ACTIVE)
div
+poollist(fin, "Finished", TM_ICON_FINISHED)
+
+mixin userstats(who, ratings)
+ if (who.move_time_mean !== null)
+ h3 Response time
+ div Average response time: #{format_minutes(who.move_time_mean)}
+ if (who.move_time_q2 !== null)
+ div Median response time: #{format_minutes(who.move_time_q2)}
+ if (who.move_time_q1 !== null && who.move_time_q2 !== null)
+ div Middle half of response times: #{format_minutes(who.move_time_q1)} to #{format_minutes(who.move_time_q3)}
+
+ h3 Timeouts
+ div Total number of timeouts: #{who.timeout_total}
+ div Games completed since last timeout: #{who.games_since_timeout}
+
+ if ratings.length > 0
+ h3 Most played games
+ table
+ thead
+ tr
+ th Title
+ th Count
+ th Last played
+ if user && user.user_id === 1
+ th Elo
+ tbody
+ each row in ratings
+ tr
+ td
+ a.black(href="/" + row.title_id)= row.title_name
+ td.r= row.count
+ td.r= row.last
+ if user && user.user_id === 1
+ td.r= row.rating
diff --git a/views/profile.pug b/views/profile.pug
index 39f1977..de6e5c4 100644
--- a/views/profile.pug
+++ b/views/profile.pug
@@ -7,9 +7,19 @@ html
body
include header
article
- h1= SITE_NAME
+ h1 Profile
p Welcome, <a class="black" href="/user/#{user.name}">#{user.name}</a>!
+
+ if who.about
+ p.box= who.about
+
+ p Member since #{human_date(who.ctime)}.
+
+ +userstats(who, ratings)
+
+ h3 Account
+
p Your mail address is #{user.mail}
if ENABLE_MAIL
@@ -30,7 +40,7 @@ html
| <a href="/account/change-name">Change user name</a>
br
| <a href="/account/change-about">Change profile text</a>
- br
+ p
| <a href="/account/delete">Delete account</a>
if ENABLE_WEBHOOKS
diff --git a/views/user.pug b/views/user.pug
index c3e8925..b5859a2 100644
--- a/views/user.pug
+++ b/views/user.pug
@@ -24,7 +24,7 @@ html
h1= who.name
if who.about
- p.about= who.about
+ p.box= who.about
p Member since #{human_date(who.ctime)}.
p Last seen #{human_date(who.atime)}.
@@ -42,37 +42,7 @@ html
br
a(href="/contacts/add-enemy/"+who.name) Add to blacklist
- if (who.move_time_mean !== null)
- h3 Response time
- div Average response time: #{format_minutes(who.move_time_mean)}
- if (who.move_time_q2 !== null)
- div Median response time: #{format_minutes(who.move_time_q2)}
- if (who.move_time_q1 !== null && who.move_time_q2 !== null)
- div Middle half of response times: #{format_minutes(who.move_time_q1)} to #{format_minutes(who.move_time_q3)}
-
- h3 Timeouts
- div Total number of timeouts: #{who.timeout_total}
- div Games completed since last timeout: #{who.games_since_timeout}
-
- if ratings.length > 0
- h3 Most played games
- table
- thead
- tr
- th Title
- th Count
- th Last played
- if user && user.user_id === 1
- th Elo
- tbody
- each row in ratings
- tr
- td
- a.black(href="/" + row.title_id)= row.title_name
- td.r= row.count
- td.r= row.last
- if user && user.user_id === 1
- td.r= row.rating
+ +userstats(who, ratings)
+tourlist(null, active_pools, finished_pools)