Skip to content

Commit 6ceadf4

Browse files
authored
Add current page field to some templates (#71)
Signed-off-by: Sergio Castaño Arteaga <[email protected]>
1 parent 1815626 commit 6ceadf4

File tree

14 files changed

+55
-15
lines changed

14 files changed

+55
-15
lines changed

gitjobs-server/src/handlers/auth.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use crate::{
2424
error::HandlerError,
2525
extractors::{JobBoardId, OAuth2},
2626
},
27-
templates,
27+
templates::{self, CurrentPage},
2828
};
2929

3030
/// Log in URL.
@@ -51,6 +51,7 @@ pub(crate) async fn log_in_page(
5151
Query(query): Query<HashMap<String, String>>,
5252
) -> Result<impl IntoResponse, HandlerError> {
5353
let template = templates::auth::LogInPage {
54+
current_page: CurrentPage::LogIn,
5455
logged_in: false,
5556
messages: messages.into_iter().collect(),
5657
name: None,
@@ -67,6 +68,7 @@ pub(crate) async fn sign_up_page(
6768
Query(query): Query<HashMap<String, String>>,
6869
) -> Result<impl IntoResponse, HandlerError> {
6970
let template = templates::auth::SignUpPage {
71+
current_page: CurrentPage::SignUp,
7072
logged_in: false,
7173
name: None,
7274
next_url: query.get("next_url").cloned(),

gitjobs-server/src/handlers/dashboard/employer/home.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use crate::{
2222
home::{self, Content, Tab},
2323
jobs,
2424
},
25+
CurrentPage,
2526
},
2627
};
2728

@@ -65,6 +66,7 @@ pub(crate) async fn page(
6566
let employers = db.list_employers(&user.user_id).await?;
6667
let template = home::Page {
6768
content,
69+
current_page: CurrentPage::EmployerDashboard,
6870
employers,
6971
logged_in: true,
7072
name: Some(user.name),

gitjobs-server/src/handlers/dashboard/job_seeker/home.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use crate::{
2222
home::{self, Content, Tab},
2323
profile,
2424
},
25+
CurrentPage,
2526
},
2627
};
2728

@@ -60,6 +61,7 @@ pub(crate) async fn page(
6061
// Prepare template
6162
let template = home::Page {
6263
content,
64+
current_page: CurrentPage::JobSeekerDashboard,
6365
logged_in: true,
6466
name: Some(user.name),
6567
username: Some(user.username),

gitjobs-server/src/handlers/jobboard/jobs.rs renamed to gitjobs-server/src/handlers/jobboard/home.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! This module defines the HTTP handlers for the jobs page.
1+
//! This module defines the HTTP handlers for the job board home page.
22
33
use anyhow::Result;
44
use axum::{
@@ -11,14 +11,19 @@ use tracing::instrument;
1111
use crate::{
1212
db::DynDB,
1313
handlers::{error::HandlerError, extractors::JobBoardId},
14-
templates::jobboard::jobs::Page,
14+
templates::{jobboard::home::Page, CurrentPage},
1515
};
1616

17-
/// Handler that returns the jobs page.
17+
/// Handler that returns the home page.
1818
#[instrument(skip_all, err)]
1919
pub(crate) async fn page(
2020
State(_db): State<DynDB>,
2121
JobBoardId(_job_board_id): JobBoardId,
2222
) -> Result<impl IntoResponse, HandlerError> {
23-
Ok(Html(Page {}.render()?))
23+
Ok(Html(
24+
Page {
25+
current_page: CurrentPage::JobBoard,
26+
}
27+
.render()?,
28+
))
2429
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
//! This module defines the HTTP handlers for the job board site.
22
33
pub(crate) mod about;
4-
pub(crate) mod jobs;
4+
pub(crate) mod home;

gitjobs-server/src/router.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ pub(crate) fn setup(cfg: &HttpServerConfig, db: DynDB, image_store: DynImageStor
8686
login_url = LOG_IN_URL,
8787
redirect_field = "next_url"
8888
))
89-
.route("/", get(jobboard::jobs::page))
89+
.route("/", get(jobboard::home::page))
9090
.route("/about", get(jobboard::about::page))
9191
.route("/health-check", get(health_check))
92-
.route("/jobs", get(jobboard::jobs::page))
92+
.route("/jobs", get(jobboard::home::page))
9393
.route("/log-in", get(auth::log_in_page).post(auth::log_in))
9494
.route("/log-in/oauth2/{:provider}", get(auth::oauth2_redirect))
9595
.route("/log-in/oauth2/{:provider}/callback", get(auth::oauth2_callback))

gitjobs-server/src/templates/auth.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@ use axum_messages::Message;
44
use rinja::Template;
55
use serde::{Deserialize, Serialize};
66

7-
use crate::{auth::UserSummary, templates::filters};
7+
use crate::{
8+
auth::UserSummary,
9+
templates::{filters, CurrentPage},
10+
};
811

912
/// Log in page.
1013
#[derive(Debug, Clone, Template, Serialize, Deserialize)]
1114
#[template(path = "auth/log_in.html")]
1215
pub(crate) struct LogInPage {
16+
pub current_page: CurrentPage,
1317
pub logged_in: bool,
1418
pub messages: Vec<Message>,
1519

@@ -22,6 +26,7 @@ pub(crate) struct LogInPage {
2226
#[derive(Debug, Clone, Template, Serialize, Deserialize)]
2327
#[template(path = "auth/sign_up.html")]
2428
pub(crate) struct SignUpPage {
29+
pub current_page: CurrentPage,
2530
pub logged_in: bool,
2631

2732
pub name: Option<String>,

gitjobs-server/src/templates/dashboard/employer/home.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,17 @@ use crate::templates::{
1010
dashboard::employer,
1111
filters,
1212
helpers::{build_image_url, find_employer},
13+
CurrentPage,
1314
};
1415

1516
/// Home page template.
1617
#[derive(Debug, Clone, Template)]
1718
#[template(path = "dashboard/employer/home.html")]
19+
#[allow(clippy::struct_field_names)]
1820
pub(crate) struct Page {
1921
pub content: Content,
22+
#[allow(dead_code)]
23+
pub current_page: CurrentPage,
2024
pub employers: Vec<employer::employers::EmployerSummary>,
2125
pub logged_in: bool,
2226

gitjobs-server/src/templates/dashboard/job_seeker/home.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
use rinja::Template;
55
use serde::{Deserialize, Serialize};
66

7-
use crate::templates::{auth, dashboard::job_seeker, filters};
7+
use crate::templates::{auth, dashboard::job_seeker, filters, CurrentPage};
88

99
/// Home page template.
1010
#[derive(Debug, Clone, Template)]
1111
#[template(path = "dashboard/job_seeker/home.html")]
12+
#[allow(clippy::struct_field_names)]
1213
pub(crate) struct Page {
1314
pub content: Content,
15+
#[allow(dead_code)]
16+
pub current_page: CurrentPage,
1417
pub logged_in: bool,
1518

1619
pub name: Option<String>,

gitjobs-server/src/templates/jobboard/jobs.rs renamed to gitjobs-server/src/templates/jobboard/home.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
use rinja::Template;
44
use serde::{Deserialize, Serialize};
55

6-
/// Jobs page template.
6+
use crate::templates::CurrentPage;
7+
8+
/// Home page template.
79
#[derive(Debug, Clone, Template, Serialize, Deserialize)]
8-
#[template(path = "jobboard/jobs/page.html")]
9-
pub(crate) struct Page {}
10+
#[template(path = "jobboard/home.html")]
11+
pub(crate) struct Page {
12+
pub current_page: CurrentPage,
13+
}

0 commit comments

Comments
 (0)