Fixed issue in client-side Blazor, added ModuleMessage to ModuleInstance

This commit is contained in:
Shaun Walker 2019-09-25 14:02:30 -04:00
parent 3af2ca0168
commit 07c00765ac
5 changed files with 46 additions and 22 deletions

View File

@ -1,11 +1,10 @@
@namespace Oqtane.Modules.Controls
@inherits ModuleBase
@if (Message != "")
@if (!string.IsNullOrEmpty(message))
{
<div class="@type">@Message</div>
<br />
<br />
<div class="@classname" role="alert">@message</div>
<br /><br />
}
@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;
}
}

View File

@ -6,17 +6,13 @@
@inject HttpClient http
@inject SiteState sitestate
<ModuleMessage Message="@message" />
@((MarkupString)content)
<br />
<ActionLink Action="Edit" />
<br />
<br />
<br /><br />
@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);
}
}
}

View File

@ -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 ""; } }

View File

@ -1,6 +1,9 @@
@namespace Oqtane.Shared
@DynamicComponent
<CascadingValue Value="this">
<ModuleMessage @ref="modulemessage" />
@DynamicComponent
</CascadingValue>
@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);
}
}

View File

@ -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<IUserClaimsPrincipalFactory<IdentityUser>, ClaimsPrincipalFactory<IdentityUser>>();
// register singleton scoped core services
services.AddSingleton<IConfigurationRoot>(Configuration);
services.AddSingleton<IInstallationManager, InstallationManager>();
// install any modules or themes