From abd235f332998c633d06f1dc447e05e3a65e68c1 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Thu, 1 Feb 2024 09:59:28 -0500 Subject: [PATCH] add RenderMode to IModuleControl --- Oqtane.Client/Modules/ModuleBase.cs | 2 ++ Oqtane.Client/UI/SiteRouter.razor | 2 ++ Oqtane.Maui/Main.razor | 2 +- Oqtane.Shared/Interfaces/IModuleControl.cs | 5 +++++ Oqtane.Shared/Models/Module.cs | 2 ++ Oqtane.Shared/Shared/RenderModes.cs | 1 - 6 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs index 05281844..e2769ed7 100644 --- a/Oqtane.Client/Modules/ModuleBase.cs +++ b/Oqtane.Client/Modules/ModuleBase.cs @@ -50,6 +50,8 @@ namespace Oqtane.Modules public virtual List Resources { get; set; } + public virtual string RenderMode { get { return RenderModes.Interactive; } } + // url parameters public virtual string UrlParametersTemplate { get; set; } diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index a378e637..a25d6d8e 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -478,6 +478,8 @@ { // retrieve module component resources var moduleobject = Activator.CreateInstance(moduletype) as IModuleControl; + module.RenderMode = moduleobject.RenderMode; + page.Resources = ManagePageResources(page.Resources, moduleobject.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); if (action.ToLower() == "settings" && module.ModuleDefinition != null) { diff --git a/Oqtane.Maui/Main.razor b/Oqtane.Maui/Main.razor index 52c20dd5..1adc989e 100644 --- a/Oqtane.Maui/Main.razor +++ b/Oqtane.Maui/Main.razor @@ -20,7 +20,7 @@ else { Parameters = new Dictionary(); Parameters.Add(new KeyValuePair("AntiForgeryToken", "")); - Parameters.Add(new KeyValuePair("RenderMode", RenderModes.Hybrid)); + Parameters.Add(new KeyValuePair("RenderMode", RenderModes.Interactive)); Parameters.Add(new KeyValuePair("Runtime", Runtimes.Hybrid)); Parameters.Add(new KeyValuePair("VisitorId", -1)); Parameters.Add(new KeyValuePair("RemoteIPAddress", "")); diff --git a/Oqtane.Shared/Interfaces/IModuleControl.cs b/Oqtane.Shared/Interfaces/IModuleControl.cs index 7d9dd5c7..1d442931 100644 --- a/Oqtane.Shared/Interfaces/IModuleControl.cs +++ b/Oqtane.Shared/Interfaces/IModuleControl.cs @@ -30,5 +30,10 @@ namespace Oqtane.Modules /// Identifies all resources in a module /// List Resources { get; } + + /// + /// Specifies the required render mode for the module control ie. Static,Interactive + /// + string RenderMode { get; } } } diff --git a/Oqtane.Shared/Models/Module.cs b/Oqtane.Shared/Models/Module.cs index c0d37b3a..bae7a0ca 100644 --- a/Oqtane.Shared/Models/Module.cs +++ b/Oqtane.Shared/Models/Module.cs @@ -115,6 +115,8 @@ namespace Oqtane.Models public string Actions { get; set; } [NotMapped] public bool UseAdminContainer { get; set; } + [NotMapped] + public string RenderMode{ get; set; } #endregion diff --git a/Oqtane.Shared/Shared/RenderModes.cs b/Oqtane.Shared/Shared/RenderModes.cs index 19c3e54c..864cf05c 100644 --- a/Oqtane.Shared/Shared/RenderModes.cs +++ b/Oqtane.Shared/Shared/RenderModes.cs @@ -3,6 +3,5 @@ namespace Oqtane.Shared { public const string Static = "Static"; public const string Interactive = "Interactive"; public const string Headless = "Headless"; - public const string Hybrid = "Hybrid"; // used at runtime by .NET MAUI clients } }