From aac1bb582baa11acc5db4c721d3a91d2e94b3dc6 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Tue, 3 Mar 2026 17:32:19 -0500 Subject: [PATCH] copy page should copy page settings --- Oqtane.Server/Controllers/PageController.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Oqtane.Server/Controllers/PageController.cs b/Oqtane.Server/Controllers/PageController.cs index a23ba365..80300154 100644 --- a/Oqtane.Server/Controllers/PageController.cs +++ b/Oqtane.Server/Controllers/PageController.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using System.Linq; using System.Net; -using System.Security; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Oqtane.Enums; @@ -509,6 +508,20 @@ namespace Oqtane.Controllers var toPage = _pages.GetPage(toPageId); if (toPage != null && toPage.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, PermissionNames.View, toPage.PermissionList)) { + // copy page settings + var settings = _settings.GetSettings(EntityNames.Page, fromPage.PageId).ToList(); + foreach (var setting in settings) + { + _settings.AddSetting(new Setting + { + EntityName = setting.EntityName, + EntityId = toPage.PageId, + SettingName = setting.SettingName, + SettingValue = setting.SettingValue, + IsPrivate = setting.IsPrivate + }); + } + // copy modules List pageModules = _pageModules.GetPageModules(fromPage.SiteId).ToList(); foreach (PageModule pm in pageModules.Where(item => item.PageId == fromPage.PageId && !item.Module.AllPages && !item.IsDeleted)) @@ -544,6 +557,8 @@ namespace Oqtane.Controllers }).ToList(); module = _modules.AddModule(module); + + // copy module content (includes settings) string content = _modules.ExportModule(pm.ModuleId); if (content != "") {