diff --git a/src/server/web/pages/worker.rs b/src/server/web/pages/worker.rs index 6e34bef..0dc0751 100644 --- a/src/server/web/pages/worker.rs +++ b/src/server/web/pages/worker.rs @@ -1,11 +1,11 @@ use std::sync::{Arc, Mutex}; -use askama::Template; use axum::{ extract::State, http::StatusCode, response::{IntoResponse, Response}, }; +use maud::html; use sqlx::SqlitePool; use crate::{ @@ -29,16 +29,6 @@ enum Status { Working { link: LinkRunShort, since: String }, } -#[derive(Template)] -#[template(path = "pages/worker.html")] -struct Page { - base: Base, - - name: String, - connected: String, - status: Status, -} - async fn status(status: &WorkerStatus, db: &SqlitePool, base: &Base) -> somehow::Result { Ok(match status { WorkerStatus::Idle => Status::Idle, @@ -68,12 +58,41 @@ pub async fn get_worker_by_name( }; let base = Base::new(config, Tab::None); - Ok(Page { - name: path.name, - connected: util::format_time(info.first_seen), - status: status(&info.status, &db, &base).await?, - base, - } - .into_response()) + let status = status(&info.status, &db, &base).await?; + + Ok(base + .html( + &path.name, + html! {}, + html! { + h2 { "Worker" } + div .commit-like .worker { + span .title { "worker " (path.name) } + dl { + dt { "Connected:" } + dd { (util::format_time(info.first_seen)) } + + @match status { + Status::Idle => { + dt { "Working on:" } + dd { "nothing" } + } + Status::Busy => { + dt { "Working on:" } + dd { "run for another server" } + } + Status::Working { link, since } => { + dt { "Working on:" } + dd { (link.html()) } + + dt { "Working since:" } + dd { (since) } + } + } + } + } + }, + ) + .into_response()) } diff --git a/templates/pages/worker.html b/templates/pages/worker.html deleted file mode 100644 index c49c23d..0000000 --- a/templates/pages/worker.html +++ /dev/null @@ -1,31 +0,0 @@ -{% extends "base.html" %} - -{% block title %}{{ name }}{% endblock %} - -{% block body %} - -

Worker

- -
- worker {{ name }} -
-
Connected:
-
{{ connected }}
- - {% match status %} - {% when Status::Idle %} -
Working on:
-
nothing
- {% when Status::Busy %} -
Working on:
-
run for another server
- {% when Status::Working with { link, since } %} -
Working on:
-
{{ link|safe }}
-
Working since:
-
{{ since }}
- {% endmatch %} -
-
- -{% endblock %}