93 lines
2.6 KiB
Plaintext
93 lines
2.6 KiB
Plaintext
@namespace Oqtane.UI
|
|
@inject IStringLocalizer<ModuleInstance> Localizer
|
|
|
|
<ErrorBoundary>
|
|
<ErrorContent>
|
|
<ModuleMessage Message="@ErrorMessage(context)" Type="@MessageType.Error"/>
|
|
</ErrorContent>
|
|
<ChildContent>
|
|
<ModuleMessage Message="@_message" Type="@_messageType"/>
|
|
@if (ModuleType != null)
|
|
{
|
|
<DynamicComponent Type="@ModuleType" Parameters="@ModuleParameters"></DynamicComponent>
|
|
@if (_progressIndicator)
|
|
{
|
|
<div class="app-progress-indicator"></div>
|
|
}
|
|
}
|
|
</ChildContent>
|
|
</ErrorBoundary>
|
|
|
|
@code {
|
|
private string _message;
|
|
private MessageType _messageType;
|
|
private bool _progressIndicator = false;
|
|
|
|
private Type ModuleType { get; set; }
|
|
private IDictionary<string, object> ModuleParameters { get; set; }
|
|
|
|
[CascadingParameter]
|
|
protected PageState PageState { get; set; }
|
|
|
|
[CascadingParameter]
|
|
private Module ModuleState { get; set; }
|
|
|
|
private ModuleMessage ModuleMessage { get; set; }
|
|
|
|
private RenderFragment DynamicComponent { get; set; }
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
_message = "";
|
|
if (!string.IsNullOrEmpty(ModuleState.ModuleType))
|
|
{
|
|
ModuleType = Type.GetType(ModuleState.ModuleType);
|
|
if (ModuleType != null)
|
|
{
|
|
ModuleParameters = new Dictionary<string, object> { { "ModuleInstance", this } };
|
|
return;
|
|
}
|
|
// module does not exist with typename specified
|
|
_message = string.Format(Localizer["Error.Module.InvalidName"], Utilities.GetTypeNameLastSegment(ModuleState.ModuleType, 0));
|
|
_messageType = MessageType.Error;
|
|
}
|
|
else
|
|
{
|
|
_message = string.Format(Localizer["Error.Module.InvalidType"], ModuleState.ModuleDefinitionName);
|
|
_messageType = MessageType.Error;
|
|
}
|
|
}
|
|
|
|
public void AddModuleMessage(string message, MessageType type)
|
|
{
|
|
_message = message;
|
|
_messageType = type;
|
|
_progressIndicator = false;
|
|
StateHasChanged();
|
|
}
|
|
|
|
public void ShowProgressIndicator()
|
|
{
|
|
_progressIndicator = true;
|
|
StateHasChanged();
|
|
}
|
|
|
|
public void HideProgressIndicator()
|
|
{
|
|
_progressIndicator = false;
|
|
StateHasChanged();
|
|
}
|
|
|
|
|
|
private string ErrorMessage(Exception context)
|
|
{
|
|
var message = string.Format(Localizer["Error.Module.Exception"], ModuleState.ModuleDefinitionName);
|
|
if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
|
|
{
|
|
return $"{message}<br />{context}";
|
|
}
|
|
return message;
|
|
}
|
|
|
|
}
|