From a7e8095bdaa6ebec05a20e76c6d936827f586731 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 12 Mar 2026 15:31:16 +0100 Subject: show child count via nku --- server/src/routes/node.rs | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'server/src/routes/node.rs') diff --git a/server/src/routes/node.rs b/server/src/routes/node.rs index d7ef0b5..d8d9ba5 100644 --- a/server/src/routes/node.rs +++ b/server/src/routes/node.rs @@ -33,11 +33,7 @@ pub fn r_node(ri: RequestInfo<'_>, slug: &str) -> MyResult> { children = c_children(txn, row, &n)?; credits = c_credits(txn, &n)?; credited = c_credited(txn, row)?; - nku = Some(Nku { - node: Cow::Owned(n), - userdata: Cow::Borrowed(EMPTY), - role: None, - }); + nku = Some(create_nku(txn, row)?); } Ok(()) })?; @@ -80,11 +76,7 @@ fn c_children(txn: &mut dyn Transaction, row: u64, node: &Object) -> Result Result>(); @@ -137,10 +128,22 @@ fn c_credited(txn: &mut dyn Transaction, row: u64) -> Result>> let mut list = Vec::new(); for (row, _) in children_rows { list.push(Nku { - node: Cow::Owned(txn.get(row)?.unwrap()), role: None, - userdata: Cow::Borrowed(EMPTY), + ..create_nku(txn, row)? }); } Ok(list) } + +pub fn create_nku(txn: &mut dyn Transaction, row: u64) -> Result> { + let child_count = txn.count(Query { + filter: Filter::Match(Path(vec![NO_PARENT.0]), row.into()), + ..Default::default() + })?; + Ok(Nku { + node: Cow::Owned(txn.get(row)?.unwrap()), + role: None, + userdata: Cow::Borrowed(EMPTY), + child_count, + }) +} -- cgit v1.3