fix navigation usability issue for shared add/edit page UI invoked by Control Panel and Page Management

This commit is contained in:
Shaun Walker 2021-01-05 14:47:09 -05:00
parent a61a2f748c
commit de25e3fbf1
3 changed files with 44 additions and 6 deletions

View File

@ -189,7 +189,7 @@
</TabPanel> </TabPanel>
</TabStrip> </TabStrip>
<button type="button" class="btn btn-success" @onclick="SavePage">@Localizer["Save"]</button> <button type="button" class="btn btn-success" @onclick="SavePage">@Localizer["Save"]</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">@Localizer["Cancel"]</NavLink> <button type="button" class="btn btn-secondary" @onclick="Cancel">@Localizer["Cancel"]</button>
@code { @code {
private List<Theme> _themeList; private List<Theme> _themeList;
@ -386,8 +386,15 @@
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"))
{
NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path));
}
else
{
NavigationManager.NavigateTo(NavigateUrl(page.Path)); NavigationManager.NavigateTo(NavigateUrl(page.Path));
} }
}
else else
{ {
AddModuleMessage(Localizer["You Must Provide Page Name And Theme/Layout"], MessageType.Warning); AddModuleMessage(Localizer["You Must Provide Page Name And Theme/Layout"], MessageType.Warning);
@ -401,6 +408,18 @@
} }
} }
private void Cancel()
{
if (PageState.QueryString.ContainsKey("cp"))
{
NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path));
}
else
{
NavigationManager.NavigateTo(NavigateUrl());
}
}
private static bool PagePathIsUnique(string pagePath, int siteId, List<Page> existingPages) private static bool PagePathIsUnique(string pagePath, int siteId, List<Page> existingPages)
{ {
return !existingPages.Any(page => page.SiteId == siteId && page.Path == pagePath); return !existingPages.Any(page => page.SiteId == siteId && page.Path == pagePath);

View File

@ -205,7 +205,7 @@
</TabPanel> </TabPanel>
</TabStrip> </TabStrip>
<button type="button" class="btn btn-success" @onclick="SavePage">@Localizer["Save"]</button> <button type="button" class="btn btn-success" @onclick="SavePage">@Localizer["Save"]</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">@Localizer["Cancel"]</NavLink> <button type="button" class="btn btn-secondary" @onclick="Cancel">@Localizer["Cancel"]</button>
@code { @code {
private List<Theme> _themeList; private List<Theme> _themeList;
@ -493,8 +493,15 @@
} }
await logger.LogInformation("Page Saved {Page}", page); await logger.LogInformation("Page Saved {Page}", page);
if (PageState.QueryString.ContainsKey("cp"))
{
NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path));
}
else
{
NavigationManager.NavigateTo(NavigateUrl(page.Path)); NavigationManager.NavigateTo(NavigateUrl(page.Path));
} }
}
else else
{ {
AddModuleMessage(Localizer["You Must Provide Page Name"], MessageType.Warning); AddModuleMessage(Localizer["You Must Provide Page Name"], MessageType.Warning);
@ -507,6 +514,18 @@
} }
} }
private void Cancel()
{
if (PageState.QueryString.ContainsKey("cp"))
{
NavigationManager.NavigateTo(NavigateUrl(PageState.Pages.First(item => item.PageId == int.Parse(PageState.QueryString["cp"])).Path));
}
else
{
NavigationManager.NavigateTo(NavigateUrl());
}
}
private static bool PagePathIsUnique(string pagePath, int siteId, int pageId, List<Page> existingPages) private static bool PagePathIsUnique(string pagePath, int siteId, int pageId, List<Page> existingPages)
{ {
return !existingPages.Any(page => page.SiteId == siteId && page.Path == pagePath && page.PageId != pageId); return !existingPages.Any(page => page.SiteId == siteId && page.Path == pagePath && page.PageId != pageId);

View File

@ -485,10 +485,10 @@
switch (location) switch (location)
{ {
case "Add": case "Add":
url = EditUrl(PageState.Page.Path, module.ModuleId, location, ""); url = EditUrl(PageState.Page.Path, module.ModuleId, location, "cp=" + PageState.Page.PageId);
break; break;
case "Edit": case "Edit":
url = EditUrl(PageState.Page.Path, module.ModuleId, location, "id=" + PageState.Page.PageId.ToString()); url = EditUrl(PageState.Page.Path, module.ModuleId, location, "id=" + PageState.Page.PageId.ToString() + "&cp=" + PageState.Page.PageId);
break; break;
} }
} }