diff options
author | metamuffin <metamuffin@disroot.org> | 2023-01-10 23:18:41 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-01-10 23:18:41 +0100 |
commit | 0d81cb164983fdb40a9f0daebd5951d3cdc084e6 (patch) | |
tree | 9065ce8aedf864c241c2d3a197c45026922e45d4 /src/frontend/pages | |
parent | d38812fdbb968b14538ec59989873b1daf1fa7ab (diff) | |
download | jellything-0d81cb164983fdb40a9f0daebd5951d3cdc084e6.tar jellything-0d81cb164983fdb40a9f0daebd5951d3cdc084e6.tar.bz2 jellything-0d81cb164983fdb40a9f0daebd5951d3cdc084e6.tar.zst |
error handling
Diffstat (limited to 'src/frontend/pages')
-rw-r--r-- | src/frontend/pages/home.rs | 2 | ||||
-rw-r--r-- | src/frontend/pages/mod.rs | 12 | ||||
-rw-r--r-- | src/frontend/pages/node.rs | 9 |
3 files changed, 19 insertions, 4 deletions
diff --git a/src/frontend/pages/home.rs b/src/frontend/pages/home.rs index d76fc6e..5076177 100644 --- a/src/frontend/pages/home.rs +++ b/src/frontend/pages/home.rs @@ -7,7 +7,7 @@ pub async fn page_home(state: &State<AppState>) -> HtmlTemplate<markup::DynRende HtmlTemplate( "Home".to_string(), markup::new! { - h1 { "Welcome to Jellything" } + p { "Welcome to Jellything" } @NodePage { node: state.library.root.clone() } }, ) diff --git a/src/frontend/pages/mod.rs b/src/frontend/pages/mod.rs index fa1133e..a20fa0e 100644 --- a/src/frontend/pages/mod.rs +++ b/src/frontend/pages/mod.rs @@ -35,9 +35,19 @@ pub struct MyError(anyhow::Error); impl<'r> Responder<'r, 'static> for MyError { fn respond_to(self, _: &'r Request<'_>) -> response::Result<'static> { + let mut out = String::new(); + Layout { + title: "Error".to_string(), + main: markup::new! { + h2 { "An error occured. Nobody is sorry"} + pre.error { @format!("{:?}", self.0) } + }, + } + .render(&mut out) + .unwrap(); Response::build() .header(ContentType::HTML) - .streamed_body(Cursor::new(format!("{:?}", self.0))) + .streamed_body(Cursor::new(out)) .ok() } } diff --git a/src/frontend/pages/node.rs b/src/frontend/pages/node.rs index b454793..7ac4332 100644 --- a/src/frontend/pages/node.rs +++ b/src/frontend/pages/node.rs @@ -1,8 +1,9 @@ use crate::{ - frontend::pages::{layout::Layout, HtmlTemplate}, + frontend::pages::HtmlTemplate, library::{Directory, Item, Node}, AppState, }; +use anyhow::Context; use rocket::{get, uri, State}; use std::{ops::Deref, path::PathBuf, sync::Arc}; @@ -14,7 +15,11 @@ pub async fn page_library_node( state: &State<AppState>, ) -> Result<HtmlTemplate<markup::DynRender>, MyError> { let path = path.to_str().unwrap().to_string(); - let node = state.library.nested(&path)?.clone(); + let node = state + .library + .nested(&path) + .context("retrieving library node")? + .clone(); Ok(HtmlTemplate( format!("{}", node.title()), markup::new! { |