From fb346a75d2f6f1227158efb349db744ee54827cf Mon Sep 17 00:00:00 2001 From: Joscha Date: Sun, 12 May 2024 13:25:33 +0200 Subject: [PATCH] Port run page to maud --- src/server/web/pages/run.rs | 88 ++++++++++++++++++++----------- templates/pages/run_finished.html | 61 --------------------- 2 files changed, 56 insertions(+), 93 deletions(-) delete mode 100644 templates/pages/run_finished.html diff --git a/src/server/web/pages/run.rs b/src/server/web/pages/run.rs index c5e321d..7eb8e87 100644 --- a/src/server/web/pages/run.rs +++ b/src/server/web/pages/run.rs @@ -1,10 +1,10 @@ -use askama::Template; use axum::{ extract::State, http::StatusCode, response::{IntoResponse, Response}, }; use futures::TryStreamExt; +use maud::html; use sqlx::SqlitePool; use crate::{ @@ -31,23 +31,6 @@ struct Line { text: String, } -#[derive(Template)] -#[template(path = "pages/run_finished.html")] -struct PageFinished { - base: Base, - - summary: String, - id: String, - commit: LinkCommit, - bench_method: String, - start: String, - end: String, - duration: String, - exit_code: i64, - measurements: Vec, - output: Vec, -} - async fn from_finished_run( id: &str, config: &'static ServerConfig, @@ -114,21 +97,62 @@ async fn from_finished_run( .await?; let base = Base::new(config, Tab::None); - Ok(Some( - PageFinished { - summary: util::format_commit_summary(&run.message), - id: run.id, - commit: LinkCommit::new(&base, run.hash, &run.message, run.reachable), - bench_method: run.bench_method, - start: util::format_time(run.start), - end: util::format_time(run.end), - duration: util::format_duration(run.end - run.start), - exit_code: run.exit_code, - measurements, - output, - base, - } + let commit = LinkCommit::new(&base, run.hash, &run.message, run.reachable); + + Ok(Some( + base.html( + &format!("Run of {}", util::format_commit_summary(&run.message)), + html! {}, + html! { + h2 { "Run" } + div .commit-like .run { + span .title { "run " (run.id) } + dl { + dt { "Commit:" } + dd { (commit.html())} + + dt { "Benchmark:" } + dd { (run.bench_method) } + + dt { "Start:" } + dd { (util::format_time(run.start)) } + + dt { "End:" } + dd { (util::format_time(run.end)) } + + dt { "Duration:" } + dd { (util::format_duration(run.end - run.start)) } + + dt { "Exit code:" } + dd { (run.exit_code) } + } + } + h2 { "Measurements" } + table { + thead { + tr { + th { "metric" } + th { "value" } + th { "unit" } + } + } + tbody { + @for mm in measurements { tr { + td { (mm.metric) } + td { (mm.value) } + td { (mm.unit) } + } } + } + } + h2 { "Output" } + div .run-output { + @for line in output { + pre { (line.text) } + } + } + }, + ) .into_response(), )) } diff --git a/templates/pages/run_finished.html b/templates/pages/run_finished.html deleted file mode 100644 index 1773157..0000000 --- a/templates/pages/run_finished.html +++ /dev/null @@ -1,61 +0,0 @@ -{% extends "base.html" %} - -{% block title %}Run of {{ summary }}{% endblock %} - -{% block body %} - -

Run

- -
- run {{ id }} -
-
Commit:
-
{{ commit|safe }}
- -
Benchmark:
-
{{ bench_method }}
- -
Start:
-
{{ start }}
- -
End:
-
{{ end }}
- -
Duration:
-
{{ duration }}
- -
Exit code:
-
{{ exit_code }}
-
-
- -

Measurements

- - - - - - - - - - - {% for mm in measurements %} - - - - - - {% endfor %} - -
metricvalueunit
{{ mm.metric }}{{ mm.value }}{{ mm.unit }}
- -

Output

- -
- {% for line in output %} -
{{ line.text }}
- {% endfor %} -
- -{% endblock %}