Add team info to slow game page data
Dependencies
- [2]
4WG6UYDEFix pending delegations in game status - [3]
JM67I53CShow players list for unregistered people - [4]
7QCJHYB6Show contacts in personal page - [5]
AEWYJHUDStart to show player list - [6]
TEB4R7OUAdd form to join game - [7]
EKDGFVDQUpdate game password from personal page - [8]
GUAEZDLEAdd turns info to slow game's page - [9]
YDWTHWAIShow form to revoke delegation - [10]
6BDGQ4VMShow player names for registered players - [11]
XTHO73VKImplement leave game - [12]
LTQCLSBUSplit database usage in pages - [13]
H7NQUYI6Record join to the game - [14]
6TPV5GQ3Show delegates in player table - [15]
SBYGGRXYShow pending delegates - [16]
LPK5YJ2DShow slow game's status and notes - [17]
A2LJT7TTShow duration in turns - [18]
C6F7SJZIAdd players count to slow game's page - [19]
6NYILMKIAdd page for slow game - [20]
LOFH5LIAMake bold player name - [21]
XKG2L3QBShow label if player could join the game - [22]
BVCWJKEXGet auth info for slow game page - [23]
B7PYGLH3Show delegate bold if it's logged user itself - [24]
MCF5COULAdd personal page - [25]
G3VK7RIBAdd FreeOrion forum's URL to slow game's - [*]
5RQCVFRHStart leave game form - [*]
EVP2FSBHSplit index page - [*]
FUCFD4UVAdd log in and log out support - [*]
6CFNBL5LAdd headers for better security
Change contents
- replacement in src/pages/slow_game.rs at line 7
use crate::pages::{insert_security_headers, request_to_jar, CommonAuthInfo};use crate::pages::{insert_security_headers, naive_to_text, request_to_jar, CommonAuthInfo}; - edit in src/pages/slow_game.rs at line 20
team_id: i32,create_ts: Option<String>, - edit in src/pages/slow_game.rs at line 62
is_teamed: bool, - replacement in src/pages/slow_game.rs at line 114
let stmt = match dbclient.prepare("select g.status::text, g.notes_html, g.fo_forum_url, (select count(*) from games.players p where p.game_uid = g.game_uid and p.client_type = 'p'), MIN(t.turn_ts), MAX(t.turn_ts), COUNT(t.turn) from games.games g left join games.turns t on t.game_uid = g.game_uid where g.game_uid = $1 group by g.game_uid;").await {let stmt = match dbclient.prepare("select g.status::text, g.notes_html, g.fo_forum_url, g.is_teamed, (select count(*) from games.players p where p.game_uid = g.game_uid and p.client_type = 'p'), MIN(t.turn_ts), MAX(t.turn_ts), COUNT(t.turn) from games.games g left join games.turns t on t.game_uid = g.game_uid where g.game_uid = $1 group by g.game_uid;").await { - replacement in src/pages/slow_game.rs at line 144
.get::<_, Option<chrono::NaiveDateTime>>(4).get::<_, Option<chrono::NaiveDateTime>>(5) - replacement in src/pages/slow_game.rs at line 147
.get::<_, Option<chrono::NaiveDateTime>>(5).get::<_, Option<chrono::NaiveDateTime>>(6) - replacement in src/pages/slow_game.rs at line 179
let stmt = match dbclient.prepare("select p.player_name, p.delegate_name, p.player_name = $2, p.delegate_name = $2 from games.players p where p.game_uid = $1 and p.client_type = 'p';").await {let stmt = match dbclient.prepare("select p.player_name, p.team_id, p.create_ts, p.delegate_name, p.player_name = $2, p.delegate_name = $2 from games.players p where p.game_uid = $1 and p.client_type = 'p';").await { - replacement in src/pages/slow_game.rs at line 197[5.159]→[5.159:224](∅→∅),[5.224]→[5.331:386](∅→∅),[5.980]→[5.331:386](∅→∅),[5.386]→[5.949:1031](∅→∅)
let delegate_name = row.get::<_, Option<String>>(1);let player_itself = row.get::<_, bool>(2);let delegate_itself = row.get::<_, Option<bool>>(3).unwrap_or(false);let team_id = row.get::<_, i32>(1);let create_ts = row.get::<_, Option<chrono::NaiveDateTime>>(2).map(naive_to_text);let delegate_name = row.get::<_, Option<String>>(3);let player_itself = row.get::<_, bool>(4);let delegate_itself = row.get::<_, Option<bool>>(5).unwrap_or(false); - edit in src/pages/slow_game.rs at line 305
team_id, - edit in src/pages/slow_game.rs at line 312
create_ts, - replacement in src/pages/slow_game.rs at line 340
let stmt = match dbclient.prepare("select p.player_name from games.players p where p.game_uid = $1 and p.client_type = 'p';").await {let stmt = match dbclient.prepare("select p.player_name, p.team_id from games.players p where p.game_uid = $1 and p.client_type = 'p';").await { - edit in src/pages/slow_game.rs at line 358
team_id: row.get::<_, i32>(1), - edit in src/pages/slow_game.rs at line 365
create_ts: None, - replacement in src/pages/slow_game.rs at line 385
players: row.get::<_, i64>(3),is_teamed: row.get::<_, bool>(3),players: row.get::<_, i64>(4), - replacement in src/pages/slow_game.rs at line 389
turns: row.get::<_, i64>(6),turns: row.get::<_, i64>(7), - replacement in src/pages/my.rs at line 5
use crate::pages::{insert_security_headers, request_to_jar, CommonAuthInfo};use crate::pages::{insert_security_headers, naive_to_text, request_to_jar, CommonAuthInfo}; - edit in src/pages/my.rs at line 32
}fn naive_to_text(ts: chrono::NaiveDateTime) -> String {chrono::DateTime::<chrono::Utc>::from_utc(ts, chrono::Utc).format("%Y %b %d %H:%M UTC").to_string() - edit in src/pages/mod.rs at line 95[29.1941][30.834]
}pub fn naive_to_text(ts: chrono::NaiveDateTime) -> String {chrono::DateTime::<chrono::Utc>::from_utc(ts, chrono::Utc).format("%Y %b %d %H:%M UTC").to_string()