aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/ui/node.rs')
-rw-r--r--server/src/ui/node.rs31
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);