diff --git a/src/routes/mod.rs b/src/routes/mod.rs index e50afd3..265e4e4 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -41,8 +41,17 @@ pub(crate) struct PostTemplate { } #[derive(Template)] -#[template(path = "notfound.html")] -pub(crate) struct NotFoundTemplate { +#[template(path = "pagenotfound.html")] +pub(crate) struct PageNotFoundTemplate { + menu: Vec, + slug: String, + year: String, + settings: settings::Model +} + +#[derive(Template)] +#[template(path = "postnotfound.html")] +pub(crate) struct PostNotFoundTemplate { menu: Vec, slug: String, year: String, diff --git a/src/routes/page_resolver.rs b/src/routes/page_resolver.rs index d81b88f..21dd078 100644 --- a/src/routes/page_resolver.rs +++ b/src/routes/page_resolver.rs @@ -10,7 +10,7 @@ use sea_orm::*; use chrono::{Utc, Datelike}; -use super::{PageTemplate, NotFoundTemplate}; +use super::{PageTemplate, PageNotFoundTemplate}; pub(crate) async fn resolver( Path(slug): Path, @@ -45,7 +45,7 @@ pub(crate) async fn resolver( Ok(page_result) => { match page_result { Some(page_result) => page_result, - None => return (StatusCode::NOT_FOUND, NotFoundTemplate { slug, year: Utc::now().date_naive().year().to_string(), menu, settings }).into_response(), + None => return (StatusCode::NOT_FOUND, PageNotFoundTemplate { slug, year: Utc::now().date_naive().year().to_string(), menu, settings }).into_response(), } }, Err(e) => { diff --git a/src/routes/post_resolver.rs b/src/routes/post_resolver.rs index 5a2f6a8..861d6c8 100644 --- a/src/routes/post_resolver.rs +++ b/src/routes/post_resolver.rs @@ -10,7 +10,7 @@ use sea_orm::*; use chrono::{Utc, Datelike}; -use super::{PostTemplate, NotFoundTemplate}; +use super::{PostTemplate, PostNotFoundTemplate}; pub(crate) async fn resolver( Path(slug): Path, @@ -45,7 +45,7 @@ pub(crate) async fn resolver( Ok(post_result) => { match post_result { Some(post_result) => post_result, - None => return (StatusCode::NOT_FOUND, NotFoundTemplate { slug, year: Utc::now().date_naive().year().to_string(), menu, settings }).into_response(), + None => return (StatusCode::NOT_FOUND, PostNotFoundTemplate { slug, year: Utc::now().date_naive().year().to_string(), menu, settings }).into_response(), } }, Err(e) => { diff --git a/templates/notfound.html b/templates/pagenotfound.html similarity index 100% rename from templates/notfound.html rename to templates/pagenotfound.html diff --git a/templates/postnotfound.html b/templates/postnotfound.html new file mode 100644 index 0000000..c5181a6 --- /dev/null +++ b/templates/postnotfound.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} + +{% block title %}404{% endblock %} + +{% block description %} + This post wasn't found! +{% endblock %} + +{% block content %} + +

Post not found!

+ +

{{ slug }} was not found! Would you like to view other posts or go home?

+ +{% endblock %} \ No newline at end of file