diff options
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); |