Port run page to maud
This commit is contained in:
parent
5d4232ac6b
commit
fb346a75d2
2 changed files with 56 additions and 93 deletions
|
|
@ -1,10 +1,10 @@
|
||||||
use askama::Template;
|
|
||||||
use axum::{
|
use axum::{
|
||||||
extract::State,
|
extract::State,
|
||||||
http::StatusCode,
|
http::StatusCode,
|
||||||
response::{IntoResponse, Response},
|
response::{IntoResponse, Response},
|
||||||
};
|
};
|
||||||
use futures::TryStreamExt;
|
use futures::TryStreamExt;
|
||||||
|
use maud::html;
|
||||||
use sqlx::SqlitePool;
|
use sqlx::SqlitePool;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
@ -31,23 +31,6 @@ struct Line {
|
||||||
text: String,
|
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<Measurement>,
|
|
||||||
output: Vec<Line>,
|
|
||||||
}
|
|
||||||
|
|
||||||
async fn from_finished_run(
|
async fn from_finished_run(
|
||||||
id: &str,
|
id: &str,
|
||||||
config: &'static ServerConfig,
|
config: &'static ServerConfig,
|
||||||
|
|
@ -114,21 +97,62 @@ async fn from_finished_run(
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let base = Base::new(config, Tab::None);
|
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(),
|
.into_response(),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
{% extends "base.html" %}
|
|
||||||
|
|
||||||
{% block title %}Run of {{ summary }}{% endblock %}
|
|
||||||
|
|
||||||
{% block body %}
|
|
||||||
|
|
||||||
<h2>Run</h2>
|
|
||||||
|
|
||||||
<div class="commit-like run">
|
|
||||||
<span class="title">run {{ id }}</span>
|
|
||||||
<dl>
|
|
||||||
<dt>Commit:</dt>
|
|
||||||
<dd>{{ commit|safe }}</dd>
|
|
||||||
|
|
||||||
<dt>Benchmark:</dt>
|
|
||||||
<dd>{{ bench_method }}</dd>
|
|
||||||
|
|
||||||
<dt>Start:</dt>
|
|
||||||
<dd>{{ start }}</dd>
|
|
||||||
|
|
||||||
<dt>End:</dt>
|
|
||||||
<dd>{{ end }}</dd>
|
|
||||||
|
|
||||||
<dt>Duration:</dt>
|
|
||||||
<dd>{{ duration }}</dd>
|
|
||||||
|
|
||||||
<dt>Exit code:</dt>
|
|
||||||
<dd>{{ exit_code }}</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>Measurements</h2>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>metric</th>
|
|
||||||
<th>value</th>
|
|
||||||
<th>unit</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for mm in measurements %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ mm.metric }}</td>
|
|
||||||
<td>{{ mm.value }}</td>
|
|
||||||
<td>{{ mm.unit }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<h2>Output</h2>
|
|
||||||
|
|
||||||
<div class="run-output">
|
|
||||||
{% for line in output %}
|
|
||||||
<pre>{{ line.text }}</pre>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue