
This fixes the issue when the page property IsClickable is set to false the breadcrum for the page is not clickable.
49 lines
1.3 KiB
Plaintext
49 lines
1.3 KiB
Plaintext
@namespace Oqtane.Themes.Controls
|
|
@inherits ThemeControlBase
|
|
|
|
@if (BreadCrumbPages.Any())
|
|
{
|
|
<span class="app-breadcrumbs">
|
|
<ol class="breadcrumb">
|
|
@foreach (var p in BreadCrumbPages)
|
|
{
|
|
if (p.PageId == PageState.Page.PageId)
|
|
{
|
|
<li class="breadcrumb-item active">
|
|
<a href="@NavigateUrl(p.Path)">@p.Name</a>
|
|
</li>
|
|
}
|
|
else
|
|
{
|
|
<li class="breadcrumb-item">
|
|
@if(p.IsClickable)
|
|
{
|
|
<a href="@NavigateUrl(p.Path)">@p.Name</a>
|
|
}
|
|
else
|
|
{
|
|
@p.Name
|
|
}
|
|
|
|
</li>
|
|
}
|
|
}
|
|
</ol>
|
|
</span>
|
|
}
|
|
|
|
@code {
|
|
|
|
protected IEnumerable<Page> BreadCrumbPages => GetBreadCrumbPages().Reverse().ToList();
|
|
|
|
private IEnumerable<Page> GetBreadCrumbPages()
|
|
{
|
|
var page = PageState.Page;
|
|
do
|
|
{
|
|
yield return page;
|
|
page = PageState.Pages.FirstOrDefault(p => page != null && p.PageId == page.ParentId);
|
|
} while (page != null);
|
|
}
|
|
}
|