45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
use crate::page;
|
|
use axum::{routing::get, Router};
|
|
use maud::{html, Markup};
|
|
use sqlx::SqlitePool;
|
|
use std::sync::Arc;
|
|
use tower_sessions::Session;
|
|
|
|
pub(crate) mod route;
|
|
pub(crate) mod station;
|
|
pub(crate) mod team;
|
|
|
|
async fn index(session: Session) -> Markup {
|
|
let content = html! {
|
|
h1 { (t!("app_name")) }
|
|
nav {
|
|
ul {
|
|
li {
|
|
a role="button" href="/admin/station" {
|
|
(t!("stations"))
|
|
}
|
|
}
|
|
li {
|
|
a role="button" href="/admin/route" {
|
|
(t!("routes"))
|
|
}
|
|
}
|
|
li {
|
|
a role="button" href="/admin/team" {
|
|
(t!("teams"))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
page(content, session, false).await
|
|
}
|
|
|
|
pub(super) fn routes() -> Router<Arc<SqlitePool>> {
|
|
Router::new()
|
|
.route("/", get(index))
|
|
.nest("/station", station::routes())
|
|
.nest("/route", route::routes())
|
|
.nest("/team", team::routes())
|
|
}
|