diff --git a/interim-server/src/routes/mod.rs b/interim-server/src/routes/mod.rs index 01d613e..5b47a7d 100644 --- a/interim-server/src/routes/mod.rs +++ b/interim-server/src/routes/mod.rs @@ -43,7 +43,7 @@ pub(crate) fn new_router(app: App) -> Router<()> { ), ) .nest("/workspaces", workspaces_multi::new_router()) - .nest("/w/{workspace_id}", workspaces_single::new_router()) + .nest("/w", workspaces_single::new_router()) .nest("/auth", auth::new_router()) .route("/__dev-healthz", any(dev_healthz_handler)) .layer(SetResponseHeaderLayer::if_not_present( diff --git a/interim-server/src/routes/workspaces_single/mod.rs b/interim-server/src/routes/workspaces_single/mod.rs index 931de89..2ac47ad 100644 --- a/interim-server/src/routes/workspaces_single/mod.rs +++ b/interim-server/src/routes/workspaces_single/mod.rs @@ -1,21 +1,43 @@ use axum::{ Router, + extract::{Path, State}, response::Redirect, routing::{get, post}, }; use axum_extra::routing::RouterExt as _; +use serde::Deserialize; +use uuid::Uuid; -use crate::app::App; +use crate::{Settings, app::App}; use super::relations_single; mod add_table_handler; mod nav_handler; +#[derive(Clone, Debug, Deserialize)] +struct PathParams { + workspace_id: Uuid, +} + pub(super) fn new_router() -> Router { Router::::new() - .route("/", get(|| async move { Redirect::to("nav/") })) - .route("/add-table", post(add_table_handler::post)) - .route_with_tsr("/nav/", get(nav_handler::get)) - .nest("/r/{rel_oid}", relations_single::new_router()) + .route_with_tsr( + "/{workspace_id}", + get( + |State(Settings { root_path, .. }): State, + Path(PathParams { workspace_id }): Path| async move { + Redirect::to(&format!( + "{root_path}/w/{workspace_id}/nav/", + workspace_id = workspace_id.simple() + )) + }, + ), + ) + .route("/{workspace_id}/add-table", post(add_table_handler::post)) + .route_with_tsr("/{workspace_id}/nav/", get(nav_handler::get)) + .nest( + "/{workspace_id}/r/{rel_oid}", + relations_single::new_router(), + ) } diff --git a/interim-server/templates/portal_table.html b/interim-server/templates/portal_table.html index 874bb26..068ce7d 100644 --- a/interim-server/templates/portal_table.html +++ b/interim-server/templates/portal_table.html @@ -7,7 +7,9 @@
- {{ navbar | safe }} +
+ {{ navbar | safe }} +
diff --git a/interim-server/templates/workspace_nav.html b/interim-server/templates/workspace_nav.html index 15ab166..201704a 100644 --- a/interim-server/templates/workspace_nav.html +++ b/interim-server/templates/workspace_nav.html @@ -1,6 +1,6 @@ -