diff --git a/Oqtane.Package/Oqtane.Framework.nuspec b/Oqtane.Package/Oqtane.Framework.nuspec index b537a230..000bf21e 100644 --- a/Oqtane.Package/Oqtane.Framework.nuspec +++ b/Oqtane.Package/Oqtane.Framework.nuspec @@ -2,7 +2,7 @@ Oqtane.Framework - 0.9.0 + 0.9.1 Shaun Walker .NET Foundation Oqtane Framework diff --git a/Oqtane.Server/Controllers/ModuleController.cs b/Oqtane.Server/Controllers/ModuleController.cs index 1afc13d6..55ea9e1e 100644 --- a/Oqtane.Server/Controllers/ModuleController.cs +++ b/Oqtane.Server/Controllers/ModuleController.cs @@ -16,14 +16,16 @@ namespace Oqtane.Controllers { private readonly IModuleRepository _modules; private readonly IPageModuleRepository _pageModules; + private readonly IPageRepository _pages; private readonly IModuleDefinitionRepository _moduleDefinitions; private readonly IUserPermissions _userPermissions; private readonly ILogManager _logger; - public ModuleController(IModuleRepository modules, IPageModuleRepository pageModules, IModuleDefinitionRepository moduleDefinitions, IUserPermissions userPermissions, ILogManager logger) + public ModuleController(IModuleRepository modules, IPageModuleRepository pageModules, IPageRepository pages, IModuleDefinitionRepository moduleDefinitions, IUserPermissions userPermissions, ILogManager logger) { _modules = modules; _pageModules = pageModules; + _pages = pages; _moduleDefinitions = moduleDefinitions; _userPermissions = userPermissions; _logger = logger; @@ -42,6 +44,7 @@ namespace Oqtane.Controllers Module module = new Module(); module.SiteId = pagemodule.Module.SiteId; module.ModuleDefinitionName = pagemodule.Module.ModuleDefinitionName; + module.AllPages = pagemodule.Module.AllPages; module.Permissions = pagemodule.Module.Permissions; module.CreatedBy = pagemodule.Module.CreatedBy; module.CreatedOn = pagemodule.Module.CreatedOn; @@ -111,7 +114,20 @@ namespace Oqtane.Controllers if (ModelState.IsValid && _userPermissions.IsAuthorized(User, EntityNames.Module, module.ModuleId, PermissionNames.Edit)) { module = _modules.UpdateModule(module); - _logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Updated {Module}", module); + if (module.AllPages) + { + var pageModule = _pageModules.GetPageModules(module.SiteId).FirstOrDefault(item => item.ModuleId == module.ModuleId); + _logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Updated {Module}", module); + + var pages = _pages.GetPages(module.SiteId).ToList(); + foreach (Page page in pages) + { + if (page.PageId != pageModule.PageId && !page.EditMode) + { + _pageModules.AddPageModule(new PageModule { PageId = page.PageId, ModuleId = pageModule.ModuleId, Title = pageModule.Title, Pane = pageModule.Pane, Order = pageModule.Order, ContainerType = pageModule.ContainerType }); + } + } + } } else { diff --git a/Oqtane.Server/Controllers/PageController.cs b/Oqtane.Server/Controllers/PageController.cs index 16afb06e..915fccdc 100644 --- a/Oqtane.Server/Controllers/PageController.cs +++ b/Oqtane.Server/Controllers/PageController.cs @@ -124,6 +124,16 @@ namespace Oqtane.Controllers page = _pages.AddPage(page); _syncManager.AddSyncEvent(_tenants.GetTenant().TenantId, EntityNames.Site, page.SiteId); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Page Added {Page}", page); + + if (!page.EditMode) + { + var modules = _modules.GetModules(page.SiteId).Where(item => item.AllPages).ToList(); + foreach (Module module in modules) + { + var pageModule = _pageModules.GetPageModules(page.SiteId).FirstOrDefault(item => item.ModuleId == module.ModuleId); + _pageModules.AddPageModule(new PageModule { PageId = page.PageId, ModuleId = pageModule.ModuleId, Title = pageModule.Title, Pane = pageModule.Pane, Order = pageModule.Order, ContainerType = pageModule.ContainerType }); + } + } } else { @@ -174,6 +184,7 @@ namespace Oqtane.Controllers module.SiteId = page.SiteId; module.PageId = page.PageId; module.ModuleDefinitionName = pm.Module.ModuleDefinitionName; + module.AllPages = false; module.Permissions = new List { new Permission(PermissionNames.View, userid, true), new Permission(PermissionNames.Edit, userid, true) diff --git a/Oqtane.Server/Infrastructure/InstallationManager.cs b/Oqtane.Server/Infrastructure/InstallationManager.cs index 4cfbaa6b..b1f73543 100644 --- a/Oqtane.Server/Infrastructure/InstallationManager.cs +++ b/Oqtane.Server/Infrastructure/InstallationManager.cs @@ -180,17 +180,17 @@ namespace Oqtane.Infrastructure private void FinishUpgrade() { - string folder = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location); - // check if upgrade application exists + string folder = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location); if (folder == null || !File.Exists(Path.Combine(folder, "Oqtane.Upgrade.exe"))) return; + // run upgrade application var process = new Process { StartInfo = { FileName = Path.Combine(folder, "Oqtane.Upgrade.exe"), - Arguments = "", + Arguments = "\"" + _environment.ContentRootPath + "\" \"" + _environment.WebRootPath + "\"", ErrorDialog = false, UseShellExecute = false, CreateNoWindow = true, diff --git a/Oqtane.Server/Oqtane.Server.csproj b/Oqtane.Server/Oqtane.Server.csproj index e115b73a..b298fc75 100644 --- a/Oqtane.Server/Oqtane.Server.csproj +++ b/Oqtane.Server/Oqtane.Server.csproj @@ -4,7 +4,7 @@ netcoreapp3.1 7.3 Debug;Release - 0.9.0 + 0.9.1 Oqtane Shaun Walker .NET Foundation @@ -17,10 +17,15 @@ Oqtane + + + + + diff --git a/Oqtane.Server/Repository/SiteRepository.cs b/Oqtane.Server/Repository/SiteRepository.cs index 3dea955c..d7c8a1e5 100644 --- a/Oqtane.Server/Repository/SiteRepository.cs +++ b/Oqtane.Server/Repository/SiteRepository.cs @@ -775,6 +775,7 @@ namespace Oqtane.Repository { SiteId = site.SiteId, ModuleDefinitionName = pagetemplatemodule.ModuleDefinitionName, + AllPages = false, Permissions = pagetemplatemodule.ModulePermissions, }; module = _moduleRepository.AddModule(module); diff --git a/Oqtane.Server/Scripts/Tenant.0.9.1.sql b/Oqtane.Server/Scripts/Tenant.0.9.1.sql new file mode 100644 index 00000000..94728128 --- /dev/null +++ b/Oqtane.Server/Scripts/Tenant.0.9.1.sql @@ -0,0 +1,14 @@ +/* + +migration script + +*/ + +ALTER TABLE [dbo].[Module] ADD + [AllPages] [bit] NULL +GO + +UPDATE [dbo].[Module] +SET [AllPages] = 0 +GO + diff --git a/Oqtane.Server/wwwroot/css/app.css b/Oqtane.Server/wwwroot/css/app.css index f1c79deb..403f803e 100644 --- a/Oqtane.Server/wwwroot/css/app.css +++ b/Oqtane.Server/wwwroot/css/app.css @@ -28,16 +28,6 @@ app { width: 100%; /* 100% width */ } - /* Pad the navigation links */ - .app-controlpanel .nav-item { - font-size: 0.9rem; - padding-bottom: 0.5rem; - } - - .app-controlpanel .card-body .control-label { - color: white; - } - /* Admin Modal */ .app-admin-modal .modal { position: fixed; /* Stay in place */ diff --git a/Oqtane.Shared/Models/Module.cs b/Oqtane.Shared/Models/Module.cs index 927377a0..16b51679 100644 --- a/Oqtane.Shared/Models/Module.cs +++ b/Oqtane.Shared/Models/Module.cs @@ -9,6 +9,7 @@ namespace Oqtane.Models public int ModuleId { get; set; } public int SiteId { get; set; } public string ModuleDefinitionName { get; set; } + public bool AllPages { get; set; } public string CreatedBy { get; set; } public DateTime CreatedOn { get; set; } diff --git a/Oqtane.Shared/Oqtane.Shared.csproj b/Oqtane.Shared/Oqtane.Shared.csproj index 131d6055..c50111cd 100644 --- a/Oqtane.Shared/Oqtane.Shared.csproj +++ b/Oqtane.Shared/Oqtane.Shared.csproj @@ -4,7 +4,7 @@ netstandard2.1 7.3 Debug;Release - 0.9.0 + 0.9.1 Oqtane Shaun Walker .NET Foundation diff --git a/Oqtane.Shared/Shared/Constants.cs b/Oqtane.Shared/Shared/Constants.cs index 847e7a9e..c50347e2 100644 --- a/Oqtane.Shared/Shared/Constants.cs +++ b/Oqtane.Shared/Shared/Constants.cs @@ -3,8 +3,8 @@ public class Constants { public const string PackageId = "Oqtane.Framework"; - public const string Version = "0.9.0"; - public const string ReleaseVersions = "0.9.0"; + public const string Version = "0.9.1"; + public const string ReleaseVersions = "0.9.0,0.9.1"; public const string PageComponent = "Oqtane.UI.ThemeBuilder, Oqtane.Client"; public const string ContainerComponent = "Oqtane.UI.ContainerBuilder, Oqtane.Client"; diff --git a/Oqtane.Upgrade/Oqtane.Upgrade.csproj b/Oqtane.Upgrade/Oqtane.Upgrade.csproj index f4437db3..d9648c07 100644 --- a/Oqtane.Upgrade/Oqtane.Upgrade.csproj +++ b/Oqtane.Upgrade/Oqtane.Upgrade.csproj @@ -4,7 +4,7 @@ netcoreapp3.1 7.3 Exe - 0.9.0 + 0.9.1 Oqtane Shaun Walker .NET Foundation diff --git a/Oqtane.Upgrade/Program.cs b/Oqtane.Upgrade/Program.cs index f1f0f9b4..6c8fb1df 100644 --- a/Oqtane.Upgrade/Program.cs +++ b/Oqtane.Upgrade/Program.cs @@ -10,14 +10,12 @@ namespace Oqtane.Upgrade { static void Main(string[] args) { - string binfolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); - - // assumes that the application executable must be deployed to the /bin of the Oqtane.Server project - if (binfolder.Contains(Path.Combine("Oqtane.Server", "bin"))) + // requires 2 arguments - the contentrootpath and the webrootpath of the site + if (args.Length == 2) { - // ie. binfolder = Oqtane.Server\bin\Debug\netcoreapp3.0\ - string rootfolder = Directory.GetParent(binfolder).Parent.Parent.FullName; - string deployfolder = Path.Combine(rootfolder, Path.Combine("wwwroot","Framework")); + string binfolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); + string rootfolder = args[0]; + string deployfolder = Path.Combine(args[1], "Framework"); if (Directory.Exists(deployfolder)) { @@ -87,7 +85,7 @@ namespace Oqtane.Upgrade success = false; } - if (success) + if (success) { // clean up backup foreach (string file in files) @@ -99,7 +97,7 @@ namespace Oqtane.Upgrade } } } - else + else { // restore on failure foreach (string file in files)