Merge pull request #4179 from LearnOqtane/dev

[ENH] - Add Prerender IModuleControl property (similar to RenderMode)…
This commit is contained in:
Shaun Walker 2024-04-24 09:32:11 -04:00 committed by GitHub
commit 4cf2b74a01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 15 additions and 2 deletions

View File

@ -52,6 +52,8 @@ namespace Oqtane.Modules
public virtual string RenderMode { get { return RenderModes.Interactive; } } // interactive by default public virtual string RenderMode { get { return RenderModes.Interactive; } } // interactive by default
public virtual bool? Prerender { get { return null; } } // prerender at server by default
// url parameters // url parameters
public virtual string UrlParametersTemplate { get; set; } public virtual string UrlParametersTemplate { get; set; }

View File

@ -7,7 +7,10 @@
} }
else else
{ {
<RenderModeBoundary ModuleState="@ModuleState" PageState="@PageState" SiteState="@SiteState" @rendermode="@InteractiveRenderMode.GetInteractiveRenderMode(PageState.Site.Runtime, PageState.Site.Prerender)" /> var rendermode = InteractiveRenderMode.GetInteractiveRenderMode(PageState.Site.Runtime, ModuleState.Prerender ?? PageState.Site.Prerender);
<RenderModeBoundary ModuleState="@ModuleState" PageState="@PageState" SiteState="@SiteState" @rendermode="rendermode" />
} }
@code { @code {

View File

@ -10,7 +10,7 @@
{ {
@if (ModuleType != null) @if (ModuleType != null)
{ {
@((MarkupString)$"<!-- rendermode: {ModuleState.RenderMode} -->") @((MarkupString)$"<!-- rendermode: {ModuleState.RenderMode} - prerender: {ModuleState.Prerender} -->")
<ModuleMessage @ref="moduleMessageTop" Message="@_messageContent" Type="@_messageType" /> <ModuleMessage @ref="moduleMessageTop" Message="@_messageContent" Type="@_messageType" />
@DynamicComponent @DynamicComponent
@if (_progressIndicator) @if (_progressIndicator)

View File

@ -476,6 +476,7 @@
// retrieve module component resources // retrieve module component resources
var moduleobject = Activator.CreateInstance(moduletype) as IModuleControl; var moduleobject = Activator.CreateInstance(moduletype) as IModuleControl;
module.RenderMode = moduleobject.RenderMode; module.RenderMode = moduleobject.RenderMode;
module.Prerender = moduleobject.Prerender;
page.Resources = ManagePageResources(page.Resources, moduleobject.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); page.Resources = ManagePageResources(page.Resources, moduleobject.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace);
if (action.ToLower() == "settings" && module.ModuleDefinition != null) if (action.ToLower() == "settings" && module.ModuleDefinition != null)

View File

@ -35,5 +35,10 @@ namespace Oqtane.Modules
/// Specifies the required render mode for the module control ie. Static,Interactive /// Specifies the required render mode for the module control ie. Static,Interactive
/// </summary> /// </summary>
string RenderMode { get; } string RenderMode { get; }
/// <summary>
/// Specifies the prerender mode for the moudle control ie: true or false
/// </summary>
bool? Prerender { get; }
} }
} }

View File

@ -117,6 +117,8 @@ namespace Oqtane.Models
public bool UseAdminContainer { get; set; } public bool UseAdminContainer { get; set; }
[NotMapped] [NotMapped]
public string RenderMode{ get; set; } public string RenderMode{ get; set; }
[NotMapped]
public bool? Prerender { get; set; }
#endregion #endregion