From 9f93476167b394582be2888ec7e707c6e192d189 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Mon, 5 Jun 2023 09:42:33 -0400 Subject: [PATCH] use ReturnUrl for Page Management invoked by Control Panel --- Oqtane.Client/Modules/Admin/Pages/Add.razor | 8 ++++---- Oqtane.Client/Modules/Admin/Pages/Edit.razor | 10 +++++----- Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Pages/Add.razor b/Oqtane.Client/Modules/Admin/Pages/Add.razor index 9b3d709c..b8a072eb 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Add.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Add.razor @@ -402,9 +402,9 @@ await PageService.UpdatePageOrderAsync(page.SiteId, page.PageId, page.ParentId); await logger.LogInformation("Page Added {Page}", page); - if (PageState.QueryString.ContainsKey("cp")) + if (!string.IsNullOrEmpty(PageState.ReturnUrl)) { - NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path)); + NavigationManager.NavigateTo(PageState.ReturnUrl); } else { @@ -431,9 +431,9 @@ private void Cancel() { - if (PageState.QueryString.ContainsKey("cp")) + if (!string.IsNullOrEmpty(PageState.ReturnUrl)) { - NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path)); + NavigationManager.NavigateTo(PageState.ReturnUrl); } else { diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor index 57c26b99..e047b020 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -409,7 +409,7 @@ private void ThemeSettings() { _themeSettingsType = null; - if (PageState.QueryString.ContainsKey("cp")) // can only be displayed if invoked from Control Panel + if (!string.IsNullOrEmpty(PageState.ReturnUrl)) // can only be displayed if invoked from Control Panel { var theme = PageState.Site.Themes.FirstOrDefault(item => item.Themes.Any(themecontrol => themecontrol.TypeName.Equals(_themetype))); if (theme != null && !string.IsNullOrEmpty(theme.ThemeSettingsType)) @@ -565,9 +565,9 @@ } await logger.LogInformation("Page Saved {Page}", page); - if (PageState.QueryString.ContainsKey("cp")) + if (!string.IsNullOrEmpty(PageState.ReturnUrl)) { - NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path)); + NavigationManager.NavigateTo(PageState.ReturnUrl); } else { @@ -593,9 +593,9 @@ private void Cancel() { - if (PageState.QueryString.ContainsKey("cp")) + if (!string.IsNullOrEmpty(PageState.ReturnUrl)) { - NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path)); + NavigationManager.NavigateTo(PageState.ReturnUrl); } else { diff --git a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor index af681625..7bfe46c3 100644 --- a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor @@ -520,10 +520,10 @@ switch (location) { case "Add": - url = EditUrl("admin/pages", module.ModuleId, location, "cp=" + PageState.Page.PageId); - break; + url = EditUrl("admin/pages", module.ModuleId, location, $"returnurl={WebUtility.UrlEncode(PageState.Route.PathAndQuery)}"); + break; case "Edit": - url = EditUrl("admin/pages", module.ModuleId, location, "id=" + PageState.Page.PageId.ToString() + "&cp=" + PageState.Page.PageId); + url = EditUrl("admin/pages", module.ModuleId, location, $"id={PageState.Page.PageId}&returnurl={WebUtility.UrlEncode(PageState.Route.PathAndQuery)}"); break; } }