aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/src/ui/node.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/server/src/ui/node.rs b/server/src/ui/node.rs
index 7c3bb22..4d1fab1 100644
--- a/server/src/ui/node.rs
+++ b/server/src/ui/node.rs
@@ -24,15 +24,23 @@ pub fn r_node(ri: RequestInfo<'_>, slug: &str) -> MyResult<UiResponse> {
filter: Filter::Match(Path(vec![NO_SLUG.0]), slug.as_bytes().to_vec()),
sort: Sort::None,
})? {
- node = Some(Object::EMPTY.insert(NKU_NODE, txn.get(row)?.unwrap().as_object()));
+ 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 rows = txn
.query(Query {
sort: Sort::Value(ValueSort {
multi: MultiBehaviour::First,
offset: None,
- order: SortOrder::Ascending,
- path: Path(vec![NO_TITLE.0]),
+ order,
+ path,
}),
filter: Filter::Match(Path(vec![NO_PARENT.0]), row.to_be_bytes().to_vec()),
})?