diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-02-18 13:25:24 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-02-18 13:25:24 +0100 |
| commit | 45a485431df0638396f0175de59275b3b5538022 (patch) | |
| tree | 4993b5b8b598d6de1036308d32b50d078fd0e365 /server/src/ui/node.rs | |
| parent | 3bbedf5ab337d8c6d608ed0b24b9c656b0ee1004 (diff) | |
| download | jellything-45a485431df0638396f0175de59275b3b5538022.tar jellything-45a485431df0638396f0175de59275b3b5538022.tar.bz2 jellything-45a485431df0638396f0175de59275b3b5538022.tar.zst | |
wide card; node visi; import children plugin
Diffstat (limited to 'server/src/ui/node.rs')
| -rw-r--r-- | server/src/ui/node.rs | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/server/src/ui/node.rs b/server/src/ui/node.rs index 4d1fab1..cc23875 100644 --- a/server/src/ui/node.rs +++ b/server/src/ui/node.rs @@ -21,18 +21,18 @@ pub fn r_node(ri: RequestInfo<'_>, slug: &str) -> MyResult<UiResponse> { let mut children = None; ri.state.database.transaction(&mut |txn| { if let Some(row) = txn.query_single(Query { - filter: Filter::Match(Path(vec![NO_SLUG.0]), slug.as_bytes().to_vec()), + filter: Filter::Match(Path(vec![NO_SLUG.0]), slug.into()), sort: Sort::None, })? { let n = txn.get(row)?.unwrap(); node = Some(Object::EMPTY.insert(NKU_NODE, n.as_object())); - let (order, path) = - if n.as_object().get(NO_KIND).unwrap_or(KIND_COLLECTION) == KIND_CHANNEL { - (SortOrder::Descending, Path(vec![NO_RELEASEDATE.0])) - } else { - (SortOrder::Ascending, Path(vec![NO_TITLE.0])) - }; + let kind = n.as_object().get(NO_KIND).unwrap_or(KIND_COLLECTION); + let (order, path) = match kind { + KIND_CHANNEL => (SortOrder::Descending, Path(vec![NO_RELEASEDATE.0])), + KIND_SEASON | KIND_SHOW => (SortOrder::Ascending, Path(vec![NO_INDEX.0])), + _ => (SortOrder::Ascending, Path(vec![NO_TITLE.0])), + }; let rows = txn .query(Query { @@ -42,7 +42,7 @@ pub fn r_node(ri: RequestInfo<'_>, slug: &str) -> MyResult<UiResponse> { order, path, }), - filter: Filter::Match(Path(vec![NO_PARENT.0]), row.to_be_bytes().to_vec()), + filter: Filter::Match(Path(vec![NO_PARENT.0]), row.into()), })? .collect::<Result<Vec<_>>>()?; @@ -63,7 +63,20 @@ pub fn r_node(ri: RequestInfo<'_>, slug: &str) -> MyResult<UiResponse> { let children = children.iter().map(|c| c.as_object()).collect::<Vec<_>>(); - let mut children_list = Object::EMPTY.insert(NODELIST_DISPLAYSTYLE, NLSTYLE_GRID); + let kind = node + .as_object() + .get(NKU_NODE) + .unwrap_or_default() + .get(NO_KIND) + .unwrap_or(KIND_COLLECTION); + + let mut children_list = Object::EMPTY.insert( + NODELIST_DISPLAYSTYLE, + match kind { + KIND_SEASON | KIND_SHOW => NLSTYLE_LIST, + _ => NLSTYLE_GRID, + }, + ); children_list = children_list .as_object() .insert_multi(NODELIST_ITEM, &children); |