Merge pull request #3260 from sbwalker/dev

fix issue with module order in panes caused by transition from Admin to Default pane naming
This commit is contained in:
Shaun Walker 2023-09-18 09:46:40 -04:00 committed by GitHub
commit d28516b6b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,6 +10,8 @@ using Oqtane.Repository;
using Oqtane.Security;
using System.Net;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Identity.Client.Extensibility;
using System;
namespace Oqtane.Controllers
{
@ -133,14 +135,22 @@ namespace Oqtane.Controllers
var page = _pages.GetPage(pageid);
if (page != null && page.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, page.SiteId, EntityNames.Page, pageid, PermissionNames.Edit))
{
var panes = pane;
if (pane == PaneNames.Default || pane == PaneNames.Admin)
{
// treat default and admin panes as a single pane
panes = PaneNames.Default + "," + PaneNames.Admin;
pane = PaneNames.Default;
}
int order = 1;
List<PageModule> pagemodules = _pageModules.GetPageModules(page.SiteId)
.Where(item => item.PageId == pageid && item.Pane == pane).OrderBy(item => item.Order).ToList();
.Where(item => item.PageId == pageid && panes.Split(',').Contains(item.Pane)).OrderBy(item => item.Order).ToList();
foreach (PageModule pagemodule in pagemodules)
{
if (pagemodule.Order != order)
if (pagemodule.Order != order || pagemodule.Pane != pane)
{
pagemodule.Order = order;
pagemodule.Pane = pane;
_pageModules.UpdatePageModule(pagemodule);
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.PageModule, pagemodule.PageModuleId, SyncEventActions.Update);
}