aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui/node.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-06-14 22:04:31 +0200
committermetamuffin <metamuffin@disroot.org>2023-06-14 22:04:31 +0200
commit50be406bbf448d93a2c669419b494797cdde675e (patch)
treec35e228e906249240f11fabe5216f38feda2a7d5 /server/src/routes/ui/node.rs
parent16202a62e64a615d488f5bc376466029c31b00ad (diff)
downloadjellything-50be406bbf448d93a2c669419b494797cdde675e.tar
jellything-50be406bbf448d93a2c669419b494797cdde675e.tar.bz2
jellything-50be406bbf448d93a2c669419b494797cdde675e.tar.zst
show series as poster
Diffstat (limited to 'server/src/routes/ui/node.rs')
-rw-r--r--server/src/routes/ui/node.rs47
1 files changed, 23 insertions, 24 deletions
diff --git a/server/src/routes/ui/node.rs b/server/src/routes/ui/node.rs
index d5e52ff..b9e9871 100644
--- a/server/src/routes/ui/node.rs
+++ b/server/src/routes/ui/node.rs
@@ -15,6 +15,7 @@ use crate::{
CONF,
};
use anyhow::Context;
+use jellycommon::DirectoryKind;
use log::info;
use rocket::{get, http::ContentType, State};
use rocket::{FromFormField, UriDisplayQuery};
@@ -49,23 +50,17 @@ markup::define! {
}
NodeCard<'a>(node: &'a Arc<Node>) {
@match node.as_ref() {
- Node::Directory(dir) => { @DirectoryCard { dir } }
- Node::Item(item) => { @ItemCard { item } }
- }
- }
- DirectoryCard<'a>(dir: &'a Arc<Directory>) {
- div.card.dir {
- div.banner {
- a[href=uri!(r_library_node(&dir.lib_path))] {
- img[src=uri!(r_item_assets(&dir.lib_path, AssetRole::Poster))];
- }
- div.hover { a[href=uri!(r_library_node(&dir.lib_path))] { "Open" } }
- }
- p.title {
- a[href=uri!(r_library_node(&dir.lib_path))] {
- @dir.info.title
- }
- }
+ Node::Directory(dir) => {@PosterCard {
+ wide: !matches!(dir.info.kind, DirectoryKind::Series | DirectoryKind::Season),
+ dir: true,
+ path: dir.lib_path.clone(),
+ title: &dir.info.title
+ }}
+ Node::Item(item) => {@PosterCard {
+ wide: false, dir: false,
+ path: item.lib_path.clone(),
+ title: &item.info.title
+ }}
}
}
DirectoryPage<'a>(dir: &'a Arc<Directory>) {
@@ -81,17 +76,21 @@ markup::define! {
}
}
}
- ItemCard<'a>(item: &'a Arc<Item>) {
- div.card.item {
+ PosterCard<'a>(path: PathBuf, title: &'a str, wide: bool, dir: bool) {
+ div[class=if *wide {"card wide poster"} else {"card poster"}] {
div.banner {
- a[href=uri!(r_library_node(&item.lib_path))] {
- img[src=uri!(r_item_assets(&item.lib_path, AssetRole::Poster))];
+ a[href=uri!(r_library_node(path))] {
+ img[src=uri!(r_item_assets(path, AssetRole::Poster))];
+ }
+ @if *dir {
+ div.hoverdir { a[href=&uri!(r_library_node(path))] { "Open" } }
+ } else {
+ div.hoveritem { a[href=&player_uri(path)] { "▶" } }
}
- div.hover { a[href=&player_uri(&item.lib_path)] { "▶" } }
}
p.title {
- a[href=uri!(r_library_node(&item.lib_path))] {
- @item.info.title
+ a[href=uri!(r_library_node(path))] {
+ @title
}
}
}