Radish alpha
r
rad:zwTxygwuz5LDGBq255RA2CbNGrz8
Radicle CI broker
Radicle
Git
Add run counts on report front page.
Merged liw opened 1 year ago
1 file changed +35 -7 b8027442 d5f65204
modified src/pages.rs
@@ -136,6 +136,17 @@ impl PageData {
        Self::h1(&mut doc, "Repositories");
        Self::p_text(&mut doc, "Latest CI run for each repository.");

+
        let total = self.runs.len();
+
        let failed = self
+
            .runs
+
            .values()
+
            .filter(|run| run.result() == Some(&RunResult::Failure))
+
            .count();
+
        Self::p_text(
+
            &mut doc,
+
            &format!("Total {total} CI runs recorded, of which {failed} failed."),
+
        );
+

        let mut table = Element::new(Tag::Table).with_class("repolist").with_child(
            Element::new(Tag::Tr)
                .with_child(Element::new(Tag::Th).with_text("Repository"))
@@ -161,9 +172,13 @@ impl PageData {
                }
            };

+
            let runs = self.runs(rid);
+

            table.push_child(
                Element::new(Tag::Tr)
-
                    .with_child(Element::new(Tag::Td).with_child(Self::repository(rid, &alias)))
+
                    .with_child(
+
                        Element::new(Tag::Td).with_child(Self::repository(rid, &alias, runs)),
+
                    )
                    .with_child(Element::new(Tag::Td).with_child(run_ids))
                    .with_child(
                        Element::new(Tag::Td).with_child(
@@ -377,14 +392,27 @@ impl PageData {
        page.push_to_body(Element::new(Tag::P).with_text(text));
    }

-
    fn repository(repo_id: RepoId, alias: &str) -> Element {
-
        Element::new(Tag::A)
+
    fn repository(repo_id: RepoId, alias: &str, runs: Vec<&Run>) -> Element {
+
        let failed = runs
+
            .iter()
+
            .filter(|run| run.result() == Some(&RunResult::Failure))
+
            .count();
+
        let total = runs.len();
+

+
        Element::new(Tag::Span)
            .with_child(
-
                Element::new(Tag::Code)
-
                    .with_class("alias)")
-
                    .with_text(alias),
+
                Element::new(Tag::A)
+
                    .with_child(
+
                        Element::new(Tag::Code)
+
                            .with_class("alias)")
+
                            .with_text(alias),
+
                    )
+
                    .with_attribute("href", &format!("{}.html", rid_to_basename(repo_id))),
            )
-
            .with_attribute("href", &format!("{}.html", rid_to_basename(repo_id)))
+
            .with_child(Element::new(Tag::Br))
+
            .with_child(Element::new(Tag::Span).with_text(&format!("{failed} failed runs")))
+
            .with_child(Element::new(Tag::Br))
+
            .with_child(Element::new(Tag::Span).with_text(&format!("{total} total runs")))
    }

    fn run_ids(run: Option<&Run>) -> Element {