aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/pages/node.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-01-10 22:55:04 +0100
committermetamuffin <metamuffin@disroot.org>2023-01-10 22:55:04 +0100
commit552a3eb82347ee051855016f51ec452906cdc4d6 (patch)
tree18f2f1a53d7edf61a92f83d44893039009094064 /src/frontend/pages/node.rs
parent80e668f9cda3eb7972198dbbc65f6f72eae43c99 (diff)
downloadjellything-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.rs26
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(&params.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 }
}
-
}