Skip to content

Commit 63e37c5

Browse files
committed
accept parameter, pass it through to class init
1 parent c46785f commit 63e37c5

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

pointercrate-demonlist-api/src/pages.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use rocket::{futures::StreamExt, http::CookieJar};
2727

2828
#[rocket::get("/?statsviewer=true")]
2929
pub fn stats_viewer_redirect() -> Redirect {
30-
Redirect::to(rocket::uri!(stats_viewer))
30+
Redirect::to(rocket::uri!(stats_viewer(player = None::<i32>)))
3131
}
3232

3333
#[rocket::get("/?<timemachine>&<submitter>")]
@@ -149,12 +149,14 @@ pub async fn demon_page(position: i16, pool: &State<PointercratePool>, gd: &Stat
149149
}))
150150
}
151151

152-
#[rocket::get("/statsviewer")]
153-
pub async fn stats_viewer(pool: &State<PointercratePool>) -> Result<Page> {
152+
#[rocket::get("/statsviewer?<player>")]
153+
pub async fn stats_viewer(player: Option<i32>, pool: &State<PointercratePool>) -> Result<Page> {
154154
let mut connection = pool.connection().await?;
155155

156156
Ok(Page::new(IndividualStatsViewer {
157157
nationalities_in_use: Nationality::used(&mut connection).await?,
158+
player_to_select: player
159+
158160
}))
159161
}
160162

pointercrate-demonlist-pages/src/statsviewer/individual.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use pointercrate_demonlist::nationality::Nationality;
66
#[derive(Debug)]
77
pub struct IndividualStatsViewer {
88
pub nationalities_in_use: Vec<Nationality>,
9+
pub player_to_select: Option<i32>,
910
}
1011

1112
impl From<IndividualStatsViewer> for PageFragment {
@@ -39,7 +40,9 @@ impl IndividualStatsViewer {
3940
}
4041
div.flex.m-center.container {
4142
main.left {
42-
(stats_viewer_html(Some(&self.nationalities_in_use), super::standard_stats_viewer_rows()))
43+
div #statsviewer data-select-player = (self.player_to_select.map(|id| id.to_string()).unwrap_or_default()) {
44+
(stats_viewer_html(Some(&self.nationalities_in_use), super::standard_stats_viewer_rows()))
45+
}
4346
}
4447
aside.right {
4548
(super::demon_sorting_panel())

pointercrate-demonlist-pages/static/js/statsviewer/individual.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,10 @@ $(window).on("load", function () {
125125
document.getElementById("statsviewer")
126126
);
127127

128-
window.statsViewer.initialize();
128+
window.statsViewer.initialize().then(() => {
129+
const playerID = window.statsViewer.html.dataset.selectPlayer;
130+
console.log(`Selected player: ${playerID}`);
131+
});
129132

130133
new Dropdown(document.getElementById("continent-dropdown")).addEventListener(
131134
(selected) => {

0 commit comments

Comments
 (0)