add ability to dynamically set module title and visible from components
This commit is contained in:
parent
469b436f10
commit
4cae3f02ed
|
@ -3,7 +3,6 @@
|
||||||
@inject NavigationManager NavigationManager
|
@inject NavigationManager NavigationManager
|
||||||
@inject IUserService UserService
|
@inject IUserService UserService
|
||||||
@inject IServiceProvider ServiceProvider
|
@inject IServiceProvider ServiceProvider
|
||||||
@inject SiteState SiteState
|
|
||||||
@inject IStringLocalizer<Index> Localizer
|
@inject IStringLocalizer<Index> Localizer
|
||||||
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
@inject ISiteService SiteService
|
@inject ISiteService SiteService
|
||||||
@inject IStringLocalizer<Index> Localizer
|
@inject IStringLocalizer<Index> Localizer
|
||||||
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
||||||
@inject SiteState SiteState
|
|
||||||
|
|
||||||
@if (users == null)
|
@if (users == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,6 +24,9 @@ namespace Oqtane.Modules
|
||||||
[Inject]
|
[Inject]
|
||||||
protected IJSRuntime JSRuntime { get; set; }
|
protected IJSRuntime JSRuntime { get; set; }
|
||||||
|
|
||||||
|
[Inject]
|
||||||
|
protected SiteState SiteState { get; set; }
|
||||||
|
|
||||||
[CascadingParameter]
|
[CascadingParameter]
|
||||||
protected PageState PageState { get; set; }
|
protected PageState PageState { get; set; }
|
||||||
|
|
||||||
|
@ -198,7 +201,7 @@ namespace Oqtane.Modules
|
||||||
return urlParameters;
|
return urlParameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
// user feedback methods
|
// UI methods
|
||||||
public void AddModuleMessage(string message, MessageType type)
|
public void AddModuleMessage(string message, MessageType type)
|
||||||
{
|
{
|
||||||
ModuleInstance.AddModuleMessage(message, type);
|
ModuleInstance.AddModuleMessage(message, type);
|
||||||
|
@ -219,6 +222,18 @@ namespace Oqtane.Modules
|
||||||
ModuleInstance.HideProgressIndicator();
|
ModuleInstance.HideProgressIndicator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetModuleTitle(string title)
|
||||||
|
{
|
||||||
|
var obj = new { PageModuleId = ModuleState.PageModuleId, Title = title };
|
||||||
|
SiteState.Properties.ModuleTitle = obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetModuleVisibility(bool visible)
|
||||||
|
{
|
||||||
|
var obj = new { PageModuleId = ModuleState.PageModuleId, Visible = visible };
|
||||||
|
SiteState.Properties.ModuleVisibility = obj;
|
||||||
|
}
|
||||||
|
|
||||||
// logging methods
|
// logging methods
|
||||||
public async Task Log(Alias alias, LogLevel level, string function, Exception exception, string message, params object[] args)
|
public async Task Log(Alias alias, LogLevel level, string function, Exception exception, string message, params object[] args)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
|
@using System.ComponentModel
|
||||||
@namespace Oqtane.Themes.Controls
|
@namespace Oqtane.Themes.Controls
|
||||||
@inherits ContainerBase
|
@inherits ContainerBase
|
||||||
@attribute [OqtaneIgnore]
|
@attribute [OqtaneIgnore]
|
||||||
|
@inject SiteState SiteState
|
||||||
|
|
||||||
<span class="app-moduletitle">
|
<span class="app-moduletitle">
|
||||||
<a id="@ModuleState.PageModuleId.ToString()">
|
<a id="@ModuleState.PageModuleId.ToString()">
|
||||||
|
@ -9,17 +11,39 @@
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
private string title = "";
|
private string title = "";
|
||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(ModuleState.ControlTitle))
|
((INotifyPropertyChanged)SiteState.Properties).PropertyChanged += PropertyChanged;
|
||||||
{
|
}
|
||||||
title = ModuleState.ControlTitle;
|
|
||||||
}
|
protected override void OnParametersSet()
|
||||||
else
|
{
|
||||||
{
|
if (!string.IsNullOrEmpty(ModuleState.ControlTitle))
|
||||||
title = ModuleState.Title;
|
{
|
||||||
}
|
title = ModuleState.ControlTitle;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
title = ModuleState.Title;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.PropertyName == "ModuleTitle")
|
||||||
|
{
|
||||||
|
if (SiteState.Properties.ModuleTitle.PageModuleId == ModuleState.PageModuleId)
|
||||||
|
{
|
||||||
|
title = SiteState.Properties.ModuleTitle.Title;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
((INotifyPropertyChanged)SiteState.Properties).PropertyChanged -= PropertyChanged;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,26 @@
|
||||||
|
@using System.ComponentModel
|
||||||
@namespace Oqtane.UI
|
@namespace Oqtane.UI
|
||||||
|
@inject SiteState SiteState
|
||||||
|
|
||||||
<CascadingValue Value="@ModuleState">
|
@if (_visible)
|
||||||
@if (_useadminborder)
|
{
|
||||||
{
|
<CascadingValue Value="@ModuleState">
|
||||||
<div class="app-pane-admin-border">
|
@if (_useadminborder)
|
||||||
@DynamicComponent
|
{
|
||||||
</div>
|
<div class="app-pane-admin-border">
|
||||||
}
|
@DynamicComponent
|
||||||
else
|
</div>
|
||||||
{
|
}
|
||||||
@DynamicComponent
|
else
|
||||||
}
|
{
|
||||||
</CascadingValue>
|
@DynamicComponent
|
||||||
|
}
|
||||||
|
</CascadingValue>
|
||||||
|
}
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
private bool _useadminborder = false;
|
private bool _visible = true;
|
||||||
|
private bool _useadminborder = false;
|
||||||
|
|
||||||
[CascadingParameter]
|
[CascadingParameter]
|
||||||
protected PageState PageState { get; set; }
|
protected PageState PageState { get; set; }
|
||||||
|
@ -24,7 +30,12 @@
|
||||||
|
|
||||||
RenderFragment DynamicComponent { get; set; }
|
RenderFragment DynamicComponent { get; set; }
|
||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnInitialized()
|
||||||
|
{
|
||||||
|
((INotifyPropertyChanged)SiteState.Properties).PropertyChanged += PropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnParametersSet()
|
||||||
{
|
{
|
||||||
string container = ModuleState.ContainerType;
|
string container = ModuleState.ContainerType;
|
||||||
if (PageState.ModuleId != -1 && ModuleState.UseAdminContainer)
|
if (PageState.ModuleId != -1 && ModuleState.UseAdminContainer)
|
||||||
|
@ -53,4 +64,21 @@
|
||||||
builder.CloseComponent();
|
builder.CloseComponent();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.PropertyName == "ModuleVisibility")
|
||||||
|
{
|
||||||
|
if (SiteState.Properties.ModuleVisibility.PageModuleId == ModuleState.PageModuleId)
|
||||||
|
{
|
||||||
|
_visible = SiteState.Properties.ModuleVisibility.Visible;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
((INotifyPropertyChanged)SiteState.Properties).PropertyChanged -= PropertyChanged;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user