Show pending delegates
Dependencies
- [2]
JG2BQCRDImplement query for delegation - [3]
LOFH5LIAMake bold player name - [4]
6TPV5GQ3Show delegates in player table - [5]
AEWYJHUDStart to show player list - [6]
TEB4R7OUAdd form to join game - [7]
5RQCVFRHStart leave game form - [8]
B7PYGLH3Show delegate bold if it's logged user itself - [*]
6NYILMKIAdd page for slow game - [*]
6BDGQ4VMShow player names for registered players - [*]
OJO4B4QOAdd login form and empty handler
Change contents
- edit in src/templates/slow-game.html at line 91
{{#if pending_delegates}}{{#each pending_delegates as |delegate|}}<span class="pending">{{delegate}}</span>{{/each}}{{/if}} - edit in src/pages/slow_game.rs at line 18
pending_delegates: Option<Vec<String>>, - replacement in src/pages/slow_game.rs at line 137[3.429]→[3.747:948](∅→∅),[3.330]→[3.432:602](∅→∅),[3.396]→[3.432:602](∅→∅),[3.948]→[3.432:602](∅→∅),[3.432]→[3.432:602](∅→∅)
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 {Ok(stmt) => stmt,Err(e) => {log::error!("{}", e);return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());let stmt = match dbclient.prepare("select q.player_name, q.player_name = $2, q.delegate_name, q.delegate_name = $2 from games.query_delegation q where (q.player_name = $2 or q.delegate_name = $2) and q.game_uid = $1;").await {Ok(stmt) => stmt,Err(e) => {log::error!("{}", e);return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());}};let rows = match dbclient.query(&stmt, &[&gameuid, user]).await {Ok(rows) => rows,Err(e) => {log::error!("{}", e);return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());}};// player_name is userlet mut delegations_from = std::collections::HashSet::new();// delegate_name is userlet mut delegations_to = std::collections::HashSet::new();for row in rows {if row.get::<_, bool>(1) {delegations_from.insert(row.get::<_, String>(2));} else if row.get::<_, bool>(3) {delegations_to.insert(row.get::<_, &str>(0).to_lowercase());} - replacement in src/pages/slow_game.rs at line 162
};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 {Ok(stmt) => stmt,Err(e) => {log::error!("{}", e);return HttpResponse::ServiceUnavailable().body(actix_web::body::None::new());}}; - edit in src/pages/slow_game.rs at line 184
let pending_delegates = if player_itself && !delegations_from.is_empty() {Some(delegations_from.iter().map(std::string::String::clone).collect(),)} else if delegations_to.contains(&player_name.to_lowercase()) {Some([user].into_iter().map(std::string::String::clone).collect())} else {None}; - edit in src/pages/slow_game.rs at line 253
pending_delegates, - edit in public/style.css at line 31
}span.pending {font-style: italic;