From e1a8d3db548adf6e4dc06ca1bba235d403d7b09e Mon Sep 17 00:00:00 2001 From: sbwalker Date: Wed, 28 Jun 2023 12:17:27 -0400 Subject: [PATCH 1/7] fix #2938 - path not updated correctly when parent page changed --- Oqtane.Client/Modules/Admin/Pages/Edit.razor | 10 ------ Oqtane.Server/Controllers/PageController.cs | 32 +++++++++++++++----- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor index f77c3970..50aebf5d 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -603,16 +603,6 @@ await PageService.UpdatePageOrderAsync(_page.SiteId, _page.PageId, int.Parse(_currentparentid)); } - // update child paths - if (_parentid != _currentparentid) - { - foreach (Page p in PageState.Pages.Where(item => item.Path.StartsWith(currentPath))) - { - p.Path = p.Path.Replace(currentPath, _page.Path); - await PageService.UpdatePageAsync(p); - } - } - if (_themeSettingsType != null && _themeSettings is ISettingsControl themeSettingsControl) { await themeSettingsControl.UpdateSettings(); diff --git a/Oqtane.Server/Controllers/PageController.cs b/Oqtane.Server/Controllers/PageController.cs index ce81eec2..c3501345 100644 --- a/Oqtane.Server/Controllers/PageController.cs +++ b/Oqtane.Server/Controllers/PageController.cs @@ -12,6 +12,8 @@ using Oqtane.Infrastructure; using Oqtane.Repository; using Oqtane.Modules.Admin.Users; using System.IO; +using Oqtane.Services; +using Oqtane.UI; namespace Oqtane.Controllers { @@ -263,14 +265,18 @@ namespace Oqtane.Controllers // save url mapping if page path changed if (currentPage.Path != page.Path) { - var urlMapping = new UrlMapping(); - urlMapping.SiteId = page.SiteId; - urlMapping.Url = currentPage.Path; - urlMapping.MappedUrl = page.Path; - urlMapping.Requests = 0; - urlMapping.CreatedOn = System.DateTime.UtcNow; - urlMapping.RequestedOn = System.DateTime.UtcNow; - _urlMappings.AddUrlMapping(urlMapping); + var urlMapping = _urlMappings.GetUrlMapping(page.SiteId, currentPage.Path); + if (urlMapping == null) + { + urlMapping = new UrlMapping(); + urlMapping.SiteId = page.SiteId; + urlMapping.Url = currentPage.Path; + urlMapping.MappedUrl = page.Path; + urlMapping.Requests = 0; + urlMapping.CreatedOn = System.DateTime.UtcNow; + urlMapping.RequestedOn = System.DateTime.UtcNow; + _urlMappings.AddUrlMapping(urlMapping); + } } // get differences between current and new page permissions @@ -314,6 +320,16 @@ namespace Oqtane.Controllers } } + // update child paths + if (page.ParentId != currentPage.ParentId) + { + foreach (Page _page in _pages.GetPages(page.SiteId).Where(item => item.Path.StartsWith(currentPage.Path)).ToList()) + { + _page.Path = _page.Path.Replace(currentPage.Path, page.Path); + _pages.UpdatePage(_page); + } + } + _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Page, page.PageId, SyncEventActions.Update); _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Updated {Page}", page); From d06feec37b34051e95386b10f1e3ea2409713eeb Mon Sep 17 00:00:00 2001 From: sbwalker Date: Wed, 28 Jun 2023 12:24:59 -0400 Subject: [PATCH 2/7] set Expanded to lowercase if specified --- Oqtane.Client/Modules/Controls/Section.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Oqtane.Client/Modules/Controls/Section.razor b/Oqtane.Client/Modules/Controls/Section.razor index 3620d893..115e352d 100644 --- a/Oqtane.Client/Modules/Controls/Section.razor +++ b/Oqtane.Client/Modules/Controls/Section.razor @@ -40,7 +40,7 @@ protected override void OnInitialized() { _heading = (!string.IsNullOrEmpty(Heading)) ? Heading : Name; - _expanded = (!string.IsNullOrEmpty(Expanded)) ? Expanded : "false"; + _expanded = (!string.IsNullOrEmpty(Expanded)) ? Expanded.ToLower() : "false"; if (_expanded == "true") { _show = "show"; } } From 22ec675cecf97825041977a3fde13cad1b074d83 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Wed, 28 Jun 2023 12:27:21 -0400 Subject: [PATCH 3/7] use case insensitive comparison for activetab name --- Oqtane.Client/Modules/Controls/TabStrip.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Oqtane.Client/Modules/Controls/TabStrip.razor b/Oqtane.Client/Modules/Controls/TabStrip.razor index 01f5aded..90b3948a 100644 --- a/Oqtane.Client/Modules/Controls/TabStrip.razor +++ b/Oqtane.Client/Modules/Controls/TabStrip.razor @@ -8,7 +8,7 @@ @foreach (TabPanel tabPanel in _tabPanels) {