From cec24e7446955990254aab1ec089cb10e8f6a108 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 16 Jun 2021 08:30:41 -0400 Subject: [PATCH] improve multi-tenancy navigation --- Oqtane.Client/Modules/Admin/Sites/Index.razor | 5 ++--- Oqtane.Client/UI/SiteRouter.razor | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Sites/Index.razor b/Oqtane.Client/Modules/Admin/Sites/Index.razor index 5728905b..d181fe68 100644 --- a/Oqtane.Client/Modules/Admin/Sites/Index.razor +++ b/Oqtane.Client/Modules/Admin/Sites/Index.razor @@ -51,12 +51,11 @@ else private void Edit(string name) { - NavigationManager.NavigateTo(_scheme + name + "/admin/site", true); + NavigationManager.NavigateTo(_scheme + name + "/admin/site/?redirect"); } private void Browse(string name) { - NavigationManager.NavigateTo(_scheme + name, true); + NavigationManager.NavigateTo(_scheme + name + "/?redirect", true); } - } diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index ed5548f4..6c690fe8 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -94,6 +94,15 @@ { reload = Reload.Site; } + else + { + // reload the client application if the user navigated to a site with a different alias or there is a forced redirect + if ((!path.StartsWith(SiteState.Alias.Path) && SiteState.Alias.Path != "") || querystring.ContainsKey("redirect")) + { + NavigationManager.NavigateTo(_absoluteUri.Replace("?redirect", ""), true); + return; + } + } if (PageState != null) { @@ -109,7 +118,8 @@ // if running on WebAssembly reload the client application if the server application was restarted if (runtime == Shared.Runtime.WebAssembly && PageState != null && sync.SyncEvents.Exists(item => item.TenantId == -1)) { - NavigationManager.NavigateTo(_absoluteUri + (!_absoluteUri.Contains("?") ? "?" : "&") + "reload", true); + NavigationManager.NavigateTo(_absoluteUri, true); + return; } if (sync.SyncEvents.Exists(item => item.EntityName == EntityNames.Site && item.EntityId == SiteState.Alias.SiteId)) { @@ -169,7 +179,7 @@ path += "/"; } - if (SiteState.Alias.Path != "") + if (SiteState.Alias.Path != "" && path.StartsWith(SiteState.Alias.Path)) { path = path.Substring(SiteState.Alias.Path.Length + 1); }