diff options
Diffstat (limited to 'server/src/routes')
| -rw-r--r-- | server/src/routes/ui/node.rs | 33 | 
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) | 
