From cfb128acb8d286777459ca5ece7f5f6d037223d7 Mon Sep 17 00:00:00 2001 From: vnetonline Date: Tue, 23 Apr 2024 15:22:02 +1000 Subject: [PATCH 1/4] [ENH] - Add Prerender IModuleControl property (similar to RenderMode) #4178 --- Oqtane.Client/Modules/ModuleBase.cs | 2 ++ Oqtane.Client/UI/ModuleInstance.razor | 2 +- Oqtane.Client/UI/RenderModeBoundary.razor | 2 +- Oqtane.Client/UI/SiteRouter.razor | 1 + Oqtane.Shared/Interfaces/IModuleControl.cs | 5 +++++ Oqtane.Shared/Models/Module.cs | 2 ++ 6 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs index fee2d4e5..2d5410a3 100644 --- a/Oqtane.Client/Modules/ModuleBase.cs +++ b/Oqtane.Client/Modules/ModuleBase.cs @@ -52,6 +52,8 @@ namespace Oqtane.Modules public virtual string RenderMode { get { return RenderModes.Interactive; } } // interactive by default + public virtual bool Prerender { get { return true; } } // prerender at server by default + // url parameters public virtual string UrlParametersTemplate { get; set; } diff --git a/Oqtane.Client/UI/ModuleInstance.razor b/Oqtane.Client/UI/ModuleInstance.razor index 5d429954..53258cea 100644 --- a/Oqtane.Client/UI/ModuleInstance.razor +++ b/Oqtane.Client/UI/ModuleInstance.razor @@ -7,7 +7,7 @@ } else { - + } @code { diff --git a/Oqtane.Client/UI/RenderModeBoundary.razor b/Oqtane.Client/UI/RenderModeBoundary.razor index e4d6873e..d3a11055 100644 --- a/Oqtane.Client/UI/RenderModeBoundary.razor +++ b/Oqtane.Client/UI/RenderModeBoundary.razor @@ -10,7 +10,7 @@ { @if (ModuleType != null) { - @((MarkupString)$"") + @((MarkupString)$"") @DynamicComponent @if (_progressIndicator) diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index 43acc3a6..13c35b17 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -476,6 +476,7 @@ // retrieve module component resources var moduleobject = Activator.CreateInstance(moduletype) as IModuleControl; module.RenderMode = moduleobject.RenderMode; + module.Prerender = moduleobject.Prerender; page.Resources = ManagePageResources(page.Resources, moduleobject.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); if (action.ToLower() == "settings" && module.ModuleDefinition != null) diff --git a/Oqtane.Shared/Interfaces/IModuleControl.cs b/Oqtane.Shared/Interfaces/IModuleControl.cs index 1d442931..b425a311 100644 --- a/Oqtane.Shared/Interfaces/IModuleControl.cs +++ b/Oqtane.Shared/Interfaces/IModuleControl.cs @@ -35,5 +35,10 @@ namespace Oqtane.Modules /// Specifies the required render mode for the module control ie. Static,Interactive /// string RenderMode { get; } + + /// + /// Specifies the prerender mode for the moudle control ie: true or false + /// + bool Prerender { get; } } } diff --git a/Oqtane.Shared/Models/Module.cs b/Oqtane.Shared/Models/Module.cs index bae7a0ca..a875e31b 100644 --- a/Oqtane.Shared/Models/Module.cs +++ b/Oqtane.Shared/Models/Module.cs @@ -117,6 +117,8 @@ namespace Oqtane.Models public bool UseAdminContainer { get; set; } [NotMapped] public string RenderMode{ get; set; } + [NotMapped] + public bool Prerender { get; set; } #endregion From d910cfa919eaacf630e1c66f8cfabe9f4c516a9d Mon Sep 17 00:00:00 2001 From: vnetonline Date: Wed, 24 Apr 2024 09:46:07 +1000 Subject: [PATCH 2/4] [ENH] - #4178 modifications after review --- Oqtane.Client/Modules/ModuleBase.cs | 2 +- Oqtane.Client/UI/ModuleInstance.razor | 14 +++++++++++++- Oqtane.Shared/Interfaces/IModuleControl.cs | 2 +- Oqtane.Shared/Models/Module.cs | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs index 2d5410a3..46fd01db 100644 --- a/Oqtane.Client/Modules/ModuleBase.cs +++ b/Oqtane.Client/Modules/ModuleBase.cs @@ -52,7 +52,7 @@ namespace Oqtane.Modules public virtual string RenderMode { get { return RenderModes.Interactive; } } // interactive by default - public virtual bool Prerender { get { return true; } } // prerender at server by default + public virtual bool? Prerender { get { return null; } } // prerender at server by default // url parameters public virtual string UrlParametersTemplate { get; set; } diff --git a/Oqtane.Client/UI/ModuleInstance.razor b/Oqtane.Client/UI/ModuleInstance.razor index 53258cea..2699153e 100644 --- a/Oqtane.Client/UI/ModuleInstance.razor +++ b/Oqtane.Client/UI/ModuleInstance.razor @@ -7,7 +7,19 @@ } else { - + if (ModuleState.Prerender != false) + { + + + } + else if (ModuleState.Prerender == true) + { + + } + else + { + + } } @code { diff --git a/Oqtane.Shared/Interfaces/IModuleControl.cs b/Oqtane.Shared/Interfaces/IModuleControl.cs index b425a311..df607f8f 100644 --- a/Oqtane.Shared/Interfaces/IModuleControl.cs +++ b/Oqtane.Shared/Interfaces/IModuleControl.cs @@ -39,6 +39,6 @@ namespace Oqtane.Modules /// /// Specifies the prerender mode for the moudle control ie: true or false /// - bool Prerender { get; } + bool? Prerender { get; } } } diff --git a/Oqtane.Shared/Models/Module.cs b/Oqtane.Shared/Models/Module.cs index a875e31b..b90e685c 100644 --- a/Oqtane.Shared/Models/Module.cs +++ b/Oqtane.Shared/Models/Module.cs @@ -118,7 +118,7 @@ namespace Oqtane.Models [NotMapped] public string RenderMode{ get; set; } [NotMapped] - public bool Prerender { get; set; } + public bool? Prerender { get; set; } #endregion From b5bb5d35e770e42587c138d706d567d5fb963306 Mon Sep 17 00:00:00 2001 From: vnetonline Date: Wed, 24 Apr 2024 09:49:07 +1000 Subject: [PATCH 3/4] [ENH] - #4178 correcting logic error --- Oqtane.Client/UI/ModuleInstance.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Oqtane.Client/UI/ModuleInstance.razor b/Oqtane.Client/UI/ModuleInstance.razor index 2699153e..e2f10954 100644 --- a/Oqtane.Client/UI/ModuleInstance.razor +++ b/Oqtane.Client/UI/ModuleInstance.razor @@ -7,7 +7,7 @@ } else { - if (ModuleState.Prerender != false) + if (ModuleState.Prerender == false) { From de9c8362ac35b4a6cb4411fe5dcd5f4a9d546126 Mon Sep 17 00:00:00 2001 From: vnetonline Date: Wed, 24 Apr 2024 10:13:46 +1000 Subject: [PATCH 4/4] [ENH] - #4178 simplified version with null-coalescing operator ?? --- Oqtane.Client/UI/ModuleInstance.razor | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/Oqtane.Client/UI/ModuleInstance.razor b/Oqtane.Client/UI/ModuleInstance.razor index e2f10954..924a96f2 100644 --- a/Oqtane.Client/UI/ModuleInstance.razor +++ b/Oqtane.Client/UI/ModuleInstance.razor @@ -7,19 +7,10 @@ } else { - if (ModuleState.Prerender == false) - { - + var rendermode = InteractiveRenderMode.GetInteractiveRenderMode(PageState.Site.Runtime, ModuleState.Prerender ?? PageState.Site.Prerender); + + - } - else if (ModuleState.Prerender == true) - { - - } - else - { - - } } @code {