diff options
author | metamuffin <metamuffin@disroot.org> | 2023-01-10 22:55:04 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-01-10 22:55:04 +0100 |
commit | 552a3eb82347ee051855016f51ec452906cdc4d6 (patch) | |
tree | 18f2f1a53d7edf61a92f83d44893039009094064 /src/frontend/pages/node.rs | |
parent | 80e668f9cda3eb7972198dbbc65f6f72eae43c99 (diff) | |
download | jellything-552a3eb82347ee051855016f51ec452906cdc4d6.tar jellything-552a3eb82347ee051855016f51ec452906cdc4d6.tar.bz2 jellything-552a3eb82347ee051855016f51ec452906cdc4d6.tar.zst |
the rocket is launching! :rocket: :rocket:
Diffstat (limited to 'src/frontend/pages/node.rs')
-rw-r--r-- | src/frontend/pages/node.rs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/frontend/pages/node.rs b/src/frontend/pages/node.rs index bb8eb6c..cd0b4ec 100644 --- a/src/frontend/pages/node.rs +++ b/src/frontend/pages/node.rs @@ -1,19 +1,20 @@ use crate::{ - frontend::pages::{HtmlTemplate, MyResult, layout::Layout}, + frontend::pages::{layout::Layout, HtmlTemplate}, library::{Directory, Item, Node}, AppState, }; -use actix_web::{get, web, Responder}; -use log::debug; -use std::{ops::Deref, sync::Arc}; +use rocket::{get, uri, State}; +use std::{ops::Deref, path::PathBuf, sync::Arc}; -#[get("/library/{path:.*}")] +use super::MyError; + +#[get("/library/<path..>")] pub async fn page_library_node( - state: web::Data<AppState>, - params: web::Path<(String,)>, -) -> MyResult<impl Responder> { - debug!("request: {:?}", params.0); - let node = state.library.nested(¶ms.0)?; + path: PathBuf, + state: &State<AppState>, +) -> Result<HtmlTemplate<markup::DynRender>, MyError> { + let path = path.to_str().unwrap().to_string(); + let node = state.library.nested(&path)?.clone(); Ok(HtmlTemplate(markup::new! { @match node.deref() { Node::Directory(dir) => { @@ -34,7 +35,7 @@ pub async fn page_library_node( markup::define! { DirectoryCard(dir: Arc<Directory>) { - span { a[href=&dir.identifier] { @dir.data.name } } + span { a[href=&uri!(page_library_node(&dir.lib_path)).to_string()] { @dir.data.name } } } DirectoryPage(dir: Arc<Directory>) { h1 { @dir.data.name } @@ -50,10 +51,9 @@ markup::define! { } } ItemCard(item: Arc<Item>) { - span { a[href=&item.identifier] { @item.data.title } } + span { a[href=&uri!(page_library_node(&item.lib_path)).to_string()] { @item.data.title } } } ItemPage(item: Arc<Item>) { h1 { @item.data.title } } - } |