From 8fe3fcad724e8940f31e749dffa8256093d1bfb4 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 13 May 2024 14:51:08 +0200 Subject: [PATCH] Always display nav bar --- src/server/web/page.rs | 28 ++++++++++++---------------- src/server/web/pages/commit.rs | 3 +-- src/server/web/pages/graph.rs | 2 +- src/server/web/pages/index.rs | 2 +- 4 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/server/web/page.rs b/src/server/web/page.rs index 027bf4f..a7b8fc8 100644 --- a/src/server/web/page.rs +++ b/src/server/web/page.rs @@ -11,7 +11,6 @@ use crate::{ #[derive(PartialEq, Eq)] pub enum Tab { - None, Index, Graph, Queue, @@ -20,7 +19,7 @@ pub enum Tab { pub struct Page { config: &'static ServerConfig, title: String, - nav: Option, + tab: Option, heads: Vec, bodies: Vec, } @@ -30,7 +29,7 @@ impl Page { Self { config, title: "???".to_string(), - nav: None, + tab: None, heads: vec![], bodies: vec![], } @@ -41,18 +40,8 @@ impl Page { self } - pub fn nav(mut self, tab: Tab) -> Self { - self.nav = Some(html! { - nav { - a .current[tab == Tab::Index] href=(self.config.path(PathIndex {})) { - img src=(self.config.path(LOGO_SVG)) alt=""; - (self.config.repo_name) - } - a .current[tab == Tab::Graph] href=(self.config.path(PathGraph {})) { "graph" } - a .current[tab == Tab::Queue] href=(self.config.path(PathQueue {})) { "queue" } - } - }); - + pub fn tab(mut self, tab: Tab) -> Self { + self.tab = Some(tab); self } @@ -76,10 +65,17 @@ impl Page { title { (self.title) " - " (self.config.repo_name) } link rel="icon" href=(self.config.path(LOGO_SVG)); link rel="stylesheet" href=(self.config.path(BASE_CSS)); - @if let Some(nav) = self.nav { (nav) } @for head in self.heads { (head) } } body { + nav { + a .current[self.tab == Some(Tab::Index)] href=(self.config.path(PathIndex {})) { + img src=(self.config.path(LOGO_SVG)) alt=""; + (self.config.repo_name) + } + a .current[self.tab == Some(Tab::Graph)] href=(self.config.path(PathGraph {})) { "graph" } + a .current[self.tab == Some(Tab::Queue)] href=(self.config.path(PathQueue {})) { "queue" } + } @for body in self.bodies { (body) } } } diff --git a/src/server/web/pages/commit.rs b/src/server/web/pages/commit.rs index 61a81d4..4ec590c 100644 --- a/src/server/web/pages/commit.rs +++ b/src/server/web/pages/commit.rs @@ -13,7 +13,7 @@ use crate::{ util, web::{ components, - page::{Page, Tab}, + page::Page, paths::{PathAdminQueueAdd, PathCommitByHash}, server_config_ext::ServerConfigExt, }, @@ -93,7 +93,6 @@ pub async fn get_commit_by_hash( let html = Page::new(config) .title(util::format_commit_summary(&commit.message)) - .nav(Tab::None) .body(html! { h2 { "Commit" } div .commit-like .commit { diff --git a/src/server/web/pages/graph.rs b/src/server/web/pages/graph.rs index d94e6bf..1974c63 100644 --- a/src/server/web/pages/graph.rs +++ b/src/server/web/pages/graph.rs @@ -27,7 +27,7 @@ pub async fn get_graph( ) -> somehow::Result { let html = Page::new(config) .title("graph") - .nav(Tab::Graph) + .tab(Tab::Graph) .head(html! { link rel="stylesheet" href=(config.path(UPLOT_CSS)); script type="module" src=(config.path(GRAPH_JS)) {} diff --git a/src/server/web/pages/index.rs b/src/server/web/pages/index.rs index 1fba741..13d506c 100644 --- a/src/server/web/pages/index.rs +++ b/src/server/web/pages/index.rs @@ -54,7 +54,7 @@ pub async fn get_index( let html = Page::new(config) .title("overview") - .nav(Tab::Index) + .tab(Tab::Index) .body(html! { h2 { "Refs" } details .refs-list open {