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 @namespace Oqtane.Modules.Controls
@inherits ModuleBase @inherits ModuleBase
@if (Message != "") @if (!string.IsNullOrEmpty(message))
{ {
<div class="@type">@Message</div> <div class="@classname" role="alert">@message</div>
<br /> <br /><br />
<br />
} }
@code { @code {
@ -15,24 +14,39 @@
[Parameter] [Parameter]
public MessageType Type { get; set; } 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: case MessageType.Success:
type = "alert alert-success"; classname = "alert alert-success";
break; break;
case MessageType.Info: case MessageType.Info:
type = "alert alert-info"; classname = "alert alert-info";
break; break;
case MessageType.Warning: case MessageType.Warning:
type = "alert alert-warning"; classname = "alert alert-warning";
break; break;
case MessageType.Error: case MessageType.Error:
type = "alert alert-danger"; classname = "alert alert-danger";
break; break;
} }
return classname;
} }
} }

View File

@ -6,17 +6,13 @@
@inject HttpClient http @inject HttpClient http
@inject SiteState sitestate @inject SiteState sitestate
<ModuleMessage Message="@message" />
@((MarkupString)content) @((MarkupString)content)
<br /> <br />
<ActionLink Action="Edit" /> <ActionLink Action="Edit" />
<br /> <br /><br />
<br />
@code { @code {
string message = "";
string content; string content;
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
@ -32,7 +28,7 @@
} }
catch (Exception ex) catch (Exception ex)
{ {
message = ex.Message; ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
} }
} }
} }

View File

@ -17,6 +17,9 @@ namespace Oqtane.Modules
[CascadingParameter] [CascadingParameter]
protected Module ModuleState { get; set; } protected Module ModuleState { get; set; }
[CascadingParameter]
protected ModuleInstance ModuleInstance { get; set; }
public virtual SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.View; } set { } } // default security public virtual SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.View; } set { } } // default security
public virtual string Title { get { return ""; } } public virtual string Title { get { return ""; } }

View File

@ -1,6 +1,9 @@
@namespace Oqtane.Shared @namespace Oqtane.Shared
@DynamicComponent <CascadingValue Value="this">
<ModuleMessage @ref="modulemessage" />
@DynamicComponent
</CascadingValue>
@code { @code {
[CascadingParameter] [CascadingParameter]
@ -9,6 +12,8 @@
[CascadingParameter] [CascadingParameter]
private Module ModuleState { get; set; } private Module ModuleState { get; set; }
private ModuleMessage modulemessage { get; set; }
RenderFragment DynamicComponent { get; set; } RenderFragment DynamicComponent { get; set; }
protected override void OnParametersSet() protected override void OnParametersSet()
@ -32,11 +37,14 @@
} }
else else
{ {
// module does not exist with typename specified // module does not exist with typename specified
builder.OpenComponent(0, Type.GetType(Constants.ModuleMessageControl)); modulemessage.SetModuleMessage("Error Loading Component For Module " + ModuleState.ModuleDefinitionName, MessageType.Error);
builder.AddAttribute(1, "Message", "Error Loading Component For Module " + ModuleState.ModuleDefinitionName);
builder.CloseComponent();
} }
}; };
} }
public void AddModuleMessage(string message, MessageType type)
{
modulemessage.SetModuleMessage(message, type);
}
} }

View File

@ -33,6 +33,7 @@ namespace Oqtane.Server
public class Startup public class Startup
{ {
public IConfigurationRoot Configuration { get; } public IConfigurationRoot Configuration { get; }
public Startup(IWebHostEnvironment env) public Startup(IWebHostEnvironment env)
{ {
var builder = new ConfigurationBuilder() var builder = new ConfigurationBuilder()
@ -329,6 +330,8 @@ namespace Oqtane.Server
// register custom claims principal factory for role claims // register custom claims principal factory for role claims
services.AddTransient<IUserClaimsPrincipalFactory<IdentityUser>, ClaimsPrincipalFactory<IdentityUser>>(); services.AddTransient<IUserClaimsPrincipalFactory<IdentityUser>, ClaimsPrincipalFactory<IdentityUser>>();
// register singleton scoped core services
services.AddSingleton<IConfigurationRoot>(Configuration);
services.AddSingleton<IInstallationManager, InstallationManager>(); services.AddSingleton<IInstallationManager, InstallationManager>();
// install any modules or themes // install any modules or themes