use ReturnUrl for Page Management invoked by Control Panel

This commit is contained in:
sbwalker
2023-06-05 09:42:33 -04:00
parent 50cf67546b
commit 9f93476167
3 changed files with 12 additions and 12 deletions

View File

@ -402,9 +402,9 @@
await PageService.UpdatePageOrderAsync(page.SiteId, page.PageId, page.ParentId); await PageService.UpdatePageOrderAsync(page.SiteId, page.PageId, page.ParentId);
await logger.LogInformation("Page Added {Page}", page); 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 else
{ {
@ -431,9 +431,9 @@
private void Cancel() 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 else
{ {

View File

@ -409,7 +409,7 @@
private void ThemeSettings() private void ThemeSettings()
{ {
_themeSettingsType = null; _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))); var theme = PageState.Site.Themes.FirstOrDefault(item => item.Themes.Any(themecontrol => themecontrol.TypeName.Equals(_themetype)));
if (theme != null && !string.IsNullOrEmpty(theme.ThemeSettingsType)) if (theme != null && !string.IsNullOrEmpty(theme.ThemeSettingsType))
@ -565,9 +565,9 @@
} }
await logger.LogInformation("Page Saved {Page}", page); 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 else
{ {
@ -593,9 +593,9 @@
private void Cancel() 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 else
{ {

View File

@ -520,10 +520,10 @@
switch (location) switch (location)
{ {
case "Add": case "Add":
url = EditUrl("admin/pages", module.ModuleId, location, "cp=" + PageState.Page.PageId); url = EditUrl("admin/pages", module.ModuleId, location, $"returnurl={WebUtility.UrlEncode(PageState.Route.PathAndQuery)}");
break; break;
case "Edit": 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; break;
} }
} }