diff --git a/Oqtane.Client/Modules/Controls/ModuleMessage.razor b/Oqtane.Client/Modules/Controls/ModuleMessage.razor
index 283b890a..b51038d9 100644
--- a/Oqtane.Client/Modules/Controls/ModuleMessage.razor
+++ b/Oqtane.Client/Modules/Controls/ModuleMessage.razor
@@ -1,11 +1,10 @@
@namespace Oqtane.Modules.Controls
@inherits ModuleBase
-@if (Message != "")
+@if (!string.IsNullOrEmpty(message))
{
-
@Message
-
-
+ @message
+
}
@code {
@@ -15,24 +14,39 @@
[Parameter]
public MessageType Type { get; set; }
- string type = "alert alert-danger";
+ string message = "";
+ string classname = "alert alert-danger";
- protected override void OnInitialized()
+ protected override void OnParametersSet()
{
- switch (Type)
+ message = Message;
+ classname = GetMessageType(Type);
+ }
+
+ public void SetModuleMessage(string message, MessageType type)
+ {
+ this.message = message;
+ classname = GetMessageType(type);
+ }
+
+ private string GetMessageType(MessageType type)
+ {
+ string classname = "";
+ switch (type)
{
case MessageType.Success:
- type = "alert alert-success";
+ classname = "alert alert-success";
break;
case MessageType.Info:
- type = "alert alert-info";
+ classname = "alert alert-info";
break;
case MessageType.Warning:
- type = "alert alert-warning";
+ classname = "alert alert-warning";
break;
case MessageType.Error:
- type = "alert alert-danger";
+ classname = "alert alert-danger";
break;
}
+ return classname;
}
}
diff --git a/Oqtane.Client/Modules/HtmlText/Index.razor b/Oqtane.Client/Modules/HtmlText/Index.razor
index 24639b22..df8b8ce4 100644
--- a/Oqtane.Client/Modules/HtmlText/Index.razor
+++ b/Oqtane.Client/Modules/HtmlText/Index.razor
@@ -6,17 +6,13 @@
@inject HttpClient http
@inject SiteState sitestate
-
-
@((MarkupString)content)
-
-
+
@code {
- string message = "";
string content;
protected override async Task OnParametersSetAsync()
@@ -32,7 +28,7 @@
}
catch (Exception ex)
{
- message = ex.Message;
+ ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
}
}
}
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs
index 24d04354..0654801f 100644
--- a/Oqtane.Client/Modules/ModuleBase.cs
+++ b/Oqtane.Client/Modules/ModuleBase.cs
@@ -17,6 +17,9 @@ namespace Oqtane.Modules
[CascadingParameter]
protected Module ModuleState { get; set; }
+ [CascadingParameter]
+ protected ModuleInstance ModuleInstance { get; set; }
+
public virtual SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.View; } set { } } // default security
public virtual string Title { get { return ""; } }
diff --git a/Oqtane.Client/Shared/ModuleInstance.razor b/Oqtane.Client/Shared/ModuleInstance.razor
index 3e31897a..51dcae06 100644
--- a/Oqtane.Client/Shared/ModuleInstance.razor
+++ b/Oqtane.Client/Shared/ModuleInstance.razor
@@ -1,6 +1,9 @@
@namespace Oqtane.Shared
-@DynamicComponent
+
+
+ @DynamicComponent
+
@code {
[CascadingParameter]
@@ -9,6 +12,8 @@
[CascadingParameter]
private Module ModuleState { get; set; }
+ private ModuleMessage modulemessage { get; set; }
+
RenderFragment DynamicComponent { get; set; }
protected override void OnParametersSet()
@@ -32,11 +37,14 @@
}
else
{
- // module does not exist with typename specified
- builder.OpenComponent(0, Type.GetType(Constants.ModuleMessageControl));
- builder.AddAttribute(1, "Message", "Error Loading Component For Module " + ModuleState.ModuleDefinitionName);
- builder.CloseComponent();
+ // module does not exist with typename specified
+ modulemessage.SetModuleMessage("Error Loading Component For Module " + ModuleState.ModuleDefinitionName, MessageType.Error);
}
};
}
+
+ public void AddModuleMessage(string message, MessageType type)
+ {
+ modulemessage.SetModuleMessage(message, type);
+ }
}
diff --git a/Oqtane.Server/Startup.cs b/Oqtane.Server/Startup.cs
index ed9b1c39..026bc3ca 100644
--- a/Oqtane.Server/Startup.cs
+++ b/Oqtane.Server/Startup.cs
@@ -33,6 +33,7 @@ namespace Oqtane.Server
public class Startup
{
public IConfigurationRoot Configuration { get; }
+
public Startup(IWebHostEnvironment env)
{
var builder = new ConfigurationBuilder()
@@ -329,6 +330,8 @@ namespace Oqtane.Server
// register custom claims principal factory for role claims
services.AddTransient, ClaimsPrincipalFactory>();
+ // register singleton scoped core services
+ services.AddSingleton(Configuration);
services.AddSingleton();
// install any modules or themes