aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes')
-rw-r--r--server/src/routes/ui/node.rs33
1 files changed, 27 insertions, 6 deletions
diff --git a/server/src/routes/ui/node.rs b/server/src/routes/ui/node.rs
index b9e9871..0b53e6d 100644
--- a/server/src/routes/ui/node.rs
+++ b/server/src/routes/ui/node.rs
@@ -32,7 +32,7 @@ pub async fn r_library_node(
.nested_path(&path)
.context("retrieving library node")?;
Ok(LayoutPage {
- title: node.commmon().title.to_string(),
+ title: node.common().title.to_string(),
show_back: node.get_item().is_ok(),
content: markup::new! {
@NodePage { node: &node }
@@ -44,7 +44,10 @@ pub async fn r_library_node(
markup::define! {
NodePage<'a>(node: &'a Arc<Node>) {
@match node.as_ref() {
- Node::Directory(dir) => { @DirectoryPage { dir } }
+ Node::Directory(dir) => { @match dir.info.kind {
+ DirectoryKind::Series => { @SeriesPage { dir } }
+ _ => { @DirectoryPage { dir } }
+ } }
Node::Item(item) => { @ItemPage { item } }
}
}
@@ -113,6 +116,25 @@ markup::define! {
}
}
}
+ SeriesPage<'a>(dir: &'a Arc<Directory>) {
+ // TODO different image here
+ img.backdrop[src=uri!(r_item_assets(&dir.lib_path, AssetRole::Backdrop))];
+ div.page.item {
+ div.banner {
+ img[src=uri!(r_item_assets(&dir.lib_path, AssetRole::Poster))];
+ }
+ div.title {
+ h1 { @dir.info.title }
+ }
+ div.details {
+ h3 { @dir.info.tagline }
+ p { @dir.info.description }
+ }
+ ol { @for ep in &dir.children {
+ li { a[href=uri!(r_library_node(ep.lib_path()))] { @ep.common().title } }
+ } }
+ }
+ }
}
#[derive(FromFormField, UriDisplayQuery)]
@@ -133,12 +155,11 @@ pub async fn r_item_assets(
.context("retrieving library node")?;
let path = match role {
AssetRole::Backdrop => node
- .get_item()?
- .info
+ .common()
.backdrop
.clone()
- .or_else(|| node.commmon().poster.clone()),
- AssetRole::Poster => node.commmon().poster.clone(),
+ .or_else(|| node.common().poster.clone()),
+ AssetRole::Poster => node.common().poster.clone(),
};
let path = if let Some(p) = path {
library.root_path.join(p)