Browse Source

Implement PageHeaderOptions & PageLayout

pull/11509/head
enisn 5 years ago
parent
commit
ab67dcfc02
  1. 50
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor
  2. 22
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs

50
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor

@ -1,9 +1,17 @@
@using Blazorise @using Blazorise
@using Microsoft.Extensions.Options
@inject IOptions<PageHeaderOptions> Options
<Row Class="entry-row"> <Row Class="entry-row">
<Column ColumnSize="ColumnSize.IsAuto"> @if(Options.Value.RenderPageTitle)
<h1 class="content-header-title">@Title</h1> {
</Column> <Column ColumnSize="ColumnSize.IsAuto">
@if (BreadcrumbItems.Any()) <h1 class="content-header-title">@PageLayout.Title</h1>
</Column>
}
@if (Options.Value.RenderBreadcrumbs && PageLayout.BreadcrumbItems.Any())
{ {
<Column ColumnSize="ColumnSize.IsAuto.OnWidescreen" Padding="Padding.Is0.FromLeft.OnWidescreen"> <Column ColumnSize="ColumnSize.IsAuto.OnWidescreen" Padding="Padding.Is0.FromLeft.OnWidescreen">
<Breadcrumb Mode="@(BreadcrumbShowCurrent ? BreadcrumbMode.Auto : BreadcrumbMode.None)"> <Breadcrumb Mode="@(BreadcrumbShowCurrent ? BreadcrumbMode.Auto : BreadcrumbMode.None)">
@ -15,7 +23,7 @@
</BreadcrumbLink> </BreadcrumbLink>
</BreadcrumbItem> </BreadcrumbItem>
} }
@foreach (var item in BreadcrumbItems) @foreach (var item in PageLayout.BreadcrumbItems)
{ {
<BreadcrumbItem> <BreadcrumbItem>
<BreadcrumbLink To="@item.Url"> <BreadcrumbLink To="@item.Url">
@ -30,19 +38,23 @@
</Breadcrumb> </Breadcrumb>
</Column> </Column>
} }
<Column>
<Row Class="justify-content-end mx-n1"> @if(Options.Value.RenderToolbar)
@if (Toolbar == null) {
{ <Column>
@ChildContent <Row Class="justify-content-end mx-n1">
} @if (Toolbar == null)
{
@ChildContent
}
@foreach (var toolbarItemRender in ToolbarItemRenders) @foreach (var toolbarItemRender in ToolbarItemRenders)
{ {
<Column ColumnSize="ColumnSize.IsAuto" Class="px-1 pt-2"> <Column ColumnSize="ColumnSize.IsAuto" Class="px-1 pt-2">
@toolbarItemRender @toolbarItemRender
</Column> </Column>
} }
</Row> </Row>
</Column> </Column>
}
</Row> </Row>

22
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs

@ -13,8 +13,11 @@ public partial class PageHeader : ComponentBase
public IPageToolbarManager PageToolbarManager { get; set; } public IPageToolbarManager PageToolbarManager { get; set; }
[Parameter] [Inject]
public string Title { get; set; } public PageLayout PageLayout { get; private set; }
[Parameter] // TODO: Consider removing this property in future and use only PageLayout.
public string Title { get => PageLayout.Title; set => PageLayout.Title = value; }
[Parameter] [Parameter]
public bool BreadcrumbShowHome { get; set; } = true; public bool BreadcrumbShowHome { get; set; } = true;
@ -25,15 +28,17 @@ public partial class PageHeader : ComponentBase
[Parameter] [Parameter]
public RenderFragment ChildContent { get; set; } public RenderFragment ChildContent { get; set; }
[Parameter] [Parameter] // TODO: Consider removing this property in future and use only PageLayout.
public List<BreadcrumbItem> BreadcrumbItems { get; set; } public List<BreadcrumbItem> BreadcrumbItems {
get => PageLayout.BreadcrumbItems;
set => PageLayout.BreadcrumbItems = value;
}
[Parameter] [Parameter]
public PageToolbar Toolbar { get; set; } public PageToolbar Toolbar { get; set; }
public PageHeader() public PageHeader()
{ {
BreadcrumbItems = new List<BreadcrumbItem>();
ToolbarItemRenders = new List<RenderFragment>(); ToolbarItemRenders = new List<RenderFragment>();
} }
@ -45,6 +50,13 @@ public partial class PageHeader : ComponentBase
var toolbarItems = await PageToolbarManager.GetItemsAsync(Toolbar); var toolbarItems = await PageToolbarManager.GetItemsAsync(Toolbar);
ToolbarItemRenders.Clear(); ToolbarItemRenders.Clear();
if (!Options.Value.RenderToolbar)
{
PageLayout.ToolbarItems.Clear();
PageLayout.ToolbarItems.AddRange(toolbarItems);
return;
}
foreach (var item in toolbarItems) foreach (var item in toolbarItems)
{ {
var sequence = 0; var sequence = 0;

Loading…
Cancel
Save